let A=class{constructor(A,e){this.items=A||[],this._lastUniqueId=(e||0)+1}addItem(){let A;if(2===arguments.length){const e=arguments[0];if(A=arguments[1],this.items[e])throw"ID clash: '"+e+"'";return this.items[e]=A,e}for(A=arguments[0]||{};;){const e=this._lastUniqueId++;if(!this.items[e])return this.items[e]=A,e}}removeItem(A){const e=this.items[A];return delete this.items[A],e}};const e=new A;class t{constructor(A){this.id=A,this.parentItem=null,this.groups=[],this.menuElement=null,this.shown=!1,this.mouseOver=0}}class i{constructor(){this.items=[]}}class s{constructor(A,e,t,i,s){this.id=A,this.getTitle=e,this.doAction=t,this.getEnabled=i,this.getShown=s,this.itemElement=null,this.subMenu=null,this.enabled=!0}}class n{constructor(A={}){this._id=e.addItem(),this._context=null,this._enabled=!1,this._itemsCfg=[],this._rootMenu=null,this._menuList=[],this._menuMap={},this._itemList=[],this._itemMap={},this._shown=!1,this._nextId=0,this._parentNode=A.parentNode||document.body,this._offsetParent=this._parentNode instanceof ShadowRoot?this._parentNode.host:this._parentNode,this._eventSubs={},!1!==A.hideOnMouseDown&&(this._parentNode.addEventListener("mousedown",(A=>{A.target.classList.contains("xeokit-context-menu-item")||this.hide()})),this._parentNode.addEventListener("touchstart",this._canvasTouchStartHandler=A=>{A.target.classList.contains("xeokit-context-menu-item")||this.hide()})),A.items&&(this.items=A.items),this._hideOnAction=!1!==A.hideOnAction,this.context=A.context,this.enabled=!1!==A.enabled,this.hide()}on(A,e){let t=this._eventSubs[A];t||(t=[],this._eventSubs[A]=t),t.push(e)}fire(A,e){const t=this._eventSubs[A];if(t)for(let A=0,i=t.length;A{const n=this._getNextId(),o=new t(n);for(let t=0,n=A.length;t0,a=this._getNextId(),h=t.getTitle||(()=>t.title||""),B=t.doAction||t.callback||(()=>{}),g=t.getEnabled||(()=>!0),l=t.getShown||(()=>!0),E=new s(a,h,B,g,l);if(E.parentMenu=o,r.items.push(E),c){const A=e(i);E.subMenu=A,A.parentItem=E}this._itemList.push(E),this._itemMap[E.id]=E}}return this._menuList.push(o),this._menuMap[o.id]=o,o};this._rootMenu=e(A)}_getNextId(){return"ContextMenu_"+this._id+"_"+this._nextId++}_createUI(){const A=e=>{this._createMenuUI(e);const t=e.groups;for(let e=0,i=t.length;e"),e)for(let A=0,i=e.length;A'+c+""),s===n-1||A')):(t.push('
  • '+c+"
  • "),s===n-1||A'))}}t.push("");const s=t.join("");i.innerHTML=s,this._parentNode.appendChild(i),A.menuElement=i,i.style["border-radius"]="4px",i.style.display="none",i.style["z-index"]=3e5,i.style.background="white",i.style.border="1px solid black",i.style["box-shadow"]="0 4px 5px 0 gray",i.oncontextmenu=A=>{A.preventDefault()};const n=this;let o=null;if(e)for(let A=0,t=e.length;A{A.preventDefault();const t=e.subMenu;if(!t)return void(o&&(n._hideMenu(o.id),o=null));if(o&&o.id!==t.id&&(n._hideMenu(o.id),o=null),!1===e.enabled)return;const i=e.itemElement,s=t.menuElement,r=i.getBoundingClientRect();s.getBoundingClientRect();const c=n._offsetParent.getBoundingClientRect(),a=200,h=r.right+ac.left;if(h)n._showMenu(t.id,r.right+window.scrollX-5,r.top+window.scrollY-1);else if(B)n._showMenu(t.id,r.left-a+window.scrollX,r.top+window.scrollY-1);else{const A=r.left-c.left,e=c.right-r.right;e>A?n._showMenu(t.id,r.right-5-(a-e),r.top+window.scrollY-1):n._showMenu(t.id,r.left-A,r.top+window.scrollY-1)}o=t})),i||(e.itemElement.addEventListener("click",(A=>{A.preventDefault(),n._context&&!1!==e.enabled&&(e.doAction&&e.doAction(n._context),this._hideOnAction?n.hide():(n._updateItemsTitles(),n._updateItemsEnabledStatus()))})),e.itemElement.addEventListener("mouseup",(A=>{3===A.which&&(A.preventDefault(),n._context&&!1!==e.enabled&&(e.doAction&&e.doAction(n._context),this._hideOnAction?n.hide():(n._updateItemsTitles(),n._updateItemsEnabledStatus())))})),e.itemElement.addEventListener("mouseenter",(A=>{A.preventDefault(),!1!==e.enabled&&e.doHover&&e.doHover(n._context)})))):console.error("ContextMenu item element not found: "+e.id)}}}_updateItemsTitles(){if(this._context)for(let A=0,e=this._itemList.length;A{o.subMenu&&(A=o.itemElement,e=A.getBoundingClientRect(),t=o.subMenu.menuElement,i={visibility:t.style.visibility,display:t.style.display},t.style.display="block",t.style.visibility="hidden",n=o.subMenu.menuElement.getBoundingClientRect().width,t.style.visibility=i.visibility,t.style.display=i.display,s=e.right+n>window.innerWidth,A.setAttribute("data-submenuposition",s?"left":"right"))}))}_showMenu(A,e,t){const i=this._menuMap[A];if(!i)return void console.error("Menu not found: "+A);if(i.shown)return;const s=i.menuElement;s&&(this._showMenuElement(s,e,t),i.shown=!0)}_hideMenu(A){const e=this._menuMap[A];if(!e)return void console.error("Menu not found: "+A);if(!e.shown)return;const t=e.menuElement;t&&(this._hideMenuElement(t),e.shown=!1)}_hideAllMenus(){for(let A=0,e=this._menuList.length;Ao&&(t=o-i),e+s>r&&(e=r-s),A.style.left=e-n.left-window.scrollX+"px",A.style.top=t-n.top-window.scrollY+"px"}_hideMenuElement(A){A.style.display="none"}}let o=!0,r=o?Float64Array:Float32Array;const c=new r(3),a=new r(16),h=new r(16),B=new r(4),g={setDoublePrecisionEnabled(A){o=A,r=o?Float64Array:Float32Array},getDoublePrecisionEnabled:()=>o,MIN_DOUBLE:-Number.MAX_SAFE_INTEGER,MAX_DOUBLE:Number.MAX_SAFE_INTEGER,MAX_INT:1e7,DEGTORAD:.0174532925,RADTODEG:57.295779513,unglobalizeObjectId(A,e){const t=e.indexOf("#");return t===A.length&&e.startsWith(A)?e.substring(t+1):e},globalizeObjectId:(A,e)=>A+"#"+e,safeInv(A){const e=1/A;return isNaN(e)||!isFinite(e)?1:e},vec2:A=>new r(A||2),vec3:A=>new r(A||3),vec4:A=>new r(A||4),mat3:A=>new r(A||9),mat3ToMat4:(A,e=new r(16))=>(e[0]=A[0],e[1]=A[1],e[2]=A[2],e[3]=0,e[4]=A[3],e[5]=A[4],e[6]=A[5],e[7]=0,e[8]=A[6],e[9]=A[7],e[10]=A[8],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e),mat4:A=>new r(A||16),mat4ToMat3:(A,e=new r(9))=>(e[0]=A[0],e[1]=A[1],e[2]=A[2],e[3]=A[4],e[4]=A[5],e[5]=A[6],e[6]=A[8],e[7]=A[9],e[8]=A[10],e),doublesToFloats(A,e,t){const i=new r(2);for(let s=0,n=A.length;s{const A=[];for(let e=0;e<256;e++)A[e]=(e<16?"0":"")+e.toString(16);return()=>{const e=4294967295*Math.random()|0,t=4294967295*Math.random()|0,i=4294967295*Math.random()|0,s=4294967295*Math.random()|0;return`${A[255&e]+A[e>>8&255]+A[e>>16&255]+A[e>>24&255]}-${A[255&t]}${A[t>>8&255]}-${A[t>>16&15|64]}${A[t>>24&255]}-${A[63&i|128]}${A[i>>8&255]}-${A[i>>16&255]}${A[i>>24&255]}${A[255&s]}${A[s>>8&255]}${A[s>>16&255]}${A[s>>24&255]}`}})(),clamp:(A,e,t)=>Math.max(e,Math.min(t,A)),fmod(A,e){if(AA[0]===e[0]&&A[1]===e[1]&&A[2]===e[2],compareVec4:(A,e)=>A[0]===e[0]&&A[1]===e[1]&&A[2]===e[2]&&A[3]===e[3],negateVec3:(A,e)=>(e||(e=A),e[0]=-A[0],e[1]=-A[1],e[2]=-A[2],e),negateVec4:(A,e)=>(e||(e=A),e[0]=-A[0],e[1]=-A[1],e[2]=-A[2],e[3]=-A[3],e),addVec4:(A,e,t)=>(t||(t=A),t[0]=A[0]+e[0],t[1]=A[1]+e[1],t[2]=A[2]+e[2],t[3]=A[3]+e[3],t),addVec4Scalar:(A,e,t)=>(t||(t=A),t[0]=A[0]+e,t[1]=A[1]+e,t[2]=A[2]+e,t[3]=A[3]+e,t),addVec3:(A,e,t)=>(t||(t=A),t[0]=A[0]+e[0],t[1]=A[1]+e[1],t[2]=A[2]+e[2],t),addVec3Scalar:(A,e,t)=>(t||(t=A),t[0]=A[0]+e,t[1]=A[1]+e,t[2]=A[2]+e,t),subVec4:(A,e,t)=>(t||(t=A),t[0]=A[0]-e[0],t[1]=A[1]-e[1],t[2]=A[2]-e[2],t[3]=A[3]-e[3],t),subVec3:(A,e,t)=>(t||(t=A),t[0]=A[0]-e[0],t[1]=A[1]-e[1],t[2]=A[2]-e[2],t),subVec2:(A,e,t)=>(t||(t=A),t[0]=A[0]-e[0],t[1]=A[1]-e[1],t),geometricMeanVec2(...A){const e=new r(A[0]);for(let t=1;t(t||(t=A),t[0]=A[0]-e,t[1]=A[1]-e,t[2]=A[2]-e,t[3]=A[3]-e,t),subScalarVec4:(A,e,t)=>(t||(t=A),t[0]=e-A[0],t[1]=e-A[1],t[2]=e-A[2],t[3]=e-A[3],t),mulVec4:(A,e,t)=>(t||(t=A),t[0]=A[0]*e[0],t[1]=A[1]*e[1],t[2]=A[2]*e[2],t[3]=A[3]*e[3],t),mulVec4Scalar:(A,e,t)=>(t||(t=A),t[0]=A[0]*e,t[1]=A[1]*e,t[2]=A[2]*e,t[3]=A[3]*e,t),mulVec3Scalar:(A,e,t)=>(t||(t=A),t[0]=A[0]*e,t[1]=A[1]*e,t[2]=A[2]*e,t),mulVec2Scalar:(A,e,t)=>(t||(t=A),t[0]=A[0]*e,t[1]=A[1]*e,t),divVec3:(A,e,t)=>(t||(t=A),t[0]=A[0]/e[0],t[1]=A[1]/e[1],t[2]=A[2]/e[2],t),divVec4:(A,e,t)=>(t||(t=A),t[0]=A[0]/e[0],t[1]=A[1]/e[1],t[2]=A[2]/e[2],t[3]=A[3]/e[3],t),divScalarVec3:(A,e,t)=>(t||(t=e),t[0]=A/e[0],t[1]=A/e[1],t[2]=A/e[2],t),divVec3Scalar:(A,e,t)=>(t||(t=A),t[0]=A[0]/e,t[1]=A[1]/e,t[2]=A[2]/e,t),divVec4Scalar:(A,e,t)=>(t||(t=A),t[0]=A[0]/e,t[1]=A[1]/e,t[2]=A[2]/e,t[3]=A[3]/e,t),divScalarVec4:(A,e,t)=>(t||(t=e),t[0]=A/e[0],t[1]=A/e[1],t[2]=A/e[2],t[3]=A/e[3],t),dotVec4:(A,e)=>A[0]*e[0]+A[1]*e[1]+A[2]*e[2]+A[3]*e[3],cross3Vec4(A,e){const t=A[0],i=A[1],s=A[2],n=e[0],o=e[1],r=e[2];return[i*r-s*o,s*n-t*r,t*o-i*n,0]},cross3Vec3(A,e,t){t||(t=A);const i=A[0],s=A[1],n=A[2],o=e[0],r=e[1],c=e[2];return t[0]=s*c-n*r,t[1]=n*o-i*c,t[2]=i*r-s*o,t},sqLenVec4:A=>g.dotVec4(A,A),lenVec4:A=>Math.sqrt(g.sqLenVec4(A)),dotVec3:(A,e)=>A[0]*e[0]+A[1]*e[1]+A[2]*e[2],dotVec2:(A,e)=>A[0]*e[0]+A[1]*e[1],sqLenVec3:A=>g.dotVec3(A,A),sqLenVec2:A=>g.dotVec2(A,A),lenVec3:A=>Math.sqrt(g.sqLenVec3(A)),distVec3:(()=>{const A=new r(3);return(e,t)=>g.lenVec3(g.subVec3(e,t,A))})(),lenVec2:A=>Math.sqrt(g.sqLenVec2(A)),distVec2:(()=>{const A=new r(2);return(e,t)=>g.lenVec2(g.subVec2(e,t,A))})(),rcpVec3:(A,e)=>g.divScalarVec3(1,A,e),normalizeVec4(A,e){const t=1/g.lenVec4(A);return g.mulVec4Scalar(A,t,e)},normalizeVec3(A,e){const t=1/g.lenVec3(A);return g.mulVec3Scalar(A,t,e)},normalizeVec2(A,e){const t=1/g.lenVec2(A);return g.mulVec2Scalar(A,t,e)},angleVec3(A,e){let t=g.dotVec3(A,e)/Math.sqrt(g.sqLenVec3(A)*g.sqLenVec3(e));return t=t<-1?-1:t>1?1:t,Math.acos(t)},vec3FromMat4Scale:(()=>{const A=new r(3);return(e,t)=>(A[0]=e[0],A[1]=e[1],A[2]=e[2],t[0]=g.lenVec3(A),A[0]=e[4],A[1]=e[5],A[2]=e[6],t[1]=g.lenVec3(A),A[0]=e[8],A[1]=e[9],A[2]=e[10],t[2]=g.lenVec3(A),t)})(),vecToArray:(()=>{function A(A){return Math.round(1e5*A)/1e5}return e=>{for(let t=0,i=(e=Array.prototype.slice.call(e)).length;t({x:A[0],y:A[1],z:A[2]}),xyzObjectToArray:(A,e)=>((e=e||g.vec3())[0]=A.x,e[1]=A.y,e[2]=A.z,e),dupMat4:A=>A.slice(0,16),mat4To3:A=>[A[0],A[1],A[2],A[4],A[5],A[6],A[8],A[9],A[10]],m4s:A=>[A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A],setMat4ToZeroes:()=>g.m4s(0),setMat4ToOnes:()=>g.m4s(1),diagonalMat4v:A=>new r([A[0],0,0,0,0,A[1],0,0,0,0,A[2],0,0,0,0,A[3]]),diagonalMat4c:(A,e,t,i)=>g.diagonalMat4v([A,e,t,i]),diagonalMat4s:A=>g.diagonalMat4c(A,A,A,A),identityMat4:(A=new r(16))=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=0,A[5]=1,A[6]=0,A[7]=0,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=0,A[14]=0,A[15]=1,A),identityMat3:(A=new r(9))=>(A[0]=1,A[1]=0,A[2]=0,A[3]=0,A[4]=1,A[5]=0,A[6]=0,A[7]=0,A[8]=1,A),isIdentityMat4:A=>1===A[0]&&0===A[1]&&0===A[2]&&0===A[3]&&0===A[4]&&1===A[5]&&0===A[6]&&0===A[7]&&0===A[8]&&0===A[9]&&1===A[10]&&0===A[11]&&0===A[12]&&0===A[13]&&0===A[14]&&1===A[15],negateMat4:(A,e)=>(e||(e=A),e[0]=-A[0],e[1]=-A[1],e[2]=-A[2],e[3]=-A[3],e[4]=-A[4],e[5]=-A[5],e[6]=-A[6],e[7]=-A[7],e[8]=-A[8],e[9]=-A[9],e[10]=-A[10],e[11]=-A[11],e[12]=-A[12],e[13]=-A[13],e[14]=-A[14],e[15]=-A[15],e),addMat4:(A,e,t)=>(t||(t=A),t[0]=A[0]+e[0],t[1]=A[1]+e[1],t[2]=A[2]+e[2],t[3]=A[3]+e[3],t[4]=A[4]+e[4],t[5]=A[5]+e[5],t[6]=A[6]+e[6],t[7]=A[7]+e[7],t[8]=A[8]+e[8],t[9]=A[9]+e[9],t[10]=A[10]+e[10],t[11]=A[11]+e[11],t[12]=A[12]+e[12],t[13]=A[13]+e[13],t[14]=A[14]+e[14],t[15]=A[15]+e[15],t),addMat4Scalar:(A,e,t)=>(t||(t=A),t[0]=A[0]+e,t[1]=A[1]+e,t[2]=A[2]+e,t[3]=A[3]+e,t[4]=A[4]+e,t[5]=A[5]+e,t[6]=A[6]+e,t[7]=A[7]+e,t[8]=A[8]+e,t[9]=A[9]+e,t[10]=A[10]+e,t[11]=A[11]+e,t[12]=A[12]+e,t[13]=A[13]+e,t[14]=A[14]+e,t[15]=A[15]+e,t),addScalarMat4:(A,e,t)=>g.addMat4Scalar(e,A,t),subMat4:(A,e,t)=>(t||(t=A),t[0]=A[0]-e[0],t[1]=A[1]-e[1],t[2]=A[2]-e[2],t[3]=A[3]-e[3],t[4]=A[4]-e[4],t[5]=A[5]-e[5],t[6]=A[6]-e[6],t[7]=A[7]-e[7],t[8]=A[8]-e[8],t[9]=A[9]-e[9],t[10]=A[10]-e[10],t[11]=A[11]-e[11],t[12]=A[12]-e[12],t[13]=A[13]-e[13],t[14]=A[14]-e[14],t[15]=A[15]-e[15],t),subMat4Scalar:(A,e,t)=>(t||(t=A),t[0]=A[0]-e,t[1]=A[1]-e,t[2]=A[2]-e,t[3]=A[3]-e,t[4]=A[4]-e,t[5]=A[5]-e,t[6]=A[6]-e,t[7]=A[7]-e,t[8]=A[8]-e,t[9]=A[9]-e,t[10]=A[10]-e,t[11]=A[11]-e,t[12]=A[12]-e,t[13]=A[13]-e,t[14]=A[14]-e,t[15]=A[15]-e,t),subScalarMat4:(A,e,t)=>(t||(t=e),t[0]=A-e[0],t[1]=A-e[1],t[2]=A-e[2],t[3]=A-e[3],t[4]=A-e[4],t[5]=A-e[5],t[6]=A-e[6],t[7]=A-e[7],t[8]=A-e[8],t[9]=A-e[9],t[10]=A-e[10],t[11]=A-e[11],t[12]=A-e[12],t[13]=A-e[13],t[14]=A-e[14],t[15]=A-e[15],t),mulMat4(A,e,t){t||(t=A);const i=A[0],s=A[1],n=A[2],o=A[3],r=A[4],c=A[5],a=A[6],h=A[7],B=A[8],g=A[9],l=A[10],E=A[11],Q=A[12],M=A[13],u=A[14],w=A[15],d=e[0],C=e[1],x=e[2],F=e[3],p=e[4],I=e[5],f=e[6],Y=e[7],D=e[8],m=e[9],J=e[10],N=e[11],y=e[12],z=e[13],T=e[14],U=e[15];return t[0]=d*i+C*r+x*B+F*Q,t[1]=d*s+C*c+x*g+F*M,t[2]=d*n+C*a+x*l+F*u,t[3]=d*o+C*h+x*E+F*w,t[4]=p*i+I*r+f*B+Y*Q,t[5]=p*s+I*c+f*g+Y*M,t[6]=p*n+I*a+f*l+Y*u,t[7]=p*o+I*h+f*E+Y*w,t[8]=D*i+m*r+J*B+N*Q,t[9]=D*s+m*c+J*g+N*M,t[10]=D*n+m*a+J*l+N*u,t[11]=D*o+m*h+J*E+N*w,t[12]=y*i+z*r+T*B+U*Q,t[13]=y*s+z*c+T*g+U*M,t[14]=y*n+z*a+T*l+U*u,t[15]=y*o+z*h+T*E+U*w,t},mulMat3(A,e,t){t||(t=new r(9));const i=A[0],s=A[3],n=A[6],o=A[1],c=A[4],a=A[7],h=A[2],B=A[5],g=A[8],l=e[0],E=e[3],Q=e[6],M=e[1],u=e[4],w=e[7],d=e[2],C=e[5],x=e[8];return t[0]=i*l+s*M+n*d,t[3]=i*E+s*u+n*C,t[6]=i*Q+s*w+n*x,t[1]=o*l+c*M+a*d,t[4]=o*E+c*u+a*C,t[7]=o*Q+c*w+a*x,t[2]=h*l+B*M+g*d,t[5]=h*E+B*u+g*C,t[8]=h*Q+B*w+g*x,t},mulMat4Scalar:(A,e,t)=>(t||(t=A),t[0]=A[0]*e,t[1]=A[1]*e,t[2]=A[2]*e,t[3]=A[3]*e,t[4]=A[4]*e,t[5]=A[5]*e,t[6]=A[6]*e,t[7]=A[7]*e,t[8]=A[8]*e,t[9]=A[9]*e,t[10]=A[10]*e,t[11]=A[11]*e,t[12]=A[12]*e,t[13]=A[13]*e,t[14]=A[14]*e,t[15]=A[15]*e,t),mulMat4v4(A,e,t=g.vec4()){const i=e[0],s=e[1],n=e[2],o=e[3];return t[0]=A[0]*i+A[4]*s+A[8]*n+A[12]*o,t[1]=A[1]*i+A[5]*s+A[9]*n+A[13]*o,t[2]=A[2]*i+A[6]*s+A[10]*n+A[14]*o,t[3]=A[3]*i+A[7]*s+A[11]*n+A[15]*o,t},transposeMat4(A,e){const t=A[4],i=A[14],s=A[8],n=A[13],o=A[12],r=A[9];if(!e||A===e){const e=A[1],c=A[2],a=A[3],h=A[6],B=A[7],g=A[11];return A[1]=t,A[2]=s,A[3]=o,A[4]=e,A[6]=r,A[7]=n,A[8]=c,A[9]=h,A[11]=i,A[12]=a,A[13]=B,A[14]=g,A}return e[0]=A[0],e[1]=t,e[2]=s,e[3]=o,e[4]=A[1],e[5]=A[5],e[6]=r,e[7]=n,e[8]=A[2],e[9]=A[6],e[10]=A[10],e[11]=i,e[12]=A[3],e[13]=A[7],e[14]=A[11],e[15]=A[15],e},transposeMat3(A,e){if(e===A){const t=A[1],i=A[2],s=A[5];e[1]=A[3],e[2]=A[6],e[3]=t,e[5]=A[7],e[6]=i,e[7]=s}else e[0]=A[0],e[1]=A[3],e[2]=A[6],e[3]=A[1],e[4]=A[4],e[5]=A[7],e[6]=A[2],e[7]=A[5],e[8]=A[8];return e},determinantMat4(A){const e=A[0],t=A[1],i=A[2],s=A[3],n=A[4],o=A[5],r=A[6],c=A[7],a=A[8],h=A[9],B=A[10],g=A[11],l=A[12],E=A[13],Q=A[14],M=A[15];return l*h*r*s-a*E*r*s-l*o*B*s+n*E*B*s+a*o*Q*s-n*h*Q*s-l*h*i*c+a*E*i*c+l*t*B*c-e*E*B*c-a*t*Q*c+e*h*Q*c+l*o*i*g-n*E*i*g-l*t*r*g+e*E*r*g+n*t*Q*g-e*o*Q*g-a*o*i*M+n*h*i*M+a*t*r*M-e*h*r*M-n*t*B*M+e*o*B*M},inverseMat4(A,e){e||(e=A);const t=A[0],i=A[1],s=A[2],n=A[3],o=A[4],r=A[5],c=A[6],a=A[7],h=A[8],B=A[9],g=A[10],l=A[11],E=A[12],Q=A[13],M=A[14],u=A[15],w=t*r-i*o,d=t*c-s*o,C=t*a-n*o,x=i*c-s*r,F=i*a-n*r,p=s*a-n*c,I=h*Q-B*E,f=h*M-g*E,Y=h*u-l*E,D=B*M-g*Q,m=B*u-l*Q,J=g*u-l*M,N=1/(w*J-d*m+C*D+x*Y-F*f+p*I);return e[0]=(r*J-c*m+a*D)*N,e[1]=(-i*J+s*m-n*D)*N,e[2]=(Q*p-M*F+u*x)*N,e[3]=(-B*p+g*F-l*x)*N,e[4]=(-o*J+c*Y-a*f)*N,e[5]=(t*J-s*Y+n*f)*N,e[6]=(-E*p+M*C-u*d)*N,e[7]=(h*p-g*C+l*d)*N,e[8]=(o*m-r*Y+a*I)*N,e[9]=(-t*m+i*Y-n*I)*N,e[10]=(E*F-Q*C+u*w)*N,e[11]=(-h*F+B*C-l*w)*N,e[12]=(-o*D+r*f-c*I)*N,e[13]=(t*D-i*f+s*I)*N,e[14]=(-E*x+Q*d-M*w)*N,e[15]=(h*x-B*d+g*w)*N,e},traceMat4:A=>A[0]+A[5]+A[10]+A[15],translationMat4v(A,e){const t=e||g.identityMat4();return t[12]=A[0],t[13]=A[1],t[14]=A[2],t},translationMat3v(A,e){const t=e||g.identityMat3();return t[6]=A[0],t[7]=A[1],t},translationMat4c:(()=>{const A=new r(3);return(e,t,i,s)=>(A[0]=e,A[1]=t,A[2]=i,g.translationMat4v(A,s))})(),translationMat4s:(A,e)=>g.translationMat4c(A,A,A,e),translateMat4v:(A,e)=>g.translateMat4c(A[0],A[1],A[2],e),translateMat4c(A,e,t,i){const s=i[3];i[0]+=s*A,i[1]+=s*e,i[2]+=s*t;const n=i[7];i[4]+=n*A,i[5]+=n*e,i[6]+=n*t;const o=i[11];i[8]+=o*A,i[9]+=o*e,i[10]+=o*t;const r=i[15];return i[12]+=r*A,i[13]+=r*e,i[14]+=r*t,i},setMat4Translation:(A,e,t)=>(t[0]=A[0],t[1]=A[1],t[2]=A[2],t[3]=A[3],t[4]=A[4],t[5]=A[5],t[6]=A[6],t[7]=A[7],t[8]=A[8],t[9]=A[9],t[10]=A[10],t[11]=A[11],t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=A[15],t),rotationMat4v(A,e,t){const i=g.normalizeVec4([e[0],e[1],e[2],0],[]),s=Math.sin(A),n=Math.cos(A),o=1-n,r=i[0],c=i[1],a=i[2];let h,B,l,E,Q,M;return h=r*c,B=c*a,l=a*r,E=r*s,Q=c*s,M=a*s,(t=t||g.mat4())[0]=o*r*r+n,t[1]=o*h+M,t[2]=o*l-Q,t[3]=0,t[4]=o*h-M,t[5]=o*c*c+n,t[6]=o*B+E,t[7]=0,t[8]=o*l+Q,t[9]=o*B-E,t[10]=o*a*a+n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},rotationMat4c:(A,e,t,i,s)=>g.rotationMat4v(A,[e,t,i],s),scalingMat4v:(A,e=g.identityMat4())=>(e[0]=A[0],e[5]=A[1],e[10]=A[2],e),scalingMat3v:(A,e=g.identityMat3())=>(e[0]=A[0],e[4]=A[1],e),scalingMat4c:(()=>{const A=new r(3);return(e,t,i,s)=>(A[0]=e,A[1]=t,A[2]=i,g.scalingMat4v(A,s))})(),scaleMat4c:(A,e,t,i)=>(i[0]*=A,i[4]*=e,i[8]*=t,i[1]*=A,i[5]*=e,i[9]*=t,i[2]*=A,i[6]*=e,i[10]*=t,i[3]*=A,i[7]*=e,i[11]*=t,i),scaleMat4v(A,e){const t=A[0],i=A[1],s=A[2];return e[0]*=t,e[4]*=i,e[8]*=s,e[1]*=t,e[5]*=i,e[9]*=s,e[2]*=t,e[6]*=i,e[10]*=s,e[3]*=t,e[7]*=i,e[11]*=s,e},scalingMat4s:A=>g.scalingMat4c(A,A,A),rotationTranslationMat4(A,e,t=g.mat4()){const i=A[0],s=A[1],n=A[2],o=A[3],r=i+i,c=s+s,a=n+n,h=i*r,B=i*c,l=i*a,E=s*c,Q=s*a,M=n*a,u=o*r,w=o*c,d=o*a;return t[0]=1-(E+M),t[1]=B+d,t[2]=l-w,t[3]=0,t[4]=B-d,t[5]=1-(h+M),t[6]=Q+u,t[7]=0,t[8]=l+w,t[9]=Q-u,t[10]=1-(h+E),t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t},mat4ToEuler(A,e,t=g.vec4()){const i=g.clamp,s=A[0],n=A[4],o=A[8],r=A[1],c=A[5],a=A[9],h=A[2],B=A[6],l=A[10];return"XYZ"===e?(t[1]=Math.asin(i(o,-1,1)),Math.abs(o)<.99999?(t[0]=Math.atan2(-a,l),t[2]=Math.atan2(-n,s)):(t[0]=Math.atan2(B,c),t[2]=0)):"YXZ"===e?(t[0]=Math.asin(-i(a,-1,1)),Math.abs(a)<.99999?(t[1]=Math.atan2(o,l),t[2]=Math.atan2(r,c)):(t[1]=Math.atan2(-h,s),t[2]=0)):"ZXY"===e?(t[0]=Math.asin(i(B,-1,1)),Math.abs(B)<.99999?(t[1]=Math.atan2(-h,l),t[2]=Math.atan2(-n,c)):(t[1]=0,t[2]=Math.atan2(r,s))):"ZYX"===e?(t[1]=Math.asin(-i(h,-1,1)),Math.abs(h)<.99999?(t[0]=Math.atan2(B,l),t[2]=Math.atan2(r,s)):(t[0]=0,t[2]=Math.atan2(-n,c))):"YZX"===e?(t[2]=Math.asin(i(r,-1,1)),Math.abs(r)<.99999?(t[0]=Math.atan2(-a,c),t[1]=Math.atan2(-h,s)):(t[0]=0,t[1]=Math.atan2(o,l))):"XZY"===e&&(t[2]=Math.asin(-i(n,-1,1)),Math.abs(n)<.99999?(t[0]=Math.atan2(B,c),t[1]=Math.atan2(o,s)):(t[0]=Math.atan2(-a,l),t[1]=0)),t[0]*=g.RADTODEG,t[1]*=g.RADTODEG,t[2]*=g.RADTODEG,t},composeMat4:(A,e,t,i=g.mat4())=>(g.quaternionToRotationMat4(e,i),g.scaleMat4v(t,i),g.translateMat4v(A,i),i),decomposeMat4:(()=>{const A=new r(3),e=new r(16);return function(t,i,s,n){A[0]=t[0],A[1]=t[1],A[2]=t[2];let o=g.lenVec3(A);A[0]=t[4],A[1]=t[5],A[2]=t[6];const r=g.lenVec3(A);A[8]=t[8],A[9]=t[9],A[10]=t[10];const c=g.lenVec3(A);g.determinantMat4(t)<0&&(o=-o),i[0]=t[12],i[1]=t[13],i[2]=t[14],e.set(t);const a=1/o,h=1/r,B=1/c;return e[0]*=a,e[1]*=a,e[2]*=a,e[4]*=h,e[5]*=h,e[6]*=h,e[8]*=B,e[9]*=B,e[10]*=B,g.mat4ToQuaternion(e,s),n[0]=o,n[1]=r,n[2]=c,this}})(),getColMat4(A,e){const t=4*e;return[A[t],A[t+1],A[t+2],A[t+3]]},setRowMat4(A,e,t){A[e]=t[0],A[e+4]=t[1],A[e+8]=t[2],A[e+12]=t[3]},lookAtMat4v(A,e,t,i){i||(i=g.mat4());const s=A[0],n=A[1],o=A[2],r=t[0],c=t[1],a=t[2],h=e[0],B=e[1],l=e[2];if(s===h&&n===B&&o===l)return g.identityMat4();let E,Q,M,u,w,d,C,x,F,p;return E=s-h,Q=n-B,M=o-l,p=1/Math.sqrt(E*E+Q*Q+M*M),E*=p,Q*=p,M*=p,u=c*M-a*Q,w=a*E-r*M,d=r*Q-c*E,p=Math.sqrt(u*u+w*w+d*d),p?(p=1/p,u*=p,w*=p,d*=p):(u=0,w=0,d=0),C=Q*d-M*w,x=M*u-E*d,F=E*w-Q*u,p=Math.sqrt(C*C+x*x+F*F),p?(p=1/p,C*=p,x*=p,F*=p):(C=0,x=0,F=0),i[0]=u,i[1]=C,i[2]=E,i[3]=0,i[4]=w,i[5]=x,i[6]=Q,i[7]=0,i[8]=d,i[9]=F,i[10]=M,i[11]=0,i[12]=-(u*s+w*n+d*o),i[13]=-(C*s+x*n+F*o),i[14]=-(E*s+Q*n+M*o),i[15]=1,i},lookAtMat4c:(A,e,t,i,s,n,o,r,c)=>g.lookAtMat4v([A,e,t],[i,s,n],[o,r,c],[]),orthoMat4c(A,e,t,i,s,n,o){o||(o=g.mat4());const r=e-A,c=i-t,a=n-s;return o[0]=2/r,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=2/c,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=-2/a,o[11]=0,o[12]=-(A+e)/r,o[13]=-(i+t)/c,o[14]=-(n+s)/a,o[15]=1,o},frustumMat4v(A,e,t){t||(t=g.mat4());const i=[A[0],A[1],A[2],0],s=[e[0],e[1],e[2],0];g.addVec4(s,i,a),g.subVec4(s,i,h);const n=2*i[2],o=h[0],r=h[1],c=h[2];return t[0]=n/o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n/r,t[6]=0,t[7]=0,t[8]=a[0]/o,t[9]=a[1]/r,t[10]=-a[2]/c,t[11]=-1,t[12]=0,t[13]=0,t[14]=-n*s[2]/c,t[15]=0,t},frustumMat4(A,e,t,i,s,n,o){o||(o=g.mat4());const r=e-A,c=i-t,a=n-s;return o[0]=2*s/r,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=2*s/c,o[6]=0,o[7]=0,o[8]=(e+A)/r,o[9]=(i+t)/c,o[10]=-(n+s)/a,o[11]=-1,o[12]=0,o[13]=0,o[14]=-n*s*2/a,o[15]=0,o},perspectiveMat4(A,e,t,i,s){const n=[],o=[];return n[2]=t,o[2]=i,o[1]=n[2]*Math.tan(A/2),n[1]=-o[1],o[0]=o[1]*e,n[0]=-o[0],g.frustumMat4v(n,o,s)},compareMat4:(A,e)=>A[0]===e[0]&&A[1]===e[1]&&A[2]===e[2]&&A[3]===e[3]&&A[4]===e[4]&&A[5]===e[5]&&A[6]===e[6]&&A[7]===e[7]&&A[8]===e[8]&&A[9]===e[9]&&A[10]===e[10]&&A[11]===e[11]&&A[12]===e[12]&&A[13]===e[13]&&A[14]===e[14]&&A[15]===e[15],transformPoint3(A,e,t=g.vec3()){const i=e[0],s=e[1],n=e[2];return t[0]=A[0]*i+A[4]*s+A[8]*n+A[12],t[1]=A[1]*i+A[5]*s+A[9]*n+A[13],t[2]=A[2]*i+A[6]*s+A[10]*n+A[14],t},transformPoint4:(A,e,t=g.vec4())=>(t[0]=A[0]*e[0]+A[4]*e[1]+A[8]*e[2]+A[12]*e[3],t[1]=A[1]*e[0]+A[5]*e[1]+A[9]*e[2]+A[13]*e[3],t[2]=A[2]*e[0]+A[6]*e[1]+A[10]*e[2]+A[14]*e[3],t[3]=A[3]*e[0]+A[7]*e[1]+A[11]*e[2]+A[15]*e[3],t),transformPoints3(A,e,t){const i=t||[],s=e.length;let n,o,r,c;const a=A[0],h=A[1],B=A[2],g=A[3],l=A[4],E=A[5],Q=A[6],M=A[7],u=A[8],w=A[9],d=A[10],C=A[11],x=A[12],F=A[13],p=A[14],I=A[15];let f;for(let A=0;A{const A=new r(16),e=new r(16),t=new r(16);return function(i,s,n,o){return this.transformVec3(this.mulMat4(this.inverseMat4(s,A),this.inverseMat4(n,e),t),i,o)}})(),lerpVec3(A,e,t,i,s,n){const o=n||g.vec3(),r=(A-e)/(t-e);return o[0]=i[0]+r*(s[0]-i[0]),o[1]=i[1]+r*(s[1]-i[1]),o[2]=i[2]+r*(s[2]-i[2]),o},lerpMat4(A,e,t,i,s,n){const o=n||g.mat4(),r=(A-e)/(t-e);return o[0]=i[0]+r*(s[0]-i[0]),o[1]=i[1]+r*(s[1]-i[1]),o[2]=i[2]+r*(s[2]-i[2]),o[3]=i[3]+r*(s[3]-i[3]),o[4]=i[4]+r*(s[4]-i[4]),o[5]=i[5]+r*(s[5]-i[5]),o[6]=i[6]+r*(s[6]-i[6]),o[7]=i[7]+r*(s[7]-i[7]),o[8]=i[8]+r*(s[8]-i[8]),o[9]=i[9]+r*(s[9]-i[9]),o[10]=i[10]+r*(s[10]-i[10]),o[11]=i[11]+r*(s[11]-i[11]),o[12]=i[12]+r*(s[12]-i[12]),o[13]=i[13]+r*(s[13]-i[13]),o[14]=i[14]+r*(s[14]-i[14]),o[15]=i[15]+r*(s[15]-i[15]),o},flatten(A){const e=[];let t,i,s,n,o;for(t=0,i=A.length;t(A[0]=0,A[1]=0,A[2]=0,A[3]=1,A),eulerToQuaternion(A,e,t=g.vec4()){const i=A[0]*g.DEGTORAD/2,s=A[1]*g.DEGTORAD/2,n=A[2]*g.DEGTORAD/2,o=Math.cos(i),r=Math.cos(s),c=Math.cos(n),a=Math.sin(i),h=Math.sin(s),B=Math.sin(n);return"XYZ"===e?(t[0]=a*r*c+o*h*B,t[1]=o*h*c-a*r*B,t[2]=o*r*B+a*h*c,t[3]=o*r*c-a*h*B):"YXZ"===e?(t[0]=a*r*c+o*h*B,t[1]=o*h*c-a*r*B,t[2]=o*r*B-a*h*c,t[3]=o*r*c+a*h*B):"ZXY"===e?(t[0]=a*r*c-o*h*B,t[1]=o*h*c+a*r*B,t[2]=o*r*B+a*h*c,t[3]=o*r*c-a*h*B):"ZYX"===e?(t[0]=a*r*c-o*h*B,t[1]=o*h*c+a*r*B,t[2]=o*r*B-a*h*c,t[3]=o*r*c+a*h*B):"YZX"===e?(t[0]=a*r*c+o*h*B,t[1]=o*h*c+a*r*B,t[2]=o*r*B-a*h*c,t[3]=o*r*c-a*h*B):"XZY"===e&&(t[0]=a*r*c-o*h*B,t[1]=o*h*c-a*r*B,t[2]=o*r*B+a*h*c,t[3]=o*r*c+a*h*B),t},mat4ToQuaternion(A,e=g.vec4()){const t=A[0],i=A[4],s=A[8],n=A[1],o=A[5],r=A[9],c=A[2],a=A[6],h=A[10];let B;const l=t+o+h;return l>0?(B=.5/Math.sqrt(l+1),e[3]=.25/B,e[0]=(a-r)*B,e[1]=(s-c)*B,e[2]=(n-i)*B):t>o&&t>h?(B=2*Math.sqrt(1+t-o-h),e[3]=(a-r)/B,e[0]=.25*B,e[1]=(i+n)/B,e[2]=(s+c)/B):o>h?(B=2*Math.sqrt(1+o-t-h),e[3]=(s-c)/B,e[0]=(i+n)/B,e[1]=.25*B,e[2]=(r+a)/B):(B=2*Math.sqrt(1+h-t-o),e[3]=(n-i)/B,e[0]=(s+c)/B,e[1]=(r+a)/B,e[2]=.25*B),e},vec3PairToQuaternion(A,e,t=g.vec4()){const i=Math.sqrt(g.dotVec3(A,A)*g.dotVec3(e,e));let s=i+g.dotVec3(A,e);return s<1e-8*i?(s=0,Math.abs(A[0])>Math.abs(A[2])?(t[0]=-A[1],t[1]=A[0],t[2]=0):(t[0]=0,t[1]=-A[2],t[2]=A[1])):g.cross3Vec3(A,e,t),t[3]=s,g.normalizeQuaternion(t)},angleAxisToQuaternion(A,e=g.vec4()){const t=A[3]/2,i=Math.sin(t);return e[0]=i*A[0],e[1]=i*A[1],e[2]=i*A[2],e[3]=Math.cos(t),e},quaternionToEuler:(()=>{const A=new r(16);return(e,t,i)=>(i=i||g.vec3(),g.quaternionToRotationMat4(e,A),g.mat4ToEuler(A,t,i),i)})(),mulQuaternions(A,e,t=g.vec4()){const i=A[0],s=A[1],n=A[2],o=A[3],r=e[0],c=e[1],a=e[2],h=e[3];return t[0]=o*r+i*h+s*a-n*c,t[1]=o*c+s*h+n*r-i*a,t[2]=o*a+n*h+i*c-s*r,t[3]=o*h-i*r-s*c-n*a,t},vec3ApplyQuaternion(A,e,t=g.vec3()){const i=e[0],s=e[1],n=e[2],o=A[0],r=A[1],c=A[2],a=A[3],h=a*i+r*n-c*s,B=a*s+c*i-o*n,l=a*n+o*s-r*i,E=-o*i-r*s-c*n;return t[0]=h*a+E*-o+B*-c-l*-r,t[1]=B*a+E*-r+l*-o-h*-c,t[2]=l*a+E*-c+h*-r-B*-o,t},quaternionToMat4(A,e){e=g.identityMat4(e);const t=A[0],i=A[1],s=A[2],n=A[3],o=2*t,r=2*i,c=2*s,a=o*n,h=r*n,B=c*n,l=o*t,E=r*t,Q=c*t,M=r*i,u=c*i,w=c*s;return e[0]=1-(M+w),e[1]=E+B,e[2]=Q-h,e[4]=E-B,e[5]=1-(l+w),e[6]=u+a,e[8]=Q+h,e[9]=u-a,e[10]=1-(l+M),e},quaternionToRotationMat4(A,e){const t=A[0],i=A[1],s=A[2],n=A[3],o=t+t,r=i+i,c=s+s,a=t*o,h=t*r,B=t*c,g=i*r,l=i*c,E=s*c,Q=n*o,M=n*r,u=n*c;return e[0]=1-(g+E),e[4]=h-u,e[8]=B+M,e[1]=h+u,e[5]=1-(a+E),e[9]=l-Q,e[2]=B-M,e[6]=l+Q,e[10]=1-(a+g),e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},normalizeQuaternion(A,e=A){const t=g.lenVec4([A[0],A[1],A[2],A[3]]);return e[0]=A[0]/t,e[1]=A[1]/t,e[2]=A[2]/t,e[3]=A[3]/t,e},conjugateQuaternion:(A,e=A)=>(e[0]=-A[0],e[1]=-A[1],e[2]=-A[2],e[3]=A[3],e),inverseQuaternion:(A,e)=>g.normalizeQuaternion(g.conjugateQuaternion(A,e)),quaternionToAngleAxis(A,e=g.vec4()){const t=(A=g.normalizeQuaternion(A,B))[3],i=2*Math.acos(t),s=Math.sqrt(1-t*t);return s<.001?(e[0]=A[0],e[1]=A[1],e[2]=A[2]):(e[0]=A[0]/s,e[1]=A[1]/s,e[2]=A[2]/s),e[3]=i,e},AABB3:A=>new r(A||6),AABB2:A=>new r(A||4),OBB3:A=>new r(A||32),OBB2:A=>new r(A||16),Sphere3:(A,e,t,i)=>new r([A,e,t,i]),transformOBB3(A,e,t=e){let i;const s=e.length;let n,o,r;const c=A[0],a=A[1],h=A[2],B=A[3],g=A[4],l=A[5],E=A[6],Q=A[7],M=A[8],u=A[9],w=A[10],d=A[11],C=A[12],x=A[13],F=A[14],p=A[15];for(i=0;i{const A=new r(3),e=new r(3),t=new r(3);return i=>(A[0]=i[0],A[1]=i[1],A[2]=i[2],e[0]=i[3],e[1]=i[4],e[2]=i[5],g.subVec3(e,A,t),Math.abs(g.lenVec3(t)))})(),getAABB3DiagPoint:(()=>{const A=new r(3),e=new r(3),t=new r(3);return(i,s)=>{A[0]=i[0],A[1]=i[1],A[2]=i[2],e[0]=i[3],e[1]=i[4],e[2]=i[5];const n=g.subVec3(e,A,t),o=s[0]-i[0],r=i[3]-s[0],c=s[1]-i[1],a=i[4]-s[1],h=s[2]-i[2],B=i[5]-s[2];return n[0]+=o>r?o:r,n[1]+=c>a?c:a,n[2]+=h>B?h:B,Math.abs(g.lenVec3(n))}})(),getAABB3Area:A=>(A[3]-A[0])*(A[4]-A[1])*(A[5]-A[2]),getAABB3Center(A,e){const t=e||g.vec3();return t[0]=(A[0]+A[3])/2,t[1]=(A[1]+A[4])/2,t[2]=(A[2]+A[5])/2,t},getAABB2Center(A,e){const t=e||g.vec2();return t[0]=(A[2]+A[0])/2,t[1]=(A[3]+A[1])/2,t},collapseAABB3:(A=g.AABB3())=>(A[0]=g.MAX_DOUBLE,A[1]=g.MAX_DOUBLE,A[2]=g.MAX_DOUBLE,A[3]=g.MIN_DOUBLE,A[4]=g.MIN_DOUBLE,A[5]=g.MIN_DOUBLE,A),AABB3ToOBB3:(A,e=g.OBB3())=>(e[0]=A[0],e[1]=A[1],e[2]=A[2],e[3]=1,e[4]=A[3],e[5]=A[1],e[6]=A[2],e[7]=1,e[8]=A[3],e[9]=A[4],e[10]=A[2],e[11]=1,e[12]=A[0],e[13]=A[4],e[14]=A[2],e[15]=1,e[16]=A[0],e[17]=A[1],e[18]=A[5],e[19]=1,e[20]=A[3],e[21]=A[1],e[22]=A[5],e[23]=1,e[24]=A[3],e[25]=A[4],e[26]=A[5],e[27]=1,e[28]=A[0],e[29]=A[4],e[30]=A[5],e[31]=1,e),positions3ToAABB3:(()=>{const A=new r(3);return(e,t,i)=>{t=t||g.AABB3();let s,n,o,r=g.MAX_DOUBLE,c=g.MAX_DOUBLE,a=g.MAX_DOUBLE,h=g.MIN_DOUBLE,B=g.MIN_DOUBLE,l=g.MIN_DOUBLE;for(let t=0,E=e.length;th&&(h=s),n>B&&(B=n),o>l&&(l=o);return t[0]=r,t[1]=c,t[2]=a,t[3]=h,t[4]=B,t[5]=l,t}})(),OBB3ToAABB3(A,e=g.AABB3()){let t,i,s,n=g.MAX_DOUBLE,o=g.MAX_DOUBLE,r=g.MAX_DOUBLE,c=g.MIN_DOUBLE,a=g.MIN_DOUBLE,h=g.MIN_DOUBLE;for(let e=0,B=A.length;ec&&(c=t),i>a&&(a=i),s>h&&(h=s);return e[0]=n,e[1]=o,e[2]=r,e[3]=c,e[4]=a,e[5]=h,e},points3ToAABB3(A,e=g.AABB3()){let t,i,s,n=g.MAX_DOUBLE,o=g.MAX_DOUBLE,r=g.MAX_DOUBLE,c=g.MIN_DOUBLE,a=g.MIN_DOUBLE,h=g.MIN_DOUBLE;for(let e=0,B=A.length;ec&&(c=t),i>a&&(a=i),s>h&&(h=s);return e[0]=n,e[1]=o,e[2]=r,e[3]=c,e[4]=a,e[5]=h,e},points3ToSphere3:(()=>{const A=new r(3);return(e,t)=>{t=t||g.vec4();let i,s=0,n=0,o=0;const r=e.length;for(i=0;ia&&(a=c);return t[3]=a,t}})(),positions3ToSphere3:(()=>{const A=new r(3),e=new r(3);return(t,i)=>{i=i||g.vec4();let s,n=0,o=0,r=0;const c=t.length;let a=0;for(s=0;sa&&(a=B);return i[3]=a,i}})(),OBB3ToSphere3:(()=>{const A=new r(3),e=new r(3);return(t,i)=>{i=i||g.vec4();let s,n=0,o=0,r=0;const c=t.length,a=c/4;for(s=0;sB&&(B=h);return i[3]=B,i}})(),getSphere3Center:(A,e=g.vec3())=>(e[0]=A[0],e[1]=A[1],e[2]=A[2],e),getPositionsCenter(A,e=g.vec3()){let t=0,i=0,s=0;for(var n=0,o=A.length;n(A[0]>e[0]&&(A[0]=e[0]),A[1]>e[1]&&(A[1]=e[1]),A[2]>e[2]&&(A[2]=e[2]),A[3](A[0]>e[0]&&(A[0]=e[0]),A[1]>e[1]&&(A[1]=e[1]),A[2]>e[2]&&(A[2]=e[2]),A[3]t&&(A[0]=t),A[1]>i&&(A[1]=i),A[2]>s&&(A[2]=s),A[3](A[0]=g.MAX_DOUBLE,A[1]=g.MAX_DOUBLE,A[2]=g.MIN_DOUBLE,A[3]=g.MIN_DOUBLE,A),point3AABB3Intersect:(A,e)=>A[0]>e[0]||A[3]e[1]||A[4]e[2]||A[5]A[0]<=e[0]&&A[3]>=e[0]&&A[1]<=e[1]&&A[4]>=e[1]&&A[2]<=e[2]&&A[5]>=e[2],planeAABB3Intersect(A,e,t){let i,s;A[0]>0?(i=A[0]*t[0],s=A[0]*t[3]):(i=A[0]*t[3],s=A[0]*t[0]),A[1]>0?(i+=A[1]*t[1],s+=A[1]*t[4]):(i+=A[1]*t[4],s+=A[1]*t[1]),A[2]>0?(i+=A[2]*t[2],s+=A[2]*t[5]):(i+=A[2]*t[5],s+=A[2]*t[2]);if(i<=-e&&s<=-e)return-1;return i>=-e&&s>=-e?1:0},OBB3ToAABB2(A,e=g.AABB2()){let t,i,s,n,o=g.MAX_DOUBLE,r=g.MAX_DOUBLE,c=g.MIN_DOUBLE,a=g.MIN_DOUBLE;for(let e=0,h=A.length;ec&&(c=t),i>a&&(a=i);return e[0]=o,e[1]=r,e[2]=c,e[3]=a,e},expandAABB2:(A,e)=>(A[0]>e[0]&&(A[0]=e[0]),A[1]>e[1]&&(A[1]=e[1]),A[2](A[0]>e[0]&&(A[0]=e[0]),A[1]>e[1]&&(A[1]=e[1]),A[2]2*(1-A)*(t-e)+2*A*(i-t),tangentQuadraticBezier3:(A,e,t,i,s)=>-3*e*(1-A)*(1-A)+3*t*(1-A)*(1-A)-6*A*t*(1-A)+6*A*i*(1-A)-3*A*A*i+3*A*A*s,tangentSpline:A=>6*A*A-6*A+(3*A*A-4*A+1)+(-6*A*A+6*A)+(3*A*A-2*A),catmullRomInterpolate(A,e,t,i,s){const n=.5*(t-A),o=.5*(i-e),r=s*s;return(2*e-2*t+n+o)*(s*r)+(-3*e+3*t-2*n-o)*r+n*s+e},b2p0(A,e){const t=1-A;return t*t*e},b2p1:(A,e)=>2*(1-A)*A*e,b2p2:(A,e)=>A*A*e,b2(A,e,t,i){return this.b2p0(A,e)+this.b2p1(A,t)+this.b2p2(A,i)},b3p0(A,e){const t=1-A;return t*t*t*e},b3p1(A,e){const t=1-A;return 3*t*t*A*e},b3p2:(A,e)=>3*(1-A)*A*A*e,b3p3:(A,e)=>A*A*A*e,b3(A,e,t,i,s){return this.b3p0(A,e)+this.b3p1(A,t)+this.b3p2(A,i)+this.b3p3(A,s)},triangleNormal(A,e,t,i=g.vec3()){const s=e[0]-A[0],n=e[1]-A[1],o=e[2]-A[2],r=t[0]-A[0],c=t[1]-A[1],a=t[2]-A[2],h=n*a-o*c,B=o*r-s*a,l=s*c-n*r,E=Math.sqrt(h*h+B*B+l*l);return 0===E?(i[0]=0,i[1]=0,i[2]=0):(i[0]=h/E,i[1]=B/E,i[2]=l/E),i},rayTriangleIntersect:(()=>{const A=new r(3),e=new r(3),t=new r(3),i=new r(3),s=new r(3);return(n,o,r,c,a,h)=>{h=h||g.vec3();const B=g.subVec3(c,r,A),l=g.subVec3(a,r,e),E=g.cross3Vec3(o,l,t),Q=g.dotVec3(B,E);if(Q<1e-6)return null;const M=g.subVec3(n,r,i),u=g.dotVec3(M,E);if(u<0||u>Q)return null;const w=g.cross3Vec3(M,B,s),d=g.dotVec3(o,w);if(d<0||u+d>Q)return null;const C=g.dotVec3(l,w)/Q;return h[0]=n[0]+C*o[0],h[1]=n[1]+C*o[1],h[2]=n[2]+C*o[2],h}})(),rayPlaneIntersect:(()=>{const A=new r(3),e=new r(3),t=new r(3),i=new r(3);return(s,n,o,r,c,a)=>{a=a||g.vec3(),n=g.normalizeVec3(n,A);const h=g.subVec3(r,o,e),B=g.subVec3(c,o,t),l=g.cross3Vec3(h,B,i);g.normalizeVec3(l,l);const E=-g.dotVec3(o,l),Q=-(g.dotVec3(s,l)+E)/g.dotVec3(n,l);return a[0]=s[0]+Q*n[0],a[1]=s[1]+Q*n[1],a[2]=s[2]+Q*n[2],a}})(),cartesianToBarycentric:(()=>{const A=new r(3),e=new r(3),t=new r(3);return(i,s,n,o,r)=>{const c=g.subVec3(o,s,A),a=g.subVec3(n,s,e),h=g.subVec3(i,s,t),B=g.dotVec3(c,c),l=g.dotVec3(c,a),E=g.dotVec3(c,h),Q=g.dotVec3(a,a),M=g.dotVec3(a,h),u=B*Q-l*l;if(0===u)return null;const w=1/u,d=(Q*E-l*M)*w,C=(B*M-l*E)*w;return r[0]=1-d-C,r[1]=C,r[2]=d,r}})(),barycentricInsideTriangle(A){const e=A[1],t=A[2];return t>=0&&e>=0&&t+e<1},barycentricToCartesian(A,e,t,i,s=g.vec3()){const n=A[0],o=A[1],r=A[2];return s[0]=e[0]*n+t[0]*o+i[0]*r,s[1]=e[1]*n+t[1]*o+i[1]*r,s[2]=e[2]*n+t[2]*o+i[2]*r,s},mergeVertices(A,e,t,i){const s={},n=[],o=[],r=e?[]:null,c=t?[]:null,a=[];let h,B,g,l;const E=1e4;let Q,M,u=0;for(Q=0,M=A.length;Q{const A=new r(3),e=new r(3),t=new r(3),i=new r(3),s=new r(3),n=new r(3);return(o,r,c)=>{let a,h;const B=new Array(o.length/3);let l,E,Q,M,u,w,d;for(a=0,h=r.length;a{const A=new r(3),e=new r(3),t=new r(3),i=new r(3),s=new r(3),n=new r(3),o=new r(3);return(r,c,a)=>{const h=new Float32Array(r.length);for(let B=0;B>24&255,h=g>>16&255,a=g>>8&255,c=255&g,r=e[t],o=3*r,s[l++]=A[o],s[l++]=A[o+1],s[l++]=A[o+2],n[E++]=c,n[E++]=a,n[E++]=h,n[E++]=B,r=e[t+1],o=3*r,s[l++]=A[o],s[l++]=A[o+1],s[l++]=A[o+2],n[E++]=c,n[E++]=a,n[E++]=h,n[E++]=B,r=e[t+2],o=3*r,s[l++]=A[o],s[l++]=A[o+1],s[l++]=A[o+2],n[E++]=c,n[E++]=a,n[E++]=h,n[E++]=B,g++;return{positions:s,colors:n}},faceToVertexNormals(A,e,t={}){const i=t.smoothNormalsAngleThreshold||20,s={},n=[],o={};let r,c,a,h,B;const l=1e4;let E,Q,M,u,w,d;for(Q=0,u=A.length;Q{const A=new r(4),e=new r(4);return(t,i,s,n,o)=>{A[0]=i[0],A[1]=i[1],A[2]=i[2],A[3]=1,g.transformVec4(t,A,e),n[0]=e[0],n[1]=e[1],n[2]=e[2],A[0]=s[0],A[1]=s[1],A[2]=s[2],g.transformVec3(t,A,e),g.normalizeVec3(e),o[0]=e[0],o[1]=e[1],o[2]=e[2]}})(),canvasPosToWorldRay:(()=>{const A=new r(16),e=new r(4),t=new r(4),i=(e,t,i,s,n)=>{n[0]=e,n[1]=t,n[2]=i,n[3]=1,g.transformVec4(A,n,n),s||g.mulVec4Scalar(n,1/n[3])};return(s,n,o,r,c,a,h)=>{const B="ortho"===r;g.mulMat4(o,n,A),g.inverseMat4(A,A);const l=2*c[0]/s.clientWidth-1,E=1-2*c[1]/s.clientHeight;i(l,E,-1,B,e),i(l,E,1,B,t),a[0]=e[0],a[1]=e[1],a[2]=e[2],g.subVec3(t,e,h),g.normalizeVec3(h)}})(),canvasPosToLocalRay:(()=>{const A=new r(3),e=new r(3);return(t,i,s,n,o,r,c,a)=>{g.canvasPosToWorldRay(t,i,s,n,r,A,e),g.worldRayToLocalRay(o,A,e,c,a)}})(),worldRayToLocalRay:(()=>{const A=new r(16),e=new r(4),t=new r(4);return(i,s,n,o,r)=>{const c=g.inverseMat4(i,A);e[0]=s[0],e[1]=s[1],e[2]=s[2],e[3]=1,g.transformVec4(c,e,t),o[0]=t[0],o[1]=t[1],o[2]=t[2],g.transformVec3(c,n,r)}})(),buildKDTree:(()=>{const A=new Float32Array;function e(t,i,s,n){const o=new r(6),c={triangles:null,left:null,right:null,leaf:!1,splitDim:0,aabb:o};let a,h;for(o[0]=o[1]=o[2]=Number.POSITIVE_INFINITY,o[3]=o[4]=o[5]=Number.NEGATIVE_INFINITY,a=0,h=t.length;ao[3]&&(o[3]=s[e]),s[e+1]o[4]&&(o[4]=s[e+1]),s[e+2]o[5]&&(o[5]=s[e+2])}}if(t.length<20||n>10)return c.triangles=t,c.leaf=!0,c;A[0]=o[3]-o[0],A[1]=o[4]-o[1],A[2]=o[5]-o[2];let g=0;A[1]>A[g]&&(g=1),A[2]>A[g]&&(g=2),c.splitDim=g;const l=(o[g]+o[g+3])/2,E=new Array(t.length);let Q=0;const M=new Array(t.length);let u=0;for(a=0,h=t.length;a{const i=A.length/3,s=new Array(i);for(let A=0;A=0?1:-1),i=(1-Math.abs(t))*(i>=0?1:-1));const n=Math.sqrt(t*t+i*i+s*s);return e[0]=t/n,e[1]=i/n,e[2]=s/n,e},octDecodeVec2s(A,e){for(let t=0,i=0,s=A.length;t=0?1:-1),n=(1-Math.abs(s))*(n>=0?1:-1));const r=Math.sqrt(s*s+n*n+o*o);e[i+0]=s/r,e[i+1]=n/r,e[i+2]=o/r,i+=3}return e}};g.buildEdgeIndices=function(){const A=[],e=[],t=[],i=[],s=[];let n=0;const o=new Uint16Array(3),r=new Uint16Array(3),c=new Uint16Array(3),a=g.vec3(),h=g.vec3(),B=g.vec3(),l=g.vec3(),E=g.vec3(),Q=g.vec3(),M=g.vec3();return function(u,w,d,C){!function(s,n){const o={};let r,c,a,h;const B=Math.pow(10,4);let g,l,E=0;for(g=0,l=s.length;gF)||(T=t[J.index1],U=t[J.index2],(!R&&T>65535||U>65535)&&(R=!0),x.push(T),x.push(U));return R?new Uint32Array(x):new Uint16Array(x)}}(),g.planeClipsPositions3=function(A,e,t,i=3){for(let s=0,n=t.length;s{};e=e||i,t=t||i;var s=new XMLHttpRequest;s.overrideMimeType("application/json"),s.open("GET",A,!0),s.addEventListener("load",(function(A){var i=A.target.response;if(200===this.status){var s;try{s=JSON.parse(i)}catch(A){t(`utils.loadJSON(): Failed to parse JSON response - ${A}`)}e(s)}else if(0===this.status){console.warn("loadFile: HTTP Status 0 received.");try{e(JSON.parse(i))}catch(A){t(`utils.loadJSON(): Failed to parse JSON response - ${A}`)}}else t(A)}),!1),s.addEventListener("error",(function(A){t(A)}),!1),s.send(null)},loadArraybuffer:function(A,e,t){var i=A=>{};e=e||i,t=t||i;const s=A.match(/^data:(.*?)(;base64)?,(.*)$/);if(s){const A=!!s[2];var n=s[3];n=window.decodeURIComponent(n),A&&(n=window.atob(n));try{const A=new ArrayBuffer(n.length),t=new Uint8Array(A);for(var o=0;o{e(A)}))}catch(A){Y.scheduleTask((()=>{t(A)}))}}else{const i=new XMLHttpRequest;i.open("GET",A,!0),i.responseType="arraybuffer",i.onreadystatechange=function(){4===i.readyState&&(200===i.status?e(i.response):t("loadArrayBuffer error : "+i.response))},i.send(null)}},queryString:M,isArray:function(A){return A&&!A.propertyIsEnumerable("length")&&"object"==typeof A&&"number"==typeof A.length},isString:function(A){return"string"==typeof A||A instanceof String},isNumeric:function(A){return!isNaN(parseFloat(A))&&isFinite(A)},isID:function(A){return u.isString(A)||u.isNumeric(A)},isSameComponent:function(A,e){return!(!A||!e)&&(u.isNumeric(A)||u.isString(A)?`${A}`:A.id)===(u.isNumeric(e)||u.isString(e)?`${e}`:e.id)},isFunction:function(A){return"function"==typeof A},isObject:function(A){const e={}.constructor;return!!A&&A.constructor===e},copy:function(A){return u.apply(A,{})},apply:function(A,e){for(const t in A)A.hasOwnProperty(t)&&(e[t]=A[t]);return e},apply2:function(A,e){for(const t in A)A.hasOwnProperty(t)&&void 0!==A[t]&&null!==A[t]&&(e[t]=A[t]);return e},applyIf:function(A,e){for(const t in A)A.hasOwnProperty(t)&&(void 0!==e[t]&&null!==e[t]||(e[t]=A[t]));return e},isEmptyObject:function(A){for(const e in A)if(A.hasOwnProperty(e))return!1;return!0},inQuotes:function(A){return u.isNumeric(A)?`${A}`:`'${A}'`},concat:function(A,e){const t=new A.constructor(A.length+e.length);return t.set(A),t.set(e,A.length),t},flattenParentChildHierarchy:function(A){var e=[];return function A(t){t.id=t.uuid,delete t.oid,e.push(t);var i=t.children;if(i)for(var s=0,n=i.length;s=this._headLength){const A=this._head;if(A.length=0,this._head=this._tail,this._tail=A,this._index=0,this._headLength=this._head.length,!this._headLength)return}const A=this._head[this._index];return this._index<0?delete this._head[this._index++]:this._head[this._index++]=void 0,this._length--,A}push(A){return this._length++,this._tail.push(A),this}unshift(A){return this._head[--this._index]=A,this._length++,this}},x={sceneId:null,time:null,startTime:null,prevTime:null,deltaTime:null},F=[];let p,I=0,f=0;const Y=new function(){this.version="1.0.0",this.scenes={},this._superTypes={},this._addScene=function(A){if(A.id){if(Y.scenes[A.id])return void console.error(`[ERROR] Scene ${u.inQuotes(A.id)} already exists`)}else A.id=d.addItem({});Y.scenes[A.id]=A;const e=A.ticksPerOcclusionTest,t=A.ticksPerRender;w[A.id]={ticksPerOcclusionTest:e,ticksPerRender:t,renderCountdown:t},l.components.scenes++,A.once("destroyed",(()=>{d.removeItem(A.id),delete Y.scenes[A.id],delete w[A.id],l.components.scenes--}))},this.clear=function(){let A;for(const e in Y.scenes)Y.scenes.hasOwnProperty(e)&&(A=Y.scenes[e],"default.scene"===e?A.clear():(A.destroy(),delete Y.scenes[A.id]))},this.scheduleTask=function(A,e=null){C.push(A),C.push(e)},this.runTasks=function(A=-1){let e,t,i=(new Date).getTime(),s=0;for(;C.length>0&&(A<0||i0&&p>0){var e=1e3/p;f+=e,F.push(e),F.length>=30&&(f-=F.shift()),l.frame.fps=Math.round(f/F.length)}for(let A in Y.scenes)Y.scenes[A].compile();J(A),I=A};!function(A,e){let t=Date.now()+e;(function i(){const s=Date.now()-t;A(),t+=e,setTimeout(i,Math.max(0,e-s))})()}((()=>{D()}),100);const m=function(){let A=Date.now();if(p=A-I,I>0&&p>0){var e=1e3/p;f+=e,F.push(e),F.length>=30&&(f-=F.shift()),l.frame.fps=Math.round(f/F.length)}J(A),function(A){for(var e in x.time=A,Y.scenes)if(Y.scenes.hasOwnProperty(e)){var t=Y.scenes[e];x.sceneId=e,x.startTime=t.startTime,x.deltaTime=null!=x.prevTime?x.time-x.prevTime:0,t.fire("tick",x,!0)}x.prevTime=A}(A),function(){const A=Y.scenes,e=!1;let t,i,s,n,o;for(o in A)A.hasOwnProperty(o)&&(t=A[o],i=w[o],i||(i=w[o]={}),s=t.ticksPerOcclusionTest,i.ticksPerOcclusionTest!==s&&(i.ticksPerOcclusionTest=s,i.renderCountdown=s),--t.occlusionTestCountdown<=0&&(t.doOcclusionTest(),t.occlusionTestCountdown=s),n=t.ticksPerRender,i.ticksPerRender!==n&&(i.ticksPerRender=n,i.renderCountdown=n),0==--i.renderCountdown&&(t.render(e),i.renderCountdown=n))}(),void 0!==window.requestPostAnimationFrame?window.requestPostAnimationFrame(D):requestAnimationFrame(m)};function J(A){const e=Y.runTasks(A+10),t=Y.getNumTasks();l.frame.tasksRun=e,l.frame.tasksScheduled=t,l.frame.tasksBudget=10}m();class N{get type(){return"Component"}get isComponent(){return!0}constructor(A=null,e={}){if(this.scene=null,"Scene"===this.type)this.scene=this,this.viewer=e.viewer;else{if("Scene"===A.type)this.scene=A;else{if(!(A instanceof N))throw"Invalid param: owner must be a Component";this.scene=A.scene}this._owner=A}this._dontClear=!!e.dontClear,this._renderer=this.scene._renderer,this.meta=e.meta||{},this.id=e.id,this.destroyed=!1,this._attached={},this._attachments=null,this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._eventSubsNum=null,this._events=null,this._eventCallDepth=0,this._ownedComponents=null,this!==this.scene&&this.scene._addComponent(this),this._updateScheduled=!1,A&&A._own(this)}glRedraw(){this._renderer&&(this._renderer.imageDirty(),this.castsShadow&&this._renderer.shadowsDirty())}glResort(){this._renderer&&this._renderer.needStateSort()}get owner(){return this._owner}isType(A){return this.type===A}fire(A,e,t){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==t&&(this._events[A]=e||!0);const i=this._eventSubs[A];let s;if(i)for(const t in i)i.hasOwnProperty(t)&&(s=i[t],this._eventCallDepth++,this._eventCallDepth<300?s.callback.call(s.scope,e):this.error("fire: potential stack overflow from recursive event '"+A+"' - dropping this event"),this._eventCallDepth--)}on(e,t,i){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new A),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let s=this._eventSubs[e];s?this._eventSubsNum[e]++:(s={},this._eventSubs[e]=s,this._eventSubsNum[e]=1);const n=this._subIdMap.addItem();s[n]={callback:t,scope:i||this},this._subIdEvents[n]=e;const o=this._events[e];return void 0!==o&&t.call(i||this,o),n}off(A){if(null==A)return;if(!this._subIdEvents)return;const e=this._subIdEvents[A];if(e){delete this._subIdEvents[A];const t=this._eventSubs[e];t&&(delete t[A],this._eventSubsNum[e]--),this._subIdMap.removeItem(A)}}once(A,e,t){const i=this,s=this.on(A,(function(A){i.off(s),e.call(t||this,A)}),t)}hasSubs(A){return this._eventSubsNum&&this._eventSubsNum[A]>0}log(A){A="[LOG]"+this._message(A),window.console.log(A),this.scene.fire("log",A)}_message(A){return" ["+this.type+" "+u.inQuotes(this.id)+"]: "+A}warn(A){A="[WARN]"+this._message(A),window.console.warn(A),this.scene.fire("warn",A)}error(A){A="[ERROR]"+this._message(A),window.console.error(A),this.scene.fire("error",A)}_attach(A){const e=A.name;if(!e)return void this.error("Component 'name' expected");let t=A.component;const i=A.sceneDefault,s=A.sceneSingleton,n=A.type,o=A.on,r=!1!==A.recompiles;if(t&&(u.isNumeric(t)||u.isString(t))){const A=t;if(t=this.scene.components[A],!t)return void this.error("Component not found: "+u.inQuotes(A))}if(!t)if(!0===s){const A=this.scene.types[n];for(const e in A)if(A.hasOwnProperty){t=A[e];break}if(!t)return this.error("Scene has no default component for '"+e+"'"),null}else if(!0===i&&(t=this.scene[e],!t))return this.error("Scene has no default component for '"+e+"'"),null;if(t){if(t.scene.id!==this.scene.id)return void this.error("Not in same scene: "+t.type+" "+u.inQuotes(t.id));if(n&&!t.isType(n))return void this.error("Expected a "+n+" type or subtype: "+t.type+" "+u.inQuotes(t.id))}this._attachments||(this._attachments={});const c=this._attached[e];let a,h,B;if(c){if(t&&c.id===t.id)return;const A=this._attachments[c.id];for(a=A.subs,h=0,B=a.length;h{delete this._ownedComponents[A.id]}),this)}_needUpdate(A){this._updateScheduled||(this._updateScheduled=!0,0===A?this._doUpdate():Y.scheduleTask(this._doUpdate,this))}_doUpdate(){this._updateScheduled&&(this._updateScheduled=!1,this._update&&this._update())}scheduleTask(A){Y.scheduleTask(A,null)}_update(){}clear(){if(this._ownedComponents)for(var A in this._ownedComponents)if(this._ownedComponents.hasOwnProperty(A)){this._ownedComponents[A].destroy(),delete this._ownedComponents[A]}}destroy(){if(this.destroyed)return;let A,e,t,i,s,n;if(this.fire("destroyed",this.destroyed=!0),this._attachments)for(A in this._attachments)if(this._attachments.hasOwnProperty(A)){for(e=this._attachments[A],t=e.component,i=e.subs,s=0,n=i.length;s=0?1:0,this.testVertex[1]=this.normal[1]>=0?1:0,this.testVertex[2]=this.normal[2]>=0?1:0}}class R{constructor(){this.planes=[new U,new U,new U,new U,new U,new U]}}function b(A,e,t){const i=g.mulMat4(t,e,T),s=i[0],n=i[1],o=i[2],r=i[3],c=i[4],a=i[5],h=i[6],B=i[7],l=i[8],E=i[9],Q=i[10],M=i[11],u=i[12],w=i[13],d=i[14],C=i[15];A.planes[0].set(r-s,B-c,M-l,C-u),A.planes[1].set(r+s,B+c,M+l,C+u),A.planes[2].set(r-n,B-a,M-E,C-w),A.planes[3].set(r+n,B+a,M+E,C+w),A.planes[4].set(r-o,B-h,M-Q,C-d),A.planes[5].set(r+o,B+h,M+Q,C+d)}function k(A,e){let t=R.INSIDE;const i=y,s=z;i[0]=e[0],i[1]=e[1],i[2]=e[2],s[0]=e[3],s[1]=e[4],s[2]=e[5];const n=[i,s];for(let e=0;e<6;++e){const i=A.planes[e];if(i.normal[0]*n[i.testVertex[0]][0]+i.normal[1]*n[i.testVertex[1]][1]+i.normal[2]*n[i.testVertex[2]][2]+i.offset<0)return R.OUTSIDE;i.normal[0]*n[1-i.testVertex[0]][0]+i.normal[1]*n[1-i.testVertex[1]][1]+i.normal[2]*n[1-i.testVertex[2]][2]+i.offset<0&&(t=R.INTERSECT)}return t}R.INSIDE=0,R.INTERSECT=1,R.OUTSIDE=2;class P extends N{constructor(A={}){if(!A.viewer)throw"[MarqueePicker] Missing config: viewer";if(!A.objectsKdTree3)throw"[MarqueePicker] Missing config: objectsKdTree3";super(A.viewer.scene,A),this.viewer=A.viewer,this._objectsKdTree3=A.objectsKdTree3,this._canvasMarqueeCorner1=g.vec2(),this._canvasMarqueeCorner2=g.vec2(),this._canvasMarquee=g.AABB2(),this._marqueeFrustum=new R,this._marqueeFrustumProjMat=g.mat4(),this._pickMode=!1,this._marqueeElement=document.createElement("div"),document.body.appendChild(this._marqueeElement),this._marqueeElement.style.position="absolute",this._marqueeElement.style["z-index"]="40000005",this._marqueeElement.style.width="8px",this._marqueeElement.style.height="8px",this._marqueeElement.style.visibility="hidden",this._marqueeElement.style.top="0px",this._marqueeElement.style.left="0px",this._marqueeElement.style["box-shadow"]="0 2px 5px 0 #182A3D;",this._marqueeElement.style.opacity=1,this._marqueeElement.style["pointer-events"]="none"}setMarqueeCorner1(A){this._canvasMarqueeCorner1.set(A),this._canvasMarqueeCorner2.set(A),this._updateMarquee()}setMarqueeCorner2(A){this._canvasMarqueeCorner2.set(A),this._updateMarquee()}setMarquee(A,e){this._canvasMarqueeCorner1.set(A),this._canvasMarqueeCorner2.set(e),this._updateMarquee()}setMarqueeVisible(A){this._marqueVisible=A,this._marqueeElement.style.visibility=A?"visible":"hidden"}getMarqueeVisible(){return this._marqueVisible}setPickMode(A){if(A!==P.PICK_MODE_INSIDE&&A!==P.PICK_MODE_INTERSECTS)throw"Illegal MarqueePicker pickMode: must be MarqueePicker.PICK_MODE_INSIDE or MarqueePicker.PICK_MODE_INTERSECTS";A!==this._pickMode&&(this._marqueeElement.style["background-image"]=A===P.PICK_MODE_INSIDE?"url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='6' ry='6' stroke='%23333' stroke-width='4'/%3e%3c/svg%3e\")":"url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='6' ry='6' stroke='%23333' stroke-width='4' stroke-dasharray='6%2c 14' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e\")",this._pickMode=A)}getPickMode(){return this._pickMode}clear(){this.fire("clear",{})}pick(){this._updateMarquee(),this._buildMarqueeFrustum();const A=[],e=(t,i=R.INTERSECT)=>{if(i===R.INTERSECT&&(i=k(this._marqueeFrustum,t.aabb)),i!==R.OUTSIDE){if(t.entities){const e=t.entities;for(let t=0,i=e.length;t3||this._canvasMarquee[3]-this._canvasMarquee[1]>3)&&e(this._objectsKdTree3.root),this.fire("picked",A),A}_updateMarquee(){this._canvasMarquee[0]=Math.min(this._canvasMarqueeCorner1[0],this._canvasMarqueeCorner2[0]),this._canvasMarquee[1]=Math.min(this._canvasMarqueeCorner1[1],this._canvasMarqueeCorner2[1]),this._canvasMarquee[2]=Math.max(this._canvasMarqueeCorner1[0],this._canvasMarqueeCorner2[0]),this._canvasMarquee[3]=Math.max(this._canvasMarqueeCorner1[1],this._canvasMarqueeCorner2[1]),this._marqueeElement.style.width=this._canvasMarquee[2]-this._canvasMarquee[0]+"px",this._marqueeElement.style.height=this._canvasMarquee[3]-this._canvasMarquee[1]+"px",this._marqueeElement.style.left=`${this._canvasMarquee[0]}px`,this._marqueeElement.style.top=`${this._canvasMarquee[1]}px`}_buildMarqueeFrustum(){const A=this.viewer.scene.canvas.canvas,e=A.clientWidth,t=A.clientHeight,i=A.clientLeft,s=A.clientTop,n=2/e,o=2/t,r=A.clientHeight/A.clientWidth,c=(this._canvasMarquee[0]-i)*n-1,a=(this._canvasMarquee[2]-i)*n-1,h=-(this._canvasMarquee[3]-s)*o+1,B=-(this._canvasMarquee[1]-s)*o+1,l=this.viewer.scene.camera.frustum.near*(17*r);g.frustumMat4(c,a,h*r,B*r,l,1e4,this._marqueeFrustumProjMat),b(this._marqueeFrustum,this.viewer.scene.camera.viewMatrix,this._marqueeFrustumProjMat)}destroy(){super.destroy(),this._marqueeElement.parentElement&&(this._marqueeElement.parentElement.removeChild(this._marqueeElement),this._marqueeElement=null,this._objectsKdTree3=null)}}P.PICK_MODE_INTERSECTS=0,P.PICK_MODE_INSIDE=1;class G{constructor(A={}){this._eventSubIDMap=null,this._eventSubEvents=null,this._eventSubs=null,this._events=null,this._locale="en",this._messages={},this._locales=[],this._locale="en",this.messages=A.messages,this.locale=A.locale}set messages(A){this._messages=A||{},this._locales=Object.keys(this._messages),this.fire("updated",this)}loadMessages(A={}){for(let e in A)this._messages[e]=A[e];this.messages=this._messages}clearMessages(){this.messages={}}get locales(){return this._locales}set locale(A){A=A||"de",this._locale!==A&&(this._locale=A,this.fire("updated",A))}get locale(){return this._locale}translate(A,e){const t=this._messages[this._locale];if(!t)return null;const i=v(A,t);return i?e?H(i,e):i:null}translatePlurals(A,e,t){const i=this._messages[this._locale];if(!i)return null;let s=v(A,i);return s=0===(e=parseInt(""+e,10))?s.zero:e>1?s.other:s.one,s?(s=H(s,[e]),t&&(s=H(s,t)),s):null}fire(A,e,t){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==t&&(this._events[A]=e||!0);const i=this._eventSubs[A];if(i)for(const A in i)if(i.hasOwnProperty(A)){i[A].callback(e)}}on(e,t){this._events||(this._events={}),this._eventSubIDMap||(this._eventSubIDMap=new A),this._eventSubEvents||(this._eventSubEvents={}),this._eventSubs||(this._eventSubs={});let i=this._eventSubs[e];i||(i={},this._eventSubs[e]=i);const s=this._eventSubIDMap.addItem();i[s]={callback:t},this._eventSubEvents[s]=e;const n=this._events[e];return void 0!==n&&t(n),s}off(A){if(null==A)return;if(!this._eventSubEvents)return;const e=this._eventSubEvents[A];if(e){delete this._eventSubEvents[A];const t=this._eventSubs[e];t&&delete t[A],this._eventSubIDMap.removeItem(A)}}}function v(A,e){if(e[A])return e[A];const t=A.split(".");let i=e;for(let A=0,e=t.length;i&&A=1;A>1&&(A=1);const t=this.easing?X._ease(A,0,1,1):A,i=this.scene.camera;if(this._flyingEye||this._flyingLook?this._flyingEye?(g.subVec3(i.eye,i.look,W),i.eye=g.lerpVec3(t,0,1,this._eye1,this._eye2,O),i.look=g.subVec3(O,W,j)):this._flyingLook&&(i.look=g.lerpVec3(t,0,1,this._look1,this._look2,j),i.up=g.lerpVec3(t,0,1,this._up1,this._up2,_)):this._flyingEyeLookUp&&(i.eye=g.lerpVec3(t,0,1,this._eye1,this._eye2,O),i.look=g.lerpVec3(t,0,1,this._look1,this._look2,j),i.up=g.lerpVec3(t,0,1,this._up1,this._up2,_)),this._projection2){const e="ortho"===this._projection2?X._easeOutExpo(A,0,1,1):X._easeInCubic(A,0,1,1);i.customProjection.matrix=g.lerpMat4(e,0,1,this._projMatrix1,this._projMatrix2)}else i.ortho.scale=this._orthoScale1+A*(this._orthoScale2-this._orthoScale1);if(e)return i.ortho.scale=this._orthoScale2,void this.stop();Y.scheduleTask(this._update,this)}static _ease(A,e,t,i){return-t*(A/=i)*(A-2)+e}static _easeInCubic(A,e,t,i){return t*(A/=i)*A*A+e}static _easeOutExpo(A,e,t,i){return t*(1-Math.pow(2,-10*A/i))+e}stop(){if(!this._flying)return;this._flying=!1,this._time1=null,this._time2=null,this._projection2&&(this.scene.camera.projection=this._projection2);const A=this._callback;A&&(this._callback=null,this._callbackScope?A.call(this._callbackScope):A()),this.fire("stopped",!0,!0)}cancel(){this._flying&&(this._flying=!1,this._time1=null,this._time2=null,this._callback&&(this._callback=null),this.fire("canceled",!0,!0))}set duration(A){this._duration=Number.isFinite(A)?1e3*A:500,this.stop()}get duration(){return this._duration/1e3}set fit(A){this._fit=!1!==A}get fit(){return this._fit}set fitFOV(A){this._fitFOV=A||45}get fitFOV(){return this._fitFOV}set trail(A){this._trail=!!A}get trail(){return this._trail}destroy(){this.stop(),super.destroy()}}class L extends N{get type(){return"CameraPathAnimation"}constructor(A,e={}){super(A,e),this._cameraFlightAnimation=new X(this),this._t=0,this.state=L.SCRUBBING,this._playingFromT=0,this._playingToT=0,this._playingRate=e.playingRate||1,this._playingDir=1,this._lastTime=null,this.cameraPath=e.cameraPath,this._tick=this.scene.on("tick",this._updateT,this)}_updateT(){const A=this._cameraPath;if(!A)return;let e,t;const i=performance.now(),s=this._lastTime?.001*(i-this._lastTime):0;if(this._lastTime=i,0!==s)switch(this.state){case L.SCRUBBING:return;case L.PLAYING:if(this._t+=this._playingRate*s,e=this._cameraPath.frames.length,0===e||this._playingDir<0&&this._t<=0||this._playingDir>0&&this._t>=this._cameraPath.frames[e-1].t)return this.state=L.SCRUBBING,this._t=this._cameraPath.frames[e-1].t,void this.fire("stopped");A.loadFrame(this._t);break;case L.PLAYING_TO:t=this._t+this._playingRate*s*this._playingDir,(this._playingDir<0&&t<=this._playingToT||this._playingDir>0&&t>=this._playingToT)&&(t=this._playingToT,this.state=L.SCRUBBING,this.fire("stopped")),this._t=t,A.loadFrame(this._t)}}_ease(A,e,t,i){return-t*(A/=i)*(A-2)+e}set cameraPath(A){this._cameraPath=A}get cameraPath(){return this._cameraPath}set rate(A){this._playingRate=A}get rate(){return this._playingRate}play(){this._cameraPath&&(this._lastTime=null,this.state=L.PLAYING)}playToT(A){this._cameraPath&&(this._playingFromT=this._t,this._playingToT=A,this._playingDir=this._playingToT-this._playingFromT<0?-1:1,this._lastTime=null,this.state=L.PLAYING_TO)}playToFrame(A){const e=this._cameraPath;if(!e)return;const t=e.frames[A];t?this.playToT(t.t):this.error("playToFrame - frame index out of range: "+A)}flyToFrame(A,e){const t=this._cameraPath;if(!t)return;const i=t.frames[A];i?(this.state=L.SCRUBBING,this._cameraFlightAnimation.flyTo(i,e)):this.error("flyToFrame - frame index out of range: "+A)}scrubToT(A){const e=this._cameraPath;if(!e)return;this.scene.camera&&(this._t=A,e.loadFrame(this._t),this.state=L.SCRUBBING)}scrubToFrame(A){const e=this._cameraPath;if(!e)return;if(!this.scene.camera)return;e.frames[A]?(e.loadFrame(this._t),this.state=L.SCRUBBING):this.error("playToFrame - frame index out of range: "+A)}stop(){this.state=L.SCRUBBING,this.fire("stopped")}destroy(){super.destroy(),this.scene.off(this._tick)}}L.STOPPED=0,L.SCRUBBING=1,L.PLAYING=2,L.PLAYING_TO=3;class V extends N{get type(){return"Geometry"}get isGeometry(){return!0}constructor(A,e={}){super(A,e),l.memory.meshes++}destroy(){super.destroy(),l.memory.meshes--}}const K=new A({});class Z{constructor(A){this.id=K.addItem({});for(const e in A)A.hasOwnProperty(e)&&(this[e]=A[e])}destroy(){K.removeItem(this.id)}}class q{constructor(A,e,t,i,s,n,o,r,c){switch(this._gl=A,this.type=e,this.allocated=!1,this.ConstructorType=t.constructor,t.constructor){case Uint8Array:this.itemType=A.UNSIGNED_BYTE,this.itemByteSize=1;break;case Int8Array:this.itemType=A.BYTE,this.itemByteSize=1;break;case Uint16Array:this.itemType=A.UNSIGNED_SHORT,this.itemByteSize=2;break;case Int16Array:this.itemType=A.SHORT,this.itemByteSize=2;break;case Uint32Array:this.itemType=A.UNSIGNED_INT,this.itemByteSize=4;break;case Int32Array:this.itemType=A.INT,this.itemByteSize=4;break;default:this.itemType=A.FLOAT,this.itemByteSize=4}this.usage=n,this.length=0,this.dataLength=i,this.numItems=0,this.itemSize=s,this.normalized=!!o,this.stride=r||0,this.offset=c||0,this._allocate(t)}_allocate(A){if(this.allocated=!1,this._handle=this._gl.createBuffer(),!this._handle)throw"Failed to allocate WebGL ArrayBuffer";this._handle&&(this._gl.bindBuffer(this.type,this._handle),this._gl.bufferData(this.type,A.length>this.dataLength?A.slice(0,this.dataLength):A,this.usage),this._gl.bindBuffer(this.type,null),this.length=A.length,this.numItems=this.length/this.itemSize,this.allocated=!0)}setData(A,e){this.allocated&&(A.length+(e||0)>this.length?(this.destroy(),this._allocate(A)):(this._gl.bindBuffer(this.type,this._handle),e||0===e?this._gl.bufferSubData(this.type,e*this.itemByteSize,A):this._gl.bufferData(this.type,A,this.usage),this._gl.bindBuffer(this.type,null)))}getData(A=0,e=this.numItems-A){if(!this.allocated)return[];const t=new this.ConstructorType(e*this.itemSize);return this._gl.bindBuffer(this.type,this._handle),this._gl.getBufferSubData(this.type,A*this.itemByteSize*this.itemSize,t,0,e*this.itemSize),t}bind(){this.allocated&&this._gl.bindBuffer(this.type,this._handle)}unbind(){this.allocated&&this._gl.bindBuffer(this.type,null)}destroy(){this.allocated&&(this._gl.deleteBuffer(this._handle),this._handle=null,this.allocated=!1)}}var $=function(){const A=[],e=[],t=[],i=[],s=[];let n=0;const o=new Uint16Array(3),r=new Uint16Array(3),c=new Uint16Array(3),a=g.vec3(),h=g.vec3(),B=g.vec3(),l=g.vec3(),E=g.vec3(),Q=g.vec3(),M=g.vec3();return function(u,w,d,C){!function(s,n){const o={};let r,c,a,h;const B=Math.pow(10,4);let g,l,E=0;for(g=0,l=s.length;gF)||(T=t[J.index1],U=t[J.index2],(!R&&T>65535||U>65535)&&(R=!0),x.push(T),x.push(U));return R?new Uint32Array(x):new Uint16Array(x)}}();const AA=function(){const A=g.mat4(),e=g.mat4();return function(t,i){i=i||g.mat4();const s=t[0],n=t[1],o=t[2],r=t[3]-s,c=t[4]-n,a=t[5]-o,h=65535;return g.identityMat4(A),g.translationMat4v(t,A),g.identityMat4(e),g.scalingMat4v([r/h,c/h,a/h],e),g.mulMat4(A,e,i),i}}();var eA=function(){const A=g.mat4(),e=g.mat4();return function(t,i,s){const n=new Uint16Array(t.length),o=new Float32Array([s[0]!==i[0]?65535/(s[0]-i[0]):0,s[1]!==i[1]?65535/(s[1]-i[1]):0,s[2]!==i[2]?65535/(s[2]-i[2]):0]);let r;for(r=0;r=0?1:-1),e=(1-Math.abs(s))*(n>=0?1:-1);s=A,n=e}return new Int8Array([Math[t](127.5*s+(s<0?-1:0)),Math[i](127.5*n+(n<0?-1:0))])}function sA(A){let e=A[0],t=A[1];e/=e<0?127:128,t/=t<0?127:128;const i=1-Math.abs(e)-Math.abs(t);i<0&&(e=(1-Math.abs(t))*(e>=0?1:-1),t=(1-Math.abs(e))*(t>=0?1:-1));const s=Math.sqrt(e*e+t*t+i*i);return[e/s,t/s,i/s]}function nA(A,e,t){return A[e]*t[0]+A[e+1]*t[1]+A[e+2]*t[2]}const oA={getPositionsBounds:function(A){const e=new Float32Array(3),t=new Float32Array(3);let i,s;for(i=0;i<3;i++)e[i]=Number.MAX_VALUE,t[i]=-Number.MAX_VALUE;for(i=0;io&&(s=t,o=n),t=iA(A,r,"floor","ceil"),i=sA(t),n=nA(A,r,i),n>o&&(s=t,o=n),t=iA(A,r,"ceil","ceil"),i=sA(t),n=nA(A,r,i),n>o&&(s=t,o=n),e[r]=s[0],e[r+1]=s[1];return e},decompressNormals:function(A,e){for(let t=0,i=0,s=A.length;t=0?1:-1),n=(1-Math.abs(s))*(n>=0?1:-1));const r=Math.sqrt(s*s+n*n+o*o);e[i+0]=s/r,e[i+1]=n/r,e[i+2]=o/r,i+=3}return e},decompressNormal:function(A,e){let t=A[0],i=A[1];t=(2*t+1)/255,i=(2*i+1)/255;const s=1-Math.abs(t)-Math.abs(i);s<0&&(t=(1-Math.abs(i))*(t>=0?1:-1),i=(1-Math.abs(t))*(i>=0?1:-1));const n=Math.sqrt(t*t+i*i+s*s);return e[0]=t/n,e[1]=i/n,e[2]=s/n,e}},rA=l.memory,cA=g.AABB3();class aA extends V{get type(){return"ReadableGeometry"}get isReadableGeometry(){return!0}constructor(A,e={}){super(A,e),this._state=new Z({compressGeometry:!!e.compressGeometry,primitive:null,primitiveName:null,positions:null,normals:null,colors:null,uv:null,indices:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,positionsBuf:null,normalsBuf:null,colorsbuf:null,uvBuf:null,indicesBuf:null,hash:""}),this._numTriangles=0,this._edgeThreshold=e.edgeThreshold||10,this._edgeIndicesBuf=null,this._pickTrianglePositionsBuf=null,this._pickTriangleColorsBuf=null,this._aabbDirty=!0,this._boundingSphere=!0,this._aabb=null,this._aabbDirty=!0,this._obb=null,this._obbDirty=!0;const t=this._state,i=this.scene.canvas.gl;switch(e.primitive=e.primitive||"triangles",e.primitive){case"points":t.primitive=i.POINTS,t.primitiveName=e.primitive;break;case"lines":t.primitive=i.LINES,t.primitiveName=e.primitive;break;case"line-loop":t.primitive=i.LINE_LOOP,t.primitiveName=e.primitive;break;case"line-strip":t.primitive=i.LINE_STRIP,t.primitiveName=e.primitive;break;case"triangles":t.primitive=i.TRIANGLES,t.primitiveName=e.primitive;break;case"triangle-strip":t.primitive=i.TRIANGLE_STRIP,t.primitiveName=e.primitive;break;case"triangle-fan":t.primitive=i.TRIANGLE_FAN,t.primitiveName=e.primitive;break;default:this.error("Unsupported value for 'primitive': '"+e.primitive+"' - supported values are 'points', 'lines', 'line-loop', 'line-strip', 'triangles', 'triangle-strip' and 'triangle-fan'. Defaulting to 'triangles'."),t.primitive=i.TRIANGLES,t.primitiveName=e.primitive}if(e.positions)if(this._state.compressGeometry){const A=oA.getPositionsBounds(e.positions),i=oA.compressPositions(e.positions,A.min,A.max);t.positions=i.quantized,t.positionsDecodeMatrix=i.decodeMatrix}else t.positions=e.positions.constructor===Float32Array?e.positions:new Float32Array(e.positions);if(e.colors&&(t.colors=e.colors.constructor===Float32Array?e.colors:new Float32Array(e.colors)),e.uv)if(this._state.compressGeometry){const A=oA.getUVBounds(e.uv),i=oA.compressUVs(e.uv,A.min,A.max);t.uv=i.quantized,t.uvDecodeMatrix=i.decodeMatrix}else t.uv=e.uv.constructor===Float32Array?e.uv:new Float32Array(e.uv);e.normals&&(this._state.compressGeometry?t.normals=oA.compressNormals(e.normals):t.normals=e.normals.constructor===Float32Array?e.normals:new Float32Array(e.normals)),e.indices&&(t.indices=e.indices.constructor===Uint32Array||e.indices.constructor===Uint16Array?e.indices:new Uint32Array(e.indices),"triangles"===this._state.primitiveName&&(this._numTriangles=e.indices.length/3)),this._buildHash(),rA.meshes++,this._buildVBOs()}_buildVBOs(){const A=this._state,e=this.scene.canvas.gl;if(A.indices&&(A.indicesBuf=new q(e,e.ELEMENT_ARRAY_BUFFER,A.indices,A.indices.length,1,e.STATIC_DRAW),rA.indices+=A.indicesBuf.numItems),A.positions&&(A.positionsBuf=new q(e,e.ARRAY_BUFFER,A.positions,A.positions.length,3,e.STATIC_DRAW),rA.positions+=A.positionsBuf.numItems),A.normals){let t=A.compressGeometry;A.normalsBuf=new q(e,e.ARRAY_BUFFER,A.normals,A.normals.length,3,e.STATIC_DRAW,t),rA.normals+=A.normalsBuf.numItems}A.colors&&(A.colorsBuf=new q(e,e.ARRAY_BUFFER,A.colors,A.colors.length,4,e.STATIC_DRAW),rA.colors+=A.colorsBuf.numItems),A.uv&&(A.uvBuf=new q(e,e.ARRAY_BUFFER,A.uv,A.uv.length,2,e.STATIC_DRAW),rA.uvs+=A.uvBuf.numItems)}_buildHash(){const A=this._state,e=["/g"];e.push("/"+A.primitive+";"),A.positions&&e.push("p"),A.colors&&e.push("c"),(A.normals||A.autoVertexNormals)&&e.push("n"),A.uv&&e.push("u"),A.compressGeometry&&e.push("cp"),e.push(";"),A.hash=e.join("")}_getEdgeIndices(){return this._edgeIndicesBuf||this._buildEdgeIndices(),this._edgeIndicesBuf}_getPickTrianglePositions(){return this._pickTrianglePositionsBuf||this._buildPickTriangleVBOs(),this._pickTrianglePositionsBuf}_getPickTriangleColors(){return this._pickTriangleColorsBuf||this._buildPickTriangleVBOs(),this._pickTriangleColorsBuf}_buildEdgeIndices(){const A=this._state;if(!A.positions||!A.indices)return;const e=this.scene.canvas.gl,t=$(A.positions,A.indices,A.positionsDecodeMatrix,this._edgeThreshold);this._edgeIndicesBuf=new q(e,e.ELEMENT_ARRAY_BUFFER,t,t.length,1,e.STATIC_DRAW),rA.indices+=this._edgeIndicesBuf.numItems}_buildPickTriangleVBOs(){const A=this._state;if(!A.positions||!A.indices)return;const e=this.scene.canvas.gl,t=g.buildPickTriangles(A.positions,A.indices,A.compressGeometry),i=t.positions,s=t.colors;this._pickTrianglePositionsBuf=new q(e,e.ARRAY_BUFFER,i,i.length,3,e.STATIC_DRAW),this._pickTriangleColorsBuf=new q(e,e.ARRAY_BUFFER,s,s.length,4,e.STATIC_DRAW,!0),rA.positions+=this._pickTrianglePositionsBuf.numItems,rA.colors+=this._pickTriangleColorsBuf.numItems}_buildPickVertexVBOs(){}_webglContextLost(){this._sceneVertexBufs&&this._sceneVertexBufs.webglContextLost()}_webglContextRestored(){this._sceneVertexBufs&&this._sceneVertexBufs.webglContextRestored(),this._buildVBOs(),this._edgeIndicesBuf=null,this._pickVertexPositionsBuf=null,this._pickTrianglePositionsBuf=null,this._pickTriangleColorsBuf=null,this._pickVertexPositionsBuf=null,this._pickVertexColorsBuf=null}get primitive(){return this._state.primitiveName}get compressGeometry(){return this._state.compressGeometry}get positions(){return this._state.positions?this._state.compressGeometry?(this._decompressedPositions||(this._decompressedPositions=new Float32Array(this._state.positions.length),oA.decompressPositions(this._state.positions,this._state.positionsDecodeMatrix,this._decompressedPositions)),this._decompressedPositions):this._state.positions:null}set positions(A){const e=this._state,t=e.positions;if(t)if(t.length===A.length){if(this._state.compressGeometry){const t=oA.getPositionsBounds(A),i=oA.compressPositions(A,t.min,t.max);A=i.quantized,e.positionsDecodeMatrix=i.decodeMatrix}t.set(A),e.positionsBuf&&e.positionsBuf.setData(t),this._setAABBDirty(),this.glRedraw()}else this.error("can't update geometry positions - new positions are wrong length");else this.error("can't update geometry positions - geometry has no positions")}get normals(){if(this._state.normals){if(!this._state.compressGeometry)return this._state.normals;if(!this._decompressedNormals){const A=this._state.normals.length,e=A+A/2;this._decompressedNormals=new Float32Array(e),oA.decompressNormals(this._state.normals,this._decompressedNormals)}return this._decompressedNormals}}set normals(A){if(this._state.compressGeometry)return void this.error("can't update geometry normals - quantized geometry is immutable");const e=this._state,t=e.normals;t?t.length===A.length?(t.set(A),e.normalsBuf&&e.normalsBuf.setData(t),this.glRedraw()):this.error("can't update geometry normals - new normals are wrong length"):this.error("can't update geometry normals - geometry has no normals")}get uv(){return this._state.uv?this._state.compressGeometry?(this._decompressedUV||(this._decompressedUV=new Float32Array(this._state.uv.length),oA.decompressUVs(this._state.uv,this._state.uvDecodeMatrix,this._decompressedUV)),this._decompressedUV):this._state.uv:null}set uv(A){if(this._state.compressGeometry)return void this.error("can't update geometry UVs - quantized geometry is immutable");const e=this._state,t=e.uv;t?t.length===A.length?(t.set(A),e.uvBuf&&e.uvBuf.setData(t),this.glRedraw()):this.error("can't update geometry UVs - new UVs are wrong length"):this.error("can't update geometry UVs - geometry has no UVs")}get colors(){return this._state.colors}set colors(A){if(this._state.compressGeometry)return void this.error("can't update geometry colors - quantized geometry is immutable");const e=this._state,t=e.colors;t?t.length===A.length?(t.set(A),e.colorsBuf&&e.colorsBuf.setData(t),this.glRedraw()):this.error("can't update geometry colors - new colors are wrong length"):this.error("can't update geometry colors - geometry has no colors")}get indices(){return this._state.indices}get aabb(){return this._aabbDirty&&(this._aabb||(this._aabb=g.AABB3()),g.positions3ToAABB3(this._state.positions,this._aabb,this._state.positionsDecodeMatrix),this._aabbDirty=!1),this._aabb}get obb(){return this._obbDirty&&(this._obb||(this._obb=g.OBB3()),g.positions3ToAABB3(this._state.positions,cA,this._state.positionsDecodeMatrix),g.AABB3ToOBB3(cA,this._obb),this._obbDirty=!1),this._obb}_getMetrics(){if(!("_metrics"in this))switch(this._state.primitiveName){case"solid":case"surface":case"triangles":{const A=this._state.indices,e=this._state.positions,t=(t,i)=>{const s=3*A[t];for(let A=0;A<3;++A)i[A]=e[s+A];return i},i=[g.vec3(),g.vec3(),g.vec3(),g.vec3()];let s=0;const n=g.vec3([0,0,0]);for(let e=0;e0){for(J=M.length/3,w.push(0),w.push(1),w.push(0),d.push(.5),d.push(.5),M.push(0+c),M.push(B+a),M.push(0+h),F=0;F<=s;F++)p=Math.sin(F*l),I=Math.cos(F*l),N=.5*Math.sin(F*l)+.5,y=.5*Math.cos(F*l)+.5,w.push(e*p),w.push(1),w.push(e*I),d.push(N),d.push(y),M.push(e*p+c),M.push(B+a),M.push(e*I+h);for(F=0;F0){for(J=M.length/3,w.push(0),w.push(-1),w.push(0),d.push(.5),d.push(.5),M.push(0+c),M.push(0-B+a),M.push(0+h),F=0;F<=s;F++)p=Math.sin(F*l),I=Math.cos(F*l),N=.5*Math.sin(F*l)+.5,y=.5*Math.cos(F*l)+.5,w.push(t*p),w.push(-1),w.push(t*I),d.push(N),d.push(y),M.push(t*p+c),M.push(0-B+a),M.push(t*I+h);for(F=0;F65535?Uint32Array:Uint16Array)(B*g*6);for(x=0;x360&&(n=360);const o=A.center;let r=o?o[0]:0,c=o?o[1]:0;const a=o?o[2]:0,h=[],B=[],l=[],E=[];let Q,M,w,d,C,x,F,p,I,f,Y,D;for(p=0;p<=s;p++)for(F=0;F<=i;F++)Q=F/i*n,M=.785398+p/s*Math.PI*2,r=e*Math.cos(Q),c=e*Math.sin(Q),w=(e+t*Math.cos(M))*Math.cos(Q),d=(e+t*Math.cos(M))*Math.sin(Q),C=t*Math.sin(M),h.push(w+r),h.push(d+c),h.push(C+a),l.push(1-F/i),l.push(p/s),x=g.normalizeVec3(g.subVec3([w,d,C],[r,c,a],[]),[]),B.push(x[0]),B.push(x[1]),B.push(x[2]);for(p=1;p<=s;p++)for(F=1;F<=i;F++)I=(i+1)*p+F-1,f=(i+1)*(p-1)+F-1,Y=(i+1)*(p-1)+F,D=(i+1)*p+F,E.push(I),E.push(f),E.push(Y),E.push(Y),E.push(D),E.push(I);return u.apply(A,{positions:h,normals:B,uv:l,indices:E})}lA.load=function(A,e){var t=new XMLHttpRequest;t.open("GET",A,!0),t.responseType="arraybuffer",t.onload=function(A){e(A.target.response)},t.send()},lA.save=function(A,e){var t="data:application/octet-stream;base64,"+btoa(lA.parse._buffToStr(A));window.location.href=t},lA.clone=function(A){return JSON.parse(JSON.stringify(A))},lA.bin={},lA.bin.f=new Float32Array(1),lA.bin.fb=new Uint8Array(lA.bin.f.buffer),lA.bin.rf=function(A,e){for(var t=lA.bin.f,i=lA.bin.fb,s=0;s<4;s++)i[s]=A[e+s];return t[0]},lA.bin.rsl=function(A,e){return A[e]|A[e+1]<<8},lA.bin.ril=function(A,e){return A[e]|A[e+1]<<8|A[e+2]<<16|A[e+3]<<24},lA.bin.rASCII0=function(A,e){for(var t="";0!=A[e];)t+=String.fromCharCode(A[e++]);return t},lA.bin.wf=function(A,e,t){new Float32Array(A.buffer,e,1)[0]=t},lA.bin.wsl=function(A,e,t){A[e]=t,A[e+1]=t>>8},lA.bin.wil=function(A,e,t){A[e]=t,A[e+1]=t>>8,A[e+2]=t>>16,A[e+3]},lA.parse={},lA.parse._buffToStr=function(A){for(var e=new Uint8Array(A),t="",i=0;is&&(s=c),an&&(n=a),ho&&(o=h)}return{min:{x:e,y:t,z:i},max:{x:s,y:n,z:o}}};const dA={" ":{width:16,points:[]},"!":{width:10,points:[[5,21],[5,7],[-1,-1],[5,2],[4,1],[5,0],[6,1],[5,2]]},'"':{width:16,points:[[4,21],[4,14],[-1,-1],[12,21],[12,14]]},"#":{width:21,points:[[11,25],[4,-7],[-1,-1],[17,25],[10,-7],[-1,-1],[4,12],[18,12],[-1,-1],[3,6],[17,6]]},$:{width:20,points:[[8,25],[8,-4],[-1,-1],[12,25],[12,-4],[-1,-1],[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},"%":{width:24,points:[[21,21],[3,0],[-1,-1],[8,21],[10,19],[10,17],[9,15],[7,14],[5,14],[3,16],[3,18],[4,20],[6,21],[8,21],[10,20],[13,19],[16,19],[19,20],[21,21],[-1,-1],[17,7],[15,6],[14,4],[14,2],[16,0],[18,0],[20,1],[21,3],[21,5],[19,7],[17,7]]},"&":{width:26,points:[[23,12],[23,13],[22,14],[21,14],[20,13],[19,11],[17,6],[15,3],[13,1],[11,0],[7,0],[5,1],[4,2],[3,4],[3,6],[4,8],[5,9],[12,13],[13,14],[14,16],[14,18],[13,20],[11,21],[9,20],[8,18],[8,16],[9,13],[11,10],[16,3],[18,1],[20,0],[22,0],[23,1],[23,2]]},"'":{width:10,points:[[5,19],[4,20],[5,21],[6,20],[6,18],[5,16],[4,15]]},"(":{width:14,points:[[11,25],[9,23],[7,20],[5,16],[4,11],[4,7],[5,2],[7,-2],[9,-5],[11,-7]]},")":{width:14,points:[[3,25],[5,23],[7,20],[9,16],[10,11],[10,7],[9,2],[7,-2],[5,-5],[3,-7]]},"*":{width:16,points:[[8,21],[8,9],[-1,-1],[3,18],[13,12],[-1,-1],[13,18],[3,12]]},"+":{width:26,points:[[13,18],[13,0],[-1,-1],[4,9],[22,9]]},",":{width:10,points:[[6,1],[5,0],[4,1],[5,2],[6,1],[6,-1],[5,-3],[4,-4]]},"-":{width:26,points:[[4,9],[22,9]]},".":{width:10,points:[[5,2],[4,1],[5,0],[6,1],[5,2]]},"/":{width:22,points:[[20,25],[2,-7]]},0:{width:20,points:[[9,21],[6,20],[4,17],[3,12],[3,9],[4,4],[6,1],[9,0],[11,0],[14,1],[16,4],[17,9],[17,12],[16,17],[14,20],[11,21],[9,21]]},1:{width:20,points:[[6,17],[8,18],[11,21],[11,0]]},2:{width:20,points:[[4,16],[4,17],[5,19],[6,20],[8,21],[12,21],[14,20],[15,19],[16,17],[16,15],[15,13],[13,10],[3,0],[17,0]]},3:{width:20,points:[[5,21],[16,21],[10,13],[13,13],[15,12],[16,11],[17,8],[17,6],[16,3],[14,1],[11,0],[8,0],[5,1],[4,2],[3,4]]},4:{width:20,points:[[13,21],[3,7],[18,7],[-1,-1],[13,21],[13,0]]},5:{width:20,points:[[15,21],[5,21],[4,12],[5,13],[8,14],[11,14],[14,13],[16,11],[17,8],[17,6],[16,3],[14,1],[11,0],[8,0],[5,1],[4,2],[3,4]]},6:{width:20,points:[[16,18],[15,20],[12,21],[10,21],[7,20],[5,17],[4,12],[4,7],[5,3],[7,1],[10,0],[11,0],[14,1],[16,3],[17,6],[17,7],[16,10],[14,12],[11,13],[10,13],[7,12],[5,10],[4,7]]},7:{width:20,points:[[17,21],[7,0],[-1,-1],[3,21],[17,21]]},8:{width:20,points:[[8,21],[5,20],[4,18],[4,16],[5,14],[7,13],[11,12],[14,11],[16,9],[17,7],[17,4],[16,2],[15,1],[12,0],[8,0],[5,1],[4,2],[3,4],[3,7],[4,9],[6,11],[9,12],[13,13],[15,14],[16,16],[16,18],[15,20],[12,21],[8,21]]},9:{width:20,points:[[16,14],[15,11],[13,9],[10,8],[9,8],[6,9],[4,11],[3,14],[3,15],[4,18],[6,20],[9,21],[10,21],[13,20],[15,18],[16,14],[16,9],[15,4],[13,1],[10,0],[8,0],[5,1],[4,3]]},":":{width:10,points:[[5,14],[4,13],[5,12],[6,13],[5,14],[-1,-1],[5,2],[4,1],[5,0],[6,1],[5,2]]},";":{width:10,points:[[5,14],[4,13],[5,12],[6,13],[5,14],[-1,-1],[6,1],[5,0],[4,1],[5,2],[6,1],[6,-1],[5,-3],[4,-4]]},"<":{width:24,points:[[20,18],[4,9],[20,0]]},"=":{width:26,points:[[4,12],[22,12],[-1,-1],[4,6],[22,6]]},">":{width:24,points:[[4,18],[20,9],[4,0]]},"?":{width:18,points:[[3,16],[3,17],[4,19],[5,20],[7,21],[11,21],[13,20],[14,19],[15,17],[15,15],[14,13],[13,12],[9,10],[9,7],[-1,-1],[9,2],[8,1],[9,0],[10,1],[9,2]]},"@":{width:27,points:[[18,13],[17,15],[15,16],[12,16],[10,15],[9,14],[8,11],[8,8],[9,6],[11,5],[14,5],[16,6],[17,8],[-1,-1],[12,16],[10,14],[9,11],[9,8],[10,6],[11,5],[-1,-1],[18,16],[17,8],[17,6],[19,5],[21,5],[23,7],[24,10],[24,12],[23,15],[22,17],[20,19],[18,20],[15,21],[12,21],[9,20],[7,19],[5,17],[4,15],[3,12],[3,9],[4,6],[5,4],[7,2],[9,1],[12,0],[15,0],[18,1],[20,2],[21,3],[-1,-1],[19,16],[18,8],[18,6],[19,5]]},A:{width:18,points:[[9,21],[1,0],[-1,-1],[9,21],[17,0],[-1,-1],[4,7],[14,7]]},B:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[-1,-1],[4,11],[13,11],[16,10],[17,9],[18,7],[18,4],[17,2],[16,1],[13,0],[4,0]]},C:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5]]},D:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[11,21],[14,20],[16,18],[17,16],[18,13],[18,8],[17,5],[16,3],[14,1],[11,0],[4,0]]},E:{width:19,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11],[-1,-1],[4,0],[17,0]]},F:{width:18,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11]]},G:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[18,8],[-1,-1],[13,8],[18,8]]},H:{width:22,points:[[4,21],[4,0],[-1,-1],[18,21],[18,0],[-1,-1],[4,11],[18,11]]},I:{width:8,points:[[4,21],[4,0]]},J:{width:16,points:[[12,21],[12,5],[11,2],[10,1],[8,0],[6,0],[4,1],[3,2],[2,5],[2,7]]},K:{width:21,points:[[4,21],[4,0],[-1,-1],[18,21],[4,7],[-1,-1],[9,12],[18,0]]},L:{width:17,points:[[4,21],[4,0],[-1,-1],[4,0],[16,0]]},M:{width:24,points:[[4,21],[4,0],[-1,-1],[4,21],[12,0],[-1,-1],[20,21],[12,0],[-1,-1],[20,21],[20,0]]},N:{width:22,points:[[4,21],[4,0],[-1,-1],[4,21],[18,0],[-1,-1],[18,21],[18,0]]},O:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21]]},P:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,14],[17,12],[16,11],[13,10],[4,10]]},Q:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21],[-1,-1],[12,4],[18,-2]]},R:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[4,11],[-1,-1],[11,11],[18,0]]},S:{width:20,points:[[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},T:{width:16,points:[[8,21],[8,0],[-1,-1],[1,21],[15,21]]},U:{width:22,points:[[4,21],[4,6],[5,3],[7,1],[10,0],[12,0],[15,1],[17,3],[18,6],[18,21]]},V:{width:18,points:[[1,21],[9,0],[-1,-1],[17,21],[9,0]]},W:{width:24,points:[[2,21],[7,0],[-1,-1],[12,21],[7,0],[-1,-1],[12,21],[17,0],[-1,-1],[22,21],[17,0]]},X:{width:20,points:[[3,21],[17,0],[-1,-1],[17,21],[3,0]]},Y:{width:18,points:[[1,21],[9,11],[9,0],[-1,-1],[17,21],[9,11]]},Z:{width:20,points:[[17,21],[3,0],[-1,-1],[3,21],[17,21],[-1,-1],[3,0],[17,0]]},"[":{width:14,points:[[4,25],[4,-7],[-1,-1],[5,25],[5,-7],[-1,-1],[4,25],[11,25],[-1,-1],[4,-7],[11,-7]]},"\\":{width:14,points:[[0,21],[14,-3]]},"]":{width:14,points:[[9,25],[9,-7],[-1,-1],[10,25],[10,-7],[-1,-1],[3,25],[10,25],[-1,-1],[3,-7],[10,-7]]},"^":{width:16,points:[[6,15],[8,18],[10,15],[-1,-1],[3,12],[8,17],[13,12],[-1,-1],[8,17],[8,0]]},_:{width:16,points:[[0,-2],[16,-2]]},"`":{width:10,points:[[6,21],[5,20],[4,18],[4,16],[5,15],[6,16],[5,17]]},a:{width:19,points:[[15,14],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},b:{width:19,points:[[4,21],[4,0],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},c:{width:18,points:[[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},d:{width:19,points:[[15,21],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},e:{width:18,points:[[3,8],[15,8],[15,10],[14,12],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},f:{width:12,points:[[10,21],[8,21],[6,20],[5,17],[5,0],[-1,-1],[2,14],[9,14]]},g:{width:19,points:[[15,14],[15,-2],[14,-5],[13,-6],[11,-7],[8,-7],[6,-6],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},h:{width:19,points:[[4,21],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},i:{width:8,points:[[3,21],[4,20],[5,21],[4,22],[3,21],[-1,-1],[4,14],[4,0]]},j:{width:10,points:[[5,21],[6,20],[7,21],[6,22],[5,21],[-1,-1],[6,14],[6,-3],[5,-6],[3,-7],[1,-7]]},k:{width:17,points:[[4,21],[4,0],[-1,-1],[14,14],[4,4],[-1,-1],[8,8],[15,0]]},l:{width:8,points:[[4,21],[4,0]]},m:{width:30,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0],[-1,-1],[15,10],[18,13],[20,14],[23,14],[25,13],[26,10],[26,0]]},n:{width:19,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},o:{width:19,points:[[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3],[16,6],[16,8],[15,11],[13,13],[11,14],[8,14]]},p:{width:19,points:[[4,14],[4,-7],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},q:{width:19,points:[[15,14],[15,-7],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},r:{width:13,points:[[4,14],[4,0],[-1,-1],[4,8],[5,11],[7,13],[9,14],[12,14]]},s:{width:17,points:[[14,11],[13,13],[10,14],[7,14],[4,13],[3,11],[4,9],[6,8],[11,7],[13,6],[14,4],[14,3],[13,1],[10,0],[7,0],[4,1],[3,3]]},t:{width:12,points:[[5,21],[5,4],[6,1],[8,0],[10,0],[-1,-1],[2,14],[9,14]]},u:{width:19,points:[[4,14],[4,4],[5,1],[7,0],[10,0],[12,1],[15,4],[-1,-1],[15,14],[15,0]]},v:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0]]},w:{width:22,points:[[3,14],[7,0],[-1,-1],[11,14],[7,0],[-1,-1],[11,14],[15,0],[-1,-1],[19,14],[15,0]]},x:{width:17,points:[[3,14],[14,0],[-1,-1],[14,14],[3,0]]},y:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0],[6,-4],[4,-6],[2,-7],[1,-7]]},z:{width:17,points:[[14,14],[3,0],[-1,-1],[3,14],[14,14],[-1,-1],[3,0],[14,0]]},"{":{width:14,points:[[9,25],[7,24],[6,23],[5,21],[5,19],[6,17],[7,16],[8,14],[8,12],[6,10],[-1,-1],[7,24],[6,22],[6,20],[7,18],[8,17],[9,15],[9,13],[8,11],[4,9],[8,7],[9,5],[9,3],[8,1],[7,0],[6,-2],[6,-4],[7,-6],[-1,-1],[6,8],[8,6],[8,4],[7,2],[6,1],[5,-1],[5,-3],[6,-5],[7,-6],[9,-7]]},"|":{width:8,points:[[4,25],[4,-7]]},"}":{width:14,points:[[5,25],[7,24],[8,23],[9,21],[9,19],[8,17],[7,16],[6,14],[6,12],[8,10],[-1,-1],[7,24],[8,22],[8,20],[7,18],[6,17],[5,15],[5,13],[6,11],[10,9],[6,7],[5,5],[5,3],[6,1],[7,0],[8,-2],[8,-4],[7,-6],[-1,-1],[8,8],[6,6],[6,4],[7,2],[8,1],[9,-1],[9,-3],[8,-5],[7,-6],[5,-7]]},"~":{width:24,points:[[3,6],[3,8],[4,11],[6,12],[8,12],[10,11],[14,8],[16,7],[18,7],[20,8],[21,10],[-1,-1],[3,8],[4,10],[6,11],[8,11],[10,10],[14,7],[16,6],[18,6],[20,7],[21,10],[21,12]]}};function CA(A={}){var e=A.origin||[0,0,0],t=e[0],i=e[1],s=e[2],n=A.size||1,o=[],r=[],c=A.text;u.isNumeric(c)&&(c=""+c);for(var a,h,B,g,l,E,Q,M,w,d=(c||"").split("\n"),C=0,x=0,F=.04,p=0;p=B&&(E=0),l+=u,u=A.pattern[E]}A.extendToEnd&&(t.push(o,r,c),e.push(e.length-2),e.push(e.length-1))}else e.push(0),e.push(1),t.push(i,s,n,o,r,c);return u.apply(A,{primitive:"lines",positions:t,indices:e})}const FA=g.vec4(4),pA=g.vec4(),IA=g.vec4(),fA=g.vec3([1,0,0]),YA=g.vec3([0,1,0]),DA=g.vec3([0,0,1]),mA=g.vec3(3),JA=g.vec3(3),NA=g.identityMat4();class yA extends N{constructor(A,e={}){if(super(A,e),this._parentNode=null,this._children=[],this._aabb=null,this._aabbDirty=!0,this.scene._aabbDirty=!0,this._numTriangles=0,this._scale=g.vec3(),this._quaternion=g.identityQuaternion(),this._rotation=g.vec3(),this._position=g.vec3(),this._offset=g.vec3(),this._localMatrix=g.identityMat4(),this._worldMatrix=g.identityMat4(),this._localMatrixDirty=!0,this._worldMatrixDirty=!0,e.matrix?this.matrix=e.matrix:(this.scale=e.scale,this.position=e.position,e.quaternion||(this.rotation=e.rotation)),this._isModel=e.isModel,this._isModel&&this.scene._registerModel(this),this._isObject=e.isObject,this._isObject&&this.scene._registerObject(this),this.origin=e.origin,this.visible=e.visible,this.culled=e.culled,this.pickable=e.pickable,this.clippable=e.clippable,this.collidable=e.collidable,this.castsShadow=e.castsShadow,this.receivesShadow=e.receivesShadow,this.xrayed=e.xrayed,this.highlighted=e.highlighted,this.selected=e.selected,this.edges=e.edges,this.colorize=e.colorize,this.opacity=e.opacity,this.offset=e.offset,e.children){const A=e.children;for(let t=0,i=A.length;t0!==A))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this._children.length){const A=this._children.splice();let e;for(let t=0,i=A.length;t0,c=!!s.compressGeometry,a=[];a.push("#version 300 es"),a.push("// Lambertian drawing vertex shader"),a.push("in vec3 position;"),a.push("uniform mat4 modelMatrix;"),a.push("uniform mat4 viewMatrix;"),a.push("uniform mat4 projMatrix;"),a.push("uniform vec4 colorize;"),a.push("uniform vec3 offset;"),c&&a.push("uniform mat4 positionsDecodeMatrix;");e.logarithmicDepthBufferEnabled&&(a.push("uniform float logDepthBufFC;"),a.push("out float vFragDepth;"),a.push("bool isPerspectiveMatrix(mat4 m) {"),a.push(" return (m[2][3] == - 1.0);"),a.push("}"),a.push("out float isPerspective;"));r&&a.push("out vec4 vWorldPosition;");if(a.push("uniform vec4 lightAmbient;"),a.push("uniform vec4 materialColor;"),a.push("uniform vec3 materialEmissive;"),s.normalsBuf){a.push("in vec3 normal;"),a.push("uniform mat4 modelNormalMatrix;"),a.push("uniform mat4 viewNormalMatrix;");for(let A=0,e=i.lights.length;A= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),a.push(" }"),a.push(" return normalize(v);"),a.push("}"))}a.push("out vec4 vColor;"),"points"===s.primitiveName&&a.push("uniform float pointSize;");"spherical"!==n&&"cylindrical"!==n||(a.push("void billboard(inout mat4 mat) {"),a.push(" mat[0][0] = 1.0;"),a.push(" mat[0][1] = 0.0;"),a.push(" mat[0][2] = 0.0;"),"spherical"===n&&(a.push(" mat[1][0] = 0.0;"),a.push(" mat[1][1] = 1.0;"),a.push(" mat[1][2] = 0.0;")),a.push(" mat[2][0] = 0.0;"),a.push(" mat[2][1] = 0.0;"),a.push(" mat[2][2] =1.0;"),a.push("}"));a.push("void main(void) {"),a.push("vec4 localPosition = vec4(position, 1.0); "),a.push("vec4 worldPosition;"),c&&a.push("localPosition = positionsDecodeMatrix * localPosition;");s.normalsBuf&&(c?a.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):a.push("vec4 localNormal = vec4(normal, 0.0); "),a.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),a.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));a.push("mat4 viewMatrix2 = viewMatrix;"),a.push("mat4 modelMatrix2 = modelMatrix;"),o&&a.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===n||"cylindrical"===n?(a.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),a.push("billboard(modelMatrix2);"),a.push("billboard(viewMatrix2);"),a.push("billboard(modelViewMatrix);"),s.normalsBuf&&(a.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),a.push("billboard(modelNormalMatrix2);"),a.push("billboard(viewNormalMatrix2);"),a.push("billboard(modelViewNormalMatrix);")),a.push("worldPosition = modelMatrix2 * localPosition;"),a.push("worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(a.push("worldPosition = modelMatrix2 * localPosition;"),a.push("worldPosition.xyz = worldPosition.xyz + offset;"),a.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));s.normalsBuf&&a.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(a.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),a.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),a.push("float lambertian = 1.0;"),s.normalsBuf)for(let A=0,e=i.lights.length;A0,n=e.gammaOutput,o=[];o.push("#version 300 es"),o.push("// Lambertian drawing fragment shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("#endif"),e.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;"));if(s){o.push("in vec4 vWorldPosition;"),o.push("uniform bool clippable;");for(let A=0,e=t.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),o.push("}")}"points"===i.primitiveName&&(o.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),o.push("float r = dot(cxy, cxy);"),o.push("if (r > 1.0) {"),o.push(" discard;"),o.push("}"));e.logarithmicDepthBufferEnabled&&o.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");n?o.push("outColor = linearToGamma(vColor, gammaFactor);"):o.push("outColor = vColor;");return o.push("}"),o}(A)):(this.vertex=function(A){const e=A.scene;A._material;const t=A._state,i=e._sectionPlanesState,s=A._geometry._state,n=e._lightsState;let o;const r=t.billboard,c=t.background,a=t.stationary,h=function(A){if(!A._geometry._state.uvBuf)return!1;const e=A._material;return!!(e._ambientMap||e._occlusionMap||e._baseColorMap||e._diffuseMap||e._alphaMap||e._specularMap||e._glossinessMap||e._specularGlossinessMap||e._emissiveMap||e._metallicMap||e._roughnessMap||e._metallicRoughnessMap||e._reflectivityMap||e._normalMap)}(A),B=ge(A),g=i.getNumAllocatedSectionPlanes()>0,l=Be(A),E=!!s.compressGeometry,Q=[];Q.push("#version 300 es"),Q.push("// Drawing vertex shader"),Q.push("in vec3 position;"),E&&Q.push("uniform mat4 positionsDecodeMatrix;");Q.push("uniform mat4 modelMatrix;"),Q.push("uniform mat4 viewMatrix;"),Q.push("uniform mat4 projMatrix;"),Q.push("out vec3 vViewPosition;"),Q.push("uniform vec3 offset;"),g&&Q.push("out vec4 vWorldPosition;");e.logarithmicDepthBufferEnabled&&(Q.push("uniform float logDepthBufFC;"),Q.push("out float vFragDepth;"),Q.push("bool isPerspectiveMatrix(mat4 m) {"),Q.push(" return (m[2][3] == - 1.0);"),Q.push("}"),Q.push("out float isPerspective;"));n.lightMaps.length>0&&Q.push("out vec3 vWorldNormal;");if(B){Q.push("in vec3 normal;"),Q.push("uniform mat4 modelNormalMatrix;"),Q.push("uniform mat4 viewNormalMatrix;"),Q.push("out vec3 vViewNormal;");for(let A=0,e=n.lights.length;A= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),Q.push(" }"),Q.push(" return normalize(v);"),Q.push("}"))}h&&(Q.push("in vec2 uv;"),Q.push("out vec2 vUV;"),E&&Q.push("uniform mat3 uvDecodeMatrix;"));s.colors&&(Q.push("in vec4 color;"),Q.push("out vec4 vColor;"));"points"===s.primitiveName&&Q.push("uniform float pointSize;");"spherical"!==r&&"cylindrical"!==r||(Q.push("void billboard(inout mat4 mat) {"),Q.push(" mat[0][0] = 1.0;"),Q.push(" mat[0][1] = 0.0;"),Q.push(" mat[0][2] = 0.0;"),"spherical"===r&&(Q.push(" mat[1][0] = 0.0;"),Q.push(" mat[1][1] = 1.0;"),Q.push(" mat[1][2] = 0.0;")),Q.push(" mat[2][0] = 0.0;"),Q.push(" mat[2][1] = 0.0;"),Q.push(" mat[2][2] =1.0;"),Q.push("}"));if(l){Q.push("const mat4 texUnitConverter = mat4(0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.5, 0.5, 1.0);");for(let A=0,e=n.lights.length;A0&&Q.push("vWorldNormal = worldNormal;"),Q.push("vViewNormal = normalize((viewNormalMatrix2 * vec4(worldNormal, 1.0)).xyz);"),Q.push("vec3 tmpVec3;"),Q.push("float lightDist;");for(let A=0,e=n.lights.length;A0,c=ge(A),a=i.uvBuf,h="PhongMaterial"===o.type,B="MetallicMaterial"===o.type,g="SpecularMaterial"===o.type,l=Be(A);e.gammaInput;const E=e.gammaOutput,Q=[];Q.push("#version 300 es"),Q.push("// Drawing fragment shader"),Q.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),Q.push("precision highp float;"),Q.push("precision highp int;"),Q.push("#else"),Q.push("precision mediump float;"),Q.push("precision mediump int;"),Q.push("#endif"),e.logarithmicDepthBufferEnabled&&(Q.push("in float isPerspective;"),Q.push("uniform float logDepthBufFC;"),Q.push("in float vFragDepth;"));l&&(Q.push("float unpackDepth (vec4 color) {"),Q.push(" const vec4 bitShift = vec4(1.0, 1.0/256.0, 1.0/(256.0 * 256.0), 1.0/(256.0*256.0*256.0));"),Q.push(" return dot(color, bitShift);"),Q.push("}"));Q.push("uniform float gammaFactor;"),Q.push("vec4 linearToLinear( in vec4 value ) {"),Q.push(" return value;"),Q.push("}"),Q.push("vec4 sRGBToLinear( in vec4 value ) {"),Q.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),Q.push("}"),Q.push("vec4 gammaToLinear( in vec4 value) {"),Q.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),Q.push("}"),E&&(Q.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),Q.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),Q.push("}"));if(r){Q.push("in vec4 vWorldPosition;"),Q.push("uniform bool clippable;");for(var M=0;M0&&(Q.push("uniform samplerCube lightMap;"),Q.push("uniform mat4 viewNormalMatrix;")),n.reflectionMaps.length>0&&Q.push("uniform samplerCube reflectionMap;"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&Q.push("uniform mat4 viewMatrix;"),Q.push("#define PI 3.14159265359"),Q.push("#define RECIPROCAL_PI 0.31830988618"),Q.push("#define RECIPROCAL_PI2 0.15915494"),Q.push("#define EPSILON 1e-6"),Q.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),Q.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),Q.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),Q.push("}"),Q.push("struct IncidentLight {"),Q.push(" vec3 color;"),Q.push(" vec3 direction;"),Q.push("};"),Q.push("struct ReflectedLight {"),Q.push(" vec3 diffuse;"),Q.push(" vec3 specular;"),Q.push("};"),Q.push("struct Geometry {"),Q.push(" vec3 position;"),Q.push(" vec3 viewNormal;"),Q.push(" vec3 worldNormal;"),Q.push(" vec3 viewEyeDir;"),Q.push("};"),Q.push("struct Material {"),Q.push(" vec3 diffuseColor;"),Q.push(" float specularRoughness;"),Q.push(" vec3 specularColor;"),Q.push(" float shine;"),Q.push("};"),h&&((n.lightMaps.length>0||n.reflectionMaps.length>0)&&(Q.push("void computePhongLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.lightMaps.length>0&&(Q.push(" vec3 irradiance = "+he[n.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),Q.push(" irradiance *= PI;"),Q.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),Q.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),n.reflectionMaps.length>0&&(Q.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),Q.push(" vec3 radiance = texture(reflectionMap, reflectVec).rgb * 0.2;"),Q.push(" radiance *= PI;"),Q.push(" reflectedLight.specular += radiance;")),Q.push("}")),Q.push("void computePhongLighting(const in IncidentLight directLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),Q.push(" float dotNL = saturate(dot(geometry.viewNormal, directLight.direction));"),Q.push(" vec3 irradiance = dotNL * directLight.color * PI;"),Q.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),Q.push(" reflectedLight.specular += directLight.color * material.specularColor * pow(max(dot(reflect(-directLight.direction, -geometry.viewNormal), geometry.viewEyeDir), 0.0), material.shine);"),Q.push("}")),(B||g)&&(Q.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),Q.push(" float r = ggxRoughness + 0.0001;"),Q.push(" return (2.0 / (r * r) - 2.0);"),Q.push("}"),Q.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),Q.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),Q.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),Q.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),Q.push("}"),n.reflectionMaps.length>0&&(Q.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),Q.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),Q.push(" vec3 envMapColor = "+he[n.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),Q.push(" return envMapColor;"),Q.push("}")),Q.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),Q.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),Q.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),Q.push("}"),Q.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),Q.push(" float a2 = ( alpha * alpha );"),Q.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),Q.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),Q.push(" return 1.0 / ( gl * gv );"),Q.push("}"),Q.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),Q.push(" float a2 = ( alpha * alpha );"),Q.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),Q.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),Q.push(" return 0.5 / max( gv + gl, EPSILON );"),Q.push("}"),Q.push("float D_GGX(const in float alpha, const in float dotNH) {"),Q.push(" float a2 = ( alpha * alpha );"),Q.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),Q.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),Q.push("}"),Q.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),Q.push(" float alpha = ( roughness * roughness );"),Q.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),Q.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),Q.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),Q.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),Q.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),Q.push(" vec3 F = F_Schlick( specularColor, dotLH );"),Q.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),Q.push(" float D = D_GGX( alpha, dotNH );"),Q.push(" return F * (G * D);"),Q.push("}"),Q.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),Q.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),Q.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),Q.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),Q.push(" vec4 r = roughness * c0 + c1;"),Q.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),Q.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),Q.push(" return specularColor * AB.x + AB.y;"),Q.push("}"),(n.lightMaps.length>0||n.reflectionMaps.length>0)&&(Q.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),n.lightMaps.length>0&&(Q.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),Q.push(" irradiance *= PI;"),Q.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),Q.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),n.reflectionMaps.length>0&&(Q.push(" vec3 reflectVec = reflect(-geometry.viewEyeDir, geometry.viewNormal);"),Q.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),Q.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),Q.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),Q.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),Q.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),Q.push("}")),Q.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),Q.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),Q.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),Q.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),Q.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),Q.push("}")));Q.push("in vec3 vViewPosition;"),i.colors&&Q.push("in vec4 vColor;");a&&(c&&t._normalMap||t._ambientMap||t._baseColorMap||t._diffuseMap||t._emissiveMap||t._metallicMap||t._roughnessMap||t._metallicRoughnessMap||t._specularMap||t._glossinessMap||t._specularGlossinessMap||t._occlusionMap||t._alphaMap)&&Q.push("in vec2 vUV;");c&&(n.lightMaps.length>0&&Q.push("in vec3 vWorldNormal;"),Q.push("in vec3 vViewNormal;"));o.ambient&&Q.push("uniform vec3 materialAmbient;");o.baseColor&&Q.push("uniform vec3 materialBaseColor;");void 0!==o.alpha&&null!==o.alpha&&Q.push("uniform vec4 materialAlphaModeCutoff;");o.emissive&&Q.push("uniform vec3 materialEmissive;");o.diffuse&&Q.push("uniform vec3 materialDiffuse;");void 0!==o.glossiness&&null!==o.glossiness&&Q.push("uniform float materialGlossiness;");void 0!==o.shininess&&null!==o.shininess&&Q.push("uniform float materialShininess;");o.specular&&Q.push("uniform vec3 materialSpecular;");void 0!==o.metallic&&null!==o.metallic&&Q.push("uniform float materialMetallic;");void 0!==o.roughness&&null!==o.roughness&&Q.push("uniform float materialRoughness;");void 0!==o.specularF0&&null!==o.specularF0&&Q.push("uniform float materialSpecularF0;");a&&t._ambientMap&&(Q.push("uniform sampler2D ambientMap;"),t._ambientMap._state.matrix&&Q.push("uniform mat4 ambientMapMatrix;"));a&&t._baseColorMap&&(Q.push("uniform sampler2D baseColorMap;"),t._baseColorMap._state.matrix&&Q.push("uniform mat4 baseColorMapMatrix;"));a&&t._diffuseMap&&(Q.push("uniform sampler2D diffuseMap;"),t._diffuseMap._state.matrix&&Q.push("uniform mat4 diffuseMapMatrix;"));a&&t._emissiveMap&&(Q.push("uniform sampler2D emissiveMap;"),t._emissiveMap._state.matrix&&Q.push("uniform mat4 emissiveMapMatrix;"));c&&a&&t._metallicMap&&(Q.push("uniform sampler2D metallicMap;"),t._metallicMap._state.matrix&&Q.push("uniform mat4 metallicMapMatrix;"));c&&a&&t._roughnessMap&&(Q.push("uniform sampler2D roughnessMap;"),t._roughnessMap._state.matrix&&Q.push("uniform mat4 roughnessMapMatrix;"));c&&a&&t._metallicRoughnessMap&&(Q.push("uniform sampler2D metallicRoughnessMap;"),t._metallicRoughnessMap._state.matrix&&Q.push("uniform mat4 metallicRoughnessMapMatrix;"));c&&t._normalMap&&(Q.push("uniform sampler2D normalMap;"),t._normalMap._state.matrix&&Q.push("uniform mat4 normalMapMatrix;"),Q.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),Q.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),Q.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),Q.push(" vec2 st0 = dFdx( uv.st );"),Q.push(" vec2 st1 = dFdy( uv.st );"),Q.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),Q.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),Q.push(" vec3 N = normalize( surf_norm );"),Q.push(" vec3 mapN = texture( normalMap, uv ).xyz * 2.0 - 1.0;"),Q.push(" mat3 tsn = mat3( S, T, N );"),Q.push(" return normalize( tsn * mapN );"),Q.push("}"));a&&t._occlusionMap&&(Q.push("uniform sampler2D occlusionMap;"),t._occlusionMap._state.matrix&&Q.push("uniform mat4 occlusionMapMatrix;"));a&&t._alphaMap&&(Q.push("uniform sampler2D alphaMap;"),t._alphaMap._state.matrix&&Q.push("uniform mat4 alphaMapMatrix;"));c&&a&&t._specularMap&&(Q.push("uniform sampler2D specularMap;"),t._specularMap._state.matrix&&Q.push("uniform mat4 specularMapMatrix;"));c&&a&&t._glossinessMap&&(Q.push("uniform sampler2D glossinessMap;"),t._glossinessMap._state.matrix&&Q.push("uniform mat4 glossinessMapMatrix;"));c&&a&&t._specularGlossinessMap&&(Q.push("uniform sampler2D materialSpecularGlossinessMap;"),t._specularGlossinessMap._state.matrix&&Q.push("uniform mat4 materialSpecularGlossinessMapMatrix;"));c&&(t._diffuseFresnel||t._specularFresnel||t._alphaFresnel||t._emissiveFresnel||t._reflectivityFresnel)&&(Q.push("float fresnel(vec3 eyeDir, vec3 normal, float edgeBias, float centerBias, float power) {"),Q.push(" float fr = abs(dot(eyeDir, normal));"),Q.push(" float finalFr = clamp((fr - edgeBias) / (centerBias - edgeBias), 0.0, 1.0);"),Q.push(" return pow(finalFr, power);"),Q.push("}"),t._diffuseFresnel&&(Q.push("uniform float diffuseFresnelCenterBias;"),Q.push("uniform float diffuseFresnelEdgeBias;"),Q.push("uniform float diffuseFresnelPower;"),Q.push("uniform vec3 diffuseFresnelCenterColor;"),Q.push("uniform vec3 diffuseFresnelEdgeColor;")),t._specularFresnel&&(Q.push("uniform float specularFresnelCenterBias;"),Q.push("uniform float specularFresnelEdgeBias;"),Q.push("uniform float specularFresnelPower;"),Q.push("uniform vec3 specularFresnelCenterColor;"),Q.push("uniform vec3 specularFresnelEdgeColor;")),t._alphaFresnel&&(Q.push("uniform float alphaFresnelCenterBias;"),Q.push("uniform float alphaFresnelEdgeBias;"),Q.push("uniform float alphaFresnelPower;"),Q.push("uniform vec3 alphaFresnelCenterColor;"),Q.push("uniform vec3 alphaFresnelEdgeColor;")),t._reflectivityFresnel&&(Q.push("uniform float materialSpecularF0FresnelCenterBias;"),Q.push("uniform float materialSpecularF0FresnelEdgeBias;"),Q.push("uniform float materialSpecularF0FresnelPower;"),Q.push("uniform vec3 materialSpecularF0FresnelCenterColor;"),Q.push("uniform vec3 materialSpecularF0FresnelEdgeColor;")),t._emissiveFresnel&&(Q.push("uniform float emissiveFresnelCenterBias;"),Q.push("uniform float emissiveFresnelEdgeBias;"),Q.push("uniform float emissiveFresnelPower;"),Q.push("uniform vec3 emissiveFresnelCenterColor;"),Q.push("uniform vec3 emissiveFresnelEdgeColor;")));if(Q.push("uniform vec4 lightAmbient;"),c)for(let A=0,e=n.lights.length;A 0.0) { discard; }"),Q.push("}")}"points"===i.primitiveName&&(Q.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),Q.push("float r = dot(cxy, cxy);"),Q.push("if (r > 1.0) {"),Q.push(" discard;"),Q.push("}"));Q.push("float occlusion = 1.0;"),o.ambient?Q.push("vec3 ambientColor = materialAmbient;"):Q.push("vec3 ambientColor = vec3(1.0, 1.0, 1.0);");o.diffuse?Q.push("vec3 diffuseColor = materialDiffuse;"):o.baseColor?Q.push("vec3 diffuseColor = materialBaseColor;"):Q.push("vec3 diffuseColor = vec3(1.0, 1.0, 1.0);");i.colors&&Q.push("diffuseColor *= vColor.rgb;");o.emissive?Q.push("vec3 emissiveColor = materialEmissive;"):Q.push("vec3 emissiveColor = vec3(0.0, 0.0, 0.0);");o.specular?Q.push("vec3 specular = materialSpecular;"):Q.push("vec3 specular = vec3(1.0, 1.0, 1.0);");void 0!==o.alpha?Q.push("float alpha = materialAlphaModeCutoff[0];"):Q.push("float alpha = 1.0;");i.colors&&Q.push("alpha *= vColor.a;");void 0!==o.glossiness?Q.push("float glossiness = materialGlossiness;"):Q.push("float glossiness = 1.0;");void 0!==o.metallic?Q.push("float metallic = materialMetallic;"):Q.push("float metallic = 1.0;");void 0!==o.roughness?Q.push("float roughness = materialRoughness;"):Q.push("float roughness = 1.0;");void 0!==o.specularF0?Q.push("float specularF0 = materialSpecularF0;"):Q.push("float specularF0 = 1.0;");a&&(c&&t._normalMap||t._ambientMap||t._baseColorMap||t._diffuseMap||t._occlusionMap||t._emissiveMap||t._metallicMap||t._roughnessMap||t._metallicRoughnessMap||t._specularMap||t._glossinessMap||t._specularGlossinessMap||t._alphaMap)&&(Q.push("vec4 texturePos = vec4(vUV.s, vUV.t, 1.0, 1.0);"),Q.push("vec2 textureCoord;"));a&&t._ambientMap&&(t._ambientMap._state.matrix?Q.push("textureCoord = (ambientMapMatrix * texturePos).xy;"):Q.push("textureCoord = texturePos.xy;"),Q.push("vec4 ambientTexel = texture(ambientMap, textureCoord).rgb;"),Q.push("ambientTexel = "+he[t._ambientMap._state.encoding]+"(ambientTexel);"),Q.push("ambientColor *= ambientTexel.rgb;"));a&&t._diffuseMap&&(t._diffuseMap._state.matrix?Q.push("textureCoord = (diffuseMapMatrix * texturePos).xy;"):Q.push("textureCoord = texturePos.xy;"),Q.push("vec4 diffuseTexel = texture(diffuseMap, textureCoord);"),Q.push("diffuseTexel = "+he[t._diffuseMap._state.encoding]+"(diffuseTexel);"),Q.push("diffuseColor *= diffuseTexel.rgb;"),Q.push("alpha *= diffuseTexel.a;"));a&&t._baseColorMap&&(t._baseColorMap._state.matrix?Q.push("textureCoord = (baseColorMapMatrix * texturePos).xy;"):Q.push("textureCoord = texturePos.xy;"),Q.push("vec4 baseColorTexel = texture(baseColorMap, textureCoord);"),Q.push("baseColorTexel = "+he[t._baseColorMap._state.encoding]+"(baseColorTexel);"),Q.push("diffuseColor *= baseColorTexel.rgb;"),Q.push("alpha *= baseColorTexel.a;"));a&&t._emissiveMap&&(t._emissiveMap._state.matrix?Q.push("textureCoord = (emissiveMapMatrix * texturePos).xy;"):Q.push("textureCoord = texturePos.xy;"),Q.push("vec4 emissiveTexel = texture(emissiveMap, textureCoord);"),Q.push("emissiveTexel = "+he[t._emissiveMap._state.encoding]+"(emissiveTexel);"),Q.push("emissiveColor = emissiveTexel.rgb;"));a&&t._alphaMap&&(t._alphaMap._state.matrix?Q.push("textureCoord = (alphaMapMatrix * texturePos).xy;"):Q.push("textureCoord = texturePos.xy;"),Q.push("alpha *= texture(alphaMap, textureCoord).r;"));a&&t._occlusionMap&&(t._occlusionMap._state.matrix?Q.push("textureCoord = (occlusionMapMatrix * texturePos).xy;"):Q.push("textureCoord = texturePos.xy;"),Q.push("occlusion *= texture(occlusionMap, textureCoord).r;"));if(c&&(n.lights.length>0||n.lightMaps.length>0||n.reflectionMaps.length>0)){a&&t._normalMap?(t._normalMap._state.matrix?Q.push("textureCoord = (normalMapMatrix * texturePos).xy;"):Q.push("textureCoord = texturePos.xy;"),Q.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition, normalize(vViewNormal), textureCoord );")):Q.push("vec3 viewNormal = normalize(vViewNormal);"),a&&t._specularMap&&(t._specularMap._state.matrix?Q.push("textureCoord = (specularMapMatrix * texturePos).xy;"):Q.push("textureCoord = texturePos.xy;"),Q.push("specular *= texture(specularMap, textureCoord).rgb;")),a&&t._glossinessMap&&(t._glossinessMap._state.matrix?Q.push("textureCoord = (glossinessMapMatrix * texturePos).xy;"):Q.push("textureCoord = texturePos.xy;"),Q.push("glossiness *= texture(glossinessMap, textureCoord).r;")),a&&t._specularGlossinessMap&&(t._specularGlossinessMap._state.matrix?Q.push("textureCoord = (materialSpecularGlossinessMapMatrix * texturePos).xy;"):Q.push("textureCoord = texturePos.xy;"),Q.push("vec4 specGlossRGB = texture(materialSpecularGlossinessMap, textureCoord).rgba;"),Q.push("specular *= specGlossRGB.rgb;"),Q.push("glossiness *= specGlossRGB.a;")),a&&t._metallicMap&&(t._metallicMap._state.matrix?Q.push("textureCoord = (metallicMapMatrix * texturePos).xy;"):Q.push("textureCoord = texturePos.xy;"),Q.push("metallic *= texture(metallicMap, textureCoord).r;")),a&&t._roughnessMap&&(t._roughnessMap._state.matrix?Q.push("textureCoord = (roughnessMapMatrix * texturePos).xy;"):Q.push("textureCoord = texturePos.xy;"),Q.push("roughness *= texture(roughnessMap, textureCoord).r;")),a&&t._metallicRoughnessMap&&(t._metallicRoughnessMap._state.matrix?Q.push("textureCoord = (metallicRoughnessMapMatrix * texturePos).xy;"):Q.push("textureCoord = texturePos.xy;"),Q.push("vec3 metalRoughRGB = texture(metallicRoughnessMap, textureCoord).rgb;"),Q.push("metallic *= metalRoughRGB.b;"),Q.push("roughness *= metalRoughRGB.g;")),Q.push("vec3 viewEyeDir = normalize(-vViewPosition);"),t._diffuseFresnel&&(Q.push("float diffuseFresnel = fresnel(viewEyeDir, viewNormal, diffuseFresnelEdgeBias, diffuseFresnelCenterBias, diffuseFresnelPower);"),Q.push("diffuseColor *= mix(diffuseFresnelEdgeColor, diffuseFresnelCenterColor, diffuseFresnel);")),t._specularFresnel&&(Q.push("float specularFresnel = fresnel(viewEyeDir, viewNormal, specularFresnelEdgeBias, specularFresnelCenterBias, specularFresnelPower);"),Q.push("specular *= mix(specularFresnelEdgeColor, specularFresnelCenterColor, specularFresnel);")),t._alphaFresnel&&(Q.push("float alphaFresnel = fresnel(viewEyeDir, viewNormal, alphaFresnelEdgeBias, alphaFresnelCenterBias, alphaFresnelPower);"),Q.push("alpha *= mix(alphaFresnelEdgeColor.r, alphaFresnelCenterColor.r, alphaFresnel);")),t._emissiveFresnel&&(Q.push("float emissiveFresnel = fresnel(viewEyeDir, viewNormal, emissiveFresnelEdgeBias, emissiveFresnelCenterBias, emissiveFresnelPower);"),Q.push("emissiveColor *= mix(emissiveFresnelEdgeColor, emissiveFresnelCenterColor, emissiveFresnel);")),Q.push("if (materialAlphaModeCutoff[1] == 1.0 && alpha < materialAlphaModeCutoff[2]) {"),Q.push(" discard;"),Q.push("}"),Q.push("IncidentLight light;"),Q.push("Material material;"),Q.push("Geometry geometry;"),Q.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),Q.push("vec3 viewLightDir;"),h&&(Q.push("material.diffuseColor = diffuseColor;"),Q.push("material.specularColor = specular;"),Q.push("material.shine = materialShininess;")),g&&(Q.push("float oneMinusSpecularStrength = 1.0 - max(max(specular.r, specular.g ),specular.b);"),Q.push("material.diffuseColor = diffuseColor * oneMinusSpecularStrength;"),Q.push("material.specularRoughness = clamp( 1.0 - glossiness, 0.04, 1.0 );"),Q.push("material.specularColor = specular;")),B&&(Q.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),Q.push("material.diffuseColor = diffuseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),Q.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),Q.push("material.specularColor = mix(vec3(dielectricSpecular), diffuseColor, metallic);")),Q.push("geometry.position = vViewPosition;"),n.lightMaps.length>0&&Q.push("geometry.worldNormal = normalize(vWorldNormal);"),Q.push("geometry.viewNormal = viewNormal;"),Q.push("geometry.viewEyeDir = viewEyeDir;"),h&&(n.lightMaps.length>0||n.reflectionMaps.length>0)&&Q.push("computePhongLightMapping(geometry, material, reflectedLight);"),(g||B)&&(n.lightMaps.length>0||n.reflectionMaps.length>0)&&Q.push("computePBRLightMapping(geometry, material, reflectedLight);"),Q.push("float shadow = 1.0;"),Q.push("float shadowAcneRemover = 0.007;"),Q.push("vec3 fragmentDepth;"),Q.push("float texelSize = 1.0 / 1024.0;"),Q.push("float amountInLight = 0.0;"),Q.push("vec3 shadowCoord;"),Q.push("vec4 rgbaDepth;"),Q.push("float depth;");for(let A=0,e=n.lights.length;A0&&"/"===t.charAt(i+1)&&(t=t.substring(0,i)),e.push(t);return e.join("\n")}function we(A){console.error(A.join("\n"))}class de{constructor(A,e){this.id=Me.addItem({}),this.source=e,this.init(A)}init(A){if(this.gl=A,this.allocated=!1,this.compiled=!1,this.linked=!1,this.validated=!1,this.errors=null,this.uniforms={},this.samplers={},this.attributes={},this._vertexShader=new le(A,A.VERTEX_SHADER,ue(this.source.vertex)),this._fragmentShader=new le(A,A.FRAGMENT_SHADER,ue(this.source.fragment)),!this._vertexShader.allocated)return this.errors=["Vertex shader failed to allocate"].concat(this._vertexShader.errors),void we(this.errors);if(!this._fragmentShader.allocated)return this.errors=["Fragment shader failed to allocate"].concat(this._fragmentShader.errors),void we(this.errors);if(this.allocated=!0,!this._vertexShader.compiled)return this.errors=["Vertex shader failed to compile"].concat(this._vertexShader.errors),void we(this.errors);if(!this._fragmentShader.compiled)return this.errors=["Fragment shader failed to compile"].concat(this._fragmentShader.errors),void we(this.errors);let e,t,i,s,n;if(this.compiled=!0,this.handle=A.createProgram(),!this.handle)return void(this.errors=["Failed to allocate program"]);if(A.attachShader(this.handle,this._vertexShader.handle),A.attachShader(this.handle,this._fragmentShader.handle),A.linkProgram(this.handle),this.linked=A.getProgramParameter(this.handle,A.LINK_STATUS),this.validated=!0,!this.linked||!this.validated)return this.errors=[],this.errors.push(""),this.errors.push(A.getProgramInfoLog(this.handle)),this.errors.push("\nVertex shader:\n"),this.errors=this.errors.concat(this.source.vertex),this.errors.push("\nFragment shader:\n"),this.errors=this.errors.concat(this.source.fragment),void we(this.errors);const o=A.getProgramParameter(this.handle,A.ACTIVE_UNIFORMS);for(t=0;t0?Ce.FS_MAX_FLOAT_PRECISION="highp":A.getShaderPrecisionFormat(A.FRAGMENT_SHADER,A.MEDIUM_FLOAT).precision>0?Ce.FS_MAX_FLOAT_PRECISION="mediump":Ce.FS_MAX_FLOAT_PRECISION="lowp":Ce.FS_MAX_FLOAT_PRECISION="mediump",Ce.DEPTH_BUFFER_BITS=A.getParameter(A.DEPTH_BITS),Ce.MAX_TEXTURE_SIZE=A.getParameter(A.MAX_TEXTURE_SIZE),Ce.MAX_CUBE_MAP_SIZE=A.getParameter(A.MAX_CUBE_MAP_TEXTURE_SIZE),Ce.MAX_RENDERBUFFER_SIZE=A.getParameter(A.MAX_RENDERBUFFER_SIZE),Ce.MAX_TEXTURE_UNITS=A.getParameter(A.MAX_COMBINED_TEXTURE_IMAGE_UNITS),Ce.MAX_TEXTURE_IMAGE_UNITS=A.getParameter(A.MAX_TEXTURE_IMAGE_UNITS),Ce.MAX_VERTEX_ATTRIBS=A.getParameter(A.MAX_VERTEX_ATTRIBS),Ce.MAX_VERTEX_UNIFORM_VECTORS=A.getParameter(A.MAX_VERTEX_UNIFORM_VECTORS),Ce.MAX_FRAGMENT_UNIFORM_VECTORS=A.getParameter(A.MAX_FRAGMENT_UNIFORM_VECTORS),Ce.MAX_VARYING_VECTORS=A.getParameter(A.MAX_VARYING_VECTORS),A.getSupportedExtensions().forEach((function(A){Ce.SUPPORTED_EXTENSIONS[A]=!0})))}const Fe=g.vec3(),pe=new A({}),Ie=function(A,e){this.id=pe.addItem({}),this._hash=A,this._scene=e.scene,this._useCount=0,this._shaderSource=new ae(e),this._allocate(e)},fe={};Ie.get=function(A){const e=A.scene,t=[e.canvas.canvas.id,(e.gammaInput?"gi;":";")+(e.gammaOutput?"go":""),e._lightsState.getHash(),e._sectionPlanesState.getHash(),A._geometry._state.hash,A._material._state.hash,A._state.drawHash].join(";");let i=fe[t];if(!i){if(i=new Ie(t,A),i.errors)return console.log(i.errors.join("\n")),null;fe[t]=i,l.memory.programs++}return i._useCount++,i},Ie.prototype.put=function(){0==--this._useCount&&(pe.removeItem(this.id),this._program&&this._program.destroy(),delete fe[this._hash],l.memory.programs--)},Ie.prototype.webglContextRestored=function(){this._program=null},Ie.prototype.drawMesh=function(A,e){this._program||this._allocate(e);const t=Ce.MAX_TEXTURE_UNITS,i=e.scene,s=e._material,n=i.canvas.gl,o=this._program,r=e._state,c=e._material._state,a=e._geometry._state,h=i.camera,B=e.origin,g=r.background;if(A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,g&&n.depthFunc(n.LEQUAL),this._bindProgram(A)),n.uniformMatrix4fv(this._uViewMatrix,!1,B?A.getRTCViewMatrix(r.originHash,B):h.viewMatrix),n.uniformMatrix4fv(this._uViewNormalMatrix,!1,h.viewNormalMatrix),r.clippable){const A=i._sectionPlanesState.getNumAllocatedSectionPlanes(),t=i._sectionPlanesState.sectionPlanes.length;if(A>0){const s=i._sectionPlanesState.sectionPlanes,o=e.renderFlags;for(let e=0;e0&&(this._uLightMap="lightMap"),s.reflectionMaps.length>0&&(this._uReflectionMap="reflectionMap"),this._uSectionPlanes=[];for(h=0,B=n.sectionPlanes.length;h0&&s.lightMaps[0].texture&&this._uLightMap&&(r.bindTexture(this._uLightMap,s.lightMaps[0].texture,A.textureUnit),A.textureUnit=(A.textureUnit+1)%e,A.bindTexture++),s.reflectionMaps.length>0&&s.reflectionMaps[0].texture&&this._uReflectionMap&&(r.bindTexture(this._uReflectionMap,s.reflectionMaps[0].texture,A.textureUnit),A.textureUnit=(A.textureUnit+1)%e,A.bindTexture++),this._uGammaFactor&&i.uniform1f(this._uGammaFactor,t.gammaFactor),this._baseTextureUnit=A.textureUnit};class Ye{constructor(A){this.vertex=function(A){const e=A.scene,t=e._lightsState,i=function(A){const e=A._geometry._state.primitiveName;if((A._geometry._state.autoVertexNormals||A._geometry._state.normalsBuf)&&("triangles"===e||"triangle-strip"===e||"triangle-fan"===e))return!0;return!1}(A),s=e._sectionPlanesState.getNumAllocatedSectionPlanes()>0,n=!!A._geometry._state.compressGeometry,o=A._state.billboard,r=A._state.stationary,c=[];c.push("#version 300 es"),c.push("// EmphasisFillShaderSource vertex shader"),c.push("in vec3 position;"),c.push("uniform mat4 modelMatrix;"),c.push("uniform mat4 viewMatrix;"),c.push("uniform mat4 projMatrix;"),c.push("uniform vec4 colorize;"),c.push("uniform vec3 offset;"),n&&c.push("uniform mat4 positionsDecodeMatrix;");e.logarithmicDepthBufferEnabled&&(c.push("uniform float logDepthBufFC;"),c.push("out float vFragDepth;"),c.push("bool isPerspectiveMatrix(mat4 m) {"),c.push(" return (m[2][3] == - 1.0);"),c.push("}"),c.push("out float isPerspective;"));s&&c.push("out vec4 vWorldPosition;");if(c.push("uniform vec4 lightAmbient;"),c.push("uniform vec4 fillColor;"),i){c.push("in vec3 normal;"),c.push("uniform mat4 modelNormalMatrix;"),c.push("uniform mat4 viewNormalMatrix;");for(let A=0,e=t.lights.length;A= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),c.push(" }"),c.push(" return normalize(v);"),c.push("}"))}c.push("out vec4 vColor;"),("spherical"===o||"cylindrical"===o)&&(c.push("void billboard(inout mat4 mat) {"),c.push(" mat[0][0] = 1.0;"),c.push(" mat[0][1] = 0.0;"),c.push(" mat[0][2] = 0.0;"),"spherical"===o&&(c.push(" mat[1][0] = 0.0;"),c.push(" mat[1][1] = 1.0;"),c.push(" mat[1][2] = 0.0;")),c.push(" mat[2][0] = 0.0;"),c.push(" mat[2][1] = 0.0;"),c.push(" mat[2][2] =1.0;"),c.push("}"));c.push("void main(void) {"),c.push("vec4 localPosition = vec4(position, 1.0); "),c.push("vec4 worldPosition;"),n&&c.push("localPosition = positionsDecodeMatrix * localPosition;");i&&(n?c.push("vec4 localNormal = vec4(octDecode(normal.xy), 0.0); "):c.push("vec4 localNormal = vec4(normal, 0.0); "),c.push("mat4 modelNormalMatrix2 = modelNormalMatrix;"),c.push("mat4 viewNormalMatrix2 = viewNormalMatrix;"));c.push("mat4 viewMatrix2 = viewMatrix;"),c.push("mat4 modelMatrix2 = modelMatrix;"),r&&c.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===o||"cylindrical"===o?(c.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),c.push("billboard(modelMatrix2);"),c.push("billboard(viewMatrix2);"),c.push("billboard(modelViewMatrix);"),i&&(c.push("mat4 modelViewNormalMatrix = viewNormalMatrix2 * modelNormalMatrix2;"),c.push("billboard(modelNormalMatrix2);"),c.push("billboard(viewNormalMatrix2);"),c.push("billboard(modelViewNormalMatrix);")),c.push("worldPosition = modelMatrix2 * localPosition;"),c.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(c.push("worldPosition = modelMatrix2 * localPosition;"),c.push("worldPosition.xyz = worldPosition.xyz + offset;"),c.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));i&&c.push("vec3 viewNormal = normalize((viewNormalMatrix2 * modelNormalMatrix2 * localNormal).xyz);");if(c.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),c.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),c.push("float lambertian = 1.0;"),i)for(let A=0,e=t.lights.length;A0,n=[];n.push("#version 300 es"),n.push("// Lambertian drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"));i&&(n.push("uniform float gammaFactor;"),n.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),n.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),n.push("}"));if(s){n.push("in vec4 vWorldPosition;"),n.push("uniform bool clippable;");for(let A=0,e=t.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),n.push("}")}"points"===A._geometry._state.primitiveName&&(n.push("vec2 cxy = 2.0 * gl_PointCoord - 1.0;"),n.push("float r = dot(cxy, cxy);"),n.push("if (r > 1.0) {"),n.push(" discard;"),n.push("}"));e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");i?n.push("outColor = linearToGamma(vColor, gammaFactor);"):n.push("outColor = vColor;");return n.push("}"),n}(A)}}const De=new A({}),me=g.vec3(),Je=function(A,e){this.id=De.addItem({}),this._hash=A,this._scene=e.scene,this._useCount=0,this._shaderSource=new Ye(e),this._allocate(e)},Ne={};Je.get=function(A){const e=[A.scene.id,A.scene.gammaOutput?"go":"",A.scene._sectionPlanesState.getHash(),A._geometry._state.normalsBuf?"n":"",A._geometry._state.compressGeometry?"cp":"",A._state.hash].join(";");let t=Ne[e];return t||(t=new Je(e,A),Ne[e]=t,l.memory.programs++),t._useCount++,t},Je.prototype.put=function(){0==--this._useCount&&(De.removeItem(this.id),this._program&&this._program.destroy(),delete Ne[this._hash],l.memory.programs--)},Je.prototype.webglContextRestored=function(){this._program=null},Je.prototype.drawMesh=function(A,e,t){this._program||this._allocate(e);const i=this._scene,s=i.camera,n=i.canvas.gl,o=0===t?e._xrayMaterial._state:1===t?e._highlightMaterial._state:e._selectedMaterial._state,r=e._state,c=e._geometry._state,a=e.origin;if(A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram(A)),n.uniformMatrix4fv(this._uViewMatrix,!1,a?A.getRTCViewMatrix(r.originHash,a):s.viewMatrix),n.uniformMatrix4fv(this._uViewNormalMatrix,!1,s.viewNormalMatrix),r.clippable){const A=i._sectionPlanesState.getNumAllocatedSectionPlanes(),t=i._sectionPlanesState.sectionPlanes.length;if(A>0){const s=i._sectionPlanesState.sectionPlanes,o=e.renderFlags;for(let e=0;e0,i=!!A._geometry._state.compressGeometry,s=A._state.billboard,n=A._state.stationary,o=[];o.push("#version 300 es"),o.push("// Edges drawing vertex shader"),o.push("in vec3 position;"),o.push("uniform mat4 modelMatrix;"),o.push("uniform mat4 viewMatrix;"),o.push("uniform mat4 projMatrix;"),o.push("uniform vec4 edgeColor;"),o.push("uniform vec3 offset;"),i&&o.push("uniform mat4 positionsDecodeMatrix;");e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("out float vFragDepth;"),o.push("bool isPerspectiveMatrix(mat4 m) {"),o.push(" return (m[2][3] == - 1.0);"),o.push("}"),o.push("out float isPerspective;"));t&&o.push("out vec4 vWorldPosition;");o.push("out vec4 vColor;"),("spherical"===s||"cylindrical"===s)&&(o.push("void billboard(inout mat4 mat) {"),o.push(" mat[0][0] = 1.0;"),o.push(" mat[0][1] = 0.0;"),o.push(" mat[0][2] = 0.0;"),"spherical"===s&&(o.push(" mat[1][0] = 0.0;"),o.push(" mat[1][1] = 1.0;"),o.push(" mat[1][2] = 0.0;")),o.push(" mat[2][0] = 0.0;"),o.push(" mat[2][1] = 0.0;"),o.push(" mat[2][2] =1.0;"),o.push("}"));o.push("void main(void) {"),o.push("vec4 localPosition = vec4(position, 1.0); "),o.push("vec4 worldPosition;"),i&&o.push("localPosition = positionsDecodeMatrix * localPosition;");o.push("mat4 viewMatrix2 = viewMatrix;"),o.push("mat4 modelMatrix2 = modelMatrix;"),n&&o.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===s||"cylindrical"===s?(o.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),o.push("billboard(modelMatrix2);"),o.push("billboard(viewMatrix2);"),o.push("billboard(modelViewMatrix);"),o.push("worldPosition = modelMatrix2 * localPosition;"),o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(o.push("worldPosition = modelMatrix2 * localPosition;"),o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));o.push("vColor = edgeColor;"),t&&o.push("vWorldPosition = worldPosition;");o.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(o.push("vFragDepth = 1.0 + clipPos.w;"),o.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return o.push("gl_Position = clipPos;"),o.push("}"),o}(A),this.fragment=function(A){const e=A.scene,t=A.scene._sectionPlanesState,i=A.scene.gammaOutput,s=t.getNumAllocatedSectionPlanes()>0,n=[];n.push("#version 300 es"),n.push("// Edges drawing fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),e.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;"));i&&(n.push("uniform float gammaFactor;"),n.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),n.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),n.push("}"));if(s){n.push("in vec4 vWorldPosition;"),n.push("uniform bool clippable;");for(let A=0,e=t.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),n.push("}")}e.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");i?n.push("outColor = linearToGamma(vColor, gammaFactor);"):n.push("outColor = vColor;");return n.push("}"),n}(A)}}const ze=new A({}),Te=g.vec3(),Ue=function(A,e){this.id=ze.addItem({}),this._hash=A,this._scene=e.scene,this._useCount=0,this._shaderSource=new ye(e),this._allocate(e)},Re={};Ue.get=function(A){const e=[A.scene.id,A.scene.gammaOutput?"go":"",A.scene._sectionPlanesState.getHash(),A._geometry._state.compressGeometry?"cp":"",A._state.hash].join(";");let t=Re[e];return t||(t=new Ue(e,A),Re[e]=t,l.memory.programs++),t._useCount++,t},Ue.prototype.put=function(){0==--this._useCount&&(ze.removeItem(this.id),this._program&&this._program.destroy(),delete Re[this._hash],l.memory.programs--)},Ue.prototype.webglContextRestored=function(){this._program=null},Ue.prototype.drawMesh=function(A,e,t){this._program||this._allocate(e);const i=this._scene,s=i.camera,n=i.canvas.gl;let o;const r=e._state,c=e._geometry,a=c._state,h=e.origin;if(A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram(A)),n.uniformMatrix4fv(this._uViewMatrix,!1,h?A.getRTCViewMatrix(r.originHash,h):s.viewMatrix),r.clippable){const A=i._sectionPlanesState.getNumAllocatedSectionPlanes(),t=i._sectionPlanesState.sectionPlanes.length;if(A>0){const s=i._sectionPlanesState.sectionPlanes,o=e.renderFlags;for(let e=0;e0,i=!!A._geometry._state.compressGeometry,s=A._state.billboard,n=A._state.stationary,o=[];o.push("#version 300 es"),o.push("// Mesh picking vertex shader"),o.push("in vec3 position;"),o.push("uniform mat4 modelMatrix;"),o.push("uniform mat4 viewMatrix;"),o.push("uniform mat4 projMatrix;"),o.push("out vec4 vViewPosition;"),o.push("uniform vec3 offset;"),i&&o.push("uniform mat4 positionsDecodeMatrix;");t&&o.push("out vec4 vWorldPosition;");e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("out float vFragDepth;"),o.push("bool isPerspectiveMatrix(mat4 m) {"),o.push(" return (m[2][3] == - 1.0);"),o.push("}"),o.push("out float isPerspective;"));"spherical"!==s&&"cylindrical"!==s||(o.push("void billboard(inout mat4 mat) {"),o.push(" mat[0][0] = 1.0;"),o.push(" mat[0][1] = 0.0;"),o.push(" mat[0][2] = 0.0;"),"spherical"===s&&(o.push(" mat[1][0] = 0.0;"),o.push(" mat[1][1] = 1.0;"),o.push(" mat[1][2] = 0.0;")),o.push(" mat[2][0] = 0.0;"),o.push(" mat[2][1] = 0.0;"),o.push(" mat[2][2] =1.0;"),o.push("}"));o.push("uniform vec2 pickClipPos;"),o.push("vec4 remapClipPos(vec4 clipPos) {"),o.push(" clipPos.xy /= clipPos.w;"),o.push(" clipPos.xy -= pickClipPos;"),o.push(" clipPos.xy *= clipPos.w;"),o.push(" return clipPos;"),o.push("}"),o.push("void main(void) {"),o.push("vec4 localPosition = vec4(position, 1.0); "),i&&o.push("localPosition = positionsDecodeMatrix * localPosition;");o.push("mat4 viewMatrix2 = viewMatrix;"),o.push("mat4 modelMatrix2 = modelMatrix;"),n&&o.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"!==s&&"cylindrical"!==s||(o.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),o.push("billboard(modelMatrix2);"),o.push("billboard(viewMatrix2);"));o.push(" vec4 worldPosition = modelMatrix2 * localPosition;"),o.push(" worldPosition.xyz = worldPosition.xyz + offset;"),o.push(" vec4 viewPosition = viewMatrix2 * worldPosition;"),t&&o.push(" vWorldPosition = worldPosition;");o.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(o.push("vFragDepth = 1.0 + clipPos.w;"),o.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return o.push("gl_Position = remapClipPos(clipPos);"),o.push("}"),o}(A),this.fragment=function(A){const e=A.scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];s.push("#version 300 es"),s.push("// Mesh picking fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"));if(s.push("uniform vec4 pickColor;"),i){s.push("uniform bool clippable;"),s.push("in vec4 vWorldPosition;");for(var n=0;n 0.0) { discard; }"),s.push("}")}e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return s.push(" outColor = pickColor; "),s.push("}"),s}(A)}}const ke=g.vec3(),Pe=function(A,e){this._hash=A,this._shaderSource=new be(e),this._scene=e.scene,this._useCount=0,this._allocate(e)},Ge={};Pe.get=function(A){const e=[A.scene.canvas.canvas.id,A.scene._sectionPlanesState.getHash(),A._geometry._state.hash,A._state.hash].join(";");let t=Ge[e];if(!t){if(t=new Pe(e,A),t.errors)return console.log(t.errors.join("\n")),null;Ge[e]=t,l.memory.programs++}return t._useCount++,t},Pe.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Ge[this._hash],l.memory.programs--)},Pe.prototype.webglContextRestored=function(){this._program=null},Pe.prototype.drawMesh=function(A,e){this._program||this._allocate(e);const t=this._scene,i=t.canvas.gl,s=e._state,n=e._material._state,o=e._geometry._state,r=e.origin;if(A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram(A)),i.uniformMatrix4fv(this._uViewMatrix,!1,r?A.getRTCPickViewMatrix(s.originHash,r):A.pickViewMatrix),s.clippable){const A=t._sectionPlanesState.getNumAllocatedSectionPlanes(),s=t._sectionPlanesState.sectionPlanes.length;if(A>0){const n=t._sectionPlanesState.sectionPlanes,o=e.renderFlags;for(let e=0;e>24&255,h=c>>16&255,B=c>>8&255,g=255&c;i.uniform4f(this._uPickColor,g/255,B/255,h/255,a/255),i.uniform2fv(this._uPickClipPos,A.pickClipPos),o.indicesBuf?(i.drawElements(o.primitive,o.indicesBuf.numItems,o.indicesBuf.itemType,0),A.drawElements++):o.positions&&i.drawArrays(i.TRIANGLES,0,o.positions.numItems)},Pe.prototype._allocate=function(A){const e=A.scene,t=e.canvas.gl;if(this._program=new de(t,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uPositionsDecodeMatrix=i.getLocation("positionsDecodeMatrix"),this._uModelMatrix=i.getLocation("modelMatrix"),this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let A=0,t=e._sectionPlanesState.sectionPlanes.length;A0,i=!!A._geometry._state.compressGeometry,s=[];s.push("#version 300 es"),s.push("// Surface picking vertex shader"),s.push("in vec3 position;"),s.push("in vec4 color;"),s.push("uniform mat4 modelMatrix;"),s.push("uniform mat4 viewMatrix;"),s.push("uniform mat4 projMatrix;"),s.push("uniform vec3 offset;"),t&&(s.push("uniform bool clippable;"),s.push("out vec4 vWorldPosition;"));e.logarithmicDepthBufferEnabled&&(s.push("uniform float logDepthBufFC;"),s.push("out float vFragDepth;"),s.push("bool isPerspectiveMatrix(mat4 m) {"),s.push(" return (m[2][3] == - 1.0);"),s.push("}"),s.push("out float isPerspective;"));s.push("uniform vec2 pickClipPos;"),s.push("vec4 remapClipPos(vec4 clipPos) {"),s.push(" clipPos.xy /= clipPos.w;"),s.push(" clipPos.xy -= pickClipPos;"),s.push(" clipPos.xy *= clipPos.w;"),s.push(" return clipPos;"),s.push("}"),s.push("out vec4 vColor;"),i&&s.push("uniform mat4 positionsDecodeMatrix;");s.push("void main(void) {"),s.push("vec4 localPosition = vec4(position, 1.0); "),i&&s.push("localPosition = positionsDecodeMatrix * localPosition;");s.push(" vec4 worldPosition = modelMatrix * localPosition; "),s.push(" worldPosition.xyz = worldPosition.xyz + offset;"),s.push(" vec4 viewPosition = viewMatrix * worldPosition;"),t&&s.push(" vWorldPosition = worldPosition;");s.push(" vColor = color;"),s.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(s.push("vFragDepth = 1.0 + clipPos.w;"),s.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return s.push("gl_Position = remapClipPos(clipPos);"),s.push("}"),s}(A),this.fragment=function(A){const e=A.scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];s.push("#version 300 es"),s.push("// Surface picking fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),s.push("in vec4 vColor;"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"));if(i){s.push("uniform bool clippable;"),s.push("in vec4 vWorldPosition;");for(let A=0;A 0.0) { discard; }"),s.push("}")}e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return s.push(" outColor = vColor;"),s.push("}"),s}(A)}}const He=g.vec3(),Se=function(A,e){this._hash=A,this._scene=e.scene,this._useCount=0,this._shaderSource=new ve(e),this._allocate(e)},je={};Se.get=function(A){const e=[A.scene.canvas.canvas.id,A.scene._sectionPlanesState.getHash(),A._geometry._state.compressGeometry?"cp":"",A._state.hash].join(";");let t=je[e];if(!t){if(t=new Se(e,A),t.errors)return console.log(t.errors.join("\n")),null;je[e]=t,l.memory.programs++}return t._useCount++,t},Se.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete je[this._hash],l.memory.programs--)},Se.prototype.webglContextRestored=function(){this._program=null},Se.prototype.drawMesh=function(A,e){this._program||this._allocate(e);const t=this._scene,i=t.canvas.gl,s=e._state,n=e._material._state,o=e._geometry,r=e._geometry._state,c=e.origin,a=n.backfaces,h=n.frontface,B=t.camera.project,g=o._getPickTrianglePositions(),l=o._getPickTriangleColors();if(this._program.bind(),A.useProgram++,t.logarithmicDepthBufferEnabled){const A=2/(Math.log(B.far+1)/Math.LN2);i.uniform1f(this._uLogDepthBufFC,A)}if(i.uniformMatrix4fv(this._uViewMatrix,!1,c?A.getRTCPickViewMatrix(s.originHash,c):A.pickViewMatrix),s.clippable){const A=t._sectionPlanesState.getNumAllocatedSectionPlanes(),s=t._sectionPlanesState.sectionPlanes.length;if(A>0){const n=t._sectionPlanesState.sectionPlanes,o=e.renderFlags;for(let e=0;e0,i=!!A._geometry._state.compressGeometry,s=A._state.billboard,n=A._state.stationary,o=[];o.push("#version 300 es"),o.push("// Mesh occlusion vertex shader"),o.push("in vec3 position;"),o.push("uniform mat4 modelMatrix;"),o.push("uniform mat4 viewMatrix;"),o.push("uniform mat4 projMatrix;"),o.push("uniform vec3 offset;"),i&&o.push("uniform mat4 positionsDecodeMatrix;");t&&o.push("out vec4 vWorldPosition;");e.logarithmicDepthBufferEnabled&&(o.push("uniform float logDepthBufFC;"),o.push("out float vFragDepth;"),o.push("bool isPerspectiveMatrix(mat4 m) {"),o.push(" return (m[2][3] == - 1.0);"),o.push("}"),o.push("out float isPerspective;"));"spherical"!==s&&"cylindrical"!==s||(o.push("void billboard(inout mat4 mat) {"),o.push(" mat[0][0] = 1.0;"),o.push(" mat[0][1] = 0.0;"),o.push(" mat[0][2] = 0.0;"),"spherical"===s&&(o.push(" mat[1][0] = 0.0;"),o.push(" mat[1][1] = 1.0;"),o.push(" mat[1][2] = 0.0;")),o.push(" mat[2][0] = 0.0;"),o.push(" mat[2][1] = 0.0;"),o.push(" mat[2][2] =1.0;"),o.push("}"));o.push("void main(void) {"),o.push("vec4 localPosition = vec4(position, 1.0); "),o.push("vec4 worldPosition;"),i&&o.push("localPosition = positionsDecodeMatrix * localPosition;");o.push("mat4 viewMatrix2 = viewMatrix;"),o.push("mat4 modelMatrix2 = modelMatrix;"),n&&o.push("viewMatrix2[3][0] = viewMatrix2[3][1] = viewMatrix2[3][2] = 0.0;");"spherical"===s||"cylindrical"===s?(o.push("mat4 modelViewMatrix = viewMatrix2 * modelMatrix2;"),o.push("billboard(modelMatrix2);"),o.push("billboard(viewMatrix2);"),o.push("billboard(modelViewMatrix);"),o.push("worldPosition = modelMatrix2 * localPosition;"),o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = modelViewMatrix * localPosition;")):(o.push("worldPosition = modelMatrix2 * localPosition;"),o.push("worldPosition.xyz = worldPosition.xyz + offset;"),o.push("vec4 viewPosition = viewMatrix2 * worldPosition; "));t&&o.push(" vWorldPosition = worldPosition;");o.push("vec4 clipPos = projMatrix * viewPosition;"),e.logarithmicDepthBufferEnabled&&(o.push("vFragDepth = 1.0 + clipPos.w;"),o.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"));return o.push("gl_Position = clipPos;"),o.push("}"),o}(A),this.fragment=function(A){const e=A.scene,t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];s.push("#version 300 es"),s.push("// Mesh occlusion fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),e.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;"));if(i){s.push("uniform bool clippable;"),s.push("in vec4 vWorldPosition;");for(var n=0;n 0.0) { discard; }"),s.push("}")}s.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),e.logarithmicDepthBufferEnabled&&s.push("gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");return s.push("}"),s}(A)}}const _e=g.vec3(),We=function(A,e){this._hash=A,this._shaderSource=new Oe(e),this._scene=e.scene,this._useCount=0,this._allocate(e)},Xe={};We.get=function(A){const e=[A.scene.canvas.canvas.id,A.scene._sectionPlanesState.getHash(),A._geometry._state.hash,A._state.occlusionHash].join(";");let t=Xe[e];if(!t){if(t=new We(e,A),t.errors)return console.log(t.errors.join("\n")),null;Xe[e]=t,l.memory.programs++}return t._useCount++,t},We.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Xe[this._hash],l.memory.programs--)},We.prototype.webglContextRestored=function(){this._program=null},We.prototype.drawMesh=function(A,e){this._program||this._allocate(e);const t=this._scene,i=t.canvas.gl,s=e._material._state,n=e._state,o=e._geometry._state,r=e.origin;if(s.alpha<1)return;if(A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram(A)),s.id!==this._lastMaterialId){const e=s.backfaces;A.backfaces!==e&&(e?i.disable(i.CULL_FACE):i.enable(i.CULL_FACE),A.backfaces=e);const t=s.frontface;A.frontface!==t&&(t?i.frontFace(i.CCW):i.frontFace(i.CW),A.frontface=t),this._lastMaterialId=s.id}const c=t.camera;if(i.uniformMatrix4fv(this._uViewMatrix,!1,r?A.getRTCViewMatrix(n.originHash,r):c.viewMatrix),n.clippable){const A=t._sectionPlanesState.getNumAllocatedSectionPlanes(),s=t._sectionPlanesState.sectionPlanes.length;if(A>0){const n=t._sectionPlanesState.sectionPlanes,o=e.renderFlags;for(let e=0;e0,i=!!A._geometry._state.compressGeometry,s=[];s.push("// Mesh shadow vertex shader"),s.push("in vec3 position;"),s.push("uniform mat4 modelMatrix;"),s.push("uniform mat4 shadowViewMatrix;"),s.push("uniform mat4 shadowProjMatrix;"),s.push("uniform vec3 offset;"),i&&s.push("uniform mat4 positionsDecodeMatrix;");t&&s.push("out vec4 vWorldPosition;");s.push("void main(void) {"),s.push("vec4 localPosition = vec4(position, 1.0); "),s.push("vec4 worldPosition;"),i&&s.push("localPosition = positionsDecodeMatrix * localPosition;");s.push("worldPosition = modelMatrix * localPosition;"),s.push("worldPosition.xyz = worldPosition.xyz + offset;"),s.push("vec4 viewPosition = shadowViewMatrix * worldPosition; "),t&&s.push("vWorldPosition = worldPosition;");return s.push(" gl_Position = shadowProjMatrix * viewPosition;"),s.push("}"),s}(A),this.fragment=function(A){const e=A.scene;e.canvas.gl;const t=e._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("// Mesh shadow fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),i){s.push("uniform bool clippable;"),s.push("in vec4 vWorldPosition;");for(var n=0;n 0.0) { discard; }"),s.push("}")}return s.push("outColor = encodeFloat(gl_FragCoord.z);"),s.push("}"),s}(A)}}const Ve=function(A,e){this._hash=A,this._shaderSource=new Le(e),this._scene=e.scene,this._useCount=0,this._allocate(e)},Ke={};Ve.get=function(A){const e=A.scene,t=[e.canvas.canvas.id,e._sectionPlanesState.getHash(),A._geometry._state.hash,A._state.hash].join(";");let i=Ke[t];if(!i){if(i=new Ve(t,A),i.errors)return console.log(i.errors.join("\n")),null;Ke[t]=i,l.memory.programs++}return i._useCount++,i},Ve.prototype.put=function(){0==--this._useCount&&(this._program&&this._program.destroy(),delete Ke[this._hash],l.memory.programs--)},Ve.prototype.webglContextRestored=function(){this._program=null},Ve.prototype.drawMesh=function(A,e){this._program||this._allocate(e);const t=this._scene.canvas.gl,i=e._material._state,s=e._geometry._state;if(A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram(A)),i.id!==this._lastMaterialId){const e=i.backfaces;A.backfaces!==e&&(e?t.disable(t.CULL_FACE):t.enable(t.CULL_FACE),A.backfaces=e);const s=i.frontface;A.frontface!==s&&(s?t.frontFace(t.CCW):t.frontFace(t.CW),A.frontface=s),A.lineWidth!==i.lineWidth&&(t.lineWidth(i.lineWidth),A.lineWidth=i.lineWidth),this._uPointSize&&t.uniform1i(this._uPointSize,i.pointSize),this._lastMaterialId=i.id}if(t.uniformMatrix4fv(this._uModelMatrix,t.FALSE,e.worldMatrix),s.combineGeometry){const i=e.vertexBufs;i.id!==this._lastVertexBufsId&&(i.positionsBuf&&this._aPosition&&(this._aPosition.bindArrayBuffer(i.positionsBuf,i.compressGeometry?t.UNSIGNED_SHORT:t.FLOAT),A.bindArray++),this._lastVertexBufsId=i.id)}this._uClippable&&t.uniform1i(this._uClippable,e._state.clippable),t.uniform3fv(this._uOffset,e._state.offset),s.id!==this._lastGeometryId&&(this._uPositionsDecodeMatrix&&t.uniformMatrix4fv(this._uPositionsDecodeMatrix,!1,s.positionsDecodeMatrix),s.combineGeometry?s.indicesBufCombined&&(s.indicesBufCombined.bind(),A.bindArray++):(this._aPosition&&(this._aPosition.bindArrayBuffer(s.positionsBuf,s.compressGeometry?t.UNSIGNED_SHORT:t.FLOAT),A.bindArray++),s.indicesBuf&&(s.indicesBuf.bind(),A.bindArray++)),this._lastGeometryId=s.id),s.combineGeometry?s.indicesBufCombined&&(t.drawElements(s.primitive,s.indicesBufCombined.numItems,s.indicesBufCombined.itemType,0),A.drawElements++):s.indicesBuf?(t.drawElements(s.primitive,s.indicesBuf.numItems,s.indicesBuf.itemType,0),A.drawElements++):s.positions&&(t.drawArrays(t.TRIANGLES,0,s.positions.numItems),A.drawArrays++)},Ve.prototype._allocate=function(A){const e=A.scene,t=e.canvas.gl;if(this._program=new de(t,this._shaderSource),this._scene=e,this._useCount=0,this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uPositionsDecodeMatrix=i.getLocation("positionsDecodeMatrix"),this._uModelMatrix=i.getLocation("modelMatrix"),this._uShadowViewMatrix=i.getLocation("shadowViewMatrix"),this._uShadowProjMatrix=i.getLocation("shadowProjMatrix"),this._uSectionPlanes={};for(let A=0,t=e._sectionPlanesState.sectionPlanes.length;A0){let A,e,s,n,o;for(let r=0,c=this._uSectionPlanes.length;r0)for(let t=0;t0!==A))&&this.scene._objectOffsetUpdated(this,!1)),this._isModel&&this.scene._deregisterModel(this),this.glRedraw()}}const at=function(){const A=g.vec3(),e=g.vec3(),t=g.vec3(),i=g.vec3(),s=g.vec3(),n=g.vec3(),o=g.vec4(),r=g.vec3(),c=g.vec3(),a=g.vec3(),h=g.vec3(),B=g.vec3(),l=g.vec3(),E=g.vec3(),Q=g.vec3(),M=g.vec3(),u=g.vec4(),w=g.vec4(),d=g.vec4(),C=g.vec3(),x=g.vec3(),F=g.vec3(),p=g.vec3(),I=g.vec3(),f=g.vec3(),Y=g.vec3(),D=g.vec3(),m=g.vec3(),J=g.vec3(),N=g.vec3();return function(y,z,T,U,R){var b=R.primIndex;if(null!=b&&b>-1){const v=y.geometry._state,H=y.scene,S=H.camera,j=H.canvas;if("triangles"===v.primitiveName){R.primitive="triangle";const H=b,O=v.indices,_=v.positions;let W,X,L;if(O){var k=O[H+0],P=O[H+1],G=O[H+2];n[0]=k,n[1]=P,n[2]=G,R.indices=n,W=3*k,X=3*P,L=3*G}else W=3*H,X=W+3,L=X+3;if(t[0]=_[W+0],t[1]=_[W+1],t[2]=_[W+2],i[0]=_[X+0],i[1]=_[X+1],i[2]=_[X+2],s[0]=_[L+0],s[1]=_[L+1],s[2]=_[L+2],v.compressGeometry){const A=v.positionsDecodeMatrix;A&&(oA.decompressPosition(t,A,t),oA.decompressPosition(i,A,i),oA.decompressPosition(s,A,s))}R.canvasPos?g.canvasPosToLocalRay(j.canvas,y.origin?UA(z,y.origin):z,T,U,y.worldMatrix,R.canvasPos,A,e):R.origin&&R.direction&&g.worldRayToLocalRay(y.worldMatrix,R.origin,R.direction,A,e),g.normalizeVec3(e),g.rayPlaneIntersect(A,e,t,i,s,o),R.localPos=o,R.position=o,u[0]=o[0],u[1]=o[1],u[2]=o[2],u[3]=1,g.transformVec4(y.worldMatrix,u,w),r[0]=w[0],r[1]=w[1],r[2]=w[2],R.canvasPos&&y.origin&&(r[0]+=y.origin[0],r[1]+=y.origin[1],r[2]+=y.origin[2]),R.worldPos=r,g.transformVec4(S.matrix,w,d),c[0]=d[0],c[1]=d[1],c[2]=d[2],R.viewPos=c,g.cartesianToBarycentric(o,t,i,s,a),R.bary=a;const V=v.normals;if(V){if(v.compressGeometry){const A=3*k,e=3*P,t=3*G;oA.decompressNormal(V.subarray(A,A+2),h),oA.decompressNormal(V.subarray(e,e+2),B),oA.decompressNormal(V.subarray(t,t+2),l)}else h[0]=V[W],h[1]=V[W+1],h[2]=V[W+2],B[0]=V[X],B[1]=V[X+1],B[2]=V[X+2],l[0]=V[L],l[1]=V[L+1],l[2]=V[L+2];const A=g.addVec3(g.addVec3(g.mulVec3Scalar(h,a[0],C),g.mulVec3Scalar(B,a[1],x),F),g.mulVec3Scalar(l,a[2],p),I);R.worldNormal=g.normalizeVec3(g.transformVec3(y.worldNormalMatrix,A,f))}const K=v.uv;if(K){if(E[0]=K[2*k],E[1]=K[2*k+1],Q[0]=K[2*P],Q[1]=K[2*P+1],M[0]=K[2*G],M[1]=K[2*G+1],v.compressGeometry){const A=v.uvDecodeMatrix;A&&(oA.decompressUV(E,A,E),oA.decompressUV(Q,A,Q),oA.decompressUV(M,A,M))}R.uv=g.addVec3(g.addVec3(g.mulVec2Scalar(E,a[0],Y),g.mulVec2Scalar(Q,a[1],D),m),g.mulVec2Scalar(M,a[2],J),N)}}}}}();class ht extends N{get type(){return"Material"}constructor(A,e={}){super(A,e),l.memory.materials++}destroy(){super.destroy(),l.memory.materials--}}const Bt={opaque:0,mask:1,blend:2},gt=["opaque","mask","blend"];class lt extends ht{get type(){return"PhongMaterial"}constructor(A,e={}){super(A,e),this._state=new Z({type:"PhongMaterial",ambient:g.vec3([1,1,1]),diffuse:g.vec3([1,1,1]),specular:g.vec3([1,1,1]),emissive:g.vec3([0,0,0]),alpha:null,shininess:null,reflectivity:null,alphaMode:null,alphaCutoff:null,lineWidth:null,pointSize:null,backfaces:null,frontface:null,hash:null}),this.ambient=e.ambient,this.diffuse=e.diffuse,this.specular=e.specular,this.emissive=e.emissive,this.alpha=e.alpha,this.shininess=e.shininess,this.reflectivity=e.reflectivity,this.lineWidth=e.lineWidth,this.pointSize=e.pointSize,e.ambientMap&&(this._ambientMap=this._checkComponent("Texture",e.ambientMap)),e.diffuseMap&&(this._diffuseMap=this._checkComponent("Texture",e.diffuseMap)),e.specularMap&&(this._specularMap=this._checkComponent("Texture",e.specularMap)),e.emissiveMap&&(this._emissiveMap=this._checkComponent("Texture",e.emissiveMap)),e.alphaMap&&(this._alphaMap=this._checkComponent("Texture",e.alphaMap)),e.reflectivityMap&&(this._reflectivityMap=this._checkComponent("Texture",e.reflectivityMap)),e.normalMap&&(this._normalMap=this._checkComponent("Texture",e.normalMap)),e.occlusionMap&&(this._occlusionMap=this._checkComponent("Texture",e.occlusionMap)),e.diffuseFresnel&&(this._diffuseFresnel=this._checkComponent("Fresnel",e.diffuseFresnel)),e.specularFresnel&&(this._specularFresnel=this._checkComponent("Fresnel",e.specularFresnel)),e.emissiveFresnel&&(this._emissiveFresnel=this._checkComponent("Fresnel",e.emissiveFresnel)),e.alphaFresnel&&(this._alphaFresnel=this._checkComponent("Fresnel",e.alphaFresnel)),e.reflectivityFresnel&&(this._reflectivityFresnel=this._checkComponent("Fresnel",e.reflectivityFresnel)),this.alphaMode=e.alphaMode,this.alphaCutoff=e.alphaCutoff,this.backfaces=e.backfaces,this.frontface=e.frontface,this._makeHash()}_makeHash(){const A=this._state,e=["/p"];this._normalMap&&(e.push("/nm"),this._normalMap.hasMatrix&&e.push("/mat")),this._ambientMap&&(e.push("/am"),this._ambientMap.hasMatrix&&e.push("/mat"),e.push("/"+this._ambientMap.encoding)),this._diffuseMap&&(e.push("/dm"),this._diffuseMap.hasMatrix&&e.push("/mat"),e.push("/"+this._diffuseMap.encoding)),this._specularMap&&(e.push("/sm"),this._specularMap.hasMatrix&&e.push("/mat")),this._emissiveMap&&(e.push("/em"),this._emissiveMap.hasMatrix&&e.push("/mat"),e.push("/"+this._emissiveMap.encoding)),this._alphaMap&&(e.push("/opm"),this._alphaMap.hasMatrix&&e.push("/mat")),this._reflectivityMap&&(e.push("/rm"),this._reflectivityMap.hasMatrix&&e.push("/mat")),this._occlusionMap&&(e.push("/ocm"),this._occlusionMap.hasMatrix&&e.push("/mat")),this._diffuseFresnel&&e.push("/df"),this._specularFresnel&&e.push("/sf"),this._emissiveFresnel&&e.push("/ef"),this._alphaFresnel&&e.push("/of"),this._reflectivityFresnel&&e.push("/rf"),e.push(";"),A.hash=e.join("")}set ambient(A){let e=this._state.ambient;if(e){if(A&&e[0]===A[0]&&e[1]===A[1]&&e[2]===A[2])return}else e=this._state.ambient=new Float32Array(3);A?(e[0]=A[0],e[1]=A[1],e[2]=A[2]):(e[0]=.2,e[1]=.2,e[2]=.2),this.glRedraw()}get ambient(){return this._state.ambient}set diffuse(A){let e=this._state.diffuse;if(e){if(A&&e[0]===A[0]&&e[1]===A[1]&&e[2]===A[2])return}else e=this._state.diffuse=new Float32Array(3);A?(e[0]=A[0],e[1]=A[1],e[2]=A[2]):(e[0]=1,e[1]=1,e[2]=1),this.glRedraw()}get diffuse(){return this._state.diffuse}set specular(A){let e=this._state.specular;if(e){if(A&&e[0]===A[0]&&e[1]===A[1]&&e[2]===A[2])return}else e=this._state.specular=new Float32Array(3);A?(e[0]=A[0],e[1]=A[1],e[2]=A[2]):(e[0]=1,e[1]=1,e[2]=1),this.glRedraw()}get specular(){return this._state.specular}set emissive(A){let e=this._state.emissive;if(e){if(A&&e[0]===A[0]&&e[1]===A[1]&&e[2]===A[2])return}else e=this._state.emissive=new Float32Array(3);A?(e[0]=A[0],e[1]=A[1],e[2]=A[2]):(e[0]=0,e[1]=0,e[2]=0),this.glRedraw()}get emissive(){return this._state.emissive}set alpha(A){A=null!=A?A:1,this._state.alpha!==A&&(this._state.alpha=A,this.glRedraw())}get alpha(){return this._state.alpha}set shininess(A){this._state.shininess=void 0!==A?A:80,this.glRedraw()}get shininess(){return this._state.shininess}set lineWidth(A){this._state.lineWidth=A||1,this.glRedraw()}get lineWidth(){return this._state.lineWidth}set pointSize(A){this._state.pointSize=A||1,this.glRedraw()}get pointSize(){return this._state.pointSize}set reflectivity(A){this._state.reflectivity=void 0!==A?A:1,this.glRedraw()}get reflectivity(){return this._state.reflectivity}get normalMap(){return this._normalMap}get ambientMap(){return this._ambientMap}get diffuseMap(){return this._diffuseMap}get specularMap(){return this._specularMap}get emissiveMap(){return this._emissiveMap}get alphaMap(){return this._alphaMap}get reflectivityMap(){return this._reflectivityMap}get occlusionMap(){return this._occlusionMap}get diffuseFresnel(){return this._diffuseFresnel}get specularFresnel(){return this._specularFresnel}get emissiveFresnel(){return this._emissiveFresnel}get alphaFresnel(){return this._alphaFresnel}get reflectivityFresnel(){return this._reflectivityFresnel}set alphaMode(A){let e=Bt[A=A||"opaque"];void 0===e&&(this.error("Unsupported value for 'alphaMode': "+A+" - defaulting to 'opaque'"),e="opaque"),this._state.alphaMode!==e&&(this._state.alphaMode=e,this.glRedraw())}get alphaMode(){return gt[this._state.alphaMode]}set alphaCutoff(A){null==A&&(A=.5),this._state.alphaCutoff!==A&&(this._state.alphaCutoff=A)}get alphaCutoff(){return this._state.alphaCutoff}set backfaces(A){A=!!A,this._state.backfaces!==A&&(this._state.backfaces=A,this.glRedraw())}get backfaces(){return this._state.backfaces}set frontface(A){A="cw"!==A,this._state.frontface!==A&&(this._state.frontface=A,this.glRedraw())}get frontface(){return this._state.frontface?"ccw":"cw"}destroy(){super.destroy(),this._state.destroy()}}function Et(A,e){if(void 0===A._cachedExtensions&&(A._cachedExtensions={}),void 0!==A._cachedExtensions[e])return A._cachedExtensions[e];let t;switch(e){case"WEBGL_depth_texture":t=A.getExtension("WEBGL_depth_texture")||A.getExtension("MOZ_WEBGL_depth_texture")||A.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":t=A.getExtension("EXT_texture_filter_anisotropic")||A.getExtension("MOZ_EXT_texture_filter_anisotropic")||A.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":t=A.getExtension("WEBGL_compressed_texture_s3tc")||A.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||A.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":t=A.getExtension("WEBGL_compressed_texture_pvrtc")||A.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:t=A.getExtension(e)}return A._cachedExtensions[e]=t,t}function Qt(A,e,t=null){let i;const s=e;if(1009===s)return A.UNSIGNED_BYTE;if(1017===s)return A.UNSIGNED_SHORT_4_4_4_4;if(1018===s)return A.UNSIGNED_SHORT_5_5_5_1;if(1010===s)return A.BYTE;if(1011===s)return A.SHORT;if(1012===s)return A.UNSIGNED_SHORT;if(1013===s)return A.INT;if(1014===s)return A.UNSIGNED_INT;if(1015===s)return A.FLOAT;if(1016===s)return A.HALF_FLOAT;if(1021===s)return A.ALPHA;if(s===LA)return A.RGBA;if(1024===s)return A.LUMINANCE;if(1025===s)return A.LUMINANCE_ALPHA;if(1026===s)return A.DEPTH_COMPONENT;if(1027===s)return A.DEPTH_STENCIL;if(1028===s)return A.RED;if(1022===s)return A.RGBA;if(1029===s)return A.RED_INTEGER;if(1030===s)return A.RG;if(1031===s)return A.RG_INTEGER;if(1033===s)return A.RGBA_INTEGER;if(s===VA||s===KA||s===ZA||s===qA)if(t===oe){const e=Et(A,"WEBGL_compressed_texture_s3tc_srgb");if(null===e)return null;if(s===VA)return e.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(s===KA)return e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(s===ZA)return e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(s===qA)return e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{if(i=Et(A,"WEBGL_compressed_texture_s3tc"),null===i)return null;if(s===VA)return i.COMPRESSED_RGB_S3TC_DXT1_EXT;if(s===KA)return i.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(s===ZA)return i.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(s===qA)return i.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(s===$A||35841===s||s===Ae||35843===s){const e=Et(A,"WEBGL_compressed_texture_pvrtc");if(null===e)return null;if(s===$A)return e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(35841===s)return e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(s===Ae)return e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(35843===s)return e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(36196===s){const e=Et(A,"WEBGL_compressed_texture_etc1");return null!==e?e.COMPRESSED_RGB_ETC1_WEBGL:null}if(s===ee||s===te){const e=Et(A,"WEBGL_compressed_texture_etc");if(null===e)return null;if(s===ee)return t===oe?e.COMPRESSED_SRGB8_ETC2:e.COMPRESSED_RGB8_ETC2;if(s===te)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:e.COMPRESSED_RGBA8_ETC2_EAC}if(s===ie||37809===s||37810===s||37811===s||37812===s||37813===s||37814===s||37815===s||37816===s||37817===s||37818===s||37819===s||37820===s||37821===s){const e=Et(A,"WEBGL_compressed_texture_astc");if(null===e)return null;if(s===ie)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:e.COMPRESSED_RGBA_ASTC_4x4_KHR;if(37809===s)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:e.COMPRESSED_RGBA_ASTC_5x4_KHR;if(37810===s)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:e.COMPRESSED_RGBA_ASTC_5x5_KHR;if(37811===s)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:e.COMPRESSED_RGBA_ASTC_6x5_KHR;if(37812===s)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:e.COMPRESSED_RGBA_ASTC_6x6_KHR;if(37813===s)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:e.COMPRESSED_RGBA_ASTC_8x5_KHR;if(37814===s)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:e.COMPRESSED_RGBA_ASTC_8x6_KHR;if(37815===s)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:e.COMPRESSED_RGBA_ASTC_8x8_KHR;if(37816===s)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:e.COMPRESSED_RGBA_ASTC_10x5_KHR;if(37817===s)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:e.COMPRESSED_RGBA_ASTC_10x6_KHR;if(37818===s)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:e.COMPRESSED_RGBA_ASTC_10x8_KHR;if(37819===s)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:e.COMPRESSED_RGBA_ASTC_10x10_KHR;if(37820===s)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:e.COMPRESSED_RGBA_ASTC_12x10_KHR;if(37821===s)return t===oe?e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:e.COMPRESSED_RGBA_ASTC_12x12_KHR}if(s===se){const e=Et(A,"EXT_texture_compression_bptc");if(null===e)return null;if(s===se)return t===oe?e.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:e.COMPRESSED_RGBA_BPTC_UNORM_EXT}return 1020===s?A.UNSIGNED_INT_24_8:s===PA?A.REPEAT:s===GA?A.CLAMP_TO_EDGE:s===SA||s===jA?A.NEAREST_MIPMAP_LINEAR:s===_A?A.LINEAR_MIPMAP_NEAREST:s===XA?A.LINEAR_MIPMAP_LINEAR:s===HA?A.NEAREST:s===OA?A.LINEAR:null}const Mt=new Uint8Array([0,0,0,1]);class ut{constructor({gl:A,target:e,format:t,type:i,wrapS:s,wrapT:n,wrapR:o,encoding:r,preloadColor:c,premultiplyAlpha:a,flipY:h}){this.gl=A,this.target=e||A.TEXTURE_2D,this.format=t||LA,this.type=i||1009,this.internalFormat=null,this.premultiplyAlpha=!!a,this.flipY=!!h,this.unpackAlignment=4,this.wrapS=s||PA,this.wrapT=n||PA,this.wrapR=o||PA,this.encoding=r||oe,this.texture=A.createTexture(),c&&this.setPreloadColor(c),this.allocated=!0}setPreloadColor(A){A?(Mt[0]=Math.floor(255*A[0]),Mt[1]=Math.floor(255*A[1]),Mt[2]=Math.floor(255*A[2]),Mt[3]=Math.floor(255*(void 0!==A[3]?A[3]:1))):(Mt[0]=0,Mt[1]=0,Mt[2]=0,Mt[3]=255);const e=this.gl;if(e.bindTexture(this.target,this.texture),this.target===e.TEXTURE_CUBE_MAP){const A=[e.TEXTURE_CUBE_MAP_POSITIVE_X,e.TEXTURE_CUBE_MAP_NEGATIVE_X,e.TEXTURE_CUBE_MAP_POSITIVE_Y,e.TEXTURE_CUBE_MAP_NEGATIVE_Y,e.TEXTURE_CUBE_MAP_POSITIVE_Z,e.TEXTURE_CUBE_MAP_NEGATIVE_Z];for(let t=0,i=A.length;t1;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,this.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,this.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE);const n=Qt(t,this.wrapS);n&&t.texParameteri(this.target,t.TEXTURE_WRAP_S,n);const o=Qt(t,this.wrapT);if(o&&t.texParameteri(this.target,t.TEXTURE_WRAP_T,o),this.type===t.TEXTURE_3D||this.type===t.TEXTURE_2D_ARRAY){const A=Qt(t,this.wrapR);A&&t.texParameteri(this.target,t.TEXTURE_WRAP_R,A),t.texParameteri(this.type,t.TEXTURE_WRAP_R,A)}s?(t.texParameteri(this.target,t.TEXTURE_MIN_FILTER,dt(t,this.minFilter)),t.texParameteri(this.target,t.TEXTURE_MAG_FILTER,dt(t,this.magFilter))):(t.texParameteri(this.target,t.TEXTURE_MIN_FILTER,Qt(t,this.minFilter)),t.texParameteri(this.target,t.TEXTURE_MAG_FILTER,Qt(t,this.magFilter)));const r=Qt(t,this.format,this.encoding),c=Qt(t,this.type),a=wt(t,this.internalFormat,r,c,this.encoding,!1);t.texStorage2D(t.TEXTURE_2D,i,a,A[0].width,A[0].height);for(let e=0,i=A.length;e>e;return A+1}class pt extends N{get type(){return"Texture"}constructor(A,e={}){super(A,e),this._state=new Z({texture:new ut({gl:this.scene.canvas.gl}),matrix:g.identityMat4(),hasMatrix:e.translate&&(0!==e.translate[0]||0!==e.translate[1])||!!e.rotate||e.scale&&(0!==e.scale[0]||0!==e.scale[1]),minFilter:this._checkMinFilter(e.minFilter),magFilter:this._checkMagFilter(e.magFilter),wrapS:this._checkWrapS(e.wrapS),wrapT:this._checkWrapT(e.wrapT),flipY:this._checkFlipY(e.flipY),encoding:this._checkEncoding(e.encoding)}),this._src=null,this._image=null,this._translate=g.vec2([0,0]),this._scale=g.vec2([1,1]),this._rotate=g.vec2([0,0]),this._matrixDirty=!1,this.translate=e.translate,this.scale=e.scale,this.rotate=e.rotate,e.src?this.src=e.src:e.image&&(this.image=e.image),l.memory.textures++}_checkMinFilter(A){return(A=A||XA)!==OA&&A!==_A&&A!==XA&&A!==jA&&A!==SA&&(this.error("Unsupported value for 'minFilter' - supported values are LinearFilter, LinearMipMapNearestFilter, NearestMipMapNearestFilter, NearestMipMapLinearFilter and LinearMipMapLinearFilter. Defaulting to LinearMipMapLinearFilter."),A=XA),A}_checkMagFilter(A){return(A=A||OA)!==OA&&A!==HA&&(this.error("Unsupported value for 'magFilter' - supported values are LinearFilter and NearestFilter. Defaulting to LinearFilter."),A=OA),A}_checkWrapS(A){return(A=A||PA)!==GA&&A!==vA&&A!==PA&&(this.error("Unsupported value for 'wrapS' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),A=PA),A}_checkWrapT(A){return(A=A||PA)!==GA&&A!==vA&&A!==PA&&(this.error("Unsupported value for 'wrapT' - supported values are ClampToEdgeWrapping, MirroredRepeatWrapping and RepeatWrapping. Defaulting to RepeatWrapping."),A=PA),A}_checkFlipY(A){return!!A}_checkEncoding(A){return(A=A||ne)!==ne&&A!==oe&&(this.error("Unsupported value for 'encoding' - supported values are LinearEncoding and sRGBEncoding. Defaulting to LinearEncoding."),A=ne),A}_webglContextRestored(){this._state.texture=new ut({gl:this.scene.canvas.gl}),this._image?this.image=this._image:this._src&&(this.src=this._src)}_update(){const A=this._state;if(this._matrixDirty){let e,t;0===this._translate[0]&&0===this._translate[1]||(e=g.translationMat4v([this._translate[0],this._translate[1],0],this._state.matrix)),1===this._scale[0]&&1===this._scale[1]||(t=g.scalingMat4v([this._scale[0],this._scale[1],1]),e=e?g.mulMat4(e,t):t),0!==this._rotate&&(t=g.rotationMat4v(.0174532925*this._rotate,[0,0,1]),e=e?g.mulMat4(e,t):t),e&&(A.matrix=e),this._matrixDirty=!1}this.glRedraw()}set image(A){this._image=Ct(A),this._image.crossOrigin="Anonymous",this._state.texture.setImage(this._image,this._state),this._src=null,this.glRedraw()}get image(){return this._image}set src(A){this.scene.loading++,this.scene.canvas.spinner.processes++;const e=this;let t=new Image;t.onload=function(){t=Ct(t),e._state.texture.setImage(t,e._state),e.scene.loading--,e.glRedraw(),e.scene.canvas.spinner.processes--},t.src=A,this._src=A,this._image=null}get src(){return this._src}set translate(A){this._translate.set(A||[0,0]),this._matrixDirty=!0,this._needUpdate()}get translate(){return this._translate}set scale(A){this._scale.set(A||[1,1]),this._matrixDirty=!0,this._needUpdate()}get scale(){return this._scale}set rotate(A){A=A||0,this._rotate!==A&&(this._rotate=A,this._matrixDirty=!0,this._needUpdate())}get rotate(){return this._rotate}get minFilter(){return this._state.minFilter}get magFilter(){return this._state.magFilter}get wrapS(){return this._state.wrapS}get wrapT(){return this._state.wrapT}get flipY(){return this._state.flipY}get encoding(){return this._state.encoding}destroy(){super.destroy(),this._state.texture&&this._state.texture.destroy(),this._state.destroy(),l.memory.textures--}}g.vec3(),g.vec3(),g.vec3(),g.vec3([0,-1,0]),g.vec4([0,0,0,1]);const It={default:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.2,.2,.2],edgeAlpha:.5,edgeWidth:1},defaultWhiteBG:{fill:!0,fillColor:[1,1,1],fillAlpha:.6,edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultLightBG:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.2,.2,.2],edgeAlpha:.5,edgeWidth:1},defaultDarkBG:{fill:!0,fillColor:[.4,.4,.4],fillAlpha:.2,edges:!0,edgeColor:[.5,.5,.5],edgeAlpha:.5,edgeWidth:1},phosphorous:{fill:!0,fillColor:[0,0,0],fillAlpha:.4,edges:!0,edgeColor:[.9,.9,.9],edgeAlpha:.5,edgeWidth:2},sunset:{fill:!0,fillColor:[.9,.9,.6],fillAlpha:.2,edges:!0,edgeColor:[.9,.9,.9],edgeAlpha:.5,edgeWidth:1},vectorscope:{fill:!0,fillColor:[0,0,0],fillAlpha:.7,edges:!0,edgeColor:[.2,1,.2],edgeAlpha:1,edgeWidth:2},battlezone:{fill:!0,fillColor:[0,0,0],fillAlpha:1,edges:!0,edgeColor:[.2,1,.2],edgeAlpha:1,edgeWidth:3},sepia:{fill:!0,fillColor:[.970588207244873,.7965892553329468,.6660899519920349],fillAlpha:.4,edges:!0,edgeColor:[.529411792755127,.4577854573726654,.4100345969200134],edgeAlpha:1,edgeWidth:1},yellowHighlight:{fill:!0,fillColor:[1,1,0],fillAlpha:.5,edges:!0,edgeColor:[1,1,1],edgeAlpha:1,edgeWidth:1},greenSelected:{fill:!0,fillColor:[0,1,0],fillAlpha:.5,edges:!0,edgeColor:[1,1,1],edgeAlpha:1,edgeWidth:1},gamegrid:{fill:!0,fillColor:[.2,.2,.7],fillAlpha:.9,edges:!0,edgeColor:[.4,.4,1.6],edgeAlpha:.8,edgeWidth:3}};class ft extends ht{get type(){return"EmphasisMaterial"}get presets(){return It}constructor(A,e={}){super(A,e),this._state=new Z({type:"EmphasisMaterial",fill:null,fillColor:null,fillAlpha:null,edges:null,edgeColor:null,edgeAlpha:null,edgeWidth:null,backfaces:!0,glowThrough:!0}),this._preset="default",e.preset?(this.preset=e.preset,void 0!==e.fill&&(this.fill=e.fill),e.fillColor&&(this.fillColor=e.fillColor),void 0!==e.fillAlpha&&(this.fillAlpha=e.fillAlpha),void 0!==e.edges&&(this.edges=e.edges),e.edgeColor&&(this.edgeColor=e.edgeColor),void 0!==e.edgeAlpha&&(this.edgeAlpha=e.edgeAlpha),void 0!==e.edgeWidth&&(this.edgeWidth=e.edgeWidth),void 0!==e.backfaces&&(this.backfaces=e.backfaces),void 0!==e.glowThrough&&(this.glowThrough=e.glowThrough)):(this.fill=e.fill,this.fillColor=e.fillColor,this.fillAlpha=e.fillAlpha,this.edges=e.edges,this.edgeColor=e.edgeColor,this.edgeAlpha=e.edgeAlpha,this.edgeWidth=e.edgeWidth,this.backfaces=e.backfaces,this.glowThrough=e.glowThrough)}set fill(A){A=!1!==A,this._state.fill!==A&&(this._state.fill=A,this.glRedraw())}get fill(){return this._state.fill}set fillColor(A){let e=this._state.fillColor;if(e){if(A&&e[0]===A[0]&&e[1]===A[1]&&e[2]===A[2])return}else e=this._state.fillColor=new Float32Array(3);A?(e[0]=A[0],e[1]=A[1],e[2]=A[2]):(e[0]=.4,e[1]=.4,e[2]=.4),this.glRedraw()}get fillColor(){return this._state.fillColor}set fillAlpha(A){A=null!=A?A:.2,this._state.fillAlpha!==A&&(this._state.fillAlpha=A,this.glRedraw())}get fillAlpha(){return this._state.fillAlpha}set edges(A){A=!1!==A,this._state.edges!==A&&(this._state.edges=A,this.glRedraw())}get edges(){return this._state.edges}set edgeColor(A){let e=this._state.edgeColor;if(e){if(A&&e[0]===A[0]&&e[1]===A[1]&&e[2]===A[2])return}else e=this._state.edgeColor=new Float32Array(3);A?(e[0]=A[0],e[1]=A[1],e[2]=A[2]):(e[0]=.2,e[1]=.2,e[2]=.2),this.glRedraw()}get edgeColor(){return this._state.edgeColor}set edgeAlpha(A){A=null!=A?A:.5,this._state.edgeAlpha!==A&&(this._state.edgeAlpha=A,this.glRedraw())}get edgeAlpha(){return this._state.edgeAlpha}set edgeWidth(A){this._state.edgeWidth=A||1,this.glRedraw()}get edgeWidth(){return this._state.edgeWidth}set backfaces(A){A=!!A,this._state.backfaces!==A&&(this._state.backfaces=A,this.glRedraw())}get backfaces(){return this._state.backfaces}set glowThrough(A){A=!1!==A,this._state.glowThrough!==A&&(this._state.glowThrough=A,this.glRedraw())}get glowThrough(){return this._state.glowThrough}set preset(A){if(console.warn("EmphasisMaterial.preset is deprecated and will be removed in future versions."),A=A||"default",this._preset===A)return;const e=It[A];e?(this.fill=e.fill,this.fillColor=e.fillColor,this.fillAlpha=e.fillAlpha,this.edges=e.edges,this.edgeColor=e.edgeColor,this.edgeAlpha=e.edgeAlpha,this.edgeWidth=e.edgeWidth,this.glowThrough=e.glowThrough,this._preset=A):this.error("unsupported preset: '"+A+"' - supported values are "+Object.keys(It).join(", "))}get preset(){return console.warn("EmphasisMaterial.preset is deprecated and will be removed in future versions."),this._preset}destroy(){super.destroy(),this._state.destroy()}}const Yt={default:{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1},defaultWhiteBG:{edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultLightBG:{edgeColor:[.2,.2,.2],edgeAlpha:1,edgeWidth:1},defaultDarkBG:{edgeColor:[.5,.5,.5],edgeAlpha:1,edgeWidth:1}};class Dt extends ht{get type(){return"EdgeMaterial"}get presets(){return Yt}constructor(A,e={}){super(A,e),this._state=new Z({type:"EdgeMaterial",edges:null,edgeColor:null,edgeAlpha:null,edgeWidth:null}),this._preset="default",e.preset?(this.preset=e.preset,e.edgeColor&&(this.edgeColor=e.edgeColor),void 0!==e.edgeAlpha&&(this.edgeAlpha=e.edgeAlpha),void 0!==e.edgeWidth&&(this.edgeWidth=e.edgeWidth)):(this.edgeColor=e.edgeColor,this.edgeAlpha=e.edgeAlpha,this.edgeWidth=e.edgeWidth),this.edges=!1!==e.edges}set edges(A){A=!1!==A,this._state.edges!==A&&(this._state.edges=A,this.glRedraw())}get edges(){return this._state.edges}set edgeColor(A){let e=this._state.edgeColor;if(e){if(A&&e[0]===A[0]&&e[1]===A[1]&&e[2]===A[2])return}else e=this._state.edgeColor=new Float32Array(3);A?(e[0]=A[0],e[1]=A[1],e[2]=A[2]):(e[0]=.2,e[1]=.2,e[2]=.2),this.glRedraw()}get edgeColor(){return this._state.edgeColor}set edgeAlpha(A){A=null!=A?A:1,this._state.edgeAlpha!==A&&(this._state.edgeAlpha=A,this.glRedraw())}get edgeAlpha(){return this._state.edgeAlpha}set edgeWidth(A){this._state.edgeWidth=A||1,this.glRedraw()}get edgeWidth(){return this._state.edgeWidth}set preset(A){if(A=A||"default",this._preset===A)return;const e=Yt[A];e?(this.edgeColor=e.edgeColor,this.edgeAlpha=e.edgeAlpha,this.edgeWidth=e.edgeWidth,this._preset=A):this.error("unsupported preset: '"+A+"' - supported values are "+Object.keys(Yt).join(", "))}get preset(){return this._preset}destroy(){super.destroy(),this._state.destroy()}}class mt extends N{constructor(A,e={}){super(A,e),this._type=e.type||(e.src?e.src.split(".").pop():null)||"jpg",this._pos=g.vec3(e.pos||[0,0,0]),this._up=g.vec3(e.up||[0,1,0]),this._normal=g.vec3(e.normal||[0,0,1]),this._height=e.height||1,this._origin=g.vec3(),this._rtcPos=g.vec3(),this._imageSize=g.vec2(),this._texture=new pt(this,{flipY:!0}),this._image=new Image,"jpg"!==this._type&&"png"!==this._type&&(this.error('Unsupported type - defaulting to "jpg"'),this._type="jpg"),this._node=new yA(this,{matrix:g.inverseMat4(g.lookAtMat4v(this._pos,g.subVec3(this._pos,this._normal,g.mat4()),this._up,g.mat4())),children:[this._bitmapMesh=new ct(this,{scale:[1,1,1],rotation:[-90,0,0],collidable:e.collidable,pickable:e.pickable,opacity:e.opacity,clippable:e.clippable,geometry:new aA(this,MA({center:[0,0,0],xSize:1,zSize:1,xSegments:2,zSegments:2})),material:new lt(this,{diffuse:[0,0,0],ambient:[0,0,0],specular:[0,0,0],diffuseMap:this._texture,emissiveMap:this._texture,backfaces:!0})})]}),e.image?this.image=e.image:e.src?this.src=e.src:e.imageData&&(this.imageData=e.imageData),this.scene._bitmapCreated(this)}set visible(A){this._bitmapMesh.visible=A}get visible(){return this._bitmapMesh.visible}set image(A){this._image=A,this._image&&(this._texture.image=this._image,this._imageSize[0]=this._image.width,this._imageSize[1]=this._image.height,this._updateBitmapMeshScale())}get image(){return this._image}set src(A){if(A){this._image.onload=()=>{this._texture.image=this._image,this._imageSize[0]=this._image.width,this._imageSize[1]=this._image.height,this._updateBitmapMeshScale()},this._image.src=A;switch(A.split(".").pop()){case"jpeg":case"jpg":this._type="jpg";break;case"png":this._type="png"}}}get src(){return this._image.src}set imageData(A){this._image.onload=()=>{this._texture.image=image,this._imageSize[0]=image.width,this._imageSize[1]=image.height,this._updateBitmapMeshScale()},this._image.src=A}get imageData(){const A=document.createElement("canvas"),e=A.getContext("2d");return A.width=this._image.width,A.height=this._image.height,e.drawImage(this._image,0,0),A.toDataURL("jpg"===this._type?"image/jpeg":"image/png")}set type(A){"png"===(A=A||"jpg")&&"jpg"===A||(this.error("Unsupported value for `type` - supported types are `jpg` and `png` - defaulting to `jpg`"),A="jpg"),this._type=A}get type(){return this._type}get pos(){return this._pos}get normal(){return this._normal}get up(){return this._up}set height(A){this._height=null==A?1:A,this._image&&this._updateBitmapMeshScale()}get height(){return this._height}set collidable(A){this._bitmapMesh.collidable=!1!==A}get collidable(){return this._bitmapMesh.collidable}set clippable(A){this._bitmapMesh.clippable=!1!==A}get clippable(){return this._bitmapMesh.clippable}set pickable(A){this._bitmapMesh.pickable=!1!==A}get pickable(){return this._bitmapMesh.pickable}set opacity(A){this._bitmapMesh.opacity=A}get opacity(){return this._bitmapMesh.opacity}destroy(){super.destroy(),this.scene._bitmapDestroyed(this)}_updateBitmapMeshScale(){const A=this._imageSize[1]/this._imageSize[0];this._bitmapMesh.scale=[this._height/A,1,this._height]}}const Jt=g.vec3(),Nt=g.vec3(),yt=g.vec3();const zt=new class{constructor(){this.vertices=[],this.indices=[],this.reset()}reset(){this.lenVertices=0,this.lenIndices=0,this.primitive=null}setPrimitive(A){this.primitive=A}addVertex(A){this.vertices[this.lenVertices++]=A[0],this.vertices[this.lenVertices++]=A[1],this.vertices[this.lenVertices++]=A[2]}addIndex(A){this.indices[this.lenIndices++]=A}get volume(){const A=this.vertices,e=this.indices;if("solid"!==this.primitive&&"surface"!==this.primitive&&"triangles"!==this.primitive)return-1;if("solid"!==this.primitive&&!((A,e)=>{const t=[];let i=[];function s(A,t){let i,s;for(let n=0;n<3;n++)if(i=e[3*A+n],s=e[3*t+n],i!==s)return s-i;return 0}let n=A.slice().sort(s),o=null;for(let A=0,e=n.length;An&&s>o?n>o?(r=s,c=n,a=o):(r=s,c=o,a=n):n>s&&n>o?s>o?(r=n,c=s,a=o):(r=n,c=o,a=s):o>s&&o>n&&(s>n?(r=o,c=s,a=n):(r=o,c=n,a=s)),i[e+0]=[r,c],i[e+1]=[c,a],r>a){const A=a;a=r,r=A}i[e+2]=[a,r]}function r(A,e){let t,i;for(let s=0;s<2;s++)if(t=A[s],i=e[s],i!==t)return i-t;return 0}i=i.slice(0,A.length),i.sort(r);let c=0;for(let A=0;A0&&2!==c)})(e,A))return-1;let t=0;for(let i=0;i{zt.addVertex(A)})),this.getEachIndex((A=>{zt.addIndex(A)})),this._volume=zt.volume;break;default:this._volume=0}return this._volume}get surfaceArea(){if(null!==this._surfaceArea)return this._surfaceArea;switch(this.layer.primitive){case"solid":case"surface":case"triangles":Gt.reset(),this.getEachVertex((A=>{Gt.addVertex(A)})),this.getEachIndex((A=>{Gt.addIndex(A)})),this._surfaceArea=Gt.surfaceArea;break;default:this._surfaceArea=0}return this._surfaceArea}set aabb(A){if(this._aabbLocal=A,this.origin){this._aabbLocal=A.slice(0);const e=this.origin;this._aabbLocal[0]+=e[0],this._aabbLocal[1]+=e[1],this._aabbLocal[2]+=e[2],this._aabbLocal[3]+=e[0],this._aabbLocal[4]+=e[1],this._aabbLocal[5]+=e[2]}}get aabb(){return this._aabbWorldDirty&&(g.AABB3ToOBB3(this._aabbLocal,vt),this.transform?(g.transformOBB3(this.transform.worldMatrix,vt,Ht),g.transformOBB3(this.model.worldMatrix,Ht,St),g.OBB3ToAABB3(St,this._aabbWorld)):(g.transformOBB3(this.model.worldMatrix,vt,Ht),g.OBB3ToAABB3(Ht,this._aabbWorld)),this._aabbWorldDirty=!1),this._aabbWorld}_destroy(){this.model.scene._renderer.putPickID(this.pickId)}}const Ot=new class{constructor(){this._uint8Arrays={},this._float32Arrays={}}_clear(){this._uint8Arrays={},this._float32Arrays={}}getUInt8Array(A){let e=this._uint8Arrays[A];return e||(e=new Uint8Array(A),this._uint8Arrays[A]=e),e}getFloat32Array(A){let e=this._float32Arrays[A];return e||(e=new Float32Array(A),this._float32Arrays[A]=e),e}};let _t=0;const Wt=1,Xt=4,Lt=8,Vt=16,Kt=32,Zt=256,qt=512,$t=1024,Ai=2048,ei={NOT_RENDERED:0,COLOR_OPAQUE:1,COLOR_TRANSPARENT:2,SILHOUETTE_HIGHLIGHTED:3,SILHOUETTE_SELECTED:4,SILHOUETTE_XRAYED:5,EDGES_COLOR_OPAQUE:6,EDGES_COLOR_TRANSPARENT:7,EDGES_HIGHLIGHTED:8,EDGES_SELECTED:9,EDGES_XRAYED:10,PICK:11},ti=new Float32Array([1,1,1,1]),ii=new Float32Array([0,0,0,1]),si=g.vec4(),ni=g.vec3(),oi=g.vec3(),ri=g.mat4();class ci{constructor(A,e=!1,{instancing:t=!1,edges:i=!1,useAlphaCutoff:s=!1}={}){this._scene=A,this._withSAO=e,this._instancing=t,this._edges=i,this._useAlphaCutoff=s,this._hash=this._getHash(),this._matricesUniformBlockBufferBindingPoint=0,this._matricesUniformBlockBuffer=this._scene.canvas.gl.createBuffer(),this._matricesUniformBlockBufferData=new Float32Array(96),this._vaoCache=new WeakMap,this._allocate()}_getHash(){return this._scene._sectionPlanesState.getHash()}_buildShader(){return{vertex:this._buildVertexShader(),fragment:this._buildFragmentShader()}}_buildVertexShader(){return[""]}_buildFragmentShader(){return[""]}_addMatricesUniformBlockLines(A,e=!1){return A.push("uniform Matrices {"),A.push(" mat4 worldMatrix;"),A.push(" mat4 viewMatrix;"),A.push(" mat4 projMatrix;"),A.push(" mat4 positionsDecodeMatrix;"),e&&(A.push(" mat4 worldNormalMatrix;"),A.push(" mat4 viewNormalMatrix;")),A.push("};"),A}_addRemapClipPosLines(A,e=1){return A.push("uniform vec2 drawingBufferSize;"),A.push("uniform vec2 pickClipPos;"),A.push("vec4 remapClipPos(vec4 clipPos) {"),A.push(" clipPos.xy /= clipPos.w;"),1===e?A.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"):A.push(` clipPos.xy = (clipPos.xy - pickClipPos) * (drawingBufferSize / float(${e}));`),A.push(" clipPos.xy *= clipPos.w;"),A.push(" return clipPos;"),A.push("}"),A}getValid(){return this._hash===this._getHash()}setSectionPlanesStateUniforms(A){const e=this._scene,{gl:t}=e.canvas,{model:i,layerIndex:s}=A,n=e._sectionPlanesState.getNumAllocatedSectionPlanes(),o=e._sectionPlanesState.sectionPlanes.length;if(n>0){const r=e._sectionPlanesState.sectionPlanes,c=s*o,a=i.renderFlags;e.crossSections&&(t.uniform4fv(this._uSliceColor,e.crossSections.sliceColor),t.uniform1f(this._uSliceThickness,e.crossSections.sliceThickness));for(let e=0;e0&&(this._uReflectionMap="reflectionMap"),t.lightMaps.length>0&&(this._uLightMap="lightMap"),this._uSectionPlanes=[];for(let e=0,t=A._sectionPlanesState.getNumAllocatedSectionPlanes();e0&&E.reflectionMaps[0].texture&&this._uReflectionMap&&(this._program.bindTexture(this._uReflectionMap,E.reflectionMaps[0].texture,A.textureUnit),A.textureUnit=(A.textureUnit+1)%n,A.bindTexture++),E.lightMaps.length>0&&E.lightMaps[0].texture&&this._uLightMap&&(this._program.bindTexture(this._uLightMap,E.lightMaps[0].texture,A.textureUnit),A.textureUnit=(A.textureUnit+1)%n,A.bindTexture++),this._withSAO){const e=o.sao;if(e.possible){const t=r.drawingBufferWidth,i=r.drawingBufferHeight;si[0]=t,si[1]=i,si[2]=e.blendCutoff,si[3]=e.blendFactor,r.uniform4fv(this._uSAOParams,si),this._program.bindTexture(this._uOcclusionTexture,A.occlusionTexture,A.textureUnit),A.textureUnit=(A.textureUnit+1)%n,A.bindTexture++}}if(this._useAlphaCutoff&&r.uniform1f(this._alphaCutoffLocation,h.alphaCutoff),i){const A=this._edges?"edgeColor":"fillColor",e=this._edges?"edgeAlpha":"fillAlpha";if(t===ei[(this._edges?"EDGES":"SILHOUETTE")+"_XRAYED"]){const t=o.xrayMaterial._state,i=t[A],s=t[e];r.uniform4f(this._uColor,i[0],i[1],i[2],s)}else if(t===ei[(this._edges?"EDGES":"SILHOUETTE")+"_HIGHLIGHTED"]){const t=o.highlightMaterial._state,i=t[A],s=t[e];r.uniform4f(this._uColor,i[0],i[1],i[2],s)}else if(t===ei[(this._edges?"EDGES":"SILHOUETTE")+"_SELECTED"]){const t=o.selectedMaterial._state,i=t[A],s=t[e];r.uniform4f(this._uColor,i[0],i[1],i[2],s)}else r.uniform4fv(this._uColor,this._edges?ii:ti)}this._draw({state:c,frameCtx:A,incrementDrawState:s}),r.bindVertexArray(null)}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null,l.memory.programs--}}class ai extends ci{constructor(A,e,{edges:t=!1,useAlphaCutoff:i=!1}={}){super(A,e,{instancing:!1,edges:t,useAlphaCutoff:i})}_draw(A){const{gl:e}=this._scene.canvas,{state:t,frameCtx:i,incrementDrawState:s}=A;if(this._edges)t.edgeIndicesBuf&&e.drawElements(e.LINES,t.edgeIndicesBuf.numItems,t.edgeIndicesBuf.itemType,0);else{const A=i.pickElementsCount||t.indicesBuf.numItems,n=i.pickElementsOffset?i.pickElementsOffset*t.indicesBuf.itemByteSize:0;e.drawElements(e.TRIANGLES,A,t.indicesBuf.itemType,n),s&&i.drawElements++}}}class hi extends ai{_getHash(){const A=this._scene;return[A._lightsState.getHash(),A._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(A,e,t){super.drawLayer(A,e,t,{incrementDrawState:!0})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState,t=A._lightsState,i=e.getNumAllocatedSectionPlanes()>0;let s;const n=[];n.push("#version 300 es"),n.push("// Triangles batching draw vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec3 normal;"),n.push("in vec4 color;"),n.push("in float flags;"),A.entityOffsetsEnabled&&n.push("in vec3 offset;"),this._addMatricesUniformBlockLines(n,!0),A.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),n.push("uniform vec4 lightAmbient;");for(let A=0,e=t.lights.length;A= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),n.push(" }"),n.push(" return normalize(v);"),n.push("}"),i&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;")),n.push("out vec4 vColor;"),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),n.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),n.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),n.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),n.push("float lambertian = 1.0;");for(let A=0,e=t.lights.length;A0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching draw fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),this._withSAO&&(i.push("uniform sampler2D uOcclusionTexture;"),i.push("uniform vec4 uSAOParams;"),i.push("const float packUpscale = 256. / 255.;"),i.push("const float unpackDownScale = 255. / 256.;"),i.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),i.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),i.push("float unpackRGBToFloat( const in vec4 v ) {"),i.push(" return dot( v, unPackFactors );"),i.push("}")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A sliceThickness) { "),i.push(" discard;"),i.push(" }"),i.push(" if (dist > 0.0) { "),i.push(" newColor = sliceColor;"),i.push(" }"),i.push("}")}return A.logarithmicDepthBufferEnabled?(i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;")):(i.push(" float dx = dFdx(gl_FragCoord.z);"),i.push(" float dy = dFdy(gl_FragCoord.z);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = gl_FragCoord.z + diff;")),this._withSAO?(i.push(" float viewportWidth = uSAOParams[0];"),i.push(" float viewportHeight = uSAOParams[1];"),i.push(" float blendCutoff = uSAOParams[2];"),i.push(" float blendFactor = uSAOParams[3];"),i.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),i.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),i.push(" outColor = vec4(newColor.rgb * ambient, 1.0);")):i.push(" outColor = newColor;"),i.push("}"),i}}class Bi extends ai{_getHash(){const A=this._scene;return[A._lightsState.getHash(),A._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Triangles batching flat-shading draw vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),t.push("in vec4 color;"),t.push("in float flags;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),this._addMatricesUniformBlockLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vViewPosition;"),t.push("out vec4 vColor;"),t.push("void main(void) {"),t.push("int colorFlag = int(flags) & 0xF;"),t.push("if (colorFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push("worldPosition.xyz = worldPosition.xyz + offset;"),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),t.push("vViewPosition = viewPosition;"),t.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._lightsState,t=A._sectionPlanesState,i=t.getNumAllocatedSectionPlanes()>0,s=[];if(s.push("#version 300 es"),s.push("// Triangles batching flat-shading draw fragment shader"),s.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),s.push("precision highp float;"),s.push("precision highp int;"),s.push("#else"),s.push("precision mediump float;"),s.push("precision mediump int;"),s.push("#endif"),A.logarithmicDepthBufferEnabled&&(s.push("in float isPerspective;"),s.push("uniform float logDepthBufFC;"),s.push("in float vFragDepth;")),this._withSAO&&(s.push("uniform sampler2D uOcclusionTexture;"),s.push("uniform vec4 uSAOParams;"),s.push("const float packUpscale = 256. / 255.;"),s.push("const float unpackDownScale = 255. / 256.;"),s.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),s.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),s.push("float unpackRGBToFloat( const in vec4 v ) {"),s.push(" return dot( v, unPackFactors );"),s.push("}")),i){s.push("in vec4 vWorldPosition;"),s.push("in float vFlags;");for(let A=0,e=t.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),s.push(" if (clippable) {"),s.push(" float dist = 0.0;");for(let A=0,e=t.getNumAllocatedSectionPlanes();A sliceThickness) { "),s.push(" discard;"),s.push(" }"),s.push(" if (dist > 0.0) { "),s.push(" newColor = sliceColor;"),s.push(" }"),s.push("}")}s.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),s.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),s.push("float lambertian = 1.0;"),s.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),s.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),s.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(let A=0,t=e.lights.length;A0,t=[];return t.push("#version 300 es"),t.push("// Triangles batching silhouette vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 color;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec4 silhouetteColor;"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vColor;"),t.push("void main(void) {"),t.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),t.push("if (silhouetteFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, color.a ));"),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState;let t,i;const s=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Triangles batching silhouette fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),A.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s){for(n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;"),t=0,i=e.getNumAllocatedSectionPlanes();t> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A sliceThickness) { "),n.push(" discard;"),n.push(" }"),n.push(" if (dist > 0.0) { "),n.push(" newColor = sliceColor;"),n.push(" }"),n.push("}")}return A.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = newColor;"),n.push("}"),n}}class li extends ai{constructor(A){super(A,!1,{instancing:!1,edges:!0})}}class Ei extends li{drawLayer(A,e,t){super.drawLayer(A,e,t,{colorUniform:!0})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// EdgesEmphasisRenderer vertex shader"),t.push("uniform int renderPass;"),t.push("uniform vec4 color;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),this._addMatricesUniformBlockLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vColor;"),t.push("void main(void) {"),t.push("int edgeFlag = int(flags) >> 8 & 0xF;"),t.push("if (edgeFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = clipPos;"),t.push("vColor = vec4(color.r, color.g, color.b, color.a);"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// EdgesEmphasisRenderer fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class Qi extends li{drawLayer(A,e,t){super.drawLayer(A,e,t,{colorUniform:!1})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Batched geometry edges drawing vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),t.push("in vec4 color;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),this._addMatricesUniformBlockLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vColor;"),t.push("void main(void) {"),t.push("int edgeFlag = int(flags) >> 8 & 0xF;"),t.push("if (edgeFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = clipPos;"),t.push("vColor = vec4(float(color.r*0.5) / 255.0, float(color.g*0.5) / 255.0, float(color.b*0.5) / 255.0, float(color.a) / 255.0);"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry edges drawing fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class Mi extends ai{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Batched geometry picking vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 pickColor;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),this._addRemapClipPosLines(t),t.push("out vec4 vPickColor;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = remapClipPos(clipPos);"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry picking fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(var s=0;s> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0;A 0.0) { discard; }"),i.push(" }")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vPickColor; "),i.push("}"),i}}class ui extends ai{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Triangles batching pick depth vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),this._addRemapClipPosLines(t),t.push("out vec4 vViewPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push("vViewPosition = viewPosition;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = remapClipPos(clipPos);"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching pick depth fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),i.push("uniform float pickZNear;"),i.push("uniform float pickZFar;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(var s=0;s> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0;A 0.0) { discard; }"),i.push(" }")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),i.push(" outColor = packDepth(zNormalizedDepth); "),i.push("}"),i}}class wi extends ai{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Triangles batching pick normals vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in vec3 normal;"),t.push("in float flags;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),this._addRemapClipPosLines(t,3),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),t.push("vec3 octDecode(vec2 oct) {"),t.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),t.push(" if (v.z < 0.0) {"),t.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),t.push(" }"),t.push(" return normalize(v);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec3 vWorldNormal;"),t.push("out vec4 outColor;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vec3 worldNormal = octDecode(normal.xy); "),t.push(" vWorldNormal = worldNormal;"),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = remapClipPos(clipPos);"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching pick normals fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(var s=0;s> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0;A 0.0) { discard; }"),i.push(" }")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(` outNormal = ivec4(vWorldNormal * float(${g.MAX_INT}), 1.0);`),i.push("}"),i}}class di extends ai{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Triangles batching occlusion vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in vec4 color;"),t.push("in float flags;"),this._addMatricesUniformBlockLines(t),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("void main(void) {"),t.push("int colorFlag = int(flags) & 0xF;"),t.push("if (colorFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("gl_Position = clipPos;"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// Triangles batching occlusion fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),e){t.push("in vec4 vWorldPosition;"),t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),t.push(" }")}return t.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),t.push("}"),t}}class Ci extends ai{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Triangles batching depth vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),this._addMatricesUniformBlockLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec2 vHighPrecisionZW;"),t.push("void main(void) {"),t.push("int colorFlag = int(flags) & 0xF;"),t.push("if (colorFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = clipPos;"),t.push("vHighPrecisionZW = gl_Position.zw;"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching depth fragment shader"),i.push("precision highp float;"),i.push("precision highp int;"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0;A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),i.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),i.push("}"),i}}class xi extends ai{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Batched geometry normals vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in vec3 normal;"),t.push("in vec4 color;"),t.push("in float flags;"),this._addMatricesUniformBlockLines(t,!0),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),t.push("vec3 octDecode(vec2 oct) {"),t.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),t.push(" if (v.z < 0.0) {"),t.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),t.push(" }"),t.push(" return normalize(v);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec3 vViewNormal;"),t.push("void main(void) {"),t.push("int colorFlag = int(flags) & 0xF;"),t.push("if (colorFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),t.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push(" vViewNormal = viewNormal;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = clipPos;"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry normals fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0;A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),i.push("}"),i}}class Fi extends ai{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Batched geometry shadow vertex shader"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in vec4 color;"),t.push("in float flags;"),t.push("uniform mat4 shadowViewMatrix;"),t.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(t),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vViewPosition;"),t.push("out vec4 outColor;"),t.push("void main(void) {"),t.push(" int colorFlag = int(flags) & 0xF;"),t.push(" bool visible = (colorFlag > 0);"),t.push(" bool transparent = ((float(color.a) / 255.0) < 1.0);"),t.push(" if (!visible || transparent) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push(" vViewPosition = viewPosition;"),t.push(" gl_Position = shadowProjMatrix * viewPosition;"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// Batched geometry shadow fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),e){t.push("in vec4 vWorldPosition;"),t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),t.push(" }")}return t.push(" outColor = encodeFloat( gl_FragCoord.z); "),t.push("}"),t}}class pi extends ai{_getHash(){const A=this._scene;return[A.gammaOutput,A._lightsState.getHash(),A._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(A,e,t){super.drawLayer(A,e,t,{incrementDrawState:!0})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState,t=A._lightsState,i=e.getNumAllocatedSectionPlanes()>0,s=e.clippingCaps,n=[];return n.push("#version 300 es"),n.push("// Triangles batching quality draw vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec3 normal;"),n.push("in vec4 color;"),n.push("in vec2 uv;"),n.push("in vec2 metallicRoughness;"),n.push("in float flags;"),A.entityOffsetsEnabled&&n.push("in vec3 offset;"),this._addMatricesUniformBlockLines(n,!0),n.push("uniform mat3 uvDecodeMatrix;"),A.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),n.push("vec3 octDecode(vec2 oct) {"),n.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),n.push(" if (v.z < 0.0) {"),n.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),n.push(" }"),n.push(" return normalize(v);"),n.push("}"),n.push("out vec4 vViewPosition;"),n.push("out vec3 vViewNormal;"),n.push("out vec4 vColor;"),n.push("out vec2 vUV;"),n.push("out vec2 vMetallicRoughness;"),t.lightMaps.length>0&&n.push("out vec3 vWorldNormal;"),i&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;"),s&&n.push("out vec4 vClipPosition;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&n.push("worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),n.push("vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),n.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),n.push("vFragDepth = 1.0 + clipPos.w;")),i&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;"),s&&n.push("vClipPosition = clipPos;")),n.push("vViewPosition = viewPosition;"),n.push("vViewNormal = viewNormal;"),n.push("vColor = color;"),n.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),n.push("vMetallicRoughness = metallicRoughness;"),t.lightMaps.length>0&&n.push("vWorldNormal = worldNormal.xyz;"),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const A=this._scene,e=A.gammaOutput,t=A._sectionPlanesState,i=A._lightsState,s=t.getNumAllocatedSectionPlanes()>0,n=t.clippingCaps,o=[];o.push("#version 300 es"),o.push("// Triangles batching quality draw fragment shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("#endif"),A.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),o.push("uniform sampler2D uColorMap;"),o.push("uniform sampler2D uMetallicRoughMap;"),o.push("uniform sampler2D uEmissiveMap;"),o.push("uniform sampler2D uNormalMap;"),o.push("uniform sampler2D uAOMap;"),o.push("in vec4 vViewPosition;"),o.push("in vec3 vViewNormal;"),o.push("in vec4 vColor;"),o.push("in vec2 vUV;"),o.push("in vec2 vMetallicRoughness;"),i.lightMaps.length>0&&o.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(o,!0),i.reflectionMaps.length>0&&o.push("uniform samplerCube reflectionMap;"),i.lightMaps.length>0&&o.push("uniform samplerCube lightMap;"),o.push("uniform vec4 lightAmbient;");for(let A=0,e=i.lights.length;A0&&(o.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),o.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),o.push(" vec3 envMapColor = sRGBToLinear(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),o.push(" return envMapColor;"),o.push("}")),o.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),o.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),o.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),o.push("}"),o.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),o.push(" float a2 = ( alpha * alpha );"),o.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),o.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),o.push(" return 1.0 / ( gl * gv );"),o.push("}"),o.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),o.push(" float a2 = ( alpha * alpha );"),o.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),o.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),o.push(" return 0.5 / max( gv + gl, EPSILON );"),o.push("}"),o.push("float D_GGX(const in float alpha, const in float dotNH) {"),o.push(" float a2 = ( alpha * alpha );"),o.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),o.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),o.push("}"),o.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),o.push(" float alpha = ( roughness * roughness );"),o.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),o.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),o.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),o.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),o.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),o.push(" vec3 F = F_Schlick( specularColor, dotLH );"),o.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),o.push(" float D = D_GGX( alpha, dotNH );"),o.push(" return F * (G * D);"),o.push("}"),o.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),o.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),o.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),o.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),o.push(" vec4 r = roughness * c0 + c1;"),o.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),o.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),o.push(" return specularColor * AB.x + AB.y;"),o.push("}"),(i.lightMaps.length>0||i.reflectionMaps.length>0)&&(o.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),i.lightMaps.length>0&&(o.push(" vec3 irradiance = sRGBToLinear(texture(lightMap, geometry.worldNormal)).rgb;"),o.push(" irradiance *= PI;"),o.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),o.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),i.reflectionMaps.length>0&&(o.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),o.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),o.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),o.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),o.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),o.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),o.push("}")),o.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),o.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),o.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),o.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),o.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),o.push("}"),o.push("out vec4 outColor;"),o.push("void main(void) {"),s){o.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;");for(let A=0,e=t.getNumAllocatedSectionPlanes();A (0.002 * vClipPosition.w)) {"),o.push(" discard;"),o.push(" }"),o.push(" if (dist > 0.0) { "),o.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),A.logarithmicDepthBufferEnabled&&o.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push(" return;"),o.push("}")):(o.push(" if (dist > 0.0) { "),o.push(" discard;"),o.push(" }")),o.push("}")}o.push("IncidentLight light;"),o.push("Material material;"),o.push("Geometry geometry;"),o.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),o.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),o.push("float opacity = float(vColor.a) / 255.0;"),o.push("vec3 baseColor = rgb;"),o.push("float specularF0 = 1.0;"),o.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),o.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),o.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),o.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),o.push("baseColor *= colorTexel.rgb;"),o.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),o.push("metallic *= metalRoughTexel.b;"),o.push("roughness *= metalRoughTexel.g;"),o.push("vec3 viewNormal = perturbNormal2Arb(vViewPosition.xyz, normalize(vViewNormal), vUV );"),o.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),o.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),o.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),o.push("geometry.position = vViewPosition.xyz;"),o.push("geometry.viewNormal = -normalize(viewNormal);"),o.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),i.lightMaps.length>0&&o.push("geometry.worldNormal = normalize(vWorldNormal);"),(i.lightMaps.length>0||i.reflectionMaps.length>0)&&o.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let A=0,e=i.lights.length;A0,t=[];return t.push("#version 300 es"),t.push("// Triangles batching pick flat normals vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),this._addRemapClipPosLines(t,3),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),t.push("out vec4 vWorldPosition;"),e&&t.push("out float vFlags;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vWorldPosition = worldPosition;"),e&&t.push(" vFlags = flags;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = remapClipPos(clipPos);"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Triangles batching pick flat normals fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),i.push("in vec4 vWorldPosition;"),t){i.push("in float vFlags;");for(var s=0;s> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0;A 0.0) { discard; }"),i.push(" }")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(` outNormal = ivec4(worldNormal * float(${g.MAX_INT}), 1.0);`),i.push("}"),i}}class fi extends ai{_getHash(){const A=this._scene;return[A.gammaOutput,A._lightsState.getHash(),A._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(A,e,t){super.drawLayer(A,e,t,{incrementDrawState:!0})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Triangles batching color texture vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),t.push("in vec4 color;"),t.push("in vec2 uv;"),t.push("in float flags;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),this._addMatricesUniformBlockLines(t),t.push("uniform mat3 uvDecodeMatrix;"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vViewPosition;"),t.push("out vec4 vColor;"),t.push("out vec2 vUV;"),t.push("void main(void) {"),t.push("int colorFlag = int(flags) & 0xF;"),t.push("if (colorFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push("worldPosition.xyz = worldPosition.xyz + offset;"),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),t.push("vViewPosition = viewPosition;"),t.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A.gammaOutput,t=A._lightsState,i=A._sectionPlanesState,s=i.getNumAllocatedSectionPlanes()>0,n=this._useAlphaCutoff,o=[];if(o.push("#version 300 es"),o.push("// Triangles batching color texture fragment shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("#endif"),A.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),o.push("uniform sampler2D uColorMap;"),this._withSAO&&(o.push("uniform sampler2D uOcclusionTexture;"),o.push("uniform vec4 uSAOParams;"),o.push("const float packUpscale = 256. / 255.;"),o.push("const float unpackDownScale = 255. / 256.;"),o.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),o.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),o.push("float unpackRGBToFloat( const in vec4 v ) {"),o.push(" return dot( v, unPackFactors );"),o.push("}")),o.push("uniform float gammaFactor;"),o.push("vec4 linearToLinear( in vec4 value ) {"),o.push(" return value;"),o.push("}"),o.push("vec4 sRGBToLinear( in vec4 value ) {"),o.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),o.push("}"),o.push("vec4 gammaToLinear( in vec4 value) {"),o.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),o.push("}"),e&&(o.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),o.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),o.push("}")),s){o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;");for(let A=0,e=i.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;");for(let A=0,e=i.getNumAllocatedSectionPlanes();A sliceThickness) { "),o.push(" discard;"),o.push(" }"),o.push(" if (dist > 0.0) { "),o.push(" newColor = sliceColor;"),o.push(" }"),o.push("}")}o.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),o.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),o.push("float lambertian = 1.0;"),o.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),o.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),o.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(let A=0,e=t.lights.length;A0,t=[];return t.push("#version 300 es"),t.push("// VBO SnapBatchingDepthBufInitRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),t.push("in vec4 pickColor;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec3 uCameraEyeRtc;"),t.push("uniform vec2 snapVectorA;"),t.push("uniform vec2 snapInvVectorAB;"),t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("out float isPerspective;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("vec2 remapClipPos(vec2 clipPos) {"),t.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),t.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),t.push(" return vec2(x, y);"),t.push("}"),t.push("flat out vec4 vPickColor;"),t.push("out vec4 vWorldPosition;"),e&&t.push("out float vFlags;"),t.push("out highp vec3 relativeToOriginPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" relativeToOriginPosition = worldPosition.xyz;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vWorldPosition = worldPosition;"),e&&t.push(" vFlags = flags;"),t.push("vPickColor = pickColor;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("float tmp = clipPos.w;"),t.push("clipPos.xyzw /= tmp;"),t.push("clipPos.xy = remapClipPos(clipPos.xy);"),t.push("clipPos.xyzw *= tmp;"),t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),t.push("gl_Position = clipPos;"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// VBO SnapBatchingDepthBufInitRenderer fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;"),t.push("uniform int layerNumber;"),t.push("uniform vec3 coordinateScaler;"),t.push("in vec4 vWorldPosition;"),t.push("flat in vec4 vPickColor;"),e){t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),t.push(" }")}return t.push(" float dx = dFdx(vFragDepth);"),t.push(" float dy = dFdy(vFragDepth);"),t.push(" float diff = sqrt(dx*dx+dy*dy);"),t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),t.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),t.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),t.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),t.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),t.push(`outNormal = ivec4(worldNormal * float(${g.MAX_INT}), 1.0);`),t.push("outPickColor = uvec4(vPickColor);"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const zi=g.vec3(),Ti=g.vec3(),Ui=g.vec3(),Ri=g.vec3(),bi=g.mat4();class ki extends ci{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(A,e,t){if(!this._program&&(this._allocate(),this.errors))return;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram());const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=e._state.origin,{position:a,rotationMatrix:h}=i,B=e.aabb,l=A.pickViewMatrix||n.viewMatrix;this._vaoCache.has(e)?o.bindVertexArray(this._vaoCache.get(e)):this._vaoCache.set(e,this._makeVAO(r));const E=zi;let Q,M;if(E[0]=g.safeInv(B[3]-B[0])*g.MAX_INT,E[1]=g.safeInv(B[4]-B[1])*g.MAX_INT,E[2]=g.safeInv(B[5]-B[2])*g.MAX_INT,A.snapPickCoordinateScale[0]=g.safeInv(E[0]),A.snapPickCoordinateScale[1]=g.safeInv(E[1]),A.snapPickCoordinateScale[2]=g.safeInv(E[2]),c||0!==a[0]||0!==a[1]||0!==a[2]){const e=Ti;if(c){const A=Ui;g.transformPoint3(h,c,A),e[0]=A[0],e[1]=A[1],e[2]=A[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=a[0],e[1]+=a[1],e[2]+=a[2],Q=UA(l,e,bi),M=Ri,M[0]=n.eye[0]-e[0],M[1]=n.eye[1]-e[1],M[2]=n.eye[2]-e[2],A.snapPickOrigin[0]=e[0],A.snapPickOrigin[1]=e[1],A.snapPickOrigin[2]=e[2]}else Q=l,M=n.eye,A.snapPickOrigin[0]=0,A.snapPickOrigin[1]=0,A.snapPickOrigin[2]=0;o.uniform3fv(this._uCameraEyeRtc,M),o.uniform2fv(this.uVectorA,A.snapVectorA),o.uniform2fv(this.uInverseVectorAB,A.snapInvVectorAB),o.uniform1i(this._uLayerNumber,A.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,E),o.uniform1i(this._uRenderPass,t),o.uniform1i(this._uPickInvisible,A.pickInvisible);let u=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(Q,u+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,u+=16),this._matricesUniformBlockBufferData.set(r.positionsDecodeMatrix,u+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const e=2/(Math.log(A.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,e)}this.setSectionPlanesStateUniforms(e),"edge"===A.snapMode?r.edgeIndicesBuf&&(r.edgeIndicesBuf.bind(),o.drawElements(o.LINES,r.edgeIndicesBuf.numItems,r.edgeIndicesBuf.itemType,0),r.edgeIndicesBuf.unbind()):o.drawArrays(o.POINTS,0,r.positionsBuf.numItems),o.bindVertexArray(null)}_allocate(){super._allocate();const A=this._program;this._uLogDepthBufFC=A.getLocation("logDepthBufFC"),this._uCameraEyeRtc=A.getLocation("uCameraEyeRtc"),this.uVectorA=A.getLocation("snapVectorA"),this.uInverseVectorAB=A.getLocation("snapInvVectorAB"),this._uLayerNumber=A.getLocation("layerNumber"),this._uCoordinateScaler=A.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0;A.pointsMaterial._state;const t=[];return t.push("#version 300 es"),t.push("// SnapBatchingDepthRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec3 uCameraEyeRtc;"),t.push("uniform vec2 snapVectorA;"),t.push("uniform vec2 snapInvVectorAB;"),t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;"),t.push("vec2 remapClipPos(vec2 clipPos) {"),t.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),t.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),t.push(" return vec2(x, y);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out highp vec3 relativeToOriginPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(2.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("relativeToOriginPosition = worldPosition.xyz;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("float tmp = clipPos.w;"),t.push("clipPos.xyzw /= tmp;"),t.push("clipPos.xy = remapClipPos(clipPos.xy);"),t.push("clipPos.xyzw *= tmp;"),t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),t.push("gl_Position = clipPos;"),t.push("gl_PointSize = 1.0;"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// SnapBatchingDepthRenderer fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;"),t.push("uniform int layerNumber;"),t.push("uniform vec3 coordinateScaler;"),e){t.push("in vec4 vWorldPosition;"),t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),t.push(" }")}return t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Pi{constructor(A){this._scene=A}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._colorRendererWithSAO&&!this._colorRendererWithSAO.getValid()&&(this._colorRendererWithSAO.destroy(),this._colorRendererWithSAO=null),this._flatColorRenderer&&!this._flatColorRenderer.getValid()&&(this._flatColorRenderer.destroy(),this._flatColorRenderer=null),this._flatColorRendererWithSAO&&!this._flatColorRendererWithSAO.getValid()&&(this._flatColorRendererWithSAO.destroy(),this._flatColorRendererWithSAO=null),this._colorTextureRenderer&&!this._colorTextureRenderer.getValid()&&(this._colorTextureRenderer.destroy(),this._colorTextureRenderer=null),this._colorTextureRendererWithSAO&&!this._colorTextureRendererWithSAO.getValid()&&(this._colorTextureRendererWithSAO.destroy(),this._colorTextureRendererWithSAO=null),this._colorTextureRendererAlphaCutoff&&!this._colorTextureRendererAlphaCutoff.getValid()&&(this._colorTextureRendererAlphaCutoff.destroy(),this._colorTextureRendererAlphaCutoff=null),this._colorTextureRendererWithSAOAlphaCutoff&&!this._colorTextureRendererWithSAOAlphaCutoff.getValid()&&(this._colorTextureRendererWithSAOAlphaCutoff.destroy(),this._colorTextureRendererWithSAOAlphaCutoff=null),this._pbrRenderer&&!this._pbrRenderer.getValid()&&(this._pbrRenderer.destroy(),this._pbrRenderer=null),this._pbrRendererWithSAO&&!this._pbrRendererWithSAO.getValid()&&(this._pbrRendererWithSAO.destroy(),this._pbrRendererWithSAO=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._normalsRenderer&&!this._normalsRenderer.getValid()&&(this._normalsRenderer.destroy(),this._normalsRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._edgesRenderer&&!this._edgesRenderer.getValid()&&(this._edgesRenderer.destroy(),this._edgesRenderer=null),this._edgesColorRenderer&&!this._edgesColorRenderer.getValid()&&(this._edgesColorRenderer.destroy(),this._edgesColorRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._pickNormalsRenderer&&!1===this._pickNormalsRenderer.getValid()&&(this._pickNormalsRenderer.destroy(),this._pickNormalsRenderer=null),this._pickNormalsFlatRenderer&&!1===this._pickNormalsFlatRenderer.getValid()&&(this._pickNormalsFlatRenderer.destroy(),this._pickNormalsFlatRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new gi(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new Mi(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new ui(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new yi(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new ki(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new hi(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new hi(this._scene,!0)),this._colorRendererWithSAO}get flatColorRenderer(){return this._flatColorRenderer||(this._flatColorRenderer=new Bi(this._scene,!1)),this._flatColorRenderer}get flatColorRendererWithSAO(){return this._flatColorRendererWithSAO||(this._flatColorRendererWithSAO=new Bi(this._scene,!0)),this._flatColorRendererWithSAO}get colorTextureRenderer(){return this._colorTextureRenderer||(this._colorTextureRenderer=new fi(this._scene,!1)),this._colorTextureRenderer}get colorTextureRendererWithSAO(){return this._colorTextureRendererWithSAO||(this._colorTextureRendererWithSAO=new fi(this._scene,!0)),this._colorTextureRendererWithSAO}get colorTextureRendererAlphaCutoff(){return this._colorTextureRendererAlphaCutoff||(this._colorTextureRendererAlphaCutoff=new fi(this._scene,!1,{useAlphaCutoff:!0})),this._colorTextureRendererAlphaCutoff}get colorTextureRendererWithSAOAlphaCutoff(){return this._colorTextureRendererWithSAOAlphaCutoff||(this._colorTextureRendererWithSAOAlphaCutoff=new fi(this._scene,!0,{useAlphaCutoff:!0})),this._colorTextureRendererWithSAOAlphaCutoff}get pbrRenderer(){return this._pbrRenderer||(this._pbrRenderer=new pi(this._scene,!1)),this._pbrRenderer}get pbrRendererWithSAO(){return this._pbrRendererWithSAO||(this._pbrRendererWithSAO=new pi(this._scene,!0)),this._pbrRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new gi(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new Ci(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new xi(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new Ei(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new Qi(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Mi(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new wi(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new Ii(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new ui(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new di(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new Fi(this._scene)),this._shadowRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new ki(this._scene)),this._snapRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new yi(this._scene)),this._snapInitRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._colorTextureRenderer&&this._colorTextureRenderer.destroy(),this._colorTextureRendererWithSAO&&this._colorTextureRendererWithSAO.destroy(),this._colorTextureRendererAlphaCutoff&&this._colorTextureRendererAlphaCutoff.destroy(),this._colorTextureRendererWithSAOAlphaCutoff&&this._colorTextureRendererWithSAOAlphaCutoff.destroy(),this._pbrRenderer&&this._pbrRenderer.destroy(),this._pbrRendererWithSAO&&this._pbrRendererWithSAO.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._normalsRenderer&&this._normalsRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._edgesRenderer&&this._edgesRenderer.destroy(),this._edgesColorRenderer&&this._edgesColorRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Gi={};let vi=65536,Hi=5e6;class Si{constructor(){}set doublePrecisionEnabled(A){g.setDoublePrecisionEnabled(A)}get doublePrecisionEnabled(){return g.getDoublePrecisionEnabled()}set maxDataTextureHeight(A){(A=1024*Math.ceil(A/1024))>4096?A=4096:A<1024&&(A=1024),vi=A}get maxDataTextureHeight(){return vi}set maxGeometryBatchSize(A){A<1e5?A=1e5:A>5e6&&(A=5e6),Hi=A}get maxGeometryBatchSize(){return Hi}}const ji=new Si;class Oi{constructor(A=ji.maxGeometryBatchSize){this.maxVerts=A,this.maxIndices=3*A,this.positions=[],this.colors=[],this.uv=[],this.metallicRoughness=[],this.normals=[],this.pickColors=[],this.offsets=[],this.indices=[],this.edgeIndices=[]}}const _i=g.mat4(),Wi=g.mat4();function Xi(A,e,t){const i=A.length,s=new Uint16Array(i),n=e[0],o=e[1],r=e[2],c=e[3]-n,a=e[4]-o,h=e[5]-r,B=65525,l=B/c,E=B/a,Q=B/h,M=A=>A>=0?A:0;for(let e=0;e=0?1:-1),e=(1-Math.abs(i))*(s>=0?1:-1),i=A,s=e}return new Int8Array([Math[e](127.5*i+(i<0?-1:0)),Math[t](127.5*s+(s<0?-1:0))])}function Ki(A){let e=A[0],t=A[1];e/=e<0?127:128,t/=t<0?127:128;const i=1-Math.abs(e)-Math.abs(t);i<0&&(e=(1-Math.abs(t))*(e>=0?1:-1),t=(1-Math.abs(e))*(t>=0?1:-1));const s=Math.sqrt(e*e+t*t+i*i);return[e/s,t/s,i/s]}const Zi=g.mat4(),qi=g.mat4(),$i=g.vec4([0,0,0,1]),As=g.vec3(),es=g.vec3(),ts=g.vec3(),is=g.vec3(),ss=g.vec3(),ns=g.vec3(),os=g.vec3();class rs{constructor(A){this.model=A.model,this.sortId="TrianglesBatchingLayer"+(A.solid?"-solid":"-surface")+(A.autoNormals?"-autonormals":"-normals")+(A.textureSet&&A.textureSet.colorTexture?"-colorTexture":"")+(A.textureSet&&A.textureSet.metallicRoughnessTexture?"-metallicRoughnessTexture":""),this.layerIndex=A.layerIndex,this._renderers=function(A){const e=A.id;let t=Gi[e];return t||(t=new Pi(A),Gi[e]=t,t._compile(),t.eagerCreateRenders(),A.on("compile",(()=>{t._compile(),t.eagerCreateRenders()})),A.on("destroyed",(()=>{delete Gi[e],t._destroy()}))),t}(A.model.scene),this._buffer=new Oi(A.maxGeometryBatchSize),this._scratchMemory=A.scratchMemory,this._state=new Z({origin:g.vec3(),positionsBuf:null,offsetsBuf:null,normalsBuf:null,colorsBuf:null,uvBuf:null,metallicRoughnessBuf:null,flagsBuf:null,indicesBuf:null,edgeIndicesBuf:null,positionsDecodeMatrix:null,uvDecodeMatrix:null,textureSet:A.textureSet,pbrSupported:!1}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=g.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=g.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,A.positionsDecodeMatrix&&(this._state.positionsDecodeMatrix=g.mat4(A.positionsDecodeMatrix)),A.uvDecodeMatrix?(this._state.uvDecodeMatrix=g.mat3(A.uvDecodeMatrix),this._preCompressedUVsExpected=!0):this._preCompressedUVsExpected=!1,A.origin&&this._state.origin.set(A.origin),this.solid=!!A.solid,this.primitive=A.primitive}get aabb(){if(this.aabbDirty){g.collapseAABB3(this._aabb);for(let A=0,e=this._meshes.length;A0)for(let A=0,e=n.length;A0){const A=Zi;u?g.inverseMat4(g.transposeMat4(u,qi),A):g.identityMat4(A,A),function(A,e,t,i,s){function n(A,e){return A[0]*e[0]+A[1]*e[1]+A[2]*e[2]}let o,r,c,a,h,B,l=new Float32Array([0,0,0,0]),E=new Float32Array([0,0,0,0]);for(B=0;Bh&&(c=o,h=a),o=Vi(E,"floor","ceil"),r=Ki(o),a=n(E,r),a>h&&(c=o,h=a),o=Vi(E,"ceil","ceil"),r=Ki(o),a=n(E,r),a>h&&(c=o,h=a),i[s+B+0]=c[0],i[s+B+1]=c[1],i[s+B+2]=0}(A,s,s.length,C.normals,C.normals.length)}if(c)for(let A=0,e=c.length;A0)for(let A=0,e=o.length;A0)for(let A=0,e=r.length;A0){const i=this._state.positionsDecodeMatrix?new Uint16Array(t.positions):Xi(t.positions,this._modelAABB,this._state.positionsDecodeMatrix=g.mat4());if(A.positionsBuf=new q(e,e.ARRAY_BUFFER,i,i.length,3,e.STATIC_DRAW),this.model.scene.readableGeometryEnabled)for(let A=0,e=this._portions.length;A0){const i=new Int8Array(t.normals);let s=!0;A.normalsBuf=new q(e,e.ARRAY_BUFFER,i,t.normals.length,3,e.STATIC_DRAW,s)}if(t.colors.length>0){const i=new Uint8Array(t.colors);let s=!1;A.colorsBuf=new q(e,e.ARRAY_BUFFER,i,t.colors.length,4,e.DYNAMIC_DRAW,s)}if(t.uv.length>0)if(A.uvDecodeMatrix){let i=!1;A.uvBuf=new q(e,e.ARRAY_BUFFER,t.uv,t.uv.length,2,e.STATIC_DRAW,i)}else{const i=oA.getUVBounds(t.uv),s=oA.compressUVs(t.uv,i.min,i.max),n=s.quantized;let o=!1;A.uvDecodeMatrix=g.mat3(s.decodeMatrix),A.uvBuf=new q(e,e.ARRAY_BUFFER,n,n.length,2,e.STATIC_DRAW,o)}if(t.metallicRoughness.length>0){const i=new Uint8Array(t.metallicRoughness);let s=!1;A.metallicRoughnessBuf=new q(e,e.ARRAY_BUFFER,i,t.metallicRoughness.length,2,e.STATIC_DRAW,s)}if(t.positions.length>0){const i=t.positions.length/3,s=new Float32Array(i),n=!1;A.flagsBuf=new q(e,e.ARRAY_BUFFER,s,s.length,1,e.DYNAMIC_DRAW,n)}if(t.pickColors.length>0){const i=new Uint8Array(t.pickColors);let s=!1;A.pickColorsBuf=new q(e,e.ARRAY_BUFFER,i,t.pickColors.length,4,e.STATIC_DRAW,s)}if(this.model.scene.entityOffsetsEnabled&&t.offsets.length>0){const i=new Float32Array(t.offsets);A.offsetsBuf=new q(e,e.ARRAY_BUFFER,i,t.offsets.length,3,e.DYNAMIC_DRAW)}if(t.indices.length>0){const i=new Uint32Array(t.indices);A.indicesBuf=new q(e,e.ELEMENT_ARRAY_BUFFER,i,t.indices.length,1,e.STATIC_DRAW)}if(t.edgeIndices.length>0){const i=new Uint32Array(t.edgeIndices);A.edgeIndicesBuf=new q(e,e.ELEMENT_ARRAY_BUFFER,i,t.edgeIndices.length,1,e.STATIC_DRAW)}this._state.pbrSupported=!!(A.metallicRoughnessBuf&&A.uvBuf&&A.normalsBuf&&A.textureSet&&A.textureSet.colorTexture&&A.textureSet.metallicRoughnessTexture),this._state.colorTextureSupported=!!A.uvBuf&&!!A.textureSet&&!!A.textureSet.colorTexture,this._buffer=null,this._finalized=!0}isEmpty(){return!this._state.indicesBuf}initFlags(A,e,t){e&Wt&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),e&qt&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),e&Zt&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),e&$t&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),e&Vt&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),e&Ai&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),e&Lt&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),e&Xt&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),t&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(A,e,t,!0)}flushInitFlags(){this._setDeferredFlags()}setVisible(A,e,t){if(!this._finalized)throw"Not finalized";e&Wt?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(A,e,t)}setHighlighted(A,e,t){if(!this._finalized)throw"Not finalized";e&qt?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(A,e,t)}setXRayed(A,e,t){if(!this._finalized)throw"Not finalized";e&Zt?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(A,e,t)}setSelected(A,e,t){if(!this._finalized)throw"Not finalized";e&$t?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(A,e,t)}setEdges(A,e,t){if(!this._finalized)throw"Not finalized";e&Ai?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(A,e,t)}setClippable(A,e){if(!this._finalized)throw"Not finalized";e&Vt?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(A,e)}setCulled(A,e,t){if(!this._finalized)throw"Not finalized";e&Xt?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(A,e,t)}setCollidable(A,e){if(!this._finalized)throw"Not finalized"}setPickable(A,e,t){if(!this._finalized)throw"Not finalized";e&Lt?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(A,e,t)}setColor(A,e){if(!this._finalized)throw"Not finalized";const t=A,i=this._portions[t],s=4*i.vertsBaseIndex,n=4*i.numVerts,o=this._scratchMemory.getUInt8Array(n),r=e[0],c=e[1],a=e[2],h=e[3];for(let A=0;AA-e.vertsBaseIndex)),r=g.mulMat4(i,s,new Array(16));r[12]+=n[0],r[13]+=n[1],r[14]+=n[2];const c=t.positionsBuf.getData(e.vertsBaseIndex,e.numVerts);return{indices:o,positions:g.transformPositions3(r,c,new Array(c.length))}}drawColorOpaque(A,e){if(this._numCulledLayerPortions===this._numPortions||0===this._numVisibleLayerPortions||this._numTransparentLayerPortions===this._numPortions||this._numXRayedLayerPortions===this._numPortions)return;this._updateBackfaceCull(A,e);const t=this._state.textureSet&&"number"==typeof this._state.textureSet.alphaCutoff;e.withSAO&&this.model.saoEnabled?e.pbrEnabled&&this.model.pbrEnabled&&this._state.pbrSupported?this._renderers.pbrRendererWithSAO&&this._renderers.pbrRendererWithSAO.drawLayer(e,this,ei.COLOR_OPAQUE):e.colorTextureEnabled&&this.model.colorTextureEnabled&&this._state.colorTextureSupported?t?this._renderers.colorTextureRendererWithSAOAlphaCutoff&&this._renderers.colorTextureRendererWithSAOAlphaCutoff.drawLayer(e,this,ei.COLOR_OPAQUE):this._renderers.colorTextureRendererWithSAO&&this._renderers.colorTextureRendererWithSAO.drawLayer(e,this,ei.COLOR_OPAQUE):this._state.normalsBuf?this._renderers.colorRendererWithSAO&&this._renderers.colorRendererWithSAO.drawLayer(e,this,ei.COLOR_OPAQUE):this._renderers.flatColorRendererWithSAO&&this._renderers.flatColorRendererWithSAO.drawLayer(e,this,ei.COLOR_OPAQUE):e.pbrEnabled&&this.model.pbrEnabled&&this._state.pbrSupported?this._renderers.pbrRenderer&&this._renderers.pbrRenderer.drawLayer(e,this,ei.COLOR_OPAQUE):e.colorTextureEnabled&&this.model.colorTextureEnabled&&this._state.colorTextureSupported?t?this._renderers.colorTextureRendererAlphaCutoff&&this._renderers.colorTextureRendererAlphaCutoff.drawLayer(e,this,ei.COLOR_OPAQUE):this._renderers.colorTextureRenderer&&this._renderers.colorTextureRenderer.drawLayer(e,this,ei.COLOR_OPAQUE):this._state.normalsBuf?this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(e,this,ei.COLOR_OPAQUE):this._renderers.flatColorRenderer&&this._renderers.flatColorRenderer.drawLayer(e,this,ei.COLOR_OPAQUE)}_updateBackfaceCull(A,e){const t=!0;if(e.backfaces!==t){const A=e.gl;A.disable(A.CULL_FACE),e.backfaces=t}}drawColorTransparent(A,e){if(this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions)if(this._updateBackfaceCull(A,e),e.pbrEnabled&&this.model.pbrEnabled&&this._state.pbrSupported)this._renderers.pbrRenderer&&this._renderers.pbrRenderer.drawLayer(e,this,ei.COLOR_TRANSPARENT);else if(e.colorTextureEnabled&&this.model.colorTextureEnabled&&this._state.colorTextureSupported){this._state.textureSet&&"number"==typeof this._state.textureSet.alphaCutoff?this._renderers.colorTextureRendererAlphaCutoff&&this._renderers.colorTextureRendererAlphaCutoff.drawLayer(e,this,ei.COLOR_TRANSPARENT):this._renderers.colorTextureRenderer&&this._renderers.colorTextureRenderer.drawLayer(e,this,ei.COLOR_TRANSPARENT)}else this._state.normalsBuf?this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(e,this,ei.COLOR_TRANSPARENT):this._renderers.flatColorRenderer&&this._renderers.flatColorRenderer.drawLayer(e,this,ei.COLOR_TRANSPARENT)}drawDepth(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(A,e),this._renderers.depthRenderer&&this._renderers.depthRenderer.drawLayer(e,this,ei.COLOR_OPAQUE))}drawNormals(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&(this._updateBackfaceCull(A,e),this._renderers.normalsRenderer&&this._renderers.normalsRenderer.drawLayer(e,this,ei.COLOR_OPAQUE))}drawSilhouetteXRayed(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&(this._updateBackfaceCull(A,e),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(e,this,ei.SILHOUETTE_XRAYED))}drawSilhouetteHighlighted(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&(this._updateBackfaceCull(A,e),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(e,this,ei.SILHOUETTE_HIGHLIGHTED))}drawSilhouetteSelected(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&(this._updateBackfaceCull(A,e),this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(e,this,ei.SILHOUETTE_SELECTED))}drawEdgesColorOpaque(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&this._renderers.edgesColorRenderer&&this._renderers.edgesColorRenderer.drawLayer(e,this,ei.EDGES_COLOR_OPAQUE)}drawEdgesColorTransparent(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numEdgesLayerPortions&&0!==this._numTransparentLayerPortions&&this._renderers.edgesColorRenderer&&this._renderers.edgesColorRenderer.drawLayer(e,this,ei.EDGES_COLOR_TRANSPARENT)}drawEdgesHighlighted(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(e,this,ei.EDGES_HIGHLIGHTED)}drawEdgesSelected(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(e,this,ei.EDGES_SELECTED)}drawEdgesXRayed(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.edgesRenderer&&this._renderers.edgesRenderer.drawLayer(e,this,ei.EDGES_XRAYED)}drawOcclusion(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(A,e),this._renderers.occlusionRenderer&&this._renderers.occlusionRenderer.drawLayer(e,this,ei.COLOR_OPAQUE))}drawShadow(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(A,e),this._renderers.shadowRenderer&&this._renderers.shadowRenderer.drawLayer(e,this,ei.COLOR_OPAQUE))}drawPickMesh(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(A,e),this._renderers.pickMeshRenderer&&this._renderers.pickMeshRenderer.drawLayer(e,this,ei.PICK))}drawPickDepths(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(A,e),this._renderers.pickDepthRenderer&&this._renderers.pickDepthRenderer.drawLayer(e,this,ei.PICK))}drawPickNormals(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(A,e),this._renderers.pickNormalsFlatRenderer&&this._renderers.pickNormalsFlatRenderer.drawLayer(e,this,ei.PICK))}drawSnapInit(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(A,e),this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(e,this,ei.PICK))}drawSnap(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&(this._updateBackfaceCull(A,e),this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(e,this,ei.PICK))}precisionRayPickSurface(A,e,t,i,s){if(!this.model.scene.readableGeometryEnabled)return!1;const n=this._state,o=this._portions[A];if(!o)return this.model.error("portion not found: "+A),!1;const r=o.quantizedPositions,c=o.indices,a=n.origin,h=o.offset,B=As,l=es;B.set(a?g.subVec3(e,a,ts):e),l.set(t),h&&g.subVec3(B,h),g.transformRay(this.model.worldNormalMatrix,B,l,B,l);const E=is,Q=ss,M=ns;let u=!1,w=0;const d=os;for(let A=0,t=c.length;Aw)&&(w=A,i.set(d),s&&g.triangleNormal(E,Q,M,s),u=!0)}}return u&&s&&(g.transformVec3(this.model.worldNormalMatrix,s,s),g.normalizeVec3(s)),u}destroy(){const A=this._state;A.positionsBuf&&(A.positionsBuf.destroy(),A.positionsBuf=null),A.offsetsBuf&&(A.offsetsBuf.destroy(),A.offsetsBuf=null),A.normalsBuf&&(A.normalsBuf.destroy(),A.normalsBuf=null),A.colorsBuf&&(A.colorsBuf.destroy(),A.colorsBuf=null),A.metallicRoughnessBuf&&(A.metallicRoughnessBuf.destroy(),A.metallicRoughnessBuf=null),A.flagsBuf&&(A.flagsBuf.destroy(),A.flagsBuf=null),A.pickColorsBuf&&(A.pickColorsBuf.destroy(),A.pickColorsBuf=null),A.indicesBuf&&(A.indicesBuf.destroy(),A.indicessBuf=null),A.edgeIndicesBuf&&(A.edgeIndicesBuf.destroy(),A.edgeIndicessBuf=null),A.destroy()}}class cs extends ci{constructor(A,e,{edges:t=!1,useAlphaCutoff:i=!1}={}){super(A,e,{instancing:!0,edges:t,useAlphaCutoff:i})}_draw(A){const{gl:e}=this._scene.canvas,{state:t,frameCtx:i,incrementDrawState:s}=A;this._edges?t.edgeIndicesBuf&&e.drawElementsInstanced(e.LINES,t.edgeIndicesBuf.numItems,t.edgeIndicesBuf.itemType,0,t.numInstances):(e.drawElementsInstanced(e.TRIANGLES,t.indicesBuf.numItems,t.indicesBuf.itemType,0,t.numInstances),s&&i.drawElements++)}}class as extends cs{_getHash(){const A=this._scene;return[A._lightsState.getHash(),A._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(A,e,t){super.drawLayer(A,e,t,{incrementDrawState:!0})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState,t=A._lightsState,i=e.getNumAllocatedSectionPlanes()>0;let s,n,o;const r=[];for(r.push("#version 300 es"),r.push("// Instancing geometry drawing vertex shader"),r.push("uniform int renderPass;"),r.push("in vec3 position;"),r.push("in vec2 normal;"),r.push("in vec4 color;"),r.push("in float flags;"),A.entityOffsetsEnabled&&r.push("in vec3 offset;"),r.push("in vec4 modelMatrixCol0;"),r.push("in vec4 modelMatrixCol1;"),r.push("in vec4 modelMatrixCol2;"),r.push("in vec4 modelNormalMatrixCol0;"),r.push("in vec4 modelNormalMatrixCol1;"),r.push("in vec4 modelNormalMatrixCol2;"),this._addMatricesUniformBlockLines(r,!0),A.logarithmicDepthBufferEnabled&&(r.push("uniform float logDepthBufFC;"),r.push("out float vFragDepth;"),r.push("bool isPerspectiveMatrix(mat4 m) {"),r.push(" return (m[2][3] == - 1.0);"),r.push("}"),r.push("out float isPerspective;")),r.push("uniform vec4 lightAmbient;"),s=0,n=t.lights.length;s= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),r.push(" }"),r.push(" return normalize(v);"),r.push("}"),i&&(r.push("out vec4 vWorldPosition;"),r.push("out float vFlags;")),r.push("out vec4 vColor;"),r.push("void main(void) {"),r.push("int colorFlag = int(flags) & 0xF;"),r.push("if (colorFlag != renderPass) {"),r.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),r.push("} else {"),r.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),r.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&r.push("worldPosition.xyz = worldPosition.xyz + offset;"),r.push("vec4 viewPosition = viewMatrix * worldPosition; "),r.push("vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),r.push("vec4 worldNormal = worldNormalMatrix * vec4(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2), 0.0);"),r.push("vec3 viewNormal = normalize(vec4(viewNormalMatrix * worldNormal).xyz);"),r.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),r.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),r.push("float lambertian = 1.0;"),s=0,n=t.lights.length;s0,i=[];if(i.push("#version 300 es"),i.push("// Instancing geometry drawing fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),this._withSAO&&(i.push("uniform sampler2D uOcclusionTexture;"),i.push("uniform vec4 uSAOParams;"),i.push("const float packUpscale = 256. / 255.;"),i.push("const float unpackDownScale = 255. / 256.;"),i.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),i.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),i.push("float unpackRGBToFloat( const in vec4 v ) {"),i.push(" return dot( v, unPackFactors );"),i.push("}")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A sliceThickness) { "),i.push(" discard;"),i.push(" }"),i.push(" if (dist > 0.0) { "),i.push(" newColor = sliceColor;"),i.push(" }"),i.push("}")}return A.logarithmicDepthBufferEnabled?(i.push(" float dx = dFdx(vFragDepth);"),i.push(" float dy = dFdy(vFragDepth);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;")):(i.push(" float dx = dFdx(gl_FragCoord.z);"),i.push(" float dy = dFdy(gl_FragCoord.z);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = gl_FragCoord.z + diff;")),this._withSAO?(i.push(" float viewportWidth = uSAOParams[0];"),i.push(" float viewportHeight = uSAOParams[1];"),i.push(" float blendCutoff = uSAOParams[2];"),i.push(" float blendFactor = uSAOParams[3];"),i.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),i.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),i.push(" outColor = vec4(newColor.rgb * ambient, 1.0);")):i.push(" outColor = newColor;"),i.push("}"),i}}class hs extends cs{_getHash(){const A=this._scene;return[A._lightsState.getHash(),A._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Instancing geometry flat-shading drawing vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),t.push("in vec4 color;"),t.push("in float flags;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vViewPosition;"),t.push("out vec4 vColor;"),t.push("void main(void) {"),t.push("int colorFlag = int(flags) & 0xF;"),t.push("if (colorFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),t.push("vViewPosition = viewPosition;"),t.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=A._lightsState;let i,s;const n=e.getNumAllocatedSectionPlanes()>0,o=[];if(o.push("#version 300 es"),o.push("// Instancing geometry flat-shading drawing fragment shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("#endif"),A.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),this._withSAO&&(o.push("uniform sampler2D uOcclusionTexture;"),o.push("uniform vec4 uSAOParams;"),o.push("const float packUpscale = 256. / 255.;"),o.push("const float unpackDownScale = 255. / 256.;"),o.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),o.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),o.push("float unpackRGBToFloat( const in vec4 v ) {"),o.push(" return dot( v, unPackFactors );"),o.push("}")),n){o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A sliceThickness) { "),o.push(" discard;"),o.push(" }"),o.push(" if (dist > 0.0) { "),o.push(" newColor = sliceColor;"),o.push(" }"),o.push("}")}for(o.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),o.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),o.push("float lambertian = 1.0;"),o.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),o.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),o.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );"),i=0,s=t.lights.length;i0,t=[];return t.push("#version 300 es"),t.push("// Instancing silhouette vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 color;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec4 silhouetteColor;"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vColor;"),t.push("void main(void) {"),t.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),t.push("if (silhouetteFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("vColor = vec4(silhouetteColor.r, silhouetteColor.g, silhouetteColor.b, min(silhouetteColor.a, float(color.a) / 255.0));"),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Instancing fill fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A sliceThickness) { "),i.push(" discard;"),i.push(" }"),i.push(" if (dist > 0.0) { "),i.push(" newColor = sliceColor;"),i.push(" }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = newColor;"),i.push("}"),i}}class gs extends cs{constructor(A,e){super(A,e,{instancing:!0,edges:!0})}}class ls extends gs{drawLayer(A,e,t){super.drawLayer(A,e,t,{colorUniform:!0})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// EdgesEmphasisRenderer vertex shader"),t.push("uniform int renderPass;"),t.push("uniform vec4 color;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vColor;"),t.push("void main(void) {"),t.push("int edgeFlag = int(flags) >> 8 & 0xF;"),t.push("if (edgeFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push("vec4 worldPosition = worldMatrix * positionsDecodeMatrix * vec4(position, 1.0); "),t.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = clipPos;"),t.push("vColor = vec4(color.r, color.g, color.b, color.a);"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// EdgesEmphasisRenderer fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class Es extends gs{drawLayer(A,e,t){super.drawLayer(A,e,t,{colorUniform:!1})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// EdgesColorRenderer vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),t.push("in vec4 color;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vColor;"),t.push("void main(void) {"),t.push("int edgeFlag = int(flags) >> 8 & 0xF;"),t.push("if (edgeFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = clipPos;"),t.push("vColor = vec4(float(color.r*0.5) / 255.0, float(color.g*0.5) / 255.0, float(color.b*0.5) / 255.0, float(color.a) / 255.0);"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// EdgesColorRenderer fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class Qs extends cs{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Instancing geometry picking vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 pickColor;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),this._addRemapClipPosLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vPickColor;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = remapClipPos(clipPos);"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry picking fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0;A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0;A 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vPickColor; "),i.push("}"),i}}class Ms extends cs{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Instancing geometry depth vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),this._addRemapClipPosLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vViewPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push(" vViewPosition = viewPosition;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = remapClipPos(clipPos);"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry depth fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),i.push("uniform float pickZNear;"),i.push("uniform float pickZFar;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0;A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0;A 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),i.push(" outColor = packDepth(zNormalizedDepth); "),i.push("}"),i}}class us extends cs{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Instancing geometry normals vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in vec2 normal;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),t.push("in vec4 modelNormalMatrixCol0;"),t.push("in vec4 modelNormalMatrixCol1;"),t.push("in vec4 modelNormalMatrixCol2;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),this._addRemapClipPosLines(t,3),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),t.push("vec3 octDecode(vec2 oct) {"),t.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),t.push(" if (v.z < 0.0) {"),t.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),t.push(" }"),t.push(" return normalize(v);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec3 vWorldNormal;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),t.push(" vec3 worldNormal = vec3(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2));"),t.push(" vWorldNormal = worldNormal;"),e&&(t.push(" vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = remapClipPos(clipPos);"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry normals fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0;A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(` outNormal = ivec4(vWorldNormal * float(${g.MAX_INT}), 1.0);`),i.push("}"),i}}class ws extends cs{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// TrianglesInstancingOcclusionRenderer vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in vec4 color;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(t),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("void main(void) {"),t.push("int colorFlag = int(flags) & 0xF;"),t.push("if (colorFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// TrianglesInstancingOcclusionRenderer fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),e){t.push("in vec4 vWorldPosition;"),t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),t.push("}")}return t.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),t.push("}"),t}}class ds extends cs{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Instancing geometry depth drawing vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec2 vHighPrecisionZW;"),t.push("void main(void) {"),t.push("int colorFlag = int(flags) & 0xF;"),t.push("if (colorFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = clipPos;"),t.push("vHighPrecisionZW = gl_Position.zw;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState;let t,i;const s=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Instancing geometry depth drawing fragment shader"),n.push("precision highp float;"),n.push("precision highp int;"),A.logarithmicDepthBufferEnabled&&(n.push("in float isPerspective;"),n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s)for(n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;"),t=0,i=e.getNumAllocatedSectionPlanes();t> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;"),t=0,i=e.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),n.push("}")}return A.logarithmicDepthBufferEnabled&&n.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),n.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),n.push("}"),n}}class Cs extends cs{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Instancing geometry normals drawing vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in vec3 normal;"),t.push("in vec4 color;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(t,!0),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),t.push("vec3 octDecode(vec2 oct) {"),t.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),t.push(" if (v.z < 0.0) {"),t.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),t.push(" }"),t.push(" return normalize(v);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec3 vViewNormal;"),t.push("void main(void) {"),t.push("int colorFlag = int(flags) & 0xF;"),t.push("if (colorFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),t.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push(" vViewNormal = viewNormal;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Instancing geometry depth drawing fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),i.push("}"),i}}class xs extends cs{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Instancing geometry shadow drawing vertex shader"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in vec4 color;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),t.push("uniform mat4 shadowViewMatrix;"),t.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(t),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("void main(void) {"),t.push("int colorFlag = int(flags) & 0xF;"),t.push("bool visible = (colorFlag > 0);"),t.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),t.push("if (!visible || transparent) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push(" gl_Position = shadowProjMatrix * viewPosition;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Instancing geometry depth drawing fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),i.push("}"),i}}const Fs={3e3:"linearToLinear",3001:"sRGBToLinear"};class ps extends cs{_getHash(){const A=this._scene;return[A.gammaOutput,A._lightsState.getHash(),A._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(A,e,t){super.drawLayer(A,e,t,{incrementDrawState:!0})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState,t=A._lightsState,i=e.getNumAllocatedSectionPlanes()>0,s=e.clippingCaps,n=[];return n.push("#version 300 es"),n.push("// Instancing geometry quality drawing vertex shader"),n.push("uniform int renderPass;"),n.push("in vec3 position;"),n.push("in vec3 normal;"),n.push("in vec4 color;"),n.push("in vec2 uv;"),n.push("in vec2 metallicRoughness;"),n.push("in float flags;"),A.entityOffsetsEnabled&&n.push("in vec3 offset;"),n.push("in vec4 modelMatrixCol0;"),n.push("in vec4 modelMatrixCol1;"),n.push("in vec4 modelMatrixCol2;"),n.push("in vec4 modelNormalMatrixCol0;"),n.push("in vec4 modelNormalMatrixCol1;"),n.push("in vec4 modelNormalMatrixCol2;"),this._addMatricesUniformBlockLines(n,!0),n.push("uniform mat3 uvDecodeMatrix;"),A.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("out float isPerspective;")),n.push("vec3 octDecode(vec2 oct) {"),n.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),n.push(" if (v.z < 0.0) {"),n.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),n.push(" }"),n.push(" return normalize(v);"),n.push("}"),n.push("out vec4 vViewPosition;"),n.push("out vec3 vViewNormal;"),n.push("out vec4 vColor;"),n.push("out vec2 vUV;"),n.push("out vec2 vMetallicRoughness;"),t.lightMaps.length>0&&n.push("out vec3 vWorldNormal;"),i&&(n.push("out vec4 vWorldPosition;"),n.push("out float vFlags;"),s&&n.push("out vec4 vClipPosition;")),n.push("void main(void) {"),n.push("int colorFlag = int(flags) & 0xF;"),n.push("if (colorFlag != renderPass) {"),n.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),n.push("} else {"),n.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),n.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&n.push(" worldPosition.xyz = worldPosition.xyz + offset;"),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vec4 modelNormal = vec4(octDecode(normal.xy), 0.0); "),n.push("vec4 worldNormal = worldNormalMatrix * vec4(dot(modelNormal, modelNormalMatrixCol0), dot(modelNormal, modelNormalMatrixCol1), dot(modelNormal, modelNormalMatrixCol2), 1.0);"),n.push("vec3 viewNormal = vec4(viewNormalMatrix * worldNormal).xyz;"),n.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(n.push("vFragDepth = 1.0 + clipPos.w;"),n.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),i&&(n.push("vWorldPosition = worldPosition;"),n.push("vFlags = flags;"),s&&n.push("vClipPosition = clipPos;")),n.push("vViewPosition = viewPosition;"),n.push("vViewNormal = viewNormal;"),n.push("vColor = color;"),n.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),n.push("vMetallicRoughness = metallicRoughness;"),t.lightMaps.length>0&&n.push("vWorldNormal = worldNormal.xyz;"),n.push("gl_Position = clipPos;"),n.push("}"),n.push("}"),n}_buildFragmentShader(){const A=this._scene,e=A.gammaOutput,t=A._sectionPlanesState,i=A._lightsState,s=t.getNumAllocatedSectionPlanes()>0,n=t.clippingCaps,o=[];o.push("#version 300 es"),o.push("// Instancing geometry quality drawing fragment shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("#endif"),A.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),o.push("uniform sampler2D uColorMap;"),o.push("uniform sampler2D uMetallicRoughMap;"),o.push("uniform sampler2D uEmissiveMap;"),o.push("uniform sampler2D uNormalMap;"),this._withSAO&&(o.push("uniform sampler2D uOcclusionTexture;"),o.push("uniform vec4 uSAOParams;"),o.push("const float packUpscale = 256. / 255.;"),o.push("const float unpackDownScale = 255. / 256.;"),o.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),o.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),o.push("float unpackRGBToFloat( const in vec4 v ) {"),o.push(" return dot( v, unPackFactors );"),o.push("}")),i.reflectionMaps.length>0&&o.push("uniform samplerCube reflectionMap;"),i.lightMaps.length>0&&o.push("uniform samplerCube lightMap;"),o.push("uniform vec4 lightAmbient;");for(let A=0,e=i.lights.length;A0&&o.push("in vec3 vWorldNormal;"),this._addMatricesUniformBlockLines(o,!0),o.push("#define PI 3.14159265359"),o.push("#define RECIPROCAL_PI 0.31830988618"),o.push("#define RECIPROCAL_PI2 0.15915494"),o.push("#define EPSILON 1e-6"),o.push("#define saturate(a) clamp( a, 0.0, 1.0 )"),o.push("vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {"),o.push(" vec3 texel = texture( uNormalMap, uv ).xyz;"),o.push(" if (texel.r == 0.0 && texel.g == 0.0 && texel.b == 0.0) {"),o.push(" return normalize(surf_norm );"),o.push(" }"),o.push(" vec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );"),o.push(" vec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );"),o.push(" vec2 st0 = dFdx( uv.st );"),o.push(" vec2 st1 = dFdy( uv.st );"),o.push(" vec3 S = normalize( q0 * st1.t - q1 * st0.t );"),o.push(" vec3 T = normalize( -q0 * st1.s + q1 * st0.s );"),o.push(" vec3 N = normalize( surf_norm );"),o.push(" vec3 mapN = texel.xyz * 2.0 - 1.0;"),o.push(" mat3 tsn = mat3( S, T, N );"),o.push(" return normalize( tsn * mapN );"),o.push("}"),o.push("vec3 inverseTransformDirection(in vec3 dir, in mat4 matrix) {"),o.push(" return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );"),o.push("}"),o.push("struct IncidentLight {"),o.push(" vec3 color;"),o.push(" vec3 direction;"),o.push("};"),o.push("struct ReflectedLight {"),o.push(" vec3 diffuse;"),o.push(" vec3 specular;"),o.push("};"),o.push("struct Geometry {"),o.push(" vec3 position;"),o.push(" vec3 viewNormal;"),o.push(" vec3 worldNormal;"),o.push(" vec3 viewEyeDir;"),o.push("};"),o.push("struct Material {"),o.push(" vec3 diffuseColor;"),o.push(" float specularRoughness;"),o.push(" vec3 specularColor;"),o.push(" float shine;"),o.push("};"),o.push("float GGXRoughnessToBlinnExponent(const in float ggxRoughness) {"),o.push(" float r = ggxRoughness + 0.0001;"),o.push(" return (2.0 / (r * r) - 2.0);"),o.push("}"),o.push("float getSpecularMIPLevel(const in float blinnShininessExponent, const in int maxMIPLevel) {"),o.push(" float maxMIPLevelScalar = float( maxMIPLevel );"),o.push(" float desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( ( blinnShininessExponent * blinnShininessExponent ) + 1.0 );"),o.push(" return clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );"),o.push("}"),i.reflectionMaps.length>0&&(o.push("vec3 getLightProbeIndirectRadiance(const in vec3 reflectVec, const in float blinnShininessExponent, const in int maxMIPLevel) {"),o.push(" float mipLevel = 0.5 * getSpecularMIPLevel(blinnShininessExponent, maxMIPLevel);"),o.push(" vec3 envMapColor = "+Fs[i.reflectionMaps[0].encoding]+"(texture(reflectionMap, reflectVec, mipLevel)).rgb;"),o.push(" return envMapColor;"),o.push("}")),o.push("vec3 F_Schlick(const in vec3 specularColor, const in float dotLH) {"),o.push(" float fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );"),o.push(" return ( 1.0 - specularColor ) * fresnel + specularColor;"),o.push("}"),o.push("float G_GGX_Smith(const in float alpha, const in float dotNL, const in float dotNV) {"),o.push(" float a2 = ( alpha * alpha );"),o.push(" float gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),o.push(" float gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),o.push(" return 1.0 / ( gl * gv );"),o.push("}"),o.push("float G_GGX_SmithCorrelated(const in float alpha, const in float dotNL, const in float dotNV) {"),o.push(" float a2 = ( alpha * alpha );"),o.push(" float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * ( dotNV * dotNV ) );"),o.push(" float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * ( dotNL * dotNL ) );"),o.push(" return 0.5 / max( gv + gl, EPSILON );"),o.push("}"),o.push("float D_GGX(const in float alpha, const in float dotNH) {"),o.push(" float a2 = ( alpha * alpha );"),o.push(" float denom = ( dotNH * dotNH) * ( a2 - 1.0 ) + 1.0;"),o.push(" return RECIPROCAL_PI * a2 / ( denom * denom);"),o.push("}"),o.push("vec3 BRDF_Specular_GGX(const in IncidentLight incidentLight, const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),o.push(" float alpha = ( roughness * roughness );"),o.push(" vec3 halfDir = normalize( incidentLight.direction + geometry.viewEyeDir );"),o.push(" float dotNL = saturate( dot( geometry.viewNormal, incidentLight.direction ) );"),o.push(" float dotNV = saturate( dot( geometry.viewNormal, geometry.viewEyeDir ) );"),o.push(" float dotNH = saturate( dot( geometry.viewNormal, halfDir ) );"),o.push(" float dotLH = saturate( dot( incidentLight.direction, halfDir ) );"),o.push(" vec3 F = F_Schlick( specularColor, dotLH );"),o.push(" float G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );"),o.push(" float D = D_GGX( alpha, dotNH );"),o.push(" return F * (G * D);"),o.push("}"),o.push("vec3 BRDF_Specular_GGX_Environment(const in Geometry geometry, const in vec3 specularColor, const in float roughness) {"),o.push(" float dotNV = saturate(dot(geometry.viewNormal, geometry.viewEyeDir));"),o.push(" const vec4 c0 = vec4( -1, -0.0275, -0.572, 0.022);"),o.push(" const vec4 c1 = vec4( 1, 0.0425, 1.04, -0.04);"),o.push(" vec4 r = roughness * c0 + c1;"),o.push(" float a004 = min(r.x * r.x, exp2(-9.28 * dotNV)) * r.x + r.y;"),o.push(" vec2 AB = vec2(-1.04, 1.04) * a004 + r.zw;"),o.push(" return specularColor * AB.x + AB.y;"),o.push("}"),(i.lightMaps.length>0||i.reflectionMaps.length>0)&&(o.push("void computePBRLightMapping(const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),i.lightMaps.length>0&&(o.push(" vec3 irradiance = "+Fs[i.lightMaps[0].encoding]+"(texture(lightMap, geometry.worldNormal)).rgb;"),o.push(" irradiance *= PI;"),o.push(" vec3 diffuseBRDFContrib = (RECIPROCAL_PI * material.diffuseColor);"),o.push(" reflectedLight.diffuse += irradiance * diffuseBRDFContrib;")),i.reflectionMaps.length>0&&(o.push(" vec3 reflectVec = reflect(geometry.viewEyeDir, geometry.viewNormal);"),o.push(" reflectVec = inverseTransformDirection(reflectVec, viewMatrix);"),o.push(" float blinnExpFromRoughness = GGXRoughnessToBlinnExponent(material.specularRoughness);"),o.push(" vec3 radiance = getLightProbeIndirectRadiance(reflectVec, blinnExpFromRoughness, 8);"),o.push(" vec3 specularBRDFContrib = BRDF_Specular_GGX_Environment(geometry, material.specularColor, material.specularRoughness);"),o.push(" reflectedLight.specular += radiance * specularBRDFContrib;")),o.push("}")),o.push("void computePBRLighting(const in IncidentLight incidentLight, const in Geometry geometry, const in Material material, inout ReflectedLight reflectedLight) {"),o.push(" float dotNL = saturate(dot(geometry.viewNormal, incidentLight.direction));"),o.push(" vec3 irradiance = dotNL * incidentLight.color * PI;"),o.push(" reflectedLight.diffuse += irradiance * (RECIPROCAL_PI * material.diffuseColor);"),o.push(" reflectedLight.specular += irradiance * BRDF_Specular_GGX(incidentLight, geometry, material.specularColor, material.specularRoughness);"),o.push("}"),o.push("out vec4 outColor;"),o.push("void main(void) {"),s){o.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;");for(let A=0,e=t.getNumAllocatedSectionPlanes();A (0.002 * vClipPosition.w)) {"),o.push(" discard;"),o.push(" }"),o.push(" if (dist > 0.0) { "),o.push(" outColor=vec4(1.0, 0.0, 0.0, 1.0);"),A.logarithmicDepthBufferEnabled&&o.push(" gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),o.push(" return;"),o.push("}")):(o.push(" if (dist > 0.0) { "),o.push(" discard;"),o.push(" }")),o.push("}")}o.push("IncidentLight light;"),o.push("Material material;"),o.push("Geometry geometry;"),o.push("ReflectedLight reflectedLight = ReflectedLight(vec3(0.0,0.0,0.0), vec3(0.0,0.0,0.0));"),o.push("vec3 rgb = (vec3(float(vColor.r) / 255.0, float(vColor.g) / 255.0, float(vColor.b) / 255.0));"),o.push("float opacity = float(vColor.a) / 255.0;"),o.push("vec3 baseColor = rgb;"),o.push("float specularF0 = 1.0;"),o.push("float metallic = float(vMetallicRoughness.r) / 255.0;"),o.push("float roughness = float(vMetallicRoughness.g) / 255.0;"),o.push("float dielectricSpecular = 0.16 * specularF0 * specularF0;"),o.push("vec4 colorTexel = sRGBToLinear(texture(uColorMap, vUV));"),o.push("baseColor *= colorTexel.rgb;"),o.push("vec3 metalRoughTexel = texture(uMetallicRoughMap, vUV).rgb;"),o.push("metallic *= metalRoughTexel.b;"),o.push("roughness *= metalRoughTexel.g;"),o.push("vec3 viewNormal = perturbNormal2Arb( vViewPosition.xyz, normalize(vViewNormal), vUV );"),o.push("material.diffuseColor = baseColor * (1.0 - dielectricSpecular) * (1.0 - metallic);"),o.push("material.specularRoughness = clamp(roughness, 0.04, 1.0);"),o.push("material.specularColor = mix(vec3(dielectricSpecular), baseColor, metallic);"),o.push("geometry.position = vViewPosition.xyz;"),o.push("geometry.viewNormal = -normalize(viewNormal);"),o.push("geometry.viewEyeDir = normalize(vViewPosition.xyz);"),i.lightMaps.length>0&&o.push("geometry.worldNormal = normalize(vWorldNormal);"),(i.lightMaps.length>0||i.reflectionMaps.length>0)&&o.push("computePBRLightMapping(geometry, material, reflectedLight);");for(let A=0,e=i.lights.length;A0,t=[];return t.push("#version 300 es"),t.push("// Instancing geometry normals vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),this._addRemapClipPosLines(t,3),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&t.push("out float vFlags;"),t.push("out vec4 vWorldPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vWorldPosition = worldPosition;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),e&&t.push("vFlags = flags;"),t.push("gl_Position = remapClipPos(clipPos);"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Batched geometry normals fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),i.push("in vec4 vWorldPosition;"),t){i.push("in float vFlags;");for(let A=0;A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),i.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),i.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),i.push(` outNormal = ivec4(worldNormal * float(${g.MAX_INT}), 1.0);`),i.push("}"),i}}class fs extends cs{_getHash(){const A=this._scene;return[A.gammaOutput,A._lightsState.getHash(),A._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(A,e,t){super.drawLayer(A,e,t,{incrementDrawState:!0})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Instancing geometry drawing vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),t.push("in vec4 color;"),t.push("in vec2 uv;"),t.push("in float flags;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(t),t.push("uniform mat3 uvDecodeMatrix;"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vViewPosition;"),t.push("out vec4 vColor;"),t.push("out vec2 vUV;"),t.push("void main(void) {"),t.push("int colorFlag = int(flags) & 0xF;"),t.push("if (colorFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push("worldPosition.xyz = worldPosition.xyz + offset;"),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),t.push("vViewPosition = viewPosition;"),t.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),t.push("vUV = (uvDecodeMatrix * vec3(uv, 1.0)).xy;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A.gammaOutput,t=A._lightsState,i=A._sectionPlanesState,s=i.getNumAllocatedSectionPlanes()>0,n=this._useAlphaCutoff,o=[];if(o.push("#version 300 es"),o.push("// Instancing geometry drawing fragment shader"),o.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),o.push("precision highp float;"),o.push("precision highp int;"),o.push("#else"),o.push("precision mediump float;"),o.push("precision mediump int;"),o.push("#endif"),A.logarithmicDepthBufferEnabled&&(o.push("in float isPerspective;"),o.push("uniform float logDepthBufFC;"),o.push("in float vFragDepth;")),o.push("uniform sampler2D uColorMap;"),this._withSAO&&(o.push("uniform sampler2D uOcclusionTexture;"),o.push("uniform vec4 uSAOParams;"),o.push("const float packUpscale = 256. / 255.;"),o.push("const float unpackDownScale = 255. / 256.;"),o.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),o.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),o.push("float unpackRGBToFloat( const in vec4 v ) {"),o.push(" return dot( v, unPackFactors );"),o.push("}")),o.push("uniform float gammaFactor;"),o.push("vec4 linearToLinear( in vec4 value ) {"),o.push(" return value;"),o.push("}"),o.push("vec4 sRGBToLinear( in vec4 value ) {"),o.push(" return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );"),o.push("}"),o.push("vec4 gammaToLinear( in vec4 value) {"),o.push(" return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );"),o.push("}"),e&&(o.push("vec4 linearToGamma( in vec4 value, in float gammaFactor ) {"),o.push(" return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );"),o.push("}")),s){o.push("in vec4 vWorldPosition;"),o.push("in float vFlags;");for(let A=0,e=i.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),o.push(" if (clippable) {"),o.push(" float dist = 0.0;");for(let A=0,e=i.getNumAllocatedSectionPlanes();A sliceThickness) { "),o.push(" discard;"),o.push(" }"),o.push(" if (dist > 0.0) { "),o.push(" newColor = sliceColor;"),o.push(" }"),o.push("}")}o.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),o.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),o.push("float lambertian = 1.0;"),o.push("vec3 xTangent = dFdx( vViewPosition.xyz );"),o.push("vec3 yTangent = dFdy( vViewPosition.xyz );"),o.push("vec3 viewNormal = normalize( cross( xTangent, yTangent ) );");for(let A=0,e=t.lights.length;A0,t=[];return t.push("#version 300 es"),t.push("// SnapInstancingDepthBufInitRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),t.push("in vec4 pickColor;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec3 uCameraEyeRtc;"),t.push("uniform vec2 snapVectorA;"),t.push("uniform vec2 snapInvVectorAB;"),t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;"),t.push("vec2 remapClipPos(vec2 clipPos) {"),t.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),t.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),t.push(" return vec2(x, y);"),t.push("}"),t.push("flat out vec4 vPickColor;"),t.push("out vec4 vWorldPosition;"),e&&t.push("out float vFlags;"),t.push("out highp vec3 relativeToOriginPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("relativeToOriginPosition = worldPosition.xyz;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vWorldPosition = worldPosition;"),e&&t.push(" vFlags = flags;"),t.push("vPickColor = pickColor;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("float tmp = clipPos.w;"),t.push("clipPos.xyzw /= tmp;"),t.push("clipPos.xy = remapClipPos(clipPos.xy);"),t.push("clipPos.xyzw *= tmp;"),t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// Points instancing pick depth fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;"),t.push("uniform int layerNumber;"),t.push("uniform vec3 coordinateScaler;"),t.push("in vec4 vWorldPosition;"),t.push("flat in vec4 vPickColor;"),e){t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),t.push("}")}return t.push(" float dx = dFdx(vFragDepth);"),t.push(" float dy = dFdy(vFragDepth);"),t.push(" float diff = sqrt(dx*dx+dy*dy);"),t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),t.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),t.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),t.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),t.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),t.push(`outNormal = ivec4(worldNormal * float(${g.MAX_INT}), 1.0);`),t.push("outPickColor = uvec4(vPickColor);"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const zs=g.vec3(),Ts=g.vec3(),Us=g.vec3(),Rs=g.vec3(),bs=g.mat4();class ks extends ci{constructor(A){super(A,!1,{instancing:!0})}drawLayer(A,e,t){if(!this._program&&(this._allocate(e),this.errors))return;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram());const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=e._state.origin,{position:a,rotationMatrix:h}=i,B=e.aabb,l=A.pickViewMatrix||n.viewMatrix;this._vaoCache.has(e)?o.bindVertexArray(this._vaoCache.get(e)):this._vaoCache.set(e,this._makeVAO(r));const E=zs;let Q,M;if(E[0]=g.safeInv(B[3]-B[0])*g.MAX_INT,E[1]=g.safeInv(B[4]-B[1])*g.MAX_INT,E[2]=g.safeInv(B[5]-B[2])*g.MAX_INT,A.snapPickCoordinateScale[0]=g.safeInv(E[0]),A.snapPickCoordinateScale[1]=g.safeInv(E[1]),A.snapPickCoordinateScale[2]=g.safeInv(E[2]),c||0!==a[0]||0!==a[1]||0!==a[2]){const e=Ts;if(c){const A=g.transformPoint3(h,c,Us);e[0]=A[0],e[1]=A[1],e[2]=A[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=a[0],e[1]+=a[1],e[2]+=a[2],Q=UA(l,e,bs),M=Rs,M[0]=n.eye[0]-e[0],M[1]=n.eye[1]-e[1],M[2]=n.eye[2]-e[2],A.snapPickOrigin[0]=e[0],A.snapPickOrigin[1]=e[1],A.snapPickOrigin[2]=e[2]}else Q=l,M=n.eye,A.snapPickOrigin[0]=0,A.snapPickOrigin[1]=0,A.snapPickOrigin[2]=0;o.uniform3fv(this._uCameraEyeRtc,M),o.uniform2fv(this.uVectorA,A.snapVectorA),o.uniform2fv(this.uInverseVectorAB,A.snapInvVectorAB),o.uniform1i(this._uLayerNumber,A.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,E),o.uniform1i(this._uRenderPass,t),o.uniform1i(this._uPickInvisible,A.pickInvisible);let u=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(Q,u+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,u+=16),this._matricesUniformBlockBufferData.set(r.positionsDecodeMatrix,u+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const e=2/(Math.log(A.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,e)}this.setSectionPlanesStateUniforms(e),"edge"===A.snapMode?r.edgeIndicesBuf&&(r.edgeIndicesBuf.bind(),o.drawElementsInstanced(o.LINES,r.edgeIndicesBuf.numItems,r.edgeIndicesBuf.itemType,0,r.numInstances),r.edgeIndicesBuf.unbind()):o.drawArraysInstanced(o.POINTS,0,r.positionsBuf.numItems,r.numInstances),o.bindVertexArray(null)}_allocate(){super._allocate();const A=this._program;this._uLogDepthBufFC=A.getLocation("logDepthBufFC"),this._uCameraEyeRtc=A.getLocation("uCameraEyeRtc"),this.uVectorA=A.getLocation("snapVectorA"),this.uInverseVectorAB=A.getLocation("snapInvVectorAB"),this._uLayerNumber=A.getLocation("layerNumber"),this._uCoordinateScaler=A.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// SnapInstancingDepthRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec3 uCameraEyeRtc;"),t.push("uniform vec2 snapVectorA;"),t.push("uniform vec2 snapInvVectorAB;"),t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;"),t.push("vec2 remapClipPos(vec2 clipPos) {"),t.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),t.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),t.push(" return vec2(x, y);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out highp vec3 relativeToOriginPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(2.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("relativeToOriginPosition = worldPosition.xyz;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("float tmp = clipPos.w;"),t.push("clipPos.xyzw /= tmp;"),t.push("clipPos.xy = remapClipPos(clipPos.xy);"),t.push("clipPos.xyzw *= tmp;"),t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),t.push("gl_Position = clipPos;"),t.push("gl_PointSize = 1.0;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// SnapInstancingDepthRenderer fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;"),t.push("uniform int layerNumber;"),t.push("uniform vec3 coordinateScaler;"),e){t.push("in vec4 vWorldPosition;"),t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),t.push("}")}return t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Ps{constructor(A){this._scene=A}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._colorRendererWithSAO&&!this._colorRendererWithSAO.getValid()&&(this._colorRendererWithSAO.destroy(),this._colorRendererWithSAO=null),this._flatColorRenderer&&!this._flatColorRenderer.getValid()&&(this._flatColorRenderer.destroy(),this._flatColorRenderer=null),this._flatColorRendererWithSAO&&!this._flatColorRendererWithSAO.getValid()&&(this._flatColorRendererWithSAO.destroy(),this._flatColorRendererWithSAO=null),this._colorTextureRenderer&&!this._colorTextureRenderer.getValid()&&(this._colorTextureRenderer.destroy(),this._colorTextureRenderer=null),this._colorTextureRendererWithSAO&&!this._colorTextureRendererWithSAO.getValid()&&(this._colorTextureRendererWithSAO.destroy(),this._colorTextureRendererWithSAO=null),this._colorTextureRendererAlphaCutoff&&!this._colorTextureRendererAlphaCutoff.getValid()&&(this._colorTextureRendererAlphaCutoff.destroy(),this._colorTextureRendererAlphaCutoff=null),this._colorTextureRendererWithSAOAlphaCutoff&&!this._colorTextureRendererWithSAOAlphaCutoff.getValid()&&(this._colorTextureRendererWithSAOAlphaCutoff.destroy(),this._colorTextureRendererWithSAOAlphaCutoff=null),this._pbrRenderer&&!this._pbrRenderer.getValid()&&(this._pbrRenderer.destroy(),this._pbrRenderer=null),this._pbrRendererWithSAO&&!this._pbrRendererWithSAO.getValid()&&(this._pbrRendererWithSAO.destroy(),this._pbrRendererWithSAO=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._normalsRenderer&&!this._normalsRenderer.getValid()&&(this._normalsRenderer.destroy(),this._normalsRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._edgesRenderer&&!this._edgesRenderer.getValid()&&(this._edgesRenderer.destroy(),this._edgesRenderer=null),this._edgesColorRenderer&&!this._edgesColorRenderer.getValid()&&(this._edgesColorRenderer.destroy(),this._edgesColorRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._pickNormalsRenderer&&!1===this._pickNormalsRenderer.getValid()&&(this._pickNormalsRenderer.destroy(),this._pickNormalsRenderer=null),this._pickNormalsFlatRenderer&&!1===this._pickNormalsFlatRenderer.getValid()&&(this._pickNormalsFlatRenderer.destroy(),this._pickNormalsFlatRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new Bs(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new Qs(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new Ms(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new ys(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new ks(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new as(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new as(this._scene,!0)),this._colorRendererWithSAO}get flatColorRenderer(){return this._flatColorRenderer||(this._flatColorRenderer=new hs(this._scene,!1)),this._flatColorRenderer}get flatColorRendererWithSAO(){return this._flatColorRendererWithSAO||(this._flatColorRendererWithSAO=new hs(this._scene,!0)),this._flatColorRendererWithSAO}get colorTextureRenderer(){return this._colorTextureRenderer||(this._colorTextureRenderer=new fs(this._scene,!1)),this._colorTextureRenderer}get colorTextureRendererWithSAO(){return this._colorTextureRendererWithSAO||(this._colorTextureRendererWithSAO=new fs(this._scene,!0)),this._colorTextureRendererWithSAO}get colorTextureRendererAlphaCutoff(){return this._colorTextureRendererAlphaCutoff||(this._colorTextureRendererAlphaCutoff=new fs(this._scene,!1,{useAlphaCutoff:!0})),this._colorTextureRendererAlphaCutoff}get colorTextureRendererWithSAOAlphaCutoff(){return this._colorTextureRendererWithSAOAlphaCutoff||(this._colorTextureRendererWithSAOAlphaCutoff=new fs(this._scene,!0,{useAlphaCutoff:!0})),this._colorTextureRendererWithSAOAlphaCutoff}get pbrRenderer(){return this._pbrRenderer||(this._pbrRenderer=new ps(this._scene,!1)),this._pbrRenderer}get pbrRendererWithSAO(){return this._pbrRendererWithSAO||(this._pbrRendererWithSAO=new ps(this._scene,!0)),this._pbrRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Bs(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new ds(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new Cs(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new ls(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new Es(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Qs(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new us(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new Is(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Ms(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new ws(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new xs(this._scene)),this._shadowRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new ks(this._scene)),this._snapRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new ys(this._scene)),this._snapInitRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._colorTextureRenderer&&this._colorTextureRenderer.destroy(),this._colorTextureRendererWithSAO&&this._colorTextureRendererWithSAO.destroy(),this._colorTextureRendererAlphaCutoff&&this._colorTextureRendererAlphaCutoff.destroy(),this._colorTextureRendererWithSAOAlphaCutoff&&this._colorTextureRendererWithSAOAlphaCutoff.destroy(),this._pbrRenderer&&this._pbrRenderer.destroy(),this._pbrRendererWithSAO&&this._pbrRendererWithSAO.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._normalsRenderer&&this._normalsRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._edgesRenderer&&this._edgesRenderer.destroy(),this._edgesColorRenderer&&this._edgesColorRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Gs={};const vs=new Uint8Array(4),Hs=new Float32Array(1),Ss=g.vec4([0,0,0,1]),js=new Float32Array(3),Os=g.vec3(),_s=g.vec3(),Ws=g.vec3(),Xs=g.vec3(),Ls=g.vec3(),Vs=g.vec3(),Ks=g.vec3(),Zs=new Float32Array(4);class qs{constructor(A){this.model=A.model,this.sortId="TrianglesInstancingLayer"+(A.solid?"-solid":"-surface")+(A.normals?"-normals":"-autoNormals"),this.layerIndex=A.layerIndex,this._renderers=function(A){const e=A.id;let t=Gs[e];return t||(t=new Ps(A),Gs[e]=t,t._compile(),t.eagerCreateRenders(),A.on("compile",(()=>{t._compile(),t.eagerCreateRenders()})),A.on("destroyed",(()=>{delete Gs[e],t._destroy()}))),t}(A.model.scene),this._aabb=g.collapseAABB3(),this._state=new Z({numInstances:0,obb:g.OBB3(),origin:g.vec3(),geometry:A.geometry,textureSet:A.textureSet,pbrSupported:!1,positionsDecodeMatrix:A.geometry.positionsDecodeMatrix,colorsBuf:null,metallicRoughnessBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null,modelNormalMatrixCol0Buf:null,modelNormalMatrixCol1Buf:null,modelNormalMatrixCol2Buf:null,pickColorsBuf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=A.geometry.numIndices,this._colors=[],this._metallicRoughness=[],this._pickColors=[],this._offsets=[],this._modelMatrix=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=g.collapseAABB3(),this.aabbDirty=!0,A.origin&&this._state.origin.set(A.origin),this._finalized=!1,this.solid=!!A.solid,this.numIndices=A.geometry.numIndices,this.primitive=A.geometry.primitive}get aabb(){if(this.aabbDirty){g.collapseAABB3(this._aabb);for(let A=0,e=this._meshes.length;A0){let e=!1;A.colorsBuf=new q(i,i.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,i.DYNAMIC_DRAW,e),this._colors=[]}if(this._metallicRoughness.length>0){const e=new Uint8Array(this._metallicRoughness);let t=!1;A.metallicRoughnessBuf=new q(i,i.ARRAY_BUFFER,e,this._metallicRoughness.length,2,i.STATIC_DRAW,t)}if(n>0){let e=!1;A.flagsBuf=new q(i,i.ARRAY_BUFFER,new Float32Array(n),n,1,i.DYNAMIC_DRAW,e)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const e=!1;A.offsetsBuf=new q(i,i.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,i.DYNAMIC_DRAW,e),this._offsets=[]}if(e.positionsCompressed&&e.positionsCompressed.length>0){const t=!1;A.positionsBuf=new q(i,i.ARRAY_BUFFER,e.positionsCompressed,e.positionsCompressed.length,3,i.STATIC_DRAW,t),A.positionsDecodeMatrix=g.mat4(e.positionsDecodeMatrix)}if(e.colorsCompressed&&e.colorsCompressed.length>0){const t=new Uint8Array(e.colorsCompressed),s=!1;A.colorsBuf=new q(i,i.ARRAY_BUFFER,t,t.length,4,i.STATIC_DRAW,s)}if(e.uvCompressed&&e.uvCompressed.length>0){const t=e.uvCompressed;A.uvDecodeMatrix=e.uvDecodeMatrix,A.uvBuf=new q(i,i.ARRAY_BUFFER,t,t.length,2,i.STATIC_DRAW,!1)}if(e.indices&&e.indices.length>0&&(A.indicesBuf=new q(i,i.ELEMENT_ARRAY_BUFFER,new Uint32Array(e.indices),e.indices.length,1,i.STATIC_DRAW),A.numIndices=e.indices.length),e.edgeIndices&&e.edgeIndices.length>0&&(A.edgeIndicesBuf=new q(i,i.ELEMENT_ARRAY_BUFFER,new Uint32Array(e.edgeIndices),e.edgeIndices.length,1,i.STATIC_DRAW)),this._modelMatrixCol0.length>0){const e=!1;A.modelMatrixCol0Buf=new q(i,i.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,i.STATIC_DRAW,e),A.modelMatrixCol1Buf=new q(i,i.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,i.STATIC_DRAW,e),A.modelMatrixCol2Buf=new q(i,i.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,i.STATIC_DRAW,e),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],A.normalsBuf&&(A.modelNormalMatrixCol0Buf=new q(i,i.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol0),this._modelNormalMatrixCol0.length,4,i.STATIC_DRAW,e),A.modelNormalMatrixCol1Buf=new q(i,i.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol1),this._modelNormalMatrixCol1.length,4,i.STATIC_DRAW,e),A.modelNormalMatrixCol2Buf=new q(i,i.ARRAY_BUFFER,new Float32Array(this._modelNormalMatrixCol2),this._modelNormalMatrixCol2.length,4,i.STATIC_DRAW,e),this._modelNormalMatrixCol0=[],this._modelNormalMatrixCol1=[],this._modelNormalMatrixCol2=[])}if(this._pickColors.length>0){const e=!1;A.pickColorsBuf=new q(i,i.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,i.STATIC_DRAW,e),this._pickColors=[]}A.pbrSupported=!!(A.metallicRoughnessBuf&&A.uvBuf&&A.normalsBuf&&t&&t.colorTexture&&t.metallicRoughnessTexture),A.colorTextureSupported=!!A.uvBuf&&!!t&&!!t.colorTexture,this.model.scene.readableGeometryEnabled||(this._state.geometry=null),this._finalized=!0}initFlags(A,e,t){e&Wt&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),e&qt&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),e&Zt&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),e&$t&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),e&Vt&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),e&Ai&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),e&Lt&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),e&Xt&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),t&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(A,e,t)}setVisible(A,e,t){if(!this._finalized)throw"Not finalized";e&Wt?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(A,e,t)}setHighlighted(A,e,t){if(!this._finalized)throw"Not finalized";e&qt?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(A,e,t)}setXRayed(A,e,t){if(!this._finalized)throw"Not finalized";e&Zt?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(A,e,t)}setSelected(A,e,t){if(!this._finalized)throw"Not finalized";e&$t?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(A,e,t)}setEdges(A,e,t){if(!this._finalized)throw"Not finalized";e&Ai?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(A,e,t)}setClippable(A,e){if(!this._finalized)throw"Not finalized";e&Vt?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(A,e)}setCollidable(A,e){if(!this._finalized)throw"Not finalized"}setPickable(A,e,t){if(!this._finalized)throw"Not finalized";e&Lt?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(A,e,t)}setCulled(A,e,t){if(!this._finalized)throw"Not finalized";e&Xt?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(A,e,t)}setColor(A,e){if(!this._finalized)throw"Not finalized";vs[0]=e[0],vs[1]=e[1],vs[2]=e[2],vs[3]=e[3],this._state.colorsBuf&&this._state.colorsBuf.setData(vs,4*A)}setTransparent(A,e,t){t?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(A,e,t)}_setFlags(A,e,t){if(!this._finalized)throw"Not finalized";const i=!!(e&Wt),s=!!(e&Zt),n=!!(e&qt),o=!!(e&$t),r=!!(e&Ai),c=!!(e&Lt),a=!!(e&Xt);let h,B;h=!i||a||s||n&&!this.model.scene.highlightMaterial.glowThrough||o&&!this.model.scene.selectedMaterial.glowThrough?ei.NOT_RENDERED:t?ei.COLOR_TRANSPARENT:ei.COLOR_OPAQUE,B=!i||a?ei.NOT_RENDERED:o?ei.SILHOUETTE_SELECTED:n?ei.SILHOUETTE_HIGHLIGHTED:s?ei.SILHOUETTE_XRAYED:ei.NOT_RENDERED;let g=0;g=!i||a?ei.NOT_RENDERED:o?ei.EDGES_SELECTED:n?ei.EDGES_HIGHLIGHTED:s?ei.EDGES_XRAYED:r?t?ei.EDGES_COLOR_TRANSPARENT:ei.EDGES_COLOR_OPAQUE:ei.NOT_RENDERED;let l=0;l|=h,l|=B<<4,l|=g<<8,l|=(i&&!a&&c?ei.PICK:ei.NOT_RENDERED)<<12,l|=(e&Vt?1:0)<<16,Hs[0]=l,this._state.flagsBuf&&this._state.flagsBuf.setData(Hs,A)}setOffset(A,e){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(js[0]=e[0],js[1]=e[1],js[2]=e[2],this._state.offsetsBuf&&this._state.offsetsBuf.setData(js,3*A)):this.model.error("Entity#offset not enabled for this Viewer")}getEachVertex(A,e){if(!this.model.scene.readableGeometryEnabled)return!1;const t=this._state,i=t.geometry,s=this._portions[A];if(!s)return void this.model.error("portion not found: "+A);const n=i.positionsCompressed,o=this.model.matrix,r=g.vec4();r.set(t.origin,0),r[3]=1,g.mulMat4v4(o,r,r);const c=r[0],a=r[1],h=r[2],B=Ss,l=s.matrix,E=t.positionsDecodeMatrix;for(let A=0,t=n.length;Ad)&&(d=A,i.set(C),s&&g.triangleNormal(Q,M,u,s),w=!0)}}return w&&s&&(g.transformVec3(r.normalMatrix,s,s),g.transformVec3(this.model.worldNormalMatrix,s,s),g.normalizeVec3(s)),w}destroy(){const A=this._state;A.colorsBuf&&(A.colorsBuf.destroy(),A.colorsBuf=null),A.metallicRoughnessBuf&&(A.metallicRoughnessBuf.destroy(),A.metallicRoughnessBuf=null),A.flagsBuf&&(A.flagsBuf.destroy(),A.flagsBuf=null),A.offsetsBuf&&(A.offsetsBuf.destroy(),A.offsetsBuf=null),A.modelMatrixCol0Buf&&(A.modelMatrixCol0Buf.destroy(),A.modelMatrixCol0Buf=null),A.modelMatrixCol1Buf&&(A.modelMatrixCol1Buf.destroy(),A.modelMatrixCol1Buf=null),A.modelMatrixCol2Buf&&(A.modelMatrixCol2Buf.destroy(),A.modelMatrixCol2Buf=null),A.modelNormalMatrixCol0Buf&&(A.modelNormalMatrixCol0Buf.destroy(),A.modelNormalMatrixCol0Buf=null),A.modelNormalMatrixCol1Buf&&(A.modelNormalMatrixCol1Buf.destroy(),A.modelNormalMatrixCol1Buf=null),A.modelNormalMatrixCol2Buf&&(A.modelNormalMatrixCol2Buf.destroy(),A.modelNormalMatrixCol2Buf=null),A.pickColorsBuf&&(A.pickColorsBuf.destroy(),A.pickColorsBuf=null),A.destroy(),this._state=null}}class $s extends ci{_draw(A){const{gl:e}=this._scene.canvas,{state:t,frameCtx:i,incrementDrawState:s}=A;e.drawElements(e.LINES,t.indicesBuf.numItems,t.indicesBuf.itemType,0),s&&i.drawElements++}}class An extends $s{drawLayer(A,e,t){super.drawLayer(A,e,t,{incrementDrawState:!0})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Lines batching color vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),t.push("in vec4 color;"),t.push("in float flags;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),this._addMatricesUniformBlockLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vColor;"),t.push("void main(void) {"),t.push("int colorFlag = int(flags) & 0xF;"),t.push("if (colorFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push("worldPosition.xyz = worldPosition.xyz + offset;"),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),t.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Lines batching color fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),i.push("}")}return i.push(" outColor = vColor;"),A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("}"),i}}class en extends $s{drawLayer(A,e,t){super.drawLayer(A,e,t,{colorUniform:!0})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Lines batching silhouette vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec4 color;"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("void main(void) {"),t.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),t.push("if (silhouetteFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Lines batching silhouette fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = color;"),i.push("}"),i}}const tn=g.vec3(),sn=g.vec3(),nn=g.vec3(),on=g.vec3(),rn=g.mat4();class cn extends ci{drawLayer(A,e,t){if(!this._program&&(this._allocate(),this.errors))return;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram());const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=e._state.origin,{position:a,rotationMatrix:h}=i,B=e.aabb,l=A.pickViewMatrix||n.viewMatrix;this._vaoCache.has(e)?o.bindVertexArray(this._vaoCache.get(e)):this._vaoCache.set(e,this._makeVAO(r));const E=tn;let Q,M;if(E[0]=g.safeInv(B[3]-B[0])*g.MAX_INT,E[1]=g.safeInv(B[4]-B[1])*g.MAX_INT,E[2]=g.safeInv(B[5]-B[2])*g.MAX_INT,A.snapPickCoordinateScale[0]=g.safeInv(E[0]),A.snapPickCoordinateScale[1]=g.safeInv(E[1]),A.snapPickCoordinateScale[2]=g.safeInv(E[2]),c||0!==a[0]||0!==a[1]||0!==a[2]){const e=sn;if(c){const A=nn;g.transformPoint3(h,c,A),e[0]=A[0],e[1]=A[1],e[2]=A[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=a[0],e[1]+=a[1],e[2]+=a[2],Q=UA(l,e,rn),M=on,M[0]=n.eye[0]-e[0],M[1]=n.eye[1]-e[1],M[2]=n.eye[2]-e[2],A.snapPickOrigin[0]=e[0],A.snapPickOrigin[1]=e[1],A.snapPickOrigin[2]=e[2]}else Q=l,M=n.eye,A.snapPickOrigin[0]=0,A.snapPickOrigin[1]=0,A.snapPickOrigin[2]=0;o.uniform3fv(this._uCameraEyeRtc,M),o.uniform2fv(this.uVectorA,A.snapVectorA),o.uniform2fv(this.uInverseVectorAB,A.snapInvVectorAB),o.uniform1i(this._uLayerNumber,A.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,E),o.uniform1i(this._uRenderPass,t),o.uniform1i(this._uPickInvisible,A.pickInvisible);let u=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(Q,u+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,u+=16),this._matricesUniformBlockBufferData.set(r.positionsDecodeMatrix,u+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const e=2/(Math.log(A.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,e)}this.setSectionPlanesStateUniforms(e),r.indicesBuf.bind(),o.drawElements(o.LINES,r.indicesBuf.numItems,r.indicesBuf.itemType,0),r.indicesBuf.unbind(),o.bindVertexArray(null)}_allocate(){super._allocate();const A=this._program;this._uLogDepthBufFC=A.getLocation("logDepthBufFC"),this._uCameraEyeRtc=A.getLocation("uCameraEyeRtc"),this.uVectorA=A.getLocation("snapVectorA"),this.uInverseVectorAB=A.getLocation("snapInvVectorAB"),this._uLayerNumber=A.getLocation("layerNumber"),this._uCoordinateScaler=A.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// VBO SnapBatchingDepthBufInitRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),t.push("in vec4 pickColor;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec3 uCameraEyeRtc;"),t.push("uniform vec2 snapVectorA;"),t.push("uniform vec2 snapInvVectorAB;"),t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("out float isPerspective;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("vec2 remapClipPos(vec2 clipPos) {"),t.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),t.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),t.push(" return vec2(x, y);"),t.push("}"),t.push("flat out vec4 vPickColor;"),t.push("out vec4 vWorldPosition;"),e&&t.push("out float vFlags;"),t.push("out highp vec3 relativeToOriginPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" relativeToOriginPosition = worldPosition.xyz;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vWorldPosition = worldPosition;"),e&&t.push(" vFlags = flags;"),t.push("vPickColor = pickColor;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("float tmp = clipPos.w;"),t.push("clipPos.xyzw /= tmp;"),t.push("clipPos.xy = remapClipPos(clipPos.xy);"),t.push("clipPos.xyzw *= tmp;"),t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),t.push("gl_Position = clipPos;"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// VBO SnapBatchingDepthBufInitRenderer fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;"),t.push("uniform int layerNumber;"),t.push("uniform vec3 coordinateScaler;"),t.push("in vec4 vWorldPosition;"),t.push("flat in vec4 vPickColor;"),e){t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),t.push(" }")}return t.push(" float dx = dFdx(vFragDepth);"),t.push(" float dy = dFdy(vFragDepth);"),t.push(" float diff = sqrt(dx*dx+dy*dy);"),t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),t.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),t.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),t.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),t.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),t.push(`outNormal = ivec4(worldNormal * float(${g.MAX_INT}), 1.0);`),t.push("outPickColor = uvec4(vPickColor);"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const an=g.vec3(),hn=g.vec3(),Bn=g.vec3(),gn=g.vec3(),ln=g.mat4();class En extends ci{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(A,e,t){if(!this._program&&(this._allocate(),this.errors))return;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram());const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=e._state.origin,{position:a,rotationMatrix:h}=i,B=e.aabb,l=A.pickViewMatrix||n.viewMatrix;this._vaoCache.has(e)?o.bindVertexArray(this._vaoCache.get(e)):this._vaoCache.set(e,this._makeVAO(r));const E=an;let Q,M;if(E[0]=g.safeInv(B[3]-B[0])*g.MAX_INT,E[1]=g.safeInv(B[4]-B[1])*g.MAX_INT,E[2]=g.safeInv(B[5]-B[2])*g.MAX_INT,A.snapPickCoordinateScale[0]=g.safeInv(E[0]),A.snapPickCoordinateScale[1]=g.safeInv(E[1]),A.snapPickCoordinateScale[2]=g.safeInv(E[2]),c||0!==a[0]||0!==a[1]||0!==a[2]){const e=hn;if(c){const A=Bn;g.transformPoint3(h,c,A),e[0]=A[0],e[1]=A[1],e[2]=A[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=a[0],e[1]+=a[1],e[2]+=a[2],Q=UA(l,e,ln),M=gn,M[0]=n.eye[0]-e[0],M[1]=n.eye[1]-e[1],M[2]=n.eye[2]-e[2],A.snapPickOrigin[0]=e[0],A.snapPickOrigin[1]=e[1],A.snapPickOrigin[2]=e[2]}else Q=l,M=n.eye,A.snapPickOrigin[0]=0,A.snapPickOrigin[1]=0,A.snapPickOrigin[2]=0;o.uniform3fv(this._uCameraEyeRtc,M),o.uniform2fv(this.uVectorA,A.snapVectorA),o.uniform2fv(this.uInverseVectorAB,A.snapInvVectorAB),o.uniform1i(this._uLayerNumber,A.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,E),o.uniform1i(this._uRenderPass,t),o.uniform1i(this._uPickInvisible,A.pickInvisible);let u=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(Q,u+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,u+=16),this._matricesUniformBlockBufferData.set(r.positionsDecodeMatrix,u+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const e=2/(Math.log(A.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,e)}this.setSectionPlanesStateUniforms(e),"edge"===A.snapMode?(r.indicesBuf.bind(),o.drawElements(o.LINES,r.indicesBuf.numItems,r.indicesBuf.itemType,0),r.indicesBuf.unbind()):o.drawArrays(o.POINTS,0,r.positionsBuf.numItems),o.bindVertexArray(null)}_allocate(){super._allocate();const A=this._program;this._uLogDepthBufFC=A.getLocation("logDepthBufFC"),this._uCameraEyeRtc=A.getLocation("uCameraEyeRtc"),this.uVectorA=A.getLocation("snapVectorA"),this.uInverseVectorAB=A.getLocation("snapInvVectorAB"),this._uLayerNumber=A.getLocation("layerNumber"),this._uCoordinateScaler=A.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0;A.pointsMaterial._state;const t=[];return t.push("#version 300 es"),t.push("// SnapBatchingDepthRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec3 uCameraEyeRtc;"),t.push("uniform vec2 snapVectorA;"),t.push("uniform vec2 snapInvVectorAB;"),t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;"),t.push("vec2 remapClipPos(vec2 clipPos) {"),t.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),t.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),t.push(" return vec2(x, y);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out highp vec3 relativeToOriginPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(2.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("relativeToOriginPosition = worldPosition.xyz;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("float tmp = clipPos.w;"),t.push("clipPos.xyzw /= tmp;"),t.push("clipPos.xy = remapClipPos(clipPos.xy);"),t.push("clipPos.xyzw *= tmp;"),t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),t.push("gl_Position = clipPos;"),t.push("gl_PointSize = 1.0;"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// SnapBatchingDepthRenderer fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;"),t.push("uniform int layerNumber;"),t.push("uniform vec3 coordinateScaler;"),e){t.push("in vec4 vWorldPosition;"),t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),t.push(" }")}return t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class Qn{constructor(A){this._scene=A}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new An(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new en(this._scene)),this._silhouetteRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new cn(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new En(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Mn={};class un{constructor(A=5e6){A>5e6&&(A=5e6),this.maxVerts=A,this.maxIndices=3*A,this.positions=[],this.colors=[],this.offsets=[],this.indices=[]}}class wn{constructor(A){this.layerIndex=A.layerIndex,this._renderers=function(A){const e=A.id;let t=Mn[e];return t||(t=new Qn(A),Mn[e]=t,t._compile(),A.on("compile",(()=>{t._compile()})),A.on("destroyed",(()=>{delete Mn[e],t._destroy()}))),t}(A.model.scene),this.model=A.model,this._buffer=new un(A.maxGeometryBatchSize),this._scratchMemory=A.scratchMemory,this._state=new Z({positionsBuf:null,offsetsBuf:null,colorsBuf:null,flagsBuf:null,indicesBuf:null,positionsDecodeMatrix:g.mat4(),origin:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._modelAABB=g.collapseAABB3(),this._portions=[],this._meshes=[],this._numVerts=0,this._aabb=g.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,A.positionsDecodeMatrix?(this._state.positionsDecodeMatrix.set(A.positionsDecodeMatrix),this._preCompressedPositionsExpected=!0):this._preCompressedPositionsExpected=!1,A.origin&&(this._state.origin=g.vec3(A.origin)),this.primitive=A.primitive}get aabb(){if(this.aabbDirty){g.collapseAABB3(this._aabb);for(let A=0,e=this._meshes.length;A0)if(this._preCompressedPositionsExpected){const i=new Uint16Array(t.positions);A.positionsBuf=new q(e,e.ARRAY_BUFFER,i,t.positions.length,3,e.STATIC_DRAW)}else{const i=Xi(new Float32Array(t.positions),this._modelAABB,A.positionsDecodeMatrix);A.positionsBuf=new q(e,e.ARRAY_BUFFER,i,t.positions.length,3,e.STATIC_DRAW)}if(t.colors.length>0){const i=new Uint8Array(t.colors);let s=!1;A.colorsBuf=new q(e,e.ARRAY_BUFFER,i,t.colors.length,4,e.DYNAMIC_DRAW,s)}if(t.colors.length>0){const i=t.colors.length/4,s=new Float32Array(i);let n=!1;A.flagsBuf=new q(e,e.ARRAY_BUFFER,s,s.length,1,e.DYNAMIC_DRAW,n)}if(this.model.scene.entityOffsetsEnabled&&t.offsets.length>0){const i=new Float32Array(t.offsets);A.offsetsBuf=new q(e,e.ARRAY_BUFFER,i,t.offsets.length,3,e.DYNAMIC_DRAW)}if(t.indices.length>0){const i=new Uint32Array(t.indices);A.indicesBuf=new q(e,e.ELEMENT_ARRAY_BUFFER,i,t.indices.length,1,e.STATIC_DRAW)}this._buffer=null,this._finalized=!0}initFlags(A,e,t){e&Wt&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),e&qt&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),e&Zt&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),e&$t&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),e&Vt&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),e&Ai&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),e&Lt&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),e&Xt&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),t&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);this._setFlags(A,e,t,!0)}flushInitFlags(){this._setDeferredFlags()}setVisible(A,e,t){if(!this._finalized)throw"Not finalized";e&Wt?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(A,e,t)}setHighlighted(A,e,t){if(!this._finalized)throw"Not finalized";e&qt?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(A,e,t)}setXRayed(A,e,t){if(!this._finalized)throw"Not finalized";e&Zt?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(A,e,t)}setSelected(A,e,t){if(!this._finalized)throw"Not finalized";e&$t?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(A,e,t)}setEdges(A,e,t){if(!this._finalized)throw"Not finalized";e&Ai?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(A,e,t)}setClippable(A,e){if(!this._finalized)throw"Not finalized";e&Vt?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(A,e)}setCulled(A,e,t){if(!this._finalized)throw"Not finalized";e&Xt?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(A,e,t)}setCollidable(A,e){if(!this._finalized)throw"Not finalized"}setPickable(A,e,t){if(!this._finalized)throw"Not finalized";e&Lt?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(A,e,t)}setColor(A,e){if(!this._finalized)throw"Not finalized";const t=2*A,i=4*this._portions[t],s=4*this._portions[t+1],n=this._scratchMemory.getUInt8Array(s),o=e[0],r=e[1],c=e[2],a=e[3];for(let A=0;A0,t=[];return t.push("#version 300 es"),t.push("// Lines instancing color vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),t.push("in vec4 color;"),t.push("in float flags;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;")),t.push("uniform vec4 lightAmbient;"),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out vec4 vColor;"),t.push("void main(void) {"),t.push("int colorFlag = int(flags) & 0xF;"),t.push("if (colorFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),t.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, float(color.a) / 255.0);"),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState;let t,i;const s=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Lines instancing color fragment shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),A.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s)for(n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;"),t=0,i=e.getNumAllocatedSectionPlanes();t> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;"),t=0,i=e.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),n.push("}")}return this._withSAO?(n.push(" float viewportWidth = uSAOParams[0];"),n.push(" float viewportHeight = uSAOParams[1];"),n.push(" float blendCutoff = uSAOParams[2];"),n.push(" float blendFactor = uSAOParams[3];"),n.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),n.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBAToDepth(texture(uOcclusionTexture, uv))) * blendFactor;"),n.push(" outColor = vec4(vColor.rgb * ambient, vColor.a);")):n.push(" outColor = vColor;"),A.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class xn extends dn{drawLayer(A,e,t){super.drawLayer(A,e,t,{colorUniform:!0})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Lines instancing silhouette vertex shader"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(t),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;")),t.push("uniform vec4 color;"),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("void main(void) {"),t.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),t.push("if (silhouetteFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Lines instancing silhouette fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = color;"),i.push("}"),i}}const Fn=g.vec3(),pn=g.vec3(),In=g.vec3();g.vec3();const fn=g.mat4();class Yn extends ci{constructor(A){super(A,!1,{instancing:!0})}drawLayer(A,e,t){if(!this._program&&(this._allocate(),this.errors))return;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram());const i=e.model,s=i.scene,n=s.canvas.gl,o=s.camera,r=e._state,c=e._state.origin,{position:a,rotationMatrix:h}=i,B=e.aabb,l=A.pickViewMatrix||o.viewMatrix;this._vaoCache.has(e)?n.bindVertexArray(this._vaoCache.get(e)):this._vaoCache.set(e,this._makeVAO(r));const E=Fn;let Q;if(E[0]=g.safeInv(B[3]-B[0])*g.MAX_INT,E[1]=g.safeInv(B[4]-B[1])*g.MAX_INT,E[2]=g.safeInv(B[5]-B[2])*g.MAX_INT,A.snapPickCoordinateScale[0]=g.safeInv(E[0]),A.snapPickCoordinateScale[1]=g.safeInv(E[1]),A.snapPickCoordinateScale[2]=g.safeInv(E[2]),c||0!==a[0]||0!==a[1]||0!==a[2]){const e=pn;if(c){const A=g.transformPoint3(h,c,In);e[0]=A[0],e[1]=A[1],e[2]=A[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=a[0],e[1]+=a[1],e[2]+=a[2],Q=UA(l,e,fn),A.snapPickOrigin[0]=e[0],A.snapPickOrigin[1]=e[1],A.snapPickOrigin[2]=e[2]}else Q=l,A.snapPickOrigin[0]=0,A.snapPickOrigin[1]=0,A.snapPickOrigin[2]=0;n.uniform2fv(this.uVectorA,A.snapVectorA),n.uniform2fv(this.uInverseVectorAB,A.snapInvVectorAB),n.uniform1i(this._uLayerNumber,A.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,E),n.uniform1i(this._uRenderPass,t),n.uniform1i(this._uPickInvisible,A.pickInvisible);let M=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(Q,M+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,M+=16),this._matricesUniformBlockBufferData.set(r.positionsDecodeMatrix,M+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const e=2/(Math.log(A.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,e)}this.setSectionPlanesStateUniforms(e),r.indicesBuf.bind(),n.drawElementsInstanced(n.LINES,r.indicesBuf.numItems,r.indicesBuf.itemType,0,r.numInstances),r.indicesBuf.unbind(),n.bindVertexArray(null)}_allocate(){super._allocate();const A=this._program;this._uLogDepthBufFC=A.getLocation("logDepthBufFC"),this.uVectorA=A.getLocation("snapVectorA"),this.uInverseVectorAB=A.getLocation("snapInvVectorAB"),this._uLayerNumber=A.getLocation("layerNumber"),this._uCoordinateScaler=A.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// SnapInstancingDepthBufInitRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),t.push("in vec4 pickColor;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec2 snapVectorA;"),t.push("uniform vec2 snapInvVectorAB;"),t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;"),t.push("vec2 remapClipPos(vec2 clipPos) {"),t.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),t.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),t.push(" return vec2(x, y);"),t.push("}"),t.push("flat out vec4 vPickColor;"),t.push("out vec4 vWorldPosition;"),e&&t.push("out float vFlags;"),t.push("out highp vec3 relativeToOriginPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("relativeToOriginPosition = worldPosition.xyz;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vWorldPosition = worldPosition;"),e&&t.push(" vFlags = flags;"),t.push("vPickColor = pickColor;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("float tmp = clipPos.w;"),t.push("clipPos.xyzw /= tmp;"),t.push("clipPos.xy = remapClipPos(clipPos.xy);"),t.push("clipPos.xyzw *= tmp;"),t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// Points instancing pick depth fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;"),t.push("uniform int layerNumber;"),t.push("uniform vec3 coordinateScaler;"),t.push("in vec4 vWorldPosition;"),t.push("flat in vec4 vPickColor;"),e){t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),t.push("}")}return t.push(" float dx = dFdx(vFragDepth);"),t.push(" float dy = dFdy(vFragDepth);"),t.push(" float diff = sqrt(dx*dx+dy*dy);"),t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),t.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),t.push("outPickColor = uvec4(vPickColor);"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Dn=g.vec3(),mn=g.vec3(),Jn=g.vec3();g.vec3();const Nn=g.mat4();class yn extends ci{constructor(A){super(A,!1,{instancing:!0})}drawLayer(A,e,t){if(!this._program&&(this._allocate(e),this.errors))return;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram());const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=e._state.origin,{position:a,rotationMatrix:h}=i,B=e.aabb,l=A.pickViewMatrix||n.viewMatrix;this._vaoCache.has(e)?o.bindVertexArray(this._vaoCache.get(e)):this._vaoCache.set(e,this._makeVAO(r));const E=Dn;let Q;if(E[0]=g.safeInv(B[3]-B[0])*g.MAX_INT,E[1]=g.safeInv(B[4]-B[1])*g.MAX_INT,E[2]=g.safeInv(B[5]-B[2])*g.MAX_INT,A.snapPickCoordinateScale[0]=g.safeInv(E[0]),A.snapPickCoordinateScale[1]=g.safeInv(E[1]),A.snapPickCoordinateScale[2]=g.safeInv(E[2]),c||0!==a[0]||0!==a[1]||0!==a[2]){const e=mn;if(c){const A=g.transformPoint3(h,c,Jn);e[0]=A[0],e[1]=A[1],e[2]=A[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=a[0],e[1]+=a[1],e[2]+=a[2],Q=UA(l,e,Nn),A.snapPickOrigin[0]=e[0],A.snapPickOrigin[1]=e[1],A.snapPickOrigin[2]=e[2]}else Q=l,A.snapPickOrigin[0]=0,A.snapPickOrigin[1]=0,A.snapPickOrigin[2]=0;o.uniform2fv(this.uVectorA,A.snapVectorA),o.uniform2fv(this.uInverseVectorAB,A.snapInvVectorAB),o.uniform1i(this._uLayerNumber,A.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,E),o.uniform1i(this._uRenderPass,t),o.uniform1i(this._uPickInvisible,A.pickInvisible);let M=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(Q,M+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,M+=16),this._matricesUniformBlockBufferData.set(r.positionsDecodeMatrix,M+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const e=2/(Math.log(A.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,e)}this.setSectionPlanesStateUniforms(e),"edge"===A.snapMode?(r.indicesBuf.bind(),o.drawElementsInstanced(o.LINES,r.indicesBuf.numItems,r.indicesBuf.itemType,0,r.numInstances),r.indicesBuf.unbind()):o.drawArraysInstanced(o.POINTS,0,r.positionsBuf.numItems,r.numInstances),o.bindVertexArray(null)}_allocate(){super._allocate();const A=this._program;this._uLogDepthBufFC=A.getLocation("logDepthBufFC"),this.uVectorA=A.getLocation("snapVectorA"),this.uInverseVectorAB=A.getLocation("snapInvVectorAB"),this._uLayerNumber=A.getLocation("layerNumber"),this._uCoordinateScaler=A.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// SnapInstancingDepthRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec2 snapVectorA;"),t.push("uniform vec2 snapInvVectorAB;"),t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;"),t.push("vec2 remapClipPos(vec2 clipPos) {"),t.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),t.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),t.push(" return vec2(x, y);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out highp vec3 relativeToOriginPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(2.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("relativeToOriginPosition = worldPosition.xyz;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("float tmp = clipPos.w;"),t.push("clipPos.xyzw /= tmp;"),t.push("clipPos.xy = remapClipPos(clipPos.xy);"),t.push("clipPos.xyzw *= tmp;"),t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),t.push("gl_Position = clipPos;"),t.push("gl_PointSize = 1.0;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// SnapInstancingDepthRenderer fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;"),t.push("uniform int layerNumber;"),t.push("uniform vec3 coordinateScaler;"),e){t.push("in vec4 vWorldPosition;"),t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),t.push("}")}return t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class zn{constructor(A){this._scene=A}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}eagerCreateRenders(){this._snapInitRenderer||(this._snapInitRenderer=new Yn(this._scene,!1)),this._snapRenderer||(this._snapRenderer=new yn(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Cn(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new xn(this._scene)),this._silhouetteRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Yn(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new yn(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Tn={};const Un=new Uint8Array(4),Rn=new Float32Array(1),bn=new Float32Array(3),kn=new Float32Array(4);class Pn{constructor(A){this.model=A.model,this.material=A.material,this.sortId="LinesInstancingLayer",this.layerIndex=A.layerIndex,this._renderers=function(A){const e=A.id;let t=Tn[e];return t||(t=new zn(A),Tn[e]=t,t._compile(),A.on("compile",(()=>{t._compile()})),A.on("destroyed",(()=>{delete Tn[e],t._destroy()}))),t}(A.model.scene),this._aabb=g.collapseAABB3(),this._state=new Z({obb:g.OBB3(),numInstances:0,origin:null,geometry:A.geometry,positionsDecodeMatrix:A.geometry.positionsDecodeMatrix,positionsBuf:null,colorsBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=A.geometry.numIndices,this._colors=[],this._offsets=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=g.collapseAABB3(),this.aabbDirty=!0,A.origin&&(this._state.origin=g.vec3(A.origin)),this._finalized=!1,this.primitive=A.primitive}get aabb(){if(this.aabbDirty){g.collapseAABB3(this._aabb);for(let A=0,e=this._meshes.length;A0){let e=!1;this._state.colorsBuf=new q(A,A.ARRAY_BUFFER,new Uint8Array(this._colors),this._colors.length,4,A.DYNAMIC_DRAW,e),this._colors=[]}if(s>0){let e=!1;this._state.flagsBuf=new q(A,A.ARRAY_BUFFER,new Float32Array(s),s,1,A.DYNAMIC_DRAW,e)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const e=!1;this._state.offsetsBuf=new q(A,A.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,A.DYNAMIC_DRAW,e),this._offsets=[]}if(t.colorsCompressed&&t.colorsCompressed.length>0){const i=new Uint8Array(t.colorsCompressed),s=!1;e.colorsBuf=new q(A,A.ARRAY_BUFFER,i,i.length,4,A.STATIC_DRAW,s)}if(t.positionsCompressed&&t.positionsCompressed.length>0){const i=!1;e.positionsBuf=new q(A,A.ARRAY_BUFFER,t.positionsCompressed,t.positionsCompressed.length,3,A.STATIC_DRAW,i),e.positionsDecodeMatrix=g.mat4(t.positionsDecodeMatrix)}if(t.indices&&t.indices.length>0&&(e.indicesBuf=new q(A,A.ELEMENT_ARRAY_BUFFER,new Uint32Array(t.indices),t.indices.length,1,A.STATIC_DRAW),e.numIndices=t.indices.length),this._modelMatrixCol0.length>0){const e=!1;this._state.modelMatrixCol0Buf=new q(A,A.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,A.STATIC_DRAW,e),this._state.modelMatrixCol1Buf=new q(A,A.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,A.STATIC_DRAW,e),this._state.modelMatrixCol2Buf=new q(A,A.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,A.STATIC_DRAW,e),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[]}this.model.scene.readableGeometryEnabled||(this._state.geometry=null),this._finalized=!0}initFlags(A,e,t){e&Wt&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),e&qt&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),e&Zt&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),e&$t&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),e&Vt&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),e&Ai&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),e&Lt&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),e&Xt&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),t&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(A,e,t)}setVisible(A,e,t){if(!this._finalized)throw"Not finalized";e&Wt?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(A,e,t)}setHighlighted(A,e,t){if(!this._finalized)throw"Not finalized";e&qt?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(A,e,t)}setXRayed(A,e,t){if(!this._finalized)throw"Not finalized";e&Zt?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(A,e,t)}setSelected(A,e,t){if(!this._finalized)throw"Not finalized";e&$t?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(A,e,t)}setEdges(A,e,t){if(!this._finalized)throw"Not finalized";e&Ai?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(A,e,t)}setClippable(A,e){if(!this._finalized)throw"Not finalized";e&Vt?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(A,e)}setCollidable(A,e){if(!this._finalized)throw"Not finalized"}setPickable(A,e,t){if(!this._finalized)throw"Not finalized";e&Lt?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(A,e,t)}setCulled(A,e,t){if(!this._finalized)throw"Not finalized";e&Xt?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(A,e,t)}setColor(A,e){if(!this._finalized)throw"Not finalized";Un[0]=e[0],Un[1]=e[1],Un[2]=e[2],Un[3]=e[3],this._state.colorsBuf.setData(Un,4*A,4)}setTransparent(A,e,t){t?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(A,e,t)}_setFlags(A,e,t){if(!this._finalized)throw"Not finalized";const i=!!(e&Wt),s=!!(e&Zt),n=!!(e&qt),o=!!(e&$t),r=!!(e&Ai),c=!!(e&Lt),a=!!(e&Xt);let h,B;h=!i||a||s||n&&!this.model.scene.highlightMaterial.glowThrough||o&&!this.model.scene.selectedMaterial.glowThrough?ei.NOT_RENDERED:t?ei.COLOR_TRANSPARENT:ei.COLOR_OPAQUE,B=!i||a?ei.NOT_RENDERED:o?ei.SILHOUETTE_SELECTED:n?ei.SILHOUETTE_HIGHLIGHTED:s?ei.SILHOUETTE_XRAYED:ei.NOT_RENDERED;let g=0;g=!i||a?ei.NOT_RENDERED:o?ei.EDGES_SELECTED:n?ei.EDGES_HIGHLIGHTED:s?ei.EDGES_XRAYED:r?t?ei.EDGES_COLOR_TRANSPARENT:ei.EDGES_COLOR_OPAQUE:ei.NOT_RENDERED;let l=0;l|=h,l|=B<<4,l|=g<<8,l|=(i&&!a&&c?ei.PICK:ei.NOT_RENDERED)<<12,l|=(e&Vt?1:0)<<16,Rn[0]=l,this._state.flagsBuf.setData(Rn,A)}setOffset(A,e){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(bn[0]=e[0],bn[1]=e[1],bn[2]=e[2],this._state.offsetsBuf.setData(bn,3*A,3)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(A,e){if(!this._finalized)throw"Not finalized";const t=4*A;kn[0]=e[0],kn[1]=e[4],kn[2]=e[8],kn[3]=e[12],this._state.modelMatrixCol0Buf.setData(kn,t),kn[0]=e[1],kn[1]=e[5],kn[2]=e[9],kn[3]=e[13],this._state.modelMatrixCol1Buf.setData(kn,t),kn[0]=e[2],kn[1]=e[6],kn[2]=e[10],kn[3]=e[14],this._state.modelMatrixCol2Buf.setData(kn,t)}drawColorOpaque(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(e,this,ei.COLOR_OPAQUE)}drawColorTransparent(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(e,this,ei.COLOR_TRANSPARENT)}drawDepth(A,e){}drawNormals(A,e){}drawSilhouetteXRayed(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(e,this,ei.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(e,this,ei.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(e,this,ei.SILHOUETTE_SELECTED)}drawEdgesColorOpaque(A,e){}drawEdgesColorTransparent(A,e){}drawEdgesXRayed(A,e){}drawEdgesHighlighted(A,e){}drawEdgesSelected(A,e){}drawSnapInit(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(e,this,ei.PICK)}drawSnap(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(e,this,ei.PICK)}drawOcclusion(A,e){}drawShadow(A,e){}drawPickMesh(A,e){}drawPickDepths(A,e){}drawPickNormals(A,e){}destroy(){const A=this._state;A.positionsBuf&&(A.positionsBuf.destroy(),A.positionsBuf=null),A.colorsBuf&&(A.colorsBuf.destroy(),A.colorsBuf=null),A.flagsBuf&&(A.flagsBuf.destroy(),A.flagsBuf=null),A.offsetsBuf&&(A.offsetsBuf.destroy(),A.offsetsBuf=null),A.modelMatrixCol0Buf&&(A.modelMatrixCol0Buf.destroy(),A.modelMatrixCol0Buf=null),A.modelMatrixCol1Buf&&(A.modelMatrixCol1Buf.destroy(),A.modelMatrixCol1Buf=null),A.modelMatrixCol2Buf&&(A.modelMatrixCol2Buf.destroy(),A.modelMatrixCol2Buf=null),A.destroy()}}class Gn extends ci{_draw(A){const{gl:e}=this._scene.canvas,{state:t,frameCtx:i,incrementDrawState:s}=A;e.drawArrays(e.POINTS,0,t.positionsBuf.numItems),s&&i.drawArrays++}}class vn extends Gn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(A,e,t){super.drawLayer(A,e,t,{incrementDrawState:!0})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=A.pointsMaterial,i=[];return i.push("#version 300 es"),i.push("// Points batching color vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in float flags;"),A.entityOffsetsEnabled&&i.push("in vec3 offset;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),t.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),t.filterIntensity&&i.push("uniform vec2 intensityRange;"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),e&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),t.filterIntensity&&(i.push("float intensity = float(color.a) / 255.0;"),i.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {")),i.push("vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&i.push("worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),e&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),t.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(t.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(t.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),t.filterIntensity&&i.push("}"),i.push("}"),i}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points batching color fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 1.0) {"),i.push(" discard;"),i.push(" }")),t){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),i.push("}")}return i.push(" outColor = vColor;"),A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("}"),i}}class Hn extends Gn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(A,e,t){super.drawLayer(A,e,t,{colorUniform:!0})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=A.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points batching silhouette vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),A.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),i.push("uniform vec4 color;"),i.push("uniform float pointSize;"),t.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),e&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),i.push("if (silhouetteFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),e&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),t.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(t.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(t.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState;let t,i;const s=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points batching silhouette vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),A.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s)for(n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;"),t=0,i=e.getNumAllocatedSectionPlanes();t 1.0) {"),n.push(" discard;"),n.push(" }")),s){for(n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;"),t=0,i=e.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),n.push("}")}return A.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("outColor = color;"),n.push("}"),n}}class Sn extends Gn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=A.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points batching pick mesh vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),A.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 pickColor;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),i.push("uniform float pointSize;"),t.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),e&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vPickColor;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),e&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = remapClipPos(clipPos);"),t.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(t.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(t.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("gl_PointSize += 10.0;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points batching pick mesh vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(var s=0;s 1.0) {"),i.push(" discard;"),i.push(" }")),t){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0;A 0.0) { discard; }"),i.push(" }")}return A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vPickColor; "),i.push("}"),i}}class jn extends Gn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=A.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points batched pick depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),A.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),i.push("uniform float pointSize;"),t.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),e&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vViewPosition = viewPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = remapClipPos(clipPos);"),t.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(t.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(t.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("gl_PointSize += 10.0;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points batched pick depth fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),i.push("uniform float pickZNear;"),i.push("uniform float pickZFar;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0;A 1.0) {"),i.push(" discard;"),i.push(" }")),t){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(var s=0;s 0.0) { discard; }"),i.push(" }")}return A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),i.push(" outColor = packDepth(zNormalizedDepth); "),i.push("}"),i}}class On extends Gn{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=A.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points batching occlusion vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),A.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),t.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),e&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push(" } else {"),i.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push(" gl_Position = clipPos;"),t.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(t.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(t.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push(" }"),i.push("}"),i}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points batching occlusion fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0;A 1.0) {"),i.push(" discard;"),i.push(" }")),t){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0;A 0.0) { discard; }"),i.push(" }")}return A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),i.push("}"),i}}const _n=g.vec3(),Wn=g.vec3(),Xn=g.vec3(),Ln=g.vec3(),Vn=g.mat4();class Kn extends ci{drawLayer(A,e,t){if(!this._program&&(this._allocate(),this.errors))return;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram());const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=e._state.origin,{position:a,rotationMatrix:h}=i,B=e.aabb,l=A.pickViewMatrix||n.viewMatrix;this._vaoCache.has(e)?o.bindVertexArray(this._vaoCache.get(e)):this._vaoCache.set(e,this._makeVAO(r));const E=_n;let Q,M;if(E[0]=g.safeInv(B[3]-B[0])*g.MAX_INT,E[1]=g.safeInv(B[4]-B[1])*g.MAX_INT,E[2]=g.safeInv(B[5]-B[2])*g.MAX_INT,A.snapPickCoordinateScale[0]=g.safeInv(E[0]),A.snapPickCoordinateScale[1]=g.safeInv(E[1]),A.snapPickCoordinateScale[2]=g.safeInv(E[2]),c||0!==a[0]||0!==a[1]||0!==a[2]){const e=Wn;if(c){const A=Xn;g.transformPoint3(h,c,A),e[0]=A[0],e[1]=A[1],e[2]=A[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=a[0],e[1]+=a[1],e[2]+=a[2],Q=UA(l,e,Vn),M=Ln,M[0]=n.eye[0]-e[0],M[1]=n.eye[1]-e[1],M[2]=n.eye[2]-e[2],A.snapPickOrigin[0]=e[0],A.snapPickOrigin[1]=e[1],A.snapPickOrigin[2]=e[2]}else Q=l,M=n.eye,A.snapPickOrigin[0]=0,A.snapPickOrigin[1]=0,A.snapPickOrigin[2]=0;o.uniform3fv(this._uCameraEyeRtc,M),o.uniform2fv(this.uVectorA,A.snapVectorA),o.uniform2fv(this.uInverseVectorAB,A.snapInvVectorAB),o.uniform1i(this._uLayerNumber,A.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,E),o.uniform1i(this._uRenderPass,t),o.uniform1i(this._uPickInvisible,A.pickInvisible),o.uniform1f(this._uPointSize,1);let u=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(Q,u+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,u+=16),this._matricesUniformBlockBufferData.set(r.positionsDecodeMatrix,u+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const e=2/(Math.log(A.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,e)}this.setSectionPlanesStateUniforms(e),o.drawArrays(o.POINTS,0,r.positionsBuf.numItems),o.bindVertexArray(null)}_allocate(){super._allocate();const A=this._program;this._uLogDepthBufFC=A.getLocation("logDepthBufFC"),this._uCameraEyeRtc=A.getLocation("uCameraEyeRtc"),this.uVectorA=A.getLocation("snapVectorA"),this.uInverseVectorAB=A.getLocation("snapInvVectorAB"),this._uLayerNumber=A.getLocation("layerNumber"),this._uCoordinateScaler=A.getLocation("coordinateScaler"),this._uPointSize=A.getLocation("pointSize")}_bindProgram(){this._program.bind()}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// VBOBatchingPointsSnapInitRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),t.push("in vec4 pickColor;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec3 uCameraEyeRtc;"),t.push("uniform vec2 snapVectorA;"),t.push("uniform vec2 snapInvVectorAB;"),t.push("uniform float pointSize;"),t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("out float isPerspective;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("vec2 remapClipPos(vec2 clipPos) {"),t.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),t.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),t.push(" return vec2(x, y);"),t.push("}"),t.push("flat out vec4 vPickColor;"),t.push("out vec4 vWorldPosition;"),e&&t.push("out float vFlags;"),t.push("out highp vec3 relativeToOriginPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" relativeToOriginPosition = worldPosition.xyz;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vWorldPosition = worldPosition;"),e&&t.push(" vFlags = flags;"),t.push("vPickColor = pickColor;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("float tmp = clipPos.w;"),t.push("clipPos.xyzw /= tmp;"),t.push("clipPos.xy = remapClipPos(clipPos.xy);"),t.push("clipPos.xyzw *= tmp;"),t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),t.push("gl_Position = clipPos;"),t.push("gl_PointSize = pointSize;"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// VBOBatchingPointsSnapInitRenderer fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;"),t.push("uniform int layerNumber;"),t.push("uniform vec3 coordinateScaler;"),t.push("in vec4 vWorldPosition;"),t.push("flat in vec4 vPickColor;"),e){t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),t.push(" }")}return t.push(" float dx = dFdx(vFragDepth);"),t.push(" float dy = dFdy(vFragDepth);"),t.push(" float diff = sqrt(dx*dx+dy*dy);"),t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),t.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),t.push("outNormal = ivec4(1.0, 1.0, 1.0, 1.0);"),t.push("outPickColor = uvec4(vPickColor);"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Zn=g.vec3(),qn=g.vec3(),$n=g.vec3(),Ao=g.vec3(),eo=g.mat4();class to extends ci{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(A,e,t){if(!this._program&&(this._allocate(),this.errors))return;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram());const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=e._state.origin,{position:a,rotationMatrix:h}=i,B=e.aabb,l=A.pickViewMatrix||n.viewMatrix;this._vaoCache.has(e)?o.bindVertexArray(this._vaoCache.get(e)):this._vaoCache.set(e,this._makeVAO(r));const E=Zn;let Q,M;if(E[0]=g.safeInv(B[3]-B[0])*g.MAX_INT,E[1]=g.safeInv(B[4]-B[1])*g.MAX_INT,E[2]=g.safeInv(B[5]-B[2])*g.MAX_INT,A.snapPickCoordinateScale[0]=g.safeInv(E[0]),A.snapPickCoordinateScale[1]=g.safeInv(E[1]),A.snapPickCoordinateScale[2]=g.safeInv(E[2]),c||0!==a[0]||0!==a[1]||0!==a[2]){const e=qn;if(c){const A=$n;g.transformPoint3(h,c,A),e[0]=A[0],e[1]=A[1],e[2]=A[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=a[0],e[1]+=a[1],e[2]+=a[2],Q=UA(l,e,eo),M=Ao,M[0]=n.eye[0]-e[0],M[1]=n.eye[1]-e[1],M[2]=n.eye[2]-e[2],A.snapPickOrigin[0]=e[0],A.snapPickOrigin[1]=e[1],A.snapPickOrigin[2]=e[2]}else Q=l,M=n.eye,A.snapPickOrigin[0]=0,A.snapPickOrigin[1]=0,A.snapPickOrigin[2]=0;o.uniform3fv(this._uCameraEyeRtc,M),o.uniform2fv(this.uVectorA,A.snapVectorA),o.uniform2fv(this.uInverseVectorAB,A.snapInvVectorAB),o.uniform1i(this._uLayerNumber,A.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,E),o.uniform1i(this._uRenderPass,t),o.uniform1i(this._uPickInvisible,A.pickInvisible);let u=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(Q,u+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,u+=16),this._matricesUniformBlockBufferData.set(r.positionsDecodeMatrix,u+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const e=2/(Math.log(A.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,e)}this.setSectionPlanesStateUniforms(e),o.drawArrays(o.POINTS,0,r.positionsBuf.numItems),o.bindVertexArray(null)}_allocate(){super._allocate();const A=this._program;this._uLogDepthBufFC=A.getLocation("logDepthBufFC"),this._uCameraEyeRtc=A.getLocation("uCameraEyeRtc"),this.uVectorA=A.getLocation("snapVectorA"),this.uInverseVectorAB=A.getLocation("snapInvVectorAB"),this._uLayerNumber=A.getLocation("layerNumber"),this._uCoordinateScaler=A.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0;A.pointsMaterial._state;const t=[];return t.push("#version 300 es"),t.push("// VBOBatchingPointsSnapRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec3 uCameraEyeRtc;"),t.push("uniform vec2 snapVectorA;"),t.push("uniform vec2 snapInvVectorAB;"),t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;"),t.push("vec2 remapClipPos(vec2 clipPos) {"),t.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),t.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),t.push(" return vec2(x, y);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out highp vec3 relativeToOriginPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = worldMatrix * (positionsDecodeMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("relativeToOriginPosition = worldPosition.xyz;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("float tmp = clipPos.w;"),t.push("clipPos.xyzw /= tmp;"),t.push("clipPos.xy = remapClipPos(clipPos.xy);"),t.push("clipPos.xyzw *= tmp;"),t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),t.push("gl_Position = clipPos;"),t.push("gl_PointSize = 1.0;"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// VBOBatchingPointsSnapRenderer fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;"),t.push("uniform int layerNumber;"),t.push("uniform vec3 coordinateScaler;"),e){t.push("in vec4 vWorldPosition;"),t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),t.push(" }")}return t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class io{constructor(A){this._scene=A}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new vn(this._scene)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new Hn(this._scene)),this._silhouetteRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Sn(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new jn(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new On(this._scene)),this._occlusionRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Kn(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new to(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const so={};class no{constructor(A){this.model=A.model,this.sortId="PointsBatchingLayer",this.layerIndex=A.layerIndex,this._renderers=function(A){const e=A.id;let t=so[e];return t||(t=new io(A),so[e]=t,t._compile(),A.on("compile",(()=>{t._compile()})),A.on("destroyed",(()=>{delete so[e],t._destroy()}))),t}(A.model.scene);const e=A.maxGeometryBatchSize||5e6,t=function(){const A=[];return{append:function(e,t=1,i=1){A.push({data:e,times:t,denormalizeScale:i})},compileBuffer:function(e){let t=0;A.forEach((A=>{t+=A.times*A.data.length}));const i=new e(t);let s=0;return A.forEach((A=>{const e=A.data,t=A.denormalizeScale,n=i.subarray(s);if(1===t)n.set(e,0);else for(let A=0;AA.length>0?new q(e,e.ARRAY_BUFFER,A,A.length,t,i):null,s=this._preCompressedPositionsExpected?t.positions.compileBuffer(Uint16Array):Xi(t.positions.compileBuffer(Float32Array),this._modelAABB,A.positionsDecodeMatrix);A.positionsBuf=i(s,3,e.STATIC_DRAW),A.flagsBuf=i(new Float32Array(this._buffer.vertsIndex),1,e.DYNAMIC_DRAW),A.colorsBuf=i(t.colors.compileBuffer(Uint8Array),4,e.STATIC_DRAW),A.pickColorsBuf=i(t.pickColors.compileBuffer(Uint8Array),4,e.STATIC_DRAW),A.offsetsBuf=this.model.scene.entityOffsetsEnabled?i(new Float32Array(3*this._buffer.vertsIndex),3,e.DYNAMIC_DRAW):null,this._buffer=null,this._finalized=!0}initFlags(A,e,t){e&Wt&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),e&qt&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),e&Zt&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),e&$t&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),e&Vt&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),e&Lt&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),e&Xt&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),t&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(A,e,t)}setVisible(A,e,t){if(!this._finalized)throw"Not finalized";e&Wt?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(A,e,t)}setHighlighted(A,e,t){if(!this._finalized)throw"Not finalized";e&qt?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(A,e,t)}setXRayed(A,e,t){if(!this._finalized)throw"Not finalized";e&Zt?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(A,e,t)}setSelected(A,e,t){if(!this._finalized)throw"Not finalized";e&$t?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(A,e,t)}setEdges(A,e,t){if(!this._finalized)throw"Not finalized"}setClippable(A,e){if(!this._finalized)throw"Not finalized";e&Vt?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(A,e)}setCulled(A,e,t){if(!this._finalized)throw"Not finalized";e&Xt?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(A,e,t)}setCollidable(A,e){if(!this._finalized)throw"Not finalized"}setPickable(A,e,t){if(!this._finalized)throw"Not finalized";e&Lt?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(A,e,t)}setColor(A,e){if(!this._finalized)throw"Not finalized";const t=2*A,i=4*this._portions[t],s=4*this._portions[t+1],n=this._scratchMemory.getUInt8Array(s),o=e[0],r=e[1],c=e[2];for(let A=0;A0,t=A.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing color vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),i.push("in vec4 color;"),i.push("in float flags;"),A.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),t.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),t.filterIntensity&&i.push("uniform vec2 intensityRange;"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),e&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),t.filterIntensity&&(i.push("float intensity = float(color.a) / 255.0;"),i.push("if (intensity < intensityRange[0] || intensity > intensityRange[1]) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {")),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),i.push("vColor = vec4(float(color.r) / 255.0, float(color.g) / 255.0, float(color.b) / 255.0, 1.0);"),e&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),t.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(t.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(t.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),t.filterIntensity&&i.push("}"),i.push("}"),i}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing color fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 1.0) {"),i.push(" discard;"),i.push(" }")),t){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),i.push("}")}return i.push(" outColor = vColor;"),A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("}"),i}}class co extends oo{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}drawLayer(A,e,t){super.drawLayer(A,e,t,{colorUniform:!0})}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=A.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing silhouette vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),A.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 color;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),t.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),i.push("uniform vec4 silhouetteColor;"),e&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vColor;"),i.push("void main(void) {"),i.push("int silhouetteFlag = int(flags) >> 4 & 0xF;"),i.push("if (silhouetteFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push("vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push("worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push("vec4 viewPosition = viewMatrix * worldPosition; "),e&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("vColor = vec4(float(silhouetteColor.r) / 255.0, float(silhouetteColor.g) / 255.0, float(silhouetteColor.b) / 255.0, float(color.a) / 255.0);"),i.push("gl_Position = clipPos;"),t.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(t.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(t.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing silhouette fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 1.0) {"),i.push(" discard;"),i.push(" }")),t){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vColor;"),i.push("}"),i}}class ao extends oo{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=A.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing pick mesh vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),A.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 pickColor;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),i.push("uniform float pointSize;"),t.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),e&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vPickColor;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),i.push(" vPickColor = vec4(float(pickColor.r) / 255.0, float(pickColor.g) / 255.0, float(pickColor.b) / 255.0, float(pickColor.a) / 255.0);"),e&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("gl_Position = remapClipPos(clipPos);"),A.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),t.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(t.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(t.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing pick mesh fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0;A 1.0) {"),i.push(" discard;"),i.push(" }")),t){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0;A 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("outColor = vPickColor; "),i.push("}"),i}}class ho extends oo{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=A.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing pick depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),A.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),i.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(i),this._addRemapClipPosLines(i),i.push("uniform float pointSize;"),t.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),e&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("out vec4 vViewPosition;"),i.push("void main(void) {"),i.push("int pickFlag = int(flags) >> 12 & 0xF;"),i.push("if (pickFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(i.push(" vWorldPosition = worldPosition;"),i.push(" vFlags = flags;")),i.push(" vViewPosition = viewPosition;"),i.push("vec4 clipPos = projMatrix * viewPosition;"),i.push("gl_Position = remapClipPos(clipPos);"),A.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = remapClipPos(clipPos);"),t.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(t.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(t.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing pick depth fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),i.push("uniform float pickZNear;"),i.push("uniform float pickZFar;"),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0;A 1.0) {"),i.push(" discard;"),i.push(" }")),t){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0;A 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),i.push(" outColor = packDepth(zNormalizedDepth); "),i.push("}"),i}}class Bo extends oo{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=A.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing occlusion vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),A.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in vec4 color;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),t.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),e&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(i.push(" vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),t.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(t.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(t.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Points instancing occlusion vertex shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0;A 1.0) {"),i.push(" discard;"),i.push(" }")),t){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0;A 0.0) { discard; }"),i.push("}")}return i.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push("}"),i}}class go extends oo{_getHash(){return this._scene._sectionPlanesState.getHash()+this._scene.pointsMaterial.hash}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=A.pointsMaterial._state,i=[];return i.push("#version 300 es"),i.push("// Points instancing depth vertex shader"),i.push("uniform int renderPass;"),i.push("in vec3 position;"),A.entityOffsetsEnabled&&i.push("in vec3 offset;"),i.push("in float flags;"),i.push("in vec4 modelMatrixCol0;"),i.push("in vec4 modelMatrixCol1;"),i.push("in vec4 modelMatrixCol2;"),this._addMatricesUniformBlockLines(i),i.push("uniform float pointSize;"),t.perspectivePoints&&i.push("uniform float nearPlaneHeight;"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("out float vFragDepth;")),e&&(i.push("out vec4 vWorldPosition;"),i.push("out float vFlags;")),i.push("void main(void) {"),i.push("int colorFlag = int(flags) & 0xF;"),i.push("if (colorFlag != renderPass) {"),i.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),i.push("} else {"),i.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),i.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&i.push(" worldPosition.xyz = worldPosition.xyz + offset;"),i.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(i.push("vWorldPosition = worldPosition;"),i.push("vFlags = flags;")),i.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&i.push("vFragDepth = 1.0 + clipPos.w;"),i.push("gl_Position = clipPos;"),t.perspectivePoints?(i.push("gl_PointSize = (nearPlaneHeight * pointSize) / clipPos.w;"),i.push("gl_PointSize = max(gl_PointSize, "+Math.floor(t.minPerspectivePointSize)+".0);"),i.push("gl_PointSize = min(gl_PointSize, "+Math.floor(t.maxPerspectivePointSize)+".0);")):i.push("gl_PointSize = pointSize;"),i.push("}"),i.push("}"),i}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState;let t,i;const s=e.getNumAllocatedSectionPlanes()>0,n=[];if(n.push("#version 300 es"),n.push("// Points instancing depth vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("#endif"),A.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("in float vFragDepth;")),s)for(n.push("in vec4 vWorldPosition;"),n.push("in float vFlags;"),t=0,i=e.getNumAllocatedSectionPlanes();t 1.0) {"),n.push(" discard;"),n.push(" }")),s){for(n.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),n.push(" if (clippable) {"),n.push(" float dist = 0.0;"),t=0,i=e.getNumAllocatedSectionPlanes();t 0.0) { discard; }"),n.push("}")}return n.push(" outColor = packDepthToRGBA( gl_FragCoord.z); "),A.logarithmicDepthBufferEnabled&&n.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),n.push("}"),n}}class lo extends oo{_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// Instancing geometry shadow drawing vertex shader"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in vec4 color;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),t.push("uniform mat4 shadowViewMatrix;"),t.push("uniform mat4 shadowProjMatrix;"),this._addMatricesUniformBlockLines(t),t.push("uniform float pointSize;"),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("void main(void) {"),t.push("int colorFlag = int(flags) & 0xF;"),t.push("bool visible = (colorFlag > 0);"),t.push("bool transparent = ((float(color.a) / 255.0) < 1.0);"),t.push("if (!visible || transparent) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = shadowViewMatrix * worldPosition; "),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags = flags;")),t.push(" gl_Position = shadowProjMatrix * viewPosition;"),t.push("}"),t.push("gl_PointSize = pointSize;"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// Instancing geometry depth drawing fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("in float vFlags;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 1.0) {"),i.push(" discard;"),i.push(" }"),t){i.push(" bool clippable = (int(vFlags) >> 16 & 0xF) == 1;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0.0) { discard; }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),i.push("}"),i}}const Eo=g.vec3(),Qo=g.vec3(),Mo=g.vec3();g.vec3();const uo=g.mat4();class wo extends ci{constructor(A){super(A,!1,{instancing:!0})}drawLayer(A,e,t){if(!this._program&&(this._allocate(),this.errors))return;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram());const i=e.model,s=i.scene,n=s.canvas.gl,o=s.camera,r=e._state,c=e._state.origin,{position:a,rotationMatrix:h}=i,B=e.aabb,l=A.pickViewMatrix||o.viewMatrix;this._vaoCache.has(e)?n.bindVertexArray(this._vaoCache.get(e)):this._vaoCache.set(e,this._makeVAO(r));const E=Eo;let Q;if(E[0]=g.safeInv(B[3]-B[0])*g.MAX_INT,E[1]=g.safeInv(B[4]-B[1])*g.MAX_INT,E[2]=g.safeInv(B[5]-B[2])*g.MAX_INT,A.snapPickCoordinateScale[0]=g.safeInv(E[0]),A.snapPickCoordinateScale[1]=g.safeInv(E[1]),A.snapPickCoordinateScale[2]=g.safeInv(E[2]),c||0!==a[0]||0!==a[1]||0!==a[2]){const e=Qo;if(c){const A=g.transformPoint3(h,c,Mo);e[0]=A[0],e[1]=A[1],e[2]=A[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=a[0],e[1]+=a[1],e[2]+=a[2],Q=UA(l,e,uo),A.snapPickOrigin[0]=e[0],A.snapPickOrigin[1]=e[1],A.snapPickOrigin[2]=e[2]}else Q=l,A.snapPickOrigin[0]=0,A.snapPickOrigin[1]=0,A.snapPickOrigin[2]=0;n.uniform2fv(this.uVectorA,A.snapVectorA),n.uniform2fv(this.uInverseVectorAB,A.snapInvVectorAB),n.uniform1i(this._uLayerNumber,A.snapPickLayerNumber),n.uniform3fv(this._uCoordinateScaler,E),n.uniform1i(this._uRenderPass,t),n.uniform1i(this._uPickInvisible,A.pickInvisible);let M=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(Q,M+=16),this._matricesUniformBlockBufferData.set(o.projMatrix,M+=16),this._matricesUniformBlockBufferData.set(r.positionsDecodeMatrix,M+=16),n.bindBuffer(n.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),n.bufferData(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,n.DYNAMIC_DRAW),n.bindBufferBase(n.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const e=2/(Math.log(A.pickZFar+1)/Math.LN2);n.uniform1f(this._uLogDepthBufFC,e)}this.setSectionPlanesStateUniforms(e),n.drawArraysInstanced(n.POINTS,0,r.positionsBuf.numItems,r.numInstances),n.bindVertexArray(null)}_allocate(){super._allocate();const A=this._program;this._uLogDepthBufFC=A.getLocation("logDepthBufFC"),this.uVectorA=A.getLocation("snapVectorA"),this.uInverseVectorAB=A.getLocation("snapInvVectorAB"),this._uLayerNumber=A.getLocation("layerNumber"),this._uCoordinateScaler=A.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// SnapInstancingDepthBufInitRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),t.push("in vec4 pickColor;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec2 snapVectorA;"),t.push("uniform vec2 snapInvVectorAB;"),t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;"),t.push("vec2 remapClipPos(vec2 clipPos) {"),t.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),t.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),t.push(" return vec2(x, y);"),t.push("}"),t.push("flat out vec4 vPickColor;"),t.push("out vec4 vWorldPosition;"),e&&t.push("out float vFlags;"),t.push("out highp vec3 relativeToOriginPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("relativeToOriginPosition = worldPosition.xyz;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vWorldPosition = worldPosition;"),e&&t.push(" vFlags = flags;"),t.push("vPickColor = pickColor;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("float tmp = clipPos.w;"),t.push("clipPos.xyzw /= tmp;"),t.push("clipPos.xy = remapClipPos(clipPos.xy);"),t.push("clipPos.xyzw *= tmp;"),t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// Points instancing pick depth fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;"),t.push("uniform int layerNumber;"),t.push("uniform vec3 coordinateScaler;"),t.push("in vec4 vWorldPosition;"),t.push("flat in vec4 vPickColor;"),e){t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),t.push("}")}return t.push(" float dx = dFdx(vFragDepth);"),t.push(" float dy = dFdy(vFragDepth);"),t.push(" float diff = sqrt(dx*dx+dy*dy);"),t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),t.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);"),t.push("outNormal = ivec4(1.0, 1.0, 1.0, 1.0);"),t.push("outPickColor = uvec4(vPickColor);"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Co=g.vec3(),xo=g.vec3(),Fo=g.vec3();g.vec3();const po=g.mat4();class Io extends ci{constructor(A){super(A,!1,{instancing:!0})}drawLayer(A,e,t){if(!this._program&&(this._allocate(e),this.errors))return;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram());const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=e._state.origin,{position:a,rotationMatrix:h}=i,B=e.aabb,l=A.pickViewMatrix||n.viewMatrix;this._vaoCache.has(e)?o.bindVertexArray(this._vaoCache.get(e)):this._vaoCache.set(e,this._makeVAO(r));const E=Co;let Q;if(E[0]=g.safeInv(B[3]-B[0])*g.MAX_INT,E[1]=g.safeInv(B[4]-B[1])*g.MAX_INT,E[2]=g.safeInv(B[5]-B[2])*g.MAX_INT,A.snapPickCoordinateScale[0]=g.safeInv(E[0]),A.snapPickCoordinateScale[1]=g.safeInv(E[1]),A.snapPickCoordinateScale[2]=g.safeInv(E[2]),c||0!==a[0]||0!==a[1]||0!==a[2]){const e=xo;if(c){const A=g.transformPoint3(h,c,Fo);e[0]=A[0],e[1]=A[1],e[2]=A[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=a[0],e[1]+=a[1],e[2]+=a[2],Q=UA(l,e,po),A.snapPickOrigin[0]=e[0],A.snapPickOrigin[1]=e[1],A.snapPickOrigin[2]=e[2]}else Q=l,A.snapPickOrigin[0]=0,A.snapPickOrigin[1]=0,A.snapPickOrigin[2]=0;o.uniform2fv(this.uVectorA,A.snapVectorA),o.uniform2fv(this.uInverseVectorAB,A.snapInvVectorAB),o.uniform1i(this._uLayerNumber,A.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,E),o.uniform1i(this._uRenderPass,t),o.uniform1i(this._uPickInvisible,A.pickInvisible);let M=0;this._matricesUniformBlockBufferData.set(h,0),this._matricesUniformBlockBufferData.set(Q,M+=16),this._matricesUniformBlockBufferData.set(n.projMatrix,M+=16),this._matricesUniformBlockBufferData.set(r.positionsDecodeMatrix,M+=16),o.bindBuffer(o.UNIFORM_BUFFER,this._matricesUniformBlockBuffer),o.bufferData(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferData,o.DYNAMIC_DRAW),o.bindBufferBase(o.UNIFORM_BUFFER,this._matricesUniformBlockBufferBindingPoint,this._matricesUniformBlockBuffer);{const e=2/(Math.log(A.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,e)}this.setSectionPlanesStateUniforms(e),o.drawArraysInstanced(o.POINTS,0,r.positionsBuf.numItems,r.numInstances),o.bindVertexArray(null)}_allocate(){super._allocate();const A=this._program;this._uLogDepthBufFC=A.getLocation("logDepthBufFC"),this.uVectorA=A.getLocation("snapVectorA"),this.uInverseVectorAB=A.getLocation("snapInvVectorAB"),this._uLayerNumber=A.getLocation("layerNumber"),this._uCoordinateScaler=A.getLocation("coordinateScaler")}_bindProgram(){this._program.bind()}_buildVertexShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];return t.push("#version 300 es"),t.push("// SnapInstancingDepthRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),t.push("in vec3 position;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("in float flags;"),t.push("in vec4 modelMatrixCol0;"),t.push("in vec4 modelMatrixCol1;"),t.push("in vec4 modelMatrixCol2;"),t.push("uniform bool pickInvisible;"),this._addMatricesUniformBlockLines(t),t.push("uniform vec2 snapVectorA;"),t.push("uniform vec2 snapInvVectorAB;"),t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;"),t.push("vec2 remapClipPos(vec2 clipPos) {"),t.push(" float x = (clipPos.x - snapVectorA.x) * snapInvVectorAB.x;"),t.push(" float y = (clipPos.y - snapVectorA.y) * snapInvVectorAB.y;"),t.push(" return vec2(x, y);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("out float vFlags;")),t.push("out highp vec3 relativeToOriginPosition;"),t.push("void main(void) {"),t.push("int pickFlag = int(flags) >> 12 & 0xF;"),t.push("if (pickFlag != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push("} else {"),t.push(" vec4 worldPosition = positionsDecodeMatrix * vec4(position, 1.0); "),t.push(" worldPosition = worldMatrix * vec4(dot(worldPosition, modelMatrixCol0), dot(worldPosition, modelMatrixCol1), dot(worldPosition, modelMatrixCol2), 1.0);"),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push("relativeToOriginPosition = worldPosition.xyz;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags = flags;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("float tmp = clipPos.w;"),t.push("clipPos.xyzw /= tmp;"),t.push("clipPos.xy = remapClipPos(clipPos.xy);"),t.push("clipPos.xyzw *= tmp;"),t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),t.push("gl_Position = clipPos;"),t.push("gl_PointSize = 1.0;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// SnapInstancingDepthRenderer fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;"),t.push("uniform int layerNumber;"),t.push("uniform vec3 coordinateScaler;"),e){t.push("in vec4 vWorldPosition;"),t.push("in float vFlags;");for(let e=0;e> 16 & 0xF) == 1;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),t.push("}")}return t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, layerNumber);"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class fo{constructor(A){this._scene=A}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null),this._shadowRenderer&&!this._shadowRenderer.getValid()&&(this._shadowRenderer.destroy(),this._shadowRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null)}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new ro(this._scene,!1)),this._colorRenderer}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new co(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new go(this._scene)),this._depthRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new ao(this._scene)),this._pickMeshRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new ho(this._scene)),this._pickDepthRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Bo(this._scene)),this._occlusionRenderer}get shadowRenderer(){return this._shadowRenderer||(this._shadowRenderer=new lo(this._scene)),this._shadowRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new wo(this._scene,!1)),this._snapInitRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Io(this._scene)),this._snapRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy(),this._shadowRenderer&&this._shadowRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy()}}const Yo={};const Do=new Uint8Array(4),mo=new Float32Array(1),Jo=new Float32Array(3),No=new Float32Array(4);class yo{constructor(A){this.model=A.model,this.material=A.material,this.sortId="PointsInstancingLayer",this.layerIndex=A.layerIndex,this._renderers=function(A){const e=A.id;let t=Yo[e];return t||(t=new fo(A),Yo[e]=t,t._compile(),A.on("compile",(()=>{t._compile()})),A.on("destroyed",(()=>{delete Yo[e],t._destroy()}))),t}(A.model.scene),this._aabb=g.collapseAABB3(),this._state=new Z({obb:g.OBB3(),numInstances:0,origin:A.origin?g.vec3(A.origin):null,geometry:A.geometry,positionsDecodeMatrix:A.geometry.positionsDecodeMatrix,colorsBuf:null,flagsBuf:null,offsetsBuf:null,modelMatrixCol0Buf:null,modelMatrixCol1Buf:null,modelMatrixCol2Buf:null,pickColorsBuf:null}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numSelectedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this.numIndices=A.geometry.numIndices,this._pickColors=[],this._offsets=[],this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[],this._portions=[],this._meshes=[],this._aabb=g.collapseAABB3(),this.aabbDirty=!0,this._finalized=!1,this.primitive=A.geometry.primitive}get aabb(){if(this.aabbDirty){g.collapseAABB3(this._aabb);for(let A=0,e=this._meshes.length;A0){let i=!1;t.flagsBuf=new q(A,A.ARRAY_BUFFER,new Float32Array(e),e,1,A.DYNAMIC_DRAW,i)}if(this.model.scene.entityOffsetsEnabled&&this._offsets.length>0){const e=!1;t.offsetsBuf=new q(A,A.ARRAY_BUFFER,new Float32Array(this._offsets),this._offsets.length,3,A.DYNAMIC_DRAW,e),this._offsets=[]}if(i.positionsCompressed&&i.positionsCompressed.length>0){const e=!1;t.positionsBuf=new q(A,A.ARRAY_BUFFER,i.positionsCompressed,i.positionsCompressed.length,3,A.STATIC_DRAW,e),t.positionsDecodeMatrix=g.mat4(i.positionsDecodeMatrix)}if(i.colorsCompressed&&i.colorsCompressed.length>0){const e=new Uint8Array(i.colorsCompressed),s=!1;t.colorsBuf=new q(A,A.ARRAY_BUFFER,e,e.length,4,A.STATIC_DRAW,s)}if(this._modelMatrixCol0.length>0){const e=!1;t.modelMatrixCol0Buf=new q(A,A.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol0),this._modelMatrixCol0.length,4,A.STATIC_DRAW,e),t.modelMatrixCol1Buf=new q(A,A.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol1),this._modelMatrixCol1.length,4,A.STATIC_DRAW,e),t.modelMatrixCol2Buf=new q(A,A.ARRAY_BUFFER,new Float32Array(this._modelMatrixCol2),this._modelMatrixCol2.length,4,A.STATIC_DRAW,e),this._modelMatrixCol0=[],this._modelMatrixCol1=[],this._modelMatrixCol2=[]}if(this._pickColors.length>0){const e=!1;t.pickColorsBuf=new q(A,A.ARRAY_BUFFER,new Uint8Array(this._pickColors),this._pickColors.length,4,A.STATIC_DRAW,e),this._pickColors=[]}t.geometry=null,this._finalized=!0}initFlags(A,e,t){e&Wt&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),e&qt&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),e&Zt&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),e&$t&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),e&Vt&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),e&Ai&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),e&Lt&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),e&Xt&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),t&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++),this._setFlags(A,e,t)}setVisible(A,e,t){if(!this._finalized)throw"Not finalized";e&Wt?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(A,e,t)}setHighlighted(A,e,t){if(!this._finalized)throw"Not finalized";e&qt?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(A,e,t)}setXRayed(A,e,t){if(!this._finalized)throw"Not finalized";e&Zt?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(A,e,t)}setSelected(A,e,t){if(!this._finalized)throw"Not finalized";e&$t?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(A,e,t)}setEdges(A,e,t){if(!this._finalized)throw"Not finalized";e&Ai?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(A,e,t)}setClippable(A,e){if(!this._finalized)throw"Not finalized";e&Vt?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags(A,e)}setCollidable(A,e){if(!this._finalized)throw"Not finalized"}setPickable(A,e,t){if(!this._finalized)throw"Not finalized";e&Lt?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(A,e,t)}setCulled(A,e,t){if(!this._finalized)throw"Not finalized";e&Xt?(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions--,this.model.numCulledLayerPortions--),this._setFlags(A,e,t)}setColor(A,e){if(!this._finalized)throw"Not finalized";Do[0]=e[0],Do[1]=e[1],Do[2]=e[2],this._state.colorsBuf.setData(Do,3*A)}setTransparent(A,e,t){t?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(A,e,t)}_setFlags(A,e,t){if(!this._finalized)throw"Not finalized";const i=!!(e&Wt),s=!!(e&Zt),n=!!(e&qt),o=!!(e&$t),r=!!(e&Ai),c=!!(e&Lt),a=!!(e&Xt);let h,B;h=!i||a||s||n&&!this.model.scene.highlightMaterial.glowThrough||o&&!this.model.scene.selectedMaterial.glowThrough?ei.NOT_RENDERED:t?ei.COLOR_TRANSPARENT:ei.COLOR_OPAQUE,B=!i||a?ei.NOT_RENDERED:o?ei.SILHOUETTE_SELECTED:n?ei.SILHOUETTE_HIGHLIGHTED:s?ei.SILHOUETTE_XRAYED:ei.NOT_RENDERED;let g=0;g=!i||a?ei.NOT_RENDERED:o?ei.EDGES_SELECTED:n?ei.EDGES_HIGHLIGHTED:s?ei.EDGES_XRAYED:r?t?ei.EDGES_COLOR_TRANSPARENT:ei.EDGES_COLOR_OPAQUE:ei.NOT_RENDERED;let l=0;l|=h,l|=B<<4,l|=g<<8,l|=(i&&!a&&c?ei.PICK:ei.NOT_RENDERED)<<12,l|=(e&Vt?255:0)<<16,mo[0]=l,this._state.flagsBuf.setData(mo,A)}setOffset(A,e){if(!this._finalized)throw"Not finalized";this.model.scene.entityOffsetsEnabled?(Jo[0]=e[0],Jo[1]=e[1],Jo[2]=e[2],this._state.offsetsBuf.setData(Jo,3*A)):this.model.error("Entity#offset not enabled for this Viewer")}setMatrix(A,e){if(!this._finalized)throw"Not finalized";const t=4*A;No[0]=e[0],No[1]=e[4],No[2]=e[8],No[3]=e[12],this._state.modelMatrixCol0Buf.setData(No,t),No[0]=e[1],No[1]=e[5],No[2]=e[9],No[3]=e[13],this._state.modelMatrixCol1Buf.setData(No,t),No[0]=e[2],No[1]=e[6],No[2]=e[10],No[3]=e[14],this._state.modelMatrixCol2Buf.setData(No,t)}drawColorOpaque(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(e,this,ei.COLOR_OPAQUE)}drawColorTransparent(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(e,this,ei.COLOR_TRANSPARENT)}drawDepth(A,e){}drawNormals(A,e){}drawSilhouetteXRayed(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numXRayedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(e,this,ei.SILHOUETTE_XRAYED)}drawSilhouetteHighlighted(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numHighlightedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(e,this,ei.SILHOUETTE_HIGHLIGHTED)}drawSilhouetteSelected(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numSelectedLayerPortions&&this._renderers.silhouetteRenderer&&this._renderers.silhouetteRenderer.drawLayer(e,this,ei.SILHOUETTE_SELECTED)}drawEdgesColorOpaque(A,e){}drawEdgesColorTransparent(A,e){}drawEdgesHighlighted(A,e){}drawEdgesSelected(A,e){}drawEdgesXRayed(A,e){}drawOcclusion(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.occlusionRenderer&&this._renderers.occlusionRenderer.drawLayer(e,this,ei.COLOR_OPAQUE)}drawShadow(A,e){}drawPickMesh(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.pickMeshRenderer&&this._renderers.pickMeshRenderer.drawLayer(e,this,ei.PICK)}drawPickDepths(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.pickDepthRenderer&&this._renderers.pickDepthRenderer.drawLayer(e,this,ei.PICK)}drawPickNormals(A,e){}drawSnapInit(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapInitRenderer&&this._renderers.snapInitRenderer.drawLayer(e,this,ei.PICK)}drawSnap(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._renderers.snapRenderer&&this._renderers.snapRenderer.drawLayer(e,this,ei.PICK)}destroy(){const A=this._state;A.colorsBuf&&(A.colorsBuf.destroy(),A.colorsBuf=null),A.flagsBuf&&(A.flagsBuf.destroy(),A.flagsBuf=null),A.offsetsBuf&&(A.offsetsBuf.destroy(),A.offsetsBuf=null),A.modelMatrixCol0Buf&&(A.modelMatrixCol0Buf.destroy(),A.modelMatrixCol0Buf=null),A.modelMatrixCol1Buf&&(A.modelMatrixCol1Buf.destroy(),A.modelMatrixCol1Buf=null),A.modelMatrixCol2Buf&&(A.modelMatrixCol2Buf.destroy(),A.modelMatrixCol2Buf=null),A.pickColorsBuf&&(A.pickColorsBuf.destroy(),A.pickColorsBuf=null),A.destroy()}}const zo=g.vec3(),To=g.vec3(),Uo=g.mat4();class Ro{constructor(A){this._scene=A,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(A,e,t){const i=this._scene,s=i.camera,n=e.model,o=i.canvas.gl,r=e._state,c=r.textureState,a=e._state.origin,{position:h,rotationMatrix:B}=n,l=s.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let E;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram(A,r)),c.bindCommonTextures(this._program,this.uPerObjectDecodeMatrix,this._uPerVertexPosition,this.uPerObjectColorAndFlags,this._uPerObjectMatrix);const Q=0!==a[0]||0!==a[1]||0!==a[2],M=0!==h[0]||0!==h[1]||0!==h[2];if(Q||M){const A=zo;if(Q){const e=g.transformPoint3(B,a,To);A[0]=e[0],A[1]=e[1],A[2]=e[2]}else A[0]=0,A[1]=0,A[2]=0;A[0]+=h[0],A[1]+=h[1],A[2]+=h[2],E=UA(l,A,Uo)}else E=l;if(o.uniformMatrix4fv(this._uSceneModelMatrix,!1,B),o.uniformMatrix4fv(this._uViewMatrix,!1,E),o.uniformMatrix4fv(this._uProjMatrix,!1,s.projMatrix),o.uniform1i(this._uRenderPass,t),i.logarithmicDepthBufferEnabled){const e=2/(Math.log(A.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,e)}const u=i._sectionPlanesState.getNumAllocatedSectionPlanes(),w=i._sectionPlanesState.sectionPlanes.length;if(u>0){const A=i._sectionPlanesState.sectionPlanes,t=e.layerIndex*w,s=n.renderFlags;for(let e=0;e0&&(c.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,8),o.drawArrays(o.LINES,0,r.numIndices8Bits)),r.numIndices16Bits>0&&(c.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,16),o.drawArrays(o.LINES,0,r.numIndices16Bits)),r.numIndices32Bits>0&&(c.bindLineIndicesTextures(this._program,this._uPerLineObject,this._uPerLineIndices,32),o.drawArrays(o.LINES,0,r.numIndices32Bits)),A.drawElements++}_allocate(){const A=this._scene,e=A.canvas.gl;if(this._program=new de(e,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.errors);const t=this._program;this._uRenderPass=t.getLocation("renderPass"),this._uSceneModelMatrix=t.getLocation("sceneModelMatrix"),this._uViewMatrix=t.getLocation("viewMatrix"),this._uProjMatrix=t.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e0,t=[];return t.push("#version 300 es"),t.push("// LinesDataTextureColorRenderer"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),A.entityOffsetsEnabled,t.push("uniform mat4 sceneModelMatrix;"),t.push("uniform mat4 viewMatrix;"),t.push("uniform mat4 projMatrix;"),t.push("uniform highp sampler2D uPerObjectDecodeMatrix;"),t.push("uniform highp sampler2D uPerObjectMatrix;"),t.push("uniform lowp usampler2D uPerObjectColorAndFlags;"),t.push("uniform mediump usampler2D uPerVertexPosition;"),t.push("uniform highp usampler2D uPerLineIndices;"),t.push("uniform mediump usampler2D uPerLineObject;"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("flat out uint vFlags2;")),t.push("out vec4 vColor;"),t.push("void main(void) {"),t.push(" int lineIndex = gl_VertexID / 2;"),t.push(" int h_packed_object_id_index = (lineIndex >> 3) & 4095;"),t.push(" int v_packed_object_id_index = (lineIndex >> 3) >> 12;"),t.push(" int objectIndex = int(texelFetch(uPerLineObject, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),t.push(" ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),t.push(" uvec4 flags = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push(" uvec4 flags2 = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push(" if (int(flags.x) != renderPass) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push(" } else {"),t.push(" ivec4 packedVertexBase = ivec4(texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),t.push(" ivec4 packedLineIndexBaseOffset = ivec4(texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),t.push(" int lineIndexBaseOffset = (packedLineIndexBaseOffset.r << 24) + (packedLineIndexBaseOffset.g << 16) + (packedLineIndexBaseOffset.b << 8) + packedLineIndexBaseOffset.a;"),t.push(" int h_index = (lineIndex - lineIndexBaseOffset) & 4095;"),t.push(" int v_index = (lineIndex - lineIndexBaseOffset) >> 12;"),t.push(" ivec3 vertexIndices = ivec3(texelFetch(uPerLineIndices, ivec2(h_index, v_index), 0));"),t.push(" ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),t.push(" int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),t.push(" int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),t.push(" mat4 objectInstanceMatrix = mat4 (texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uPerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push(" mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uPerObjectDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push(" uvec4 flags = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push(" uvec4 flags2 = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push(" vec3 position = vec3(texelFetch(uPerVertexPosition, ivec2(indexPositionH, indexPositionV), 0));"),t.push(" uvec4 color = texelFetch (uPerObjectColorAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),t.push(" if (color.a == 0u) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push(" };"),t.push(" vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags2 = flags2.r;")),t.push(" vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push(" vFragDepth = 1.0 + clipPos.w;"),t.push(" isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push(" gl_Position = clipPos;"),t.push(" vec4 rgb = vec4(color.rgba);"),t.push(" vColor = vec4(float(rgb.r*0.5) / 255.0, float(rgb.g*0.5) / 255.0, float(rgb.b*0.5) / 255.0, float(rgb.a) / 255.0);"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState,t=e.getNumAllocatedSectionPlanes()>0,i=[];if(i.push("#version 300 es"),i.push("// LinesDataTextureColorRenderer fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0.0) { "),i.push(" discard;"),i.push(" }"),i.push("}")}return A.logarithmicDepthBufferEnabled&&i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vColor;"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class bo{constructor(A){this._scene=A}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null)}eagerCreateRenders(){}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new Ro(this._scene,!1)),this._colorRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy()}}const ko={};class Po{constructor(){this.positionsCompressed=[],this.lenPositionsCompressed=0,this.indices8Bits=[],this.lenIndices8Bits=0,this.indices16Bits=[],this.lenIndices16Bits=0,this.indices32Bits=[],this.lenIndices32Bits=0,this.perObjectColors=[],this.perObjectPickColors=[],this.perObjectSolid=[],this.perObjectOffsets=[],this.perObjectPositionsDecodeMatrices=[],this.perObjectInstancePositioningMatrices=[],this.perObjectVertexBases=[],this.perObjectIndexBaseOffsets=[],this.perLineNumberPortionId8Bits=[],this.perLineNumberPortionId16Bits=[],this.perLineNumberPortionId32Bits=[]}}class Go{constructor(){this.texturePerObjectColorsAndFlags=null,this.texturePerObjectOffsets=null,this.texturePerObjectInstanceMatrices=null,this.texturePerObjectPositionsDecodeMatrix=null,this.texturePerVertexIdCoordinates=null,this.texturePerLineIdPortionIds8Bits=null,this.texturePerLineIdPortionIds16Bits=null,this.texturePerLineIdPortionIds32Bits=null,this.texturePerLineIdIndices8Bits=null,this.texturePerLineIdIndices16Bits=null,this.texturePerLineIdIndices32Bits=null,this.textureModelMatrices=null}finalize(){this.indicesPerBitnessTextures={8:this.texturePerLineIdIndices8Bits,16:this.texturePerLineIdIndices16Bits,32:this.texturePerLineIdIndices32Bits},this.indicesPortionIdsPerBitnessTextures={8:this.texturePerLineIdPortionIds8Bits,16:this.texturePerLineIdPortionIds16Bits,32:this.texturePerLineIdPortionIds32Bits}}bindCommonTextures(A,e,t,i,s){this.texturePerObjectPositionsDecodeMatrix.bindTexture(A,e,1),this.texturePerVertexIdCoordinates.bindTexture(A,t,2),this.texturePerObjectColorsAndFlags.bindTexture(A,i,3),this.texturePerObjectInstanceMatrices.bindTexture(A,s,4)}bindLineIndicesTextures(A,e,t,i){this.indicesPortionIdsPerBitnessTextures[i].bindTexture(A,e,5),this.indicesPerBitnessTextures[i].bindTexture(A,t,6)}}class vo{constructor(A,e,t,i,s=null){this._gl=A,this._texture=e,this._textureWidth=t,this._textureHeight=i,this._textureData=s}bindTexture(A,e,t){return A.bindTexture(e,this,t)}bind(A){return this._gl.activeTexture(this._gl["TEXTURE"+A]),this._gl.bindTexture(this._gl.TEXTURE_2D,this._texture),!0}unbind(A){}}const Ho={sizeDataColorsAndFlags:0,sizeDataPositionDecodeMatrices:0,sizeDataTextureOffsets:0,sizeDataTexturePositions:0,sizeDataTextureIndices:0,sizeDataTexturePortionIds:0,numberOfGeometries:0,numberOfPortions:0,numberOfLayers:0,numberOfTextures:0,totalLines:0,totalLines8Bits:0,totalLines16Bits:0,totalLines32Bits:0,cannotCreatePortion:{because10BitsObjectId:0,becauseTextureSize:0},overheadSizeAlignementIndices:0,overheadSizeAlignementEdgeIndices:0};window.printDataTextureRamStats=function(){console.log(JSON.stringify(Ho,null,4));let A=0;Object.keys(Ho).forEach((e=>{e.startsWith("size")&&(A+=Ho[e])})),console.log(`Total size ${A} bytes (${(A/1e3/1e3).toFixed(2)} MB)`),console.log(`Avg bytes / triangle: ${(A/Ho.totalLines).toFixed(2)}`);let e={};Object.keys(Ho).forEach((t=>{t.startsWith("size")&&(e[t]=`${(Ho[t]/A*100).toFixed(2)} % of total`)})),console.log(JSON.stringify({percentualRamUsage:e},null,4))};class So{disableBindedTextureFiltering(A){A.texParameteri(A.TEXTURE_2D,A.TEXTURE_MAG_FILTER,A.NEAREST),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_MIN_FILTER,A.NEAREST),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_WRAP_S,A.CLAMP_TO_EDGE),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_WRAP_T,A.CLAMP_TO_EDGE)}generateTextureForColorsAndFlags(A,e,t,i,s){const n=e.length;this.numPortions=n;const o=4096,r=Math.ceil(n/512);if(0===r)throw"texture height===0";const c=new Uint8Array(16384*r);Ho.sizeDataColorsAndFlags+=c.byteLength,Ho.numberOfTextures++;for(let A=0;A>24&255,i[A]>>16&255,i[A]>>8&255,255&i[A]],32*A+16),c.set([s[A]>>24&255,s[A]>>16&255,s[A]>>8&255,255&s[A]],32*A+20);const a=A.createTexture();return A.bindTexture(A.TEXTURE_2D,a),A.texStorage2D(A.TEXTURE_2D,1,A.RGBA8UI,o,r),A.texSubImage2D(A.TEXTURE_2D,0,0,0,o,r,A.RGBA_INTEGER,A.UNSIGNED_BYTE,c,0),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_MAG_FILTER,A.NEAREST),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_MIN_FILTER,A.NEAREST),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_WRAP_S,A.CLAMP_TO_EDGE),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_WRAP_T,A.CLAMP_TO_EDGE),A.bindTexture(A.TEXTURE_2D,null),new vo(A,a,o,r,c)}generateTextureForObjectOffsets(A,e){const t=512,i=Math.ceil(e/t);if(0===i)throw"texture height===0";const s=new Float32Array(1536*i).fill(0);Ho.sizeDataTextureOffsets+=s.byteLength,Ho.numberOfTextures++;const n=A.createTexture();return A.bindTexture(A.TEXTURE_2D,n),A.texStorage2D(A.TEXTURE_2D,1,A.RGB32F,t,i),A.texSubImage2D(A.TEXTURE_2D,0,0,0,t,i,A.RGB,A.FLOAT,s,0),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_MAG_FILTER,A.NEAREST),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_MIN_FILTER,A.NEAREST),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_WRAP_S,A.CLAMP_TO_EDGE),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_WRAP_T,A.CLAMP_TO_EDGE),A.bindTexture(A.TEXTURE_2D,null),new vo(A,n,t,i,s)}generateTextureForInstancingMatrices(A,e){const t=e.length;if(0===t)throw"num instance matrices===0";const i=2048,s=Math.ceil(t/512),n=new Float32Array(8192*s);Ho.numberOfTextures++;for(let A=0;A{t._compile(),t.eagerCreateRenders()})),A.on("destroyed",(()=>{delete ko[e],t._destroy()}))),t}(A.scene),this.model=A,this._buffer=new Po,this._dataTextureState=new Go,this._dataTextureGenerator=new So,this._state=new Z({origin:g.vec3(e.origin),textureState:this._dataTextureState,numIndices8Bits:0,numIndices16Bits:0,numIndices32Bits:0,numVertices:0}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._subPortions=[],this._portionToSubPortionsMap=[],this._bucketGeometries={},this._meshes=[],this._aabb=g.collapseAABB3(),this.aabbDirty=!0,this._numUpdatesInFrame=0,this.primitive=e.primitive,this._finalized=!1}get aabb(){if(this.aabbDirty){g.collapseAABB3(this._aabb);for(let A=0,e=this._meshes.length;A65536&&Ho.cannotCreatePortion.because10BitsObjectId++;let t=this._numPortions+e<=65536;const i=void 0!==A.geometryId&&null!==A.geometryId?`${A.geometryId}#0`:`${A.id}#0`;if(!this._bucketGeometries[i]){const e=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits);let i=0,s=0;A.buckets.forEach((A=>{i+=A.positionsCompressed.length/3,s+=A.indices.length/2})),(this._state.numVertices+i>4096*Oo||e+s>4096*Oo)&&Ho.cannotCreatePortion.becauseTextureSize++,t&&=this._state.numVertices+i<=4096*Oo&&e+s<=4096*Oo}return t}createPortion(A,e){if(this._finalized)throw"Already finalized";const t=[];e.buckets.forEach(((A,i)=>{const s=void 0!==e.geometryId&&null!==e.geometryId?`${e.geometryId}#${i}`:`${e.id}#${i}`;let n=this._bucketGeometries[s];n||(n=this._createBucketGeometry(e,A),this._bucketGeometries[s]=n);const o=this._createSubPortion(e,n,A);t.push(o)}));const i=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(t),this.model.numPortions++,this._meshes.push(A),i}_createBucketGeometry(A,e){if(e.indices){const A=8*Math.ceil(e.indices.length/2/8)*2;Ho.overheadSizeAlignementIndices+=2*(A-e.indices.length);const t=new Uint32Array(A);t.fill(0),t.set(e.indices),e.indices=t}const t=e.positionsCompressed,i=e.indices,s=this._buffer;s.positionsCompressed.push(t);const n=s.lenPositionsCompressed/3,o=t.length/3;let r;s.lenPositionsCompressed+=t.length;let c=0;if(i){let A;c=i.length/2,o<=256?(A=s.indices8Bits,r=s.lenIndices8Bits/2,s.lenIndices8Bits+=i.length):o<=65536?(A=s.indices16Bits,r=s.lenIndices16Bits/2,s.lenIndices16Bits+=i.length):(A=s.indices32Bits,r=s.lenIndices32Bits/2,s.lenIndices32Bits+=i.length),A.push(i)}this._state.numVertices+=o,Ho.numberOfGeometries++;return{vertexBase:n,numVertices:o,numLines:c,indicesBase:r}}_createSubPortion(A,e){const t=A.color,i=A.colors,s=A.opacity,n=A.meshMatrix,o=A.pickColor,r=this._buffer,c=this._state;r.perObjectPositionsDecodeMatrices.push(A.positionsDecodeMatrix),r.perObjectInstancePositioningMatrices.push(n||Vo),r.perObjectSolid.push(!!A.solid),i?r.perObjectColors.push([255*i[0],255*i[1],255*i[2],255]):t&&r.perObjectColors.push([t[0],t[1],t[2],s]),r.perObjectPickColors.push(o),r.perObjectVertexBases.push(e.vertexBase);{let A;A=e.numVertices<=256?c.numIndices8Bits:e.numVertices<=65536?c.numIndices16Bits:c.numIndices32Bits,r.perObjectIndexBaseOffsets.push(A/2-e.indicesBase)}const a=this._subPortions.length;if(e.numLines>0){let A,t=2*e.numLines;e.numVertices<=256?(A=r.perLineNumberPortionId8Bits,c.numIndices8Bits+=t,Ho.totalLines8Bits+=e.numLines):e.numVertices<=65536?(A=r.perLineNumberPortionId16Bits,c.numIndices16Bits+=t,Ho.totalLines16Bits+=e.numLines):(A=r.perLineNumberPortionId32Bits,c.numIndices32Bits+=t,Ho.totalLines32Bits+=e.numLines),Ho.totalLines+=e.numLines;for(let t=0;t0&&(e.texturePerLineIdIndices8Bits=this._dataTextureGenerator.generateTextureFor8BitIndices(t,i.indices8Bits,i.lenIndices8Bits)),i.lenIndices16Bits>0&&(e.texturePerLineIdIndices16Bits=this._dataTextureGenerator.generateTextureFor16BitIndices(t,i.indices16Bits,i.lenIndices16Bits)),i.lenIndices32Bits>0&&(e.texturePerLineIdIndices32Bits=this._dataTextureGenerator.generateTextureFor32BitIndices(t,i.indices32Bits,i.lenIndices32Bits)),e.finalize(),this._buffer=null,this._bucketGeometries={},this._finalized=!0,this._deferredSetFlagsDirty=!1,this._onSceneRendering=this.model.scene.on("rendering",(()=>{this._deferredSetFlagsDirty&&this._uploadDeferredFlags(),this._numUpdatesInFrame=0}))}initFlags(A,e,t){e&Wt&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),e&qt&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),e&Zt&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),e&$t&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),e&Vt&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),e&Lt&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),e&Xt&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),t&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);const i=!0;this._setFlags(A,e,t,i),this._setFlags2(A,e,i)}flushInitFlags(){this._setDeferredFlags(),this._setDeferredFlags2()}setVisible(A,e,t){if(!this._finalized)throw"Not finalized";e&Wt?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(A,e,t)}setHighlighted(A,e,t){if(!this._finalized)throw"Not finalized";e&qt?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(A,e,t)}setXRayed(A,e,t){if(!this._finalized)throw"Not finalized";e&Zt?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(A,e,t)}setSelected(A,e,t){if(!this._finalized)throw"Not finalized";e&$t?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(A,e,t)}setEdges(A,e,t){}setClippable(A,e){if(!this._finalized)throw"Not finalized";e&Vt?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags2(A,e)}_beginDeferredFlags(){this._deferredSetFlagsActive=!0}_uploadDeferredFlags(){if(this._deferredSetFlagsActive=!1,!this._deferredSetFlagsDirty)return;this._deferredSetFlagsDirty=!1;const A=this.model.scene.canvas.gl,e=this._dataTextureState;A.bindTexture(A.TEXTURE_2D,e.texturePerObjectColorsAndFlags._texture),A.texSubImage2D(A.TEXTURE_2D,0,0,0,e.texturePerObjectColorsAndFlags._textureWidth,e.texturePerObjectColorsAndFlags._textureHeight,A.RGBA_INTEGER,A.UNSIGNED_BYTE,e.texturePerObjectColorsAndFlags._textureData)}setCulled(A,e,t){if(!this._finalized)throw"Not finalized";e&Xt?(this._numCulledLayerPortions+=this._portionToSubPortionsMap[A].length,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions-=this._portionToSubPortionsMap[A].length,this.model.numCulledLayerPortions--),this._setFlags(A,e,t)}setCollidable(A,e){if(!this._finalized)throw"Not finalized"}setPickable(A,e,t){if(!this._finalized)throw"Not finalized";e&Lt?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(A,e,t)}setColor(A,e){const t=this._portionToSubPortionsMap[A];for(let A=0,i=t.length;A=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,t.texturePerObjectColorsAndFlags._texture),i.texSubImage2D(i.TEXTURE_2D,0,A%512*8,Math.floor(A/512),1,1,i.RGBA_INTEGER,i.UNSIGNED_BYTE,Wo))}setTransparent(A,e,t){t?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(A,e,t)}_setFlags(A,e,t,i=!1){const s=this._portionToSubPortionsMap[A];for(let A=0,n=s.length;A=10&&this._beginDeferredFlags(),B.bindTexture(B.TEXTURE_2D,h.texturePerObjectColorsAndFlags._texture),B.texSubImage2D(B.TEXTURE_2D,0,A%512*8+2,Math.floor(A/512),1,1,B.RGBA_INTEGER,B.UNSIGNED_BYTE,Wo))}_setDeferredFlags(){}_setFlags2(A,e,t=!1){const i=this._portionToSubPortionsMap[A];for(let A=0,s=i.length;A=10&&this._beginDeferredFlags(),n.bindTexture(n.TEXTURE_2D,s.texturePerObjectColorsAndFlags._texture),n.texSubImage2D(n.TEXTURE_2D,0,A%512*8+3,Math.floor(A/512),1,1,n.RGBA_INTEGER,n.UNSIGNED_BYTE,Wo))}_setDeferredFlags2(){}setOffset(A,e){const t=this._portionToSubPortionsMap[A];for(let A=0,i=t.length;A=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,t.texturePerObjectOffsets._texture),i.texSubImage2D(i.TEXTURE_2D,0,0,A,1,1,i.RGB,i.FLOAT,Xo))}setMatrix(A,e){const t=this._portionToSubPortionsMap[A];for(let A=0,i=t.length;A=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,t.texturePerObjectInstanceMatrices._texture),i.texSubImage2D(i.TEXTURE_2D,0,A%512*4,Math.floor(A/512),4,1,i.RGBA,i.FLOAT,_o))}drawColorOpaque(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&this._numTransparentLayerPortions!==this._numPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(e,this,ei.COLOR_OPAQUE)}drawColorTransparent(A,e){this._numCulledLayerPortions!==this._numPortions&&0!==this._numVisibleLayerPortions&&0!==this._numTransparentLayerPortions&&this._numXRayedLayerPortions!==this._numPortions&&this._renderers.colorRenderer&&this._renderers.colorRenderer.drawLayer(e,this,ei.COLOR_TRANSPARENT)}drawDepth(A,e){}drawNormals(A,e){}drawSilhouetteXRayed(A,e){}drawSilhouetteHighlighted(A,e){}drawSilhouetteSelected(A,e){}drawEdgesColorOpaque(A,e){}drawEdgesColorTransparent(A,e){}drawEdgesHighlighted(A,e){}drawEdgesSelected(A,e){}drawEdgesXRayed(A,e){}drawOcclusion(A,e){}drawShadow(A,e){}setPickMatrices(A,e){}drawPickMesh(A,e){}drawPickDepths(A,e){}drawSnapInit(A,e){}drawSnap(A,e){}drawPickNormals(A,e){}destroy(){if(this._destroyed)return;const A=this._state;this.model.scene.off(this._onSceneRendering),A.destroy(),this._destroyed=!0}}const Zo=g.vec3(),qo=g.vec3(),$o=g.vec3();g.vec3();const Ar=g.vec4(),er=g.mat4();class tr{constructor(A,e){this._scene=A,this._withSAO=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){const A=this._scene;return[A._lightsState.getHash(),A._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(A,e,t){const i=this._scene,s=i.camera,n=e.model,o=i.canvas.gl,r=e._state,c=r.textureState,a=e._state.origin,{position:h,rotationMatrix:B}=n;if(!this._program&&(this._allocate(),this.errors))return;let l,E;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram(A,r)),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const Q=0!==a[0]||0!==a[1]||0!==a[2],M=0!==h[0]||0!==h[1]||0!==h[2];if(Q||M){const A=Zo;if(Q){const e=g.transformPoint3(B,a,qo);A[0]=e[0],A[1]=e[1],A[2]=e[2]}else A[0]=0,A[1]=0,A[2]=0;A[0]+=h[0],A[1]+=h[1],A[2]+=h[2],l=UA(s.viewMatrix,A,er),E=$o,E[0]=s.eye[0]-A[0],E[1]=s.eye[1]-A[1],E[2]=s.eye[2]-A[2]}else l=s.viewMatrix,E=s.eye;if(o.uniformMatrix4fv(this._uSceneModelMatrix,!1,B),o.uniformMatrix4fv(this._uViewMatrix,!1,l),o.uniformMatrix4fv(this._uProjMatrix,!1,s.projMatrix),o.uniform3fv(this._uCameraEyeRtc,E),o.uniform1i(this._uRenderPass,t),i.logarithmicDepthBufferEnabled){const e=2/(Math.log(A.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,e)}const u=i._sectionPlanesState.getNumAllocatedSectionPlanes(),w=i._sectionPlanesState.sectionPlanes.length;if(u>0){const A=i._sectionPlanesState.sectionPlanes,t=e.layerIndex*w,s=n.renderFlags;i.crossSections&&(o.uniform4fv(this._uSliceColor,i.crossSections.sliceColor),o.uniform1f(this._uSliceThickness,i.crossSections.sliceThickness));for(let e=0;e0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),o.drawArrays(o.TRIANGLES,0,r.numIndices8Bits)),r.numIndices16Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),o.drawArrays(o.TRIANGLES,0,r.numIndices16Bits)),r.numIndices32Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),o.drawArrays(o.TRIANGLES,0,r.numIndices32Bits)),A.drawElements++}_allocate(){const A=this._scene,e=A.canvas.gl,t=A._lightsState;if(this._program=new de(e,this._buildShader()),this._program.errors)return this.errors=this._program.errors,void console.error(this.errors);const i=this._program;this._uRenderPass=i.getLocation("renderPass"),this._uLightAmbient=i.getLocation("lightAmbient"),this._uLightColor=[],this._uLightDir=[],this._uLightPos=[],this._uLightAttenuation=[];const s=t.lights;let n;for(let A=0,e=s.length;A0;let s;const n=[];n.push("#version 300 es"),n.push("// TrianglesDataTextureColorRenderer vertex shader"),n.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),n.push("precision highp float;"),n.push("precision highp int;"),n.push("precision highp usampler2D;"),n.push("precision highp isampler2D;"),n.push("precision highp sampler2D;"),n.push("#else"),n.push("precision mediump float;"),n.push("precision mediump int;"),n.push("precision mediump usampler2D;"),n.push("precision mediump isampler2D;"),n.push("precision mediump sampler2D;"),n.push("#endif"),n.push("uniform int renderPass;"),n.push("uniform mat4 sceneModelMatrix;"),n.push("uniform mat4 viewMatrix;"),n.push("uniform mat4 projMatrix;"),n.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),n.push("uniform highp sampler2D uTexturePerObjectMatrix;"),n.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),n.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),n.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),n.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),n.push("uniform vec3 uCameraEyeRtc;"),n.push("vec3 positions[3];"),A.logarithmicDepthBufferEnabled&&(n.push("uniform float logDepthBufFC;"),n.push("out float vFragDepth;"),n.push("out float isPerspective;")),n.push("bool isPerspectiveMatrix(mat4 m) {"),n.push(" return (m[2][3] == - 1.0);"),n.push("}"),n.push("uniform vec4 lightAmbient;");for(let A=0,e=t.lights.length;A> 3) & 4095;"),n.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),n.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),n.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),n.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),n.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),n.push("if (int(flags.x) != renderPass) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("} else {"),n.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),n.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),n.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),n.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),n.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),n.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),n.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),n.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),n.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),n.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),n.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),n.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),n.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),n.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),n.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),n.push("if (color.a == 0u) {"),n.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),n.push(" return;"),n.push("};"),n.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),n.push("vec3 position;"),n.push("position = positions[gl_VertexID % 3];"),n.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),n.push("if (solid != 1u) {"),n.push("if (isPerspectiveMatrix(projMatrix)) {"),n.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),n.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("viewNormal = -viewNormal;"),n.push("}"),n.push("} else {"),n.push("if (viewNormal.z < 0.0) {"),n.push("position = positions[2 - (gl_VertexID % 3)];"),n.push("viewNormal = -viewNormal;"),n.push("}"),n.push("}"),n.push("}"),n.push("vec4 worldPosition = sceneModelMatrix * ((objectDecodeAndInstanceMatrix * vec4(position, 1.0))); "),n.push("vec4 viewPosition = viewMatrix * worldPosition; "),n.push("vec3 reflectedColor = vec3(0.0, 0.0, 0.0);"),n.push("vec3 viewLightDir = vec3(0.0, 0.0, -1.0);"),n.push("float lambertian = 1.0;");for(let A=0,e=t.lights.length;A0,i=[];if(i.push("#version 300 es"),i.push("// TrianglesDataTextureColorRenderer fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("in float isPerspective;"),i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),this._withSAO&&(i.push("uniform sampler2D uOcclusionTexture;"),i.push("uniform vec4 uSAOParams;"),i.push("const float packUpscale = 256. / 255.;"),i.push("const float unpackDownScale = 255. / 256.;"),i.push("const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );"),i.push("const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. );"),i.push("float unpackRGBToFloat( const in vec4 v ) {"),i.push(" return dot( v, unPackFactors );"),i.push("}")),t){i.push("in vec4 vWorldPosition;"),i.push("flat in uint vFlags2;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A 0u;"),i.push(" if (clippable) {"),i.push(" float dist = 0.0;");for(let A=0,t=e.getNumAllocatedSectionPlanes();A sliceThickness) { "),i.push(" discard;"),i.push(" }"),i.push(" if (dist > 0.0) { "),i.push(" newColor = sliceColor;"),i.push(" }"),i.push("}")}return A.logarithmicDepthBufferEnabled?i.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"):(i.push(" float dx = dFdx(gl_FragCoord.z);"),i.push(" float dy = dFdy(gl_FragCoord.z);"),i.push(" float diff = sqrt(dx*dx+dy*dy);"),i.push(" gl_FragDepth = gl_FragCoord.z + diff;")),this._withSAO?(i.push(" float viewportWidth = uSAOParams[0];"),i.push(" float viewportHeight = uSAOParams[1];"),i.push(" float blendCutoff = uSAOParams[2];"),i.push(" float blendFactor = uSAOParams[3];"),i.push(" vec2 uv = vec2(gl_FragCoord.x / viewportWidth, gl_FragCoord.y / viewportHeight);"),i.push(" float ambient = smoothstep(blendCutoff, 1.0, unpackRGBToFloat(texture(uOcclusionTexture, uv))) * blendFactor;"),i.push(" outColor = vec4(newColor.rgb * ambient, 1.0);")):i.push(" outColor = newColor;"),i.push("}"),i}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const ir=new Float32Array([1,1,1]),sr=g.vec3(),nr=g.vec3(),or=g.vec3();g.vec3();const rr=g.mat4();class cr{constructor(A,e){this._scene=A,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(A,e,t){const i=this._scene,s=i.camera,n=e.model,o=i.canvas.gl,r=e._state,c=r.textureState,a=e._state.origin,{position:h,rotationMatrix:B}=n,l=s.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let E,Q;if(A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram(A,r)),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),a||0!==h[0]||0!==h[1]||0!==h[2]){const A=sr;if(a){const e=nr;g.transformPoint3(B,a,e),A[0]=e[0],A[1]=e[1],A[2]=e[2]}else A[0]=0,A[1]=0,A[2]=0;A[0]+=h[0],A[1]+=h[1],A[2]+=h[2],E=UA(l,A,rr),Q=or,Q[0]=s.eye[0]-A[0],Q[1]=s.eye[1]-A[1],Q[2]=s.eye[2]-A[2]}else E=l,Q=s.eye;if(o.uniform3fv(this._uCameraEyeRtc,Q),o.uniform1i(this._uRenderPass,t),o.uniformMatrix4fv(this._uWorldMatrix,!1,B),o.uniformMatrix4fv(this._uViewMatrix,!1,E),o.uniformMatrix4fv(this._uProjMatrix,!1,s.projMatrix),t===ei.SILHOUETTE_XRAYED){const A=i.xrayMaterial._state,e=A.fillColor,t=A.fillAlpha;o.uniform4f(this._uColor,e[0],e[1],e[2],t)}else if(t===ei.SILHOUETTE_HIGHLIGHTED){const A=i.highlightMaterial._state,e=A.fillColor,t=A.fillAlpha;o.uniform4f(this._uColor,e[0],e[1],e[2],t)}else if(t===ei.SILHOUETTE_SELECTED){const A=i.selectedMaterial._state,e=A.fillColor,t=A.fillAlpha;o.uniform4f(this._uColor,e[0],e[1],e[2],t)}else o.uniform4fv(this._uColor,ir);if(i.logarithmicDepthBufferEnabled){const e=2/(Math.log(A.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,e)}const M=i._sectionPlanesState.getNumAllocatedSectionPlanes(),u=i._sectionPlanesState.sectionPlanes.length;if(M>0){const A=i._sectionPlanesState.sectionPlanes,t=e.layerIndex*u,s=n.renderFlags;for(let e=0;e0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),o.drawArrays(o.TRIANGLES,0,r.numIndices8Bits)),r.numIndices16Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),o.drawArrays(o.TRIANGLES,0,r.numIndices16Bits)),r.numIndices32Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),o.drawArrays(o.TRIANGLES,0,r.numIndices32Bits)),A.drawElements++}_allocate(){const A=this._scene,e=A.canvas.gl;if(this._program=new de(e,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const t=this._program;this._uRenderPass=t.getLocation("renderPass"),this._uColor=t.getLocation("color"),this._uWorldMatrix=t.getLocation("sceneModelMatrix"),this._uViewMatrix=t.getLocation("viewMatrix"),this._uProjMatrix=t.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e0,t=[];return t.push("#version 300 es"),t.push("// Triangles dataTexture silhouette vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("uniform mat4 sceneModelMatrix;"),t.push("uniform mat4 viewMatrix;"),t.push("uniform mat4 projMatrix;"),t.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),t.push("uniform highp sampler2D uTexturePerObjectMatrix;"),t.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),t.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),t.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),t.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),t.push("uniform vec3 uCameraEyeRtc;"),t.push("vec3 positions[3];"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("out float isPerspective;")),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("flat out uint vFlags2;")),t.push("void main(void) {"),t.push("int polygonIndex = gl_VertexID / 3;"),t.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),t.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),t.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),t.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),t.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push("if (int(flags.y) != renderPass) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("} else {"),t.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),t.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),t.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),t.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),t.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),t.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),t.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),t.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),t.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),t.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),t.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),t.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),t.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),t.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),t.push("vec3 position;"),t.push("position = positions[gl_VertexID % 3];"),t.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),t.push("if (solid != 1u) {"),t.push("if (isPerspectiveMatrix(projMatrix)) {"),t.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),t.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),t.push("position = positions[2 - (gl_VertexID % 3)];"),t.push("viewNormal = -viewNormal;"),t.push("}"),t.push("} else {"),t.push("if (viewNormal.z < 0.0) {"),t.push("position = positions[2 - (gl_VertexID % 3)];"),t.push("viewNormal = -viewNormal;"),t.push("}"),t.push("}"),t.push("}"),t.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags2 = flags2.r;")),t.push("gl_Position = clipPos;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// Triangles dataTexture draw fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),A.logarithmicDepthBufferEnabled&&(t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;")),e){t.push("in vec4 vWorldPosition;"),t.push("flat in uint vFlags2;");for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e 0u;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e sliceThickness) { "),t.push(" discard;"),t.push(" }"),t.push(" if (dist > 0.0) { "),t.push(" newColor = sliceColor;"),t.push(" }"),t.push("}")}return A.logarithmicDepthBufferEnabled&&t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push(" outColor = newColor;"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const ar=new Float32Array([0,0,0,1]),hr=g.vec3(),Br=g.vec3();g.vec3();const gr=g.mat4();class lr{constructor(A){this._scene=A,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(A,e,t){const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=r.textureState,a=e._state.origin,{position:h,rotationMatrix:B}=i,l=n.viewMatrix;if(!this._program&&(this._allocate(e),this.errors))return;let E;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram()),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const Q=0!==a[0]||0!==a[1]||0!==a[2],M=0!==h[0]||0!==h[1]||0!==h[2];if(Q||M){const A=hr;if(Q){const e=g.transformPoint3(B,a,Br);A[0]=e[0],A[1]=e[1],A[2]=e[2]}else A[0]=0,A[1]=0,A[2]=0;A[0]+=h[0],A[1]+=h[1],A[2]+=h[2],E=UA(l,A,gr)}else E=l;if(o.uniform1i(this._uRenderPass,t),o.uniformMatrix4fv(this._uSceneModelMatrix,!1,B),o.uniformMatrix4fv(this._uViewMatrix,!1,E),o.uniformMatrix4fv(this._uProjMatrix,!1,n.projMatrix),t===ei.EDGES_XRAYED){const A=s.xrayMaterial._state,e=A.edgeColor,t=A.edgeAlpha;o.uniform4f(this._uColor,e[0],e[1],e[2],t)}else if(t===ei.EDGES_HIGHLIGHTED){const A=s.highlightMaterial._state,e=A.edgeColor,t=A.edgeAlpha;o.uniform4f(this._uColor,e[0],e[1],e[2],t)}else if(t===ei.EDGES_SELECTED){const A=s.selectedMaterial._state,e=A.edgeColor,t=A.edgeAlpha;o.uniform4f(this._uColor,e[0],e[1],e[2],t)}else o.uniform4fv(this._uColor,ar);const u=s._sectionPlanesState.getNumAllocatedSectionPlanes(),w=s._sectionPlanesState.sectionPlanes.length;if(u>0){const A=s._sectionPlanesState.sectionPlanes,t=e.layerIndex*w,n=i.renderFlags;for(let e=0;e0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),o.drawArrays(o.LINES,0,r.numEdgeIndices8Bits)),r.numEdgeIndices16Bits>0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),o.drawArrays(o.LINES,0,r.numEdgeIndices16Bits)),r.numEdgeIndices32Bits>0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),o.drawArrays(o.LINES,0,r.numEdgeIndices32Bits)),A.drawElements++}_allocate(){const A=this._scene,e=A.canvas.gl;if(this._program=new de(e,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const t=this._program;this._uRenderPass=t.getLocation("renderPass"),this._uColor=t.getLocation("color"),this._uSceneModelMatrix=t.getLocation("sceneModelMatrix"),this._uWorldMatrix=t.getLocation("worldMatrix"),this._uViewMatrix=t.getLocation("viewMatrix"),this._uProjMatrix=t.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e0,t=[];return t.push("#version 300 es"),t.push("// DTXTrianglesEdgesRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),t.push("uniform mat4 sceneModelMatrix;"),t.push("uniform mat4 viewMatrix;"),t.push("uniform mat4 projMatrix;"),t.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),t.push("uniform highp sampler2D uTexturePerObjectMatrix;"),t.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),t.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),t.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),t.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),t.push("uniform vec4 color;"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("flat out uint vFlags2;")),t.push("out vec4 vColor;"),t.push("void main(void) {"),t.push("int edgeIndex = gl_VertexID / 2;"),t.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),t.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),t.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),t.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),t.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push("if (int(flags.z) != renderPass) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("} else {"),t.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),t.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),t.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),t.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),t.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),t.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),t.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),t.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),t.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),t.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),t.push("mat4 matrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags2 = flags2.r;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = clipPos;"),t.push("vColor = vec4(color.r, color.g, color.b, color.a);"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// DTXTrianglesEdgesRenderer fragment shader"),A.logarithmicDepthBufferEnabled&&t.push("#extension GL_EXT_frag_depth : enable"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),A.logarithmicDepthBufferEnabled&&(t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;")),e){t.push("in vec4 vWorldPosition;"),t.push("flat in uint vFlags2;");for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e 0u;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e sliceThickness) { "),t.push(" discard;"),t.push(" }"),t.push(" if (dist > 0.0) { "),t.push(" newColor = sliceColor;"),t.push(" }"),t.push("}")}return A.logarithmicDepthBufferEnabled&&t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push(" outColor = newColor;"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Er=g.vec3(),Qr=g.vec3(),Mr=g.mat4();class ur{constructor(A){this._scene=A,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(A,e,t){const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=r.textureState,a=e._state.origin,{position:h,rotationMatrix:B}=i,l=n.viewMatrix;if(!this._program&&(this._allocate(),this.errors))return;let E;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram()),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const Q=0!==a[0]||0!==a[1]||0!==a[2],M=0!==h[0]||0!==h[1]||0!==h[2];if(Q||M){const A=Er;if(Q){const e=g.transformPoint3(B,a,Qr);A[0]=e[0],A[1]=e[1],A[2]=e[2]}else A[0]=0,A[1]=0,A[2]=0;A[0]+=h[0],A[1]+=h[1],A[2]+=h[2],E=UA(l,A,Mr)}else E=l;o.uniform1i(this._uRenderPass,t),o.uniformMatrix4fv(this._uSceneModelMatrix,!1,B),o.uniformMatrix4fv(this._uViewMatrix,!1,E),o.uniformMatrix4fv(this._uProjMatrix,!1,n.projMatrix);const u=s._sectionPlanesState.getNumAllocatedSectionPlanes(),w=s._sectionPlanesState.sectionPlanes.length;if(u>0){const A=s._sectionPlanesState.sectionPlanes,t=e.layerIndex*w,n=i.renderFlags;for(let e=0;e0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),o.drawArrays(o.LINES,0,r.numEdgeIndices8Bits)),r.numEdgeIndices16Bits>0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),o.drawArrays(o.LINES,0,r.numEdgeIndices16Bits)),r.numEdgeIndices32Bits>0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),o.drawArrays(o.LINES,0,r.numEdgeIndices32Bits)),A.drawElements++}_allocate(){const A=this._scene,e=A.canvas.gl;if(this._program=new de(e,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const t=this._program;this._uRenderPass=t.getLocation("renderPass"),this._uSceneModelMatrix=t.getLocation("sceneModelMatrix"),this._uViewMatrix=t.getLocation("viewMatrix"),this._uProjMatrix=t.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e0,t=[];return t.push("#version 300 es"),t.push("// TrianglesDataTextureEdgesColorRenderer"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),A.entityOffsetsEnabled,t.push("uniform mat4 sceneModelMatrix;"),t.push("uniform mat4 viewMatrix;"),t.push("uniform mat4 projMatrix;"),t.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),t.push("uniform highp sampler2D uTexturePerObjectMatrix;"),t.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),t.push("uniform highp sampler2D uObjectPerObjectOffsets;"),t.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),t.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),t.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;")),e&&(t.push("out vec4 vWorldPosition;"),t.push("flat out uint vFlags2;")),t.push("out vec4 vColor;"),t.push("void main(void) {"),t.push("int edgeIndex = gl_VertexID / 2;"),t.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),t.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),t.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),t.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),t.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push("if (int(flags.z) != renderPass) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("} else {"),t.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),t.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),t.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),t.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),t.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),t.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),t.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),t.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),t.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),t.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),t.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),t.push("if (color.a == 0u) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("};"),t.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags2 = flags2.r;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = clipPos;"),t.push("vec4 rgb = vec4(color.rgba);"),t.push("vColor = vec4(float(rgb.r*0.5) / 255.0, float(rgb.g*0.5) / 255.0, float(rgb.b*0.5) / 255.0, float(rgb.a) / 255.0);"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// TrianglesDataTextureEdgesColorRenderer"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),A.logarithmicDepthBufferEnabled&&(t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;")),e){t.push("in vec4 vWorldPosition;"),t.push("flat in uint vFlags2;");for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e 0u;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e sliceThickness) { "),t.push(" discard;"),t.push(" }"),t.push(" if (dist > 0.0) { "),t.push(" newColor = sliceColor;"),t.push(" }"),t.push("}")}return A.logarithmicDepthBufferEnabled&&t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push(" outColor = newColor;"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const wr=g.vec3(),dr=g.vec3(),Cr=g.vec3(),xr=g.mat4();class Fr{constructor(A){this._scene=A,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(A,e,t){if(!this._program&&(this._allocate(e),this.errors))return;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram(A));const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=r.textureState,a=e._state.origin,{position:h,rotationMatrix:B}=i,l=A.pickViewMatrix||n.viewMatrix,E=A.pickProjMatrix||n.projMatrix,Q=A.pickOrigin||n.eye,M=A.pickProjMatrix?A.pickZFar:n.project.far;let u,w;c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const d=0!==a[0]||0!==a[1]||0!==a[2],C=0!==h[0]||0!==h[1]||0!==h[2];if(d||C){const A=wr;if(d){const e=g.transformPoint3(B,a,dr);A[0]=e[0],A[1]=e[1],A[2]=e[2]}else A[0]=0,A[1]=0,A[2]=0;A[0]+=h[0],A[1]+=h[1],A[2]+=h[2],u=UA(l,A,xr),w=Cr,w[0]=Q[0]-A[0],w[1]=Q[1]-A[1],w[2]=Q[2]-A[2]}else u=l,w=Q;if(o.uniform2fv(this._uPickClipPos,A.pickClipPos),o.uniform2f(this._uDrawingBufferSize,o.drawingBufferWidth,o.drawingBufferHeight),o.uniformMatrix4fv(this._uSceneModelMatrix,!1,B),o.uniformMatrix4fv(this._uViewMatrix,!1,u),o.uniformMatrix4fv(this._uProjMatrix,!1,E),o.uniform3fv(this._uCameraEyeRtc,w),o.uniform1i(this._uRenderPass,t),s.logarithmicDepthBufferEnabled){const A=2/(Math.log(M+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,A)}const x=s._sectionPlanesState.getNumAllocatedSectionPlanes(),F=s._sectionPlanesState.sectionPlanes.length;if(x>0){const A=s._sectionPlanesState.sectionPlanes,t=e.layerIndex*F,n=i.renderFlags;for(let e=0;e0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),o.drawArrays(o.TRIANGLES,0,r.numIndices8Bits)),r.numIndices16Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),o.drawArrays(o.TRIANGLES,0,r.numIndices16Bits)),r.numIndices32Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),o.drawArrays(o.TRIANGLES,0,r.numIndices32Bits)),A.drawElements++}_allocate(){const A=this._scene,e=A.canvas.gl;if(this._program=new de(e,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const t=this._program;this._uRenderPass=t.getLocation("renderPass"),this._uPickInvisible=t.getLocation("pickInvisible"),this._uPickClipPos=t.getLocation("pickClipPos"),this._uDrawingBufferSize=t.getLocation("drawingBufferSize"),this._uSceneModelMatrix=t.getLocation("sceneModelMatrix"),this._uViewMatrix=t.getLocation("viewMatrix"),this._uProjMatrix=t.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e0,t=[];return t.push("#version 300 es"),t.push("// Batched geometry picking vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("uniform mat4 sceneModelMatrix;"),t.push("uniform mat4 viewMatrix;"),t.push("uniform mat4 projMatrix;"),t.push("uniform bool pickInvisible;"),t.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),t.push("uniform highp sampler2D uTexturePerObjectMatrix;"),t.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),t.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),t.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),t.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),t.push("uniform vec3 uCameraEyeRtc;"),t.push("vec3 positions[3];"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("out float isPerspective;")),t.push("uniform vec2 pickClipPos;"),t.push("uniform vec2 drawingBufferSize;"),t.push("vec4 remapClipPos(vec4 clipPos) {"),t.push(" clipPos.xy /= clipPos.w;"),t.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),t.push(" clipPos.xy *= clipPos.w;"),t.push(" return clipPos;"),t.push("}"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),e&&(t.push("smooth out vec4 vWorldPosition;"),t.push("flat out uvec4 vFlags2;")),t.push("out vec4 vPickColor;"),t.push("void main(void) {"),t.push("int polygonIndex = gl_VertexID / 3;"),t.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),t.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),t.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),t.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),t.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push("if (int(flags.w) != renderPass) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("} else {"),t.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),t.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),t.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),t.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),t.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),t.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),t.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),t.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),t.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),t.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),t.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),t.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),t.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),t.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),t.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0)) / 255.0;"),t.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),t.push("vec3 position;"),t.push("position = positions[gl_VertexID % 3];"),t.push("if (solid != 1u) {"),t.push("if (isPerspectiveMatrix(projMatrix)) {"),t.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),t.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),t.push("position = positions[2 - (gl_VertexID % 3)];"),t.push("}"),t.push("} else {"),t.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),t.push("if (viewNormal.z < 0.0) {"),t.push("position = positions[2 - (gl_VertexID % 3)];"),t.push("}"),t.push("}"),t.push("}"),t.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags2 = flags2;")),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = remapClipPos(clipPos);"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// Batched geometry picking fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),A.logarithmicDepthBufferEnabled&&(t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;")),e){t.push("in vec4 vWorldPosition;"),t.push("flat in uvec4 vFlags2;");for(var i=0;i 0.0);"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(i=0;i 0.0) { discard; }"),t.push(" }")}return A.logarithmicDepthBufferEnabled&&t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push(" outPickColor = vPickColor; "),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const pr=g.vec3(),Ir=g.vec3(),fr=g.vec3();g.vec3();const Yr=g.mat4();class Dr{constructor(A){this._scene=A,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(A,e,t){const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=r.textureState,a=e._state.origin,{position:h,rotationMatrix:B}=i,l=A.pickViewMatrix||n.viewMatrix,E=A.pickProjMatrix||n.projMatrix,Q=A.pickOrigin||n.eye,M=A.pickProjMatrix?A.pickZFar:n.project.far;let u,w;if(this._program||this._allocate(),A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram()),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),a||0!==h[0]||0!==h[1]||0!==h[2]){const e=pr;if(a){const A=Ir;g.transformPoint3(B,a,A),e[0]=A[0],e[1]=A[1],e[2]=A[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],u=UA(l,e,Yr),w=fr,w[0]=Q[0]-e[0],w[1]=Q[1]-e[1],w[2]=Q[2]-e[2],A.snapPickOrigin[0]=e[0],A.snapPickOrigin[1]=e[1],A.snapPickOrigin[2]=e[2]}else u=l,w=Q,A.snapPickOrigin[0]=0,A.snapPickOrigin[1]=0,A.snapPickOrigin[2]=0;if(o.uniform3fv(this._uCameraEyeRtc,w),o.uniform1i(this._uRenderPass,t),o.uniform1i(this._uPickInvisible,A.pickInvisible),o.uniform2fv(this._uPickClipPos,A.pickClipPos),o.uniform2f(this._uDrawingBufferSize,o.drawingBufferWidth,o.drawingBufferHeight),o.uniform1f(this._uPickZNear,A.pickZNear),o.uniform1f(this._uPickZFar,A.pickZFar),o.uniformMatrix4fv(this._uSceneModelMatrix,!1,B),o.uniformMatrix4fv(this._uViewMatrix,!1,u),o.uniformMatrix4fv(this._uProjMatrix,!1,E),s.logarithmicDepthBufferEnabled){const A=2/(Math.log(M+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,A)}const d=s._sectionPlanesState.getNumAllocatedSectionPlanes(),C=s._sectionPlanesState.sectionPlanes.length;if(d>0){const A=s._sectionPlanesState.sectionPlanes,t=e.layerIndex*C,n=i.renderFlags;for(let e=0;e0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),o.drawArrays(o.TRIANGLES,0,r.numIndices8Bits)),r.numIndices16Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),o.drawArrays(o.TRIANGLES,0,r.numIndices16Bits)),r.numIndices32Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),o.drawArrays(o.TRIANGLES,0,r.numIndices32Bits)),A.drawElements++}_allocate(){const A=this._scene,e=A.canvas.gl;if(this._program=new de(e,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const t=this._program;this._uRenderPass=t.getLocation("renderPass"),this._uPickInvisible=t.getLocation("pickInvisible"),this._uPickClipPos=t.getLocation("pickClipPos"),this._uDrawingBufferSize=t.getLocation("drawingBufferSize"),this._uSceneModelMatrix=t.getLocation("sceneModelMatrix"),this._uViewMatrix=t.getLocation("viewMatrix"),this._uProjMatrix=t.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e0,t=[];return t.push("#version 300 es"),t.push("// Triangles dataTexture pick depth vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("uniform mat4 sceneModelMatrix;"),t.push("uniform mat4 viewMatrix;"),t.push("uniform mat4 projMatrix;"),t.push("uniform bool pickInvisible;"),t.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),t.push("uniform highp sampler2D uTexturePerObjectMatrix;"),t.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),t.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),t.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),t.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),t.push("uniform vec3 uCameraEyeRtc;"),t.push("vec3 positions[3];"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("out float isPerspective;")),t.push("uniform vec2 pickClipPos;"),t.push("uniform vec2 drawingBufferSize;"),t.push("vec4 remapClipPos(vec4 clipPos) {"),t.push(" clipPos.xy /= clipPos.w;"),t.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),t.push(" clipPos.xy *= clipPos.w;"),t.push(" return clipPos;"),t.push("}"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("flat out uint vFlags2;")),t.push("out vec4 vViewPosition;"),t.push("void main(void) {"),t.push("int polygonIndex = gl_VertexID / 3;"),t.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),t.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),t.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),t.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),t.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push("if (int(flags.w) != renderPass) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("} else {"),t.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),t.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),t.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),t.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),t.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),t.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),t.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),t.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),t.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),t.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),t.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),t.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),t.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),t.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),t.push("if (color.a == 0u) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("};"),t.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),t.push("vec3 position;"),t.push("position = positions[gl_VertexID % 3];"),t.push("if (solid != 1u) {"),t.push("if (isPerspectiveMatrix(projMatrix)) {"),t.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),t.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),t.push("position = positions[2 - (gl_VertexID % 3)];"),t.push("}"),t.push("} else {"),t.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),t.push("if (viewNormal.z < 0.0) {"),t.push("position = positions[2 - (gl_VertexID % 3)];"),t.push("}"),t.push("}"),t.push("}"),t.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags2 = flags2.r;")),t.push("vViewPosition = viewPosition;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = remapClipPos(clipPos);"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// Triangles dataTexture pick depth fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),A.logarithmicDepthBufferEnabled&&(t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;")),t.push("uniform float pickZNear;"),t.push("uniform float pickZFar;"),e){t.push("in vec4 vWorldPosition;"),t.push("flat in uint vFlags2;");for(var i=0;i 0u;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(i=0;i 0.0) { discard; }"),t.push(" }")}return A.logarithmicDepthBufferEnabled&&t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push(" float zNormalizedDepth = abs((pickZNear + vViewPosition.z) / (pickZFar - pickZNear));"),t.push(" outPackedDepth = packDepth(zNormalizedDepth); "),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const mr=g.vec3(),Jr=g.vec3(),Nr=g.vec3(),yr=g.vec3();g.vec3();const zr=g.mat4();class Tr{constructor(A){this._scene=A,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(A,e,t){if(!this._program&&(this._allocate(),this.errors))return;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram());const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=r.textureState,a=e._state.origin,{position:h,rotationMatrix:B}=i,l=e.aabb,E=A.pickViewMatrix||n.viewMatrix,Q=mr;let M,u;Q[0]=g.safeInv(l[3]-l[0])*g.MAX_INT,Q[1]=g.safeInv(l[4]-l[1])*g.MAX_INT,Q[2]=g.safeInv(l[5]-l[2])*g.MAX_INT,A.snapPickCoordinateScale[0]=g.safeInv(Q[0]),A.snapPickCoordinateScale[1]=g.safeInv(Q[1]),A.snapPickCoordinateScale[2]=g.safeInv(Q[2]),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const w=0!==a[0]||0!==a[1]||0!==a[2],d=0!==h[0]||0!==h[1]||0!==h[2];if(w||d){const e=Jr;if(w){const A=g.transformPoint3(B,a,Nr);e[0]=A[0],e[1]=A[1],e[2]=A[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],M=UA(E,e,zr),u=yr,u[0]=n.eye[0]-e[0],u[1]=n.eye[1]-e[1],u[2]=n.eye[2]-e[2],A.snapPickOrigin[0]=e[0],A.snapPickOrigin[1]=e[1],A.snapPickOrigin[2]=e[2]}else M=E,u=n.eye,A.snapPickOrigin[0]=0,A.snapPickOrigin[1]=0,A.snapPickOrigin[2]=0;o.uniform3fv(this._uCameraEyeRtc,u),o.uniform2fv(this.uVectorA,A.snapVectorA),o.uniform2fv(this.uInverseVectorAB,A.snapInvVectorAB),o.uniform1i(this._uLayerNumber,A.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,Q),o.uniform1i(this._uRenderPass,t),o.uniform1i(this._uPickInvisible,A.pickInvisible),o.uniformMatrix4fv(this._uSceneModelMatrix,!1,B),o.uniformMatrix4fv(this._uViewMatrix,!1,M),o.uniformMatrix4fv(this._uProjMatrix,!1,n.projMatrix);{const e=2/(Math.log(A.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,e)}const C=s._sectionPlanesState.getNumAllocatedSectionPlanes(),x=s._sectionPlanesState.sectionPlanes.length;if(C>0){const A=s._sectionPlanesState.sectionPlanes,t=e.layerIndex*x,n=i.renderFlags;for(let e=0;e0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,8),o.drawArrays(F,0,r.numEdgeIndices8Bits)),r.numEdgeIndices16Bits>0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,16),o.drawArrays(F,0,r.numEdgeIndices16Bits)),r.numEdgeIndices32Bits>0&&(c.bindEdgeIndicesTextures(this._program,this._uTexturePerEdgeIdPortionIds,this._uTexturePerPolygonIdEdgeIndices,32),o.drawArrays(F,0,r.numEdgeIndices32Bits)),A.drawElements++}_allocate(){const A=this._scene,e=A.canvas.gl;if(this._program=new de(e,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const t=this._program;this._uRenderPass=t.getLocation("renderPass"),this._uPickInvisible=t.getLocation("pickInvisible"),this._uSceneModelMatrix=t.getLocation("sceneModelMatrix"),this._uViewMatrix=t.getLocation("viewMatrix"),this._uProjMatrix=t.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e0,t=[];return t.push("#version 300 es"),t.push("// Batched geometry edges drawing vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("uniform mat4 sceneModelMatrix;"),t.push("uniform mat4 viewMatrix;"),t.push("uniform mat4 projMatrix;"),t.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),t.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),t.push("uniform highp sampler2D uTexturePerObjectMatrix;"),t.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),t.push("uniform highp usampler2D uTexturePerPolygonIdEdgeIndices;"),t.push("uniform mediump usampler2D uTexturePerEdgeIdPortionIds;"),t.push("uniform vec3 uCameraEyeRtc;"),t.push("uniform vec2 uSnapVectorA;"),t.push("uniform vec2 uSnapInvVectorAB;"),t.push("vec3 positions[3];"),t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out float isPerspective;"),t.push("vec2 remapClipPos(vec2 clipPos) {"),t.push(" float x = (clipPos.x - uSnapVectorA.x) * uSnapInvVectorAB.x;"),t.push(" float y = (clipPos.y - uSnapVectorA.y) * uSnapInvVectorAB.y;"),t.push(" return vec2(x, y);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("flat out uint vFlags2;")),t.push("out vec4 vViewPosition;"),t.push("out highp vec3 relativeToOriginPosition;"),t.push("void main(void) {"),t.push("int edgeIndex = gl_VertexID / 2;"),t.push("int h_packed_object_id_index = (edgeIndex >> 3) & 4095;"),t.push("int v_packed_object_id_index = (edgeIndex >> 3) >> 12;"),t.push("int objectIndex = int(texelFetch(uTexturePerEdgeIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),t.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),t.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push("if (int(flags.w) != renderPass) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("}"),t.push("{"),t.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),t.push("ivec4 packedEdgeIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+6, objectIndexCoords.y), 0));"),t.push("int edgeIndexBaseOffset = (packedEdgeIndexBaseOffset.r << 24) + (packedEdgeIndexBaseOffset.g << 16) + (packedEdgeIndexBaseOffset.b << 8) + packedEdgeIndexBaseOffset.a;"),t.push("int h_index = (edgeIndex - edgeIndexBaseOffset) & 4095;"),t.push("int v_index = (edgeIndex - edgeIndexBaseOffset) >> 12;"),t.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdEdgeIndices, ivec2(h_index, v_index), 0));"),t.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),t.push("int indexPositionH = uniqueVertexIndexes[gl_VertexID % 2] & 4095;"),t.push("int indexPositionV = uniqueVertexIndexes[gl_VertexID % 2] >> 12;"),t.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push("vec3 position = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH, indexPositionV), 0));"),t.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),t.push("relativeToOriginPosition = worldPosition.xyz;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags2 = flags2.r;")),t.push("vViewPosition = viewPosition;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("float tmp = clipPos.w;"),t.push("clipPos.xyzw /= tmp;"),t.push("clipPos.xy = remapClipPos(clipPos.xy);"),t.push("clipPos.xyzw *= tmp;"),t.push("vViewPosition = clipPos;"),t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),t.push("gl_Position = clipPos;"),t.push("gl_PointSize = 1.0;"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// Triangles dataTexture pick depth fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;"),t.push("uniform int uLayerNumber;"),t.push("uniform vec3 uCoordinateScaler;"),e){t.push("in vec4 vWorldPosition;"),t.push("flat in uint vFlags2;");for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e 0u;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),t.push(" }")}return t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, uLayerNumber);"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Ur=g.vec3(),Rr=g.vec3(),br=g.vec3(),kr=g.vec3();g.vec3();const Pr=g.mat4();class Gr{constructor(A){this._scene=A,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(A,e,t){this._program||this._allocate(),A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram());const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=r.textureState,a=e._state.origin,{position:h,rotationMatrix:B}=i,l=e.aabb,E=A.pickViewMatrix||n.viewMatrix,Q=Ur;let M,u;Q[0]=g.safeInv(l[3]-l[0])*g.MAX_INT,Q[1]=g.safeInv(l[4]-l[1])*g.MAX_INT,Q[2]=g.safeInv(l[5]-l[2])*g.MAX_INT,A.snapPickCoordinateScale[0]=g.safeInv(Q[0]),A.snapPickCoordinateScale[1]=g.safeInv(Q[1]),A.snapPickCoordinateScale[2]=g.safeInv(Q[2]),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const w=0!==a[0]||0!==a[1]||0!==a[2],d=0!==h[0]||0!==h[1]||0!==h[2];if(w||d){const e=Rr;if(w){const A=br;g.transformPoint3(B,a,A),e[0]=A[0],e[1]=A[1],e[2]=A[2]}else e[0]=0,e[1]=0,e[2]=0;e[0]+=h[0],e[1]+=h[1],e[2]+=h[2],M=UA(E,e,Pr),u=kr,u[0]=n.eye[0]-e[0],u[1]=n.eye[1]-e[1],u[2]=n.eye[2]-e[2],A.snapPickOrigin[0]=e[0],A.snapPickOrigin[1]=e[1],A.snapPickOrigin[2]=e[2]}else M=E,u=n.eye,A.snapPickOrigin[0]=0,A.snapPickOrigin[1]=0,A.snapPickOrigin[2]=0;o.uniform3fv(this._uCameraEyeRtc,u),o.uniform2fv(this._uVectorA,A.snapVectorA),o.uniform2fv(this._uInverseVectorAB,A.snapInvVectorAB),o.uniform1i(this._uLayerNumber,A.snapPickLayerNumber),o.uniform3fv(this._uCoordinateScaler,Q),o.uniform1i(this._uRenderPass,t),o.uniform1i(this._uPickInvisible,A.pickInvisible),o.uniformMatrix4fv(this._uSceneWorldModelMatrix,!1,B),o.uniformMatrix4fv(this._uViewMatrix,!1,M),o.uniformMatrix4fv(this._uProjMatrix,!1,n.projMatrix);{const e=2/(Math.log(A.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,e)}const C=s._sectionPlanesState.getNumAllocatedSectionPlanes(),x=s._sectionPlanesState.sectionPlanes.length;if(C>0){const A=s._sectionPlanesState.sectionPlanes,t=e.layerIndex*x,n=i.renderFlags;for(let e=0;e0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),o.drawArrays(o.TRIANGLES,0,r.numIndices8Bits)),r.numIndices16Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),o.drawArrays(o.TRIANGLES,0,r.numIndices16Bits)),r.numIndices32Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),o.drawArrays(o.TRIANGLES,0,r.numIndices32Bits)),A.drawElements++}_allocate(){const A=this._scene,e=A.canvas.gl;if(this._program=new de(e,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const t=this._program;this._uRenderPass=t.getLocation("renderPass"),this._uPickInvisible=t.getLocation("pickInvisible"),this._uSceneWorldModelMatrix=t.getLocation("sceneModelMatrix"),this._uViewMatrix=t.getLocation("viewMatrix"),this._uProjMatrix=t.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e0,t=[];return t.push("#version 300 es"),t.push("// DTXTrianglesSnapInitRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("uniform mat4 sceneModelMatrix;"),t.push("uniform mat4 viewMatrix;"),t.push("uniform mat4 projMatrix;"),t.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),t.push("uniform highp sampler2D uTexturePerObjectMatrix;"),t.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),t.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),t.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),t.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),t.push("uniform vec3 uCameraEyeRtc;"),t.push("uniform vec2 uVectorAB;"),t.push("uniform vec2 uInverseVectorAB;"),t.push("vec3 positions[3];"),t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("out float isPerspective;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("vec2 remapClipPos(vec2 clipPos) {"),t.push(" float x = (clipPos.x - uVectorAB.x) * uInverseVectorAB.x;"),t.push(" float y = (clipPos.y - uVectorAB.y) * uInverseVectorAB.y;"),t.push(" return vec2(x, y);"),t.push("}"),t.push("flat out vec4 vPickColor;"),t.push("out vec4 vWorldPosition;"),e&&t.push("flat out uint vFlags2;"),t.push("out highp vec3 relativeToOriginPosition;"),t.push("void main(void) {"),t.push("int polygonIndex = gl_VertexID / 3;"),t.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),t.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),t.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),t.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),t.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push("if (int(flags.w) != renderPass) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("}"),t.push("{"),t.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),t.push("if (color.a == 0u) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("};"),t.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),t.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),t.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),t.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),t.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),t.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),t.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),t.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),t.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),t.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),t.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),t.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),t.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),t.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),t.push("vec3 position;"),t.push("position = positions[gl_VertexID % 3];"),t.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),t.push("if (solid != 1u) {"),t.push(" if (isPerspectiveMatrix(projMatrix)) {"),t.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),t.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),t.push(" position = positions[2 - (gl_VertexID % 3)];"),t.push(" viewNormal = -viewNormal;"),t.push(" }"),t.push(" } else {"),t.push(" if (viewNormal.z < 0.0) {"),t.push(" position = positions[2 - (gl_VertexID % 3)];"),t.push(" viewNormal = -viewNormal;"),t.push(" }"),t.push(" }"),t.push("}"),t.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),t.push("relativeToOriginPosition = worldPosition.xyz;"),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),t.push("vWorldPosition = worldPosition;"),e&&t.push("vFlags2 = flags2.r;"),t.push("vPickColor = vec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+1, objectIndexCoords.y), 0));"),t.push("vec4 clipPos = projMatrix * viewPosition;"),t.push("float tmp = clipPos.w;"),t.push("clipPos.xyzw /= tmp;"),t.push("clipPos.xy = remapClipPos(clipPos.xy);"),t.push("clipPos.xyzw *= tmp;"),t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));"),t.push("gl_Position = clipPos;"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// DTXTrianglesSnapInitRenderer fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;"),t.push("uniform int uLayerNumber;"),t.push("uniform vec3 uCoordinateScaler;"),t.push("in vec4 vWorldPosition;"),t.push("flat in vec4 vPickColor;"),e){t.push("flat in uint vFlags2;");for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e 0u;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),t.push(" }")}return t.push(" float dx = dFdx(vFragDepth);"),t.push(" float dy = dFdy(vFragDepth);"),t.push(" float diff = sqrt(dx*dx+dy*dy);"),t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;"),t.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, - uLayerNumber);"),t.push("vec3 xTangent = dFdx( vWorldPosition.xyz );"),t.push("vec3 yTangent = dFdy( vWorldPosition.xyz );"),t.push("vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),t.push(`outNormal = ivec4(worldNormal * float(${g.MAX_INT}), 1.0);`),t.push("outPickColor = uvec4(vPickColor);"),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const vr=g.vec3(),Hr=g.vec3(),Sr=g.vec3();g.vec3();const jr=g.mat4();class Or{constructor(A){this._scene=A,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(A,e,t){const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=r.textureState,a=e._state.origin,{position:h,rotationMatrix:B}=i,l=A.pickViewMatrix||n.viewMatrix;if(!this._program&&(this._allocate(e),this.errors))return;let E,Q;if(A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram()),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix),a||0!==h[0]||0!==h[1]||0!==h[2]){const A=vr;if(a){const e=Hr;g.transformPoint3(B,a,e),A[0]=e[0],A[1]=e[1],A[2]=e[2]}else A[0]=0,A[1]=0,A[2]=0;A[0]+=h[0],A[1]+=h[1],A[2]+=h[2],E=UA(l,A,jr),Q=Sr,Q[0]=n.eye[0]-A[0],Q[1]=n.eye[1]-A[1],Q[2]=n.eye[2]-A[2]}else E=l,Q=n.eye;o.uniform3fv(this._uCameraEyeRtc,Q),o.uniform1i(this._uRenderPass,t),o.uniformMatrix4fv(this._uWorldMatrix,!1,B),o.uniformMatrix4fv(this._uViewMatrix,!1,E),o.uniformMatrix4fv(this._uProjMatrix,!1,n.projMatrix);const M=s._sectionPlanesState.getNumAllocatedSectionPlanes(),u=s._sectionPlanesState.sectionPlanes.length;if(M>0){const A=s._sectionPlanesState.sectionPlanes,t=e.layerIndex*u,n=i.renderFlags;for(let e=0;e0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),o.drawArrays(o.TRIANGLES,0,r.numIndices8Bits)),r.numIndices16Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),o.drawArrays(o.TRIANGLES,0,r.numIndices16Bits)),r.numIndices32Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),o.drawArrays(o.TRIANGLES,0,r.numIndices32Bits)),A.drawElements++}_allocate(){const A=this._scene,e=A.canvas.gl;if(this._program=new de(e,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const t=this._program;this._uRenderPass=t.getLocation("renderPass"),this._uPickInvisible=t.getLocation("pickInvisible"),this._uWorldMatrix=t.getLocation("sceneModelMatrix"),this._uViewMatrix=t.getLocation("viewMatrix"),this._uProjMatrix=t.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e0,t=[];return t.push("#version 300 es"),t.push("// TrianglesDataTextureOcclusionRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("uniform mat4 sceneModelMatrix;"),t.push("uniform mat4 viewMatrix;"),t.push("uniform mat4 projMatrix;"),t.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),t.push("uniform highp sampler2D uTexturePerObjectMatrix;"),t.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),t.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),t.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),t.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),t.push("uniform vec3 uCameraEyeRtc;"),t.push("vec3 positions[3];"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("flat out uint vFlags2;")),t.push("void main(void) {"),t.push("int polygonIndex = gl_VertexID / 3;"),t.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),t.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),t.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),t.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),t.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push("if (int(flags.x) != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),t.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),t.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),t.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),t.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),t.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),t.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),t.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),t.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),t.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),t.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),t.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),t.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),t.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),t.push("if (color.a == 0u) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("};"),t.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),t.push("vec3 position;"),t.push("position = positions[gl_VertexID % 3];"),t.push("if (solid != 1u) {"),t.push(" if (isPerspectiveMatrix(projMatrix)) {"),t.push(" vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),t.push(" if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),t.push(" position = positions[2 - (gl_VertexID % 3)];"),t.push(" }"),t.push(" } else {"),t.push(" vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),t.push(" if (viewNormal.z < 0.0) {"),t.push(" position = positions[2 - (gl_VertexID % 3)];"),t.push(" }"),t.push(" }"),t.push("}"),t.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),t.push("vec4 clipPos = projMatrix * viewPosition;"),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags2 = flags2.r;")),t.push("gl_Position = clipPos;"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene._sectionPlanesState,e=A.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// TrianglesDataTextureColorRenderer fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),e){t.push("in vec4 vWorldPosition;"),t.push("flat in uint vFlags2;");for(let e=0;e 0.0);"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(let e=0;e 0.0) { discard; }"),t.push(" }")}return t.push(" outColor = vec4(0.0, 0.0, 1.0, 1.0); "),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const _r=g.vec3(),Wr=g.vec3(),Xr=g.vec3();g.vec3();const Lr=g.mat4();class Vr{constructor(A){this._scene=A,this._allocate(),this._hash=this._getHash()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(A,e,t){const i=this._scene,s=i.camera,n=e.model,o=i.canvas.gl,r=e._state,c=r.textureState,a=e._state.origin,{position:h,rotationMatrix:B}=n;if(!this._program&&(this._allocate(),this.errors))return;let l,E;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram(A,r)),c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const Q=0!==a[0]||0!==a[1]||0!==a[2],M=0!==h[0]||0!==h[1]||0!==h[2];if(Q||M){const A=_r;if(Q){const e=g.transformPoint3(B,a,Wr);A[0]=e[0],A[1]=e[1],A[2]=e[2]}else A[0]=0,A[1]=0,A[2]=0;A[0]+=h[0],A[1]+=h[1],A[2]+=h[2],l=UA(s.viewMatrix,A,Lr),E=Xr,E[0]=s.eye[0]-A[0],E[1]=s.eye[1]-A[1],E[2]=s.eye[2]-A[2]}else l=s.viewMatrix,E=s.eye;if(o.uniformMatrix4fv(this._uSceneModelMatrix,!1,B),o.uniformMatrix4fv(this._uViewMatrix,!1,l),o.uniformMatrix4fv(this._uProjMatrix,!1,s.projMatrix),o.uniform3fv(this._uCameraEyeRtc,E),o.uniform1i(this._uRenderPass,t),i.logarithmicDepthBufferEnabled){const e=2/(Math.log(A.pickZFar+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,e)}const u=i._sectionPlanesState.getNumAllocatedSectionPlanes(),w=i._sectionPlanesState.sectionPlanes.length;if(u>0){const A=i._sectionPlanesState.sectionPlanes,t=e.layerIndex*w,s=n.renderFlags;for(let e=0;e0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),o.drawArrays(o.TRIANGLES,0,r.numIndices8Bits)),r.numIndices16Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),o.drawArrays(o.TRIANGLES,0,r.numIndices16Bits)),r.numIndices32Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),o.drawArrays(o.TRIANGLES,0,r.numIndices32Bits)),A.drawElements++}_allocate(){const A=this._scene,e=A.canvas.gl;if(this._program=new de(e,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const t=this._program;this._uRenderPass=t.getLocation("renderPass"),this._uPositionsDecodeMatrix=t.getLocation("objectDecodeAndInstanceMatrix"),this._uSceneModelMatrix=t.getLocation("sceneModelMatrix"),this._uViewMatrix=t.getLocation("viewMatrix"),this._uProjMatrix=t.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e0,t=[];return t.push("#version 300 es"),t.push("// Triangles dataTexture draw vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("uniform mat4 sceneModelMatrix;"),t.push("uniform mat4 viewMatrix;"),t.push("uniform mat4 projMatrix;"),t.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),t.push("uniform highp sampler2D uTexturePerObjectMatrix;"),t.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),t.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),t.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),t.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),t.push("uniform vec3 uCameraEyeRtc;"),t.push("vec3 positions[3];"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("out float isPerspective;")),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out highp vec2 vHighPrecisionZW;"),e&&(t.push("out vec4 vWorldPosition;"),t.push("flat out uint vFlags2;")),t.push("void main(void) {"),t.push("int polygonIndex = gl_VertexID / 3;"),t.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),t.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),t.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),t.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),t.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push("if (int(flags.x) != renderPass) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("} else {"),t.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),t.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),t.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),t.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),t.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),t.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),t.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),t.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),t.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),t.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),t.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),t.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),t.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),t.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),t.push("if (color.a == 0u) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("};"),t.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),t.push("vec3 position;"),t.push("position = positions[gl_VertexID % 3];"),t.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),t.push("if (solid != 1u) {"),t.push("if (isPerspectiveMatrix(projMatrix)) {"),t.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),t.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),t.push("position = positions[2 - (gl_VertexID % 3)];"),t.push("viewNormal = -viewNormal;"),t.push("}"),t.push("} else {"),t.push("if (viewNormal.z < 0.0) {"),t.push("position = positions[2 - (gl_VertexID % 3)];"),t.push("viewNormal = -viewNormal;"),t.push("}"),t.push("}"),t.push("}"),t.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),e&&(t.push("vWorldPosition = worldPosition;"),t.push("vFlags2 = flags2.r;")),t.push("gl_Position = clipPos;"),t.push("vHighPrecisionZW = gl_Position.zw;"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// Triangles dataTexture draw fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),t.push("in highp vec2 vHighPrecisionZW;"),t.push("out vec4 outColor;"),A.logarithmicDepthBufferEnabled&&(t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;")),e){t.push("in vec4 vWorldPosition;"),t.push("flat in uint vFlags2;");for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e 0u;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e 0.0) { "),t.push(" discard;"),t.push(" }"),t.push("}")}return A.logarithmicDepthBufferEnabled&&t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push("float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;"),t.push(" outColor = vec4(vec3(1.0 - fragCoordZ), 1.0); "),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const Kr=g.vec3(),Zr=g.vec3(),qr=g.vec3();g.vec3();const $r=g.mat4();class Ac{constructor(A){this._scene=A,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){return this._scene._sectionPlanesState.getHash()}drawLayer(A,e,t){const i=e.model,s=i.scene,n=s.camera,o=s.canvas.gl,r=e._state,c=e._state.origin,{position:a,rotationMatrix:h}=i,B=n.viewMatrix;if(!this._program&&(this._allocate(e),this.errors))return;let l,E;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram(e));const Q=0!==c[0]||0!==c[1]||0!==c[2],M=0!==a[0]||0!==a[1]||0!==a[2];if(Q||M){const A=Kr;if(Q){const e=Zr;g.transformPoint3(h,c,e),A[0]=e[0],A[1]=e[1],A[2]=e[2]}else A[0]=0,A[1]=0,A[2]=0;A[0]+=a[0],A[1]+=a[1],A[2]+=a[2],l=UA(B,A,$r),E=qr,E[0]=n.eye[0]-A[0],E[1]=n.eye[1]-A[1],E[2]=n.eye[2]-A[2]}else l=B,E=n.eye;o.uniform1i(this._uRenderPass,t),o.uniformMatrix4fv(this._uWorldMatrix,!1,h),o.uniformMatrix4fv(this._uViewMatrix,!1,l),o.uniformMatrix4fv(this._uProjMatrix,!1,n.projMatrix),o.uniformMatrix4fv(this._uViewNormalMatrix,!1,n.viewNormalMatrix),o.uniformMatrix4fv(this._uWorldNormalMatrix,!1,i.worldNormalMatrix);const u=s._sectionPlanesState.getNumAllocatedSectionPlanes(),w=s._sectionPlanesState.sectionPlanes.length;if(u>0){const A=s._sectionPlanesState.sectionPlanes,t=e.layerIndex*w,n=i.renderFlags;for(let e=0;e0,t=[];return t.push("// Batched geometry normals vertex shader"),A.logarithmicDepthBufferEnabled&&Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&t.push("#extension GL_EXT_frag_depth : enable"),t.push("uniform int renderPass;"),t.push("attribute vec3 position;"),A.entityOffsetsEnabled&&t.push("attribute vec3 offset;"),t.push("attribute vec3 normal;"),t.push("attribute vec4 color;"),t.push("attribute vec4 flags;"),t.push("attribute vec4 flags2;"),t.push("uniform mat4 worldMatrix;"),t.push("uniform mat4 worldNormalMatrix;"),t.push("uniform mat4 viewMatrix;"),t.push("uniform mat4 projMatrix;"),t.push("uniform mat4 viewNormalMatrix;"),t.push("uniform mat4 objectDecodeAndInstanceMatrix;"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&t.push("out float vFragDepth;"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("varying float isPerspective;")),t.push("vec3 octDecode(vec2 oct) {"),t.push(" vec3 v = vec3(oct.xy, 1.0 - abs(oct.x) - abs(oct.y));"),t.push(" if (v.z < 0.0) {"),t.push(" v.xy = (1.0 - abs(v.yx)) * vec2(v.x >= 0.0 ? 1.0 : -1.0, v.y >= 0.0 ? 1.0 : -1.0);"),t.push(" }"),t.push(" return normalize(v);"),t.push("}"),e&&(t.push("out vec4 vWorldPosition;"),t.push("out vec4 vFlags2;")),t.push("out vec3 vViewNormal;"),t.push("void main(void) {"),t.push("if (int(flags.x) != renderPass) {"),t.push(" gl_Position = vec4(0.0, 0.0, 0.0, 0.0);"),t.push(" } else {"),t.push(" vec4 worldPosition = worldMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),A.entityOffsetsEnabled&&t.push(" worldPosition.xyz = worldPosition.xyz + offset;"),t.push(" vec4 viewPosition = viewMatrix * worldPosition; "),t.push(" vec4 worldNormal = worldNormalMatrix * vec4(octDecode(normal.xy), 0.0); "),t.push(" vec3 viewNormal = normalize((viewNormalMatrix * worldNormal).xyz);"),e&&(t.push(" vWorldPosition = worldPosition;"),t.push(" vFlags2 = flags2;")),t.push(" vViewNormal = viewNormal;"),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth?t.push("vFragDepth = 1.0 + clipPos.w;"):(t.push("clipPos.z = log2( max( 1e-6, clipPos.w + 1.0 ) ) * logDepthBufFC - 1.0;"),t.push("clipPos.z *= clipPos.w;")),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("gl_Position = clipPos;"),t.push(" }"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// Batched geometry normals fragment shader"),A.logarithmicDepthBufferEnabled&&Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&t.push("#extension GL_EXT_frag_depth : enable"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),A.logarithmicDepthBufferEnabled&&Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&(t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;")),e){t.push("in vec4 vWorldPosition;"),t.push("in vec4 vFlags2;");for(let e=0;e 0.0);"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(var i=0;i 0.0) { discard; }"),t.push(" }")}return A.logarithmicDepthBufferEnabled&&Ce.SUPPORTED_EXTENSIONS.EXT_frag_depth&&t.push(" gl_FragDepthEXT = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push(" gl_FragColor = vec4(packNormalToRGB(vViewNormal), 1.0); "),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}const ec=g.vec3(),tc=g.vec3(),ic=g.vec3();g.vec3(),g.vec4();const sc=g.mat4();class nc{constructor(A,e){this._scene=A,this._withSAO=e,this._hash=this._getHash(),this._allocate()}getValid(){return this._hash===this._getHash()}_getHash(){const A=this._scene;return[A._lightsState.getHash(),A._sectionPlanesState.getHash(),this._withSAO?"sao":"nosao"].join(";")}drawLayer(A,e,t){const i=this._scene,s=i.camera,n=e.model,o=i.canvas.gl,r=e._state,c=r.textureState,a=e._state.origin,{position:h,rotationMatrix:B}=n;if(!this._program&&(this._allocate(),this.errors))return;A.lastProgramId!==this._program.id&&(A.lastProgramId=this._program.id,this._bindProgram(A,r));const l=A.pickViewMatrix||s.viewMatrix,E=A.pickProjMatrix||s.projMatrix,Q=A.pickOrigin||s.eye,M=A.pickProjMatrix?A.pickZFar:s.project.far;let u,w;c.bindCommonTextures(this._program,this.uTexturePerObjectPositionsDecodeMatrix,this._uTexturePerVertexIdCoordinates,this.uTexturePerObjectColorsAndFlags,this._uTexturePerObjectMatrix);const d=0!==a[0]||0!==a[1]||0!==a[2],C=0!==h[0]||0!==h[1]||0!==h[2];if(d||C){const A=ec;if(d){const e=g.transformPoint3(B,a,tc);A[0]=e[0],A[1]=e[1],A[2]=e[2]}else A[0]=0,A[1]=0,A[2]=0;A[0]+=h[0],A[1]+=h[1],A[2]+=h[2],u=UA(l,A,sc),w=ic,w[0]=Q[0]-A[0],w[1]=Q[1]-A[1],w[2]=Q[2]-A[2]}else u=l,w=Q;if(o.uniform2fv(this._uPickClipPos,A.pickClipPos),o.uniform2f(this._uDrawingBufferSize,o.drawingBufferWidth,o.drawingBufferHeight),o.uniformMatrix4fv(this._uSceneModelMatrix,!1,B),o.uniformMatrix4fv(this._uViewMatrix,!1,u),o.uniformMatrix4fv(this._uProjMatrix,!1,E),o.uniform3fv(this._uCameraEyeRtc,w),o.uniform1i(this._uRenderPass,t),i.logarithmicDepthBufferEnabled){const A=2/(Math.log(M+1)/Math.LN2);o.uniform1f(this._uLogDepthBufFC,A)}const x=i._sectionPlanesState.getNumAllocatedSectionPlanes(),F=i._sectionPlanesState.sectionPlanes.length;if(x>0){const A=i._sectionPlanesState.sectionPlanes,t=e.layerIndex*F,s=n.renderFlags;for(let e=0;e0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,8),o.drawArrays(o.TRIANGLES,0,r.numIndices8Bits)),r.numIndices16Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,16),o.drawArrays(o.TRIANGLES,0,r.numIndices16Bits)),r.numIndices32Bits>0&&(c.bindTriangleIndicesTextures(this._program,this._uTexturePerPolygonIdPortionIds,this._uTexturePerPolygonIdIndices,32),o.drawArrays(o.TRIANGLES,0,r.numIndices32Bits)),A.drawElements++}_allocate(){const A=this._scene,e=A.canvas.gl;if(this._program=new de(e,this._buildShader()),this._program.errors)return void(this.errors=this._program.errors);const t=this._program;this._uRenderPass=t.getLocation("renderPass"),this._uPickInvisible=t.getLocation("pickInvisible"),this._uPickClipPos=t.getLocation("pickClipPos"),this._uDrawingBufferSize=t.getLocation("drawingBufferSize"),this._uSceneModelMatrix=t.getLocation("sceneModelMatrix"),this._uViewMatrix=t.getLocation("viewMatrix"),this._uProjMatrix=t.getLocation("projMatrix"),this._uSectionPlanes=[];for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e0,t=[];return t.push("#version 300 es"),t.push("// trianglesDatatextureNormalsRenderer vertex shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("precision highp usampler2D;"),t.push("precision highp isampler2D;"),t.push("precision highp sampler2D;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("precision mediump usampler2D;"),t.push("precision mediump isampler2D;"),t.push("precision mediump sampler2D;"),t.push("#endif"),t.push("uniform int renderPass;"),A.entityOffsetsEnabled&&t.push("in vec3 offset;"),t.push("uniform mat4 sceneModelMatrix;"),t.push("uniform mat4 viewMatrix;"),t.push("uniform mat4 projMatrix;"),t.push("uniform highp sampler2D uObjectPerObjectPositionsDecodeMatrix;"),t.push("uniform lowp usampler2D uObjectPerObjectColorsAndFlags;"),t.push("uniform highp sampler2D uTexturePerObjectMatrix;"),t.push("uniform mediump usampler2D uTexturePerVertexIdCoordinates;"),t.push("uniform highp usampler2D uTexturePerPolygonIdIndices;"),t.push("uniform mediump usampler2D uTexturePerPolygonIdPortionIds;"),t.push("uniform vec3 uCameraEyeRtc;"),t.push("vec3 positions[3];"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;"),t.push("out float isPerspective;")),t.push("uniform vec2 pickClipPos;"),t.push("uniform vec2 drawingBufferSize;"),t.push("vec4 remapClipPos(vec4 clipPos) {"),t.push(" clipPos.xy /= clipPos.w;"),t.push(" clipPos.xy = (clipPos.xy - pickClipPos) * drawingBufferSize;"),t.push(" clipPos.xy *= clipPos.w;"),t.push(" return clipPos;"),t.push("}"),t.push("bool isPerspectiveMatrix(mat4 m) {"),t.push(" return (m[2][3] == - 1.0);"),t.push("}"),t.push("out vec4 vWorldPosition;"),e&&t.push("flat out uint vFlags2;"),t.push("void main(void) {"),t.push("int polygonIndex = gl_VertexID / 3;"),t.push("int h_packed_object_id_index = (polygonIndex >> 3) & 4095;"),t.push("int v_packed_object_id_index = (polygonIndex >> 3) >> 12;"),t.push("int objectIndex = int(texelFetch(uTexturePerPolygonIdPortionIds, ivec2(h_packed_object_id_index, v_packed_object_id_index), 0).r);"),t.push("ivec2 objectIndexCoords = ivec2(objectIndex % 512, objectIndex / 512);"),t.push("uvec4 flags = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+2, objectIndexCoords.y), 0);"),t.push("uvec4 flags2 = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+3, objectIndexCoords.y), 0);"),t.push("if (int(flags.w) != renderPass) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("} else {"),t.push("ivec4 packedVertexBase = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+4, objectIndexCoords.y), 0));"),t.push("ivec4 packedIndexBaseOffset = ivec4(texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+5, objectIndexCoords.y), 0));"),t.push("int indexBaseOffset = (packedIndexBaseOffset.r << 24) + (packedIndexBaseOffset.g << 16) + (packedIndexBaseOffset.b << 8) + packedIndexBaseOffset.a;"),t.push("int h_index = (polygonIndex - indexBaseOffset) & 4095;"),t.push("int v_index = (polygonIndex - indexBaseOffset) >> 12;"),t.push("ivec3 vertexIndices = ivec3(texelFetch(uTexturePerPolygonIdIndices, ivec2(h_index, v_index), 0));"),t.push("ivec3 uniqueVertexIndexes = vertexIndices + (packedVertexBase.r << 24) + (packedVertexBase.g << 16) + (packedVertexBase.b << 8) + packedVertexBase.a;"),t.push("ivec3 indexPositionH = uniqueVertexIndexes & 4095;"),t.push("ivec3 indexPositionV = uniqueVertexIndexes >> 12;"),t.push("mat4 objectInstanceMatrix = mat4 (texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uTexturePerObjectMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("mat4 objectDecodeAndInstanceMatrix = objectInstanceMatrix * mat4 (texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+0, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+1, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+2, objectIndexCoords.y), 0), texelFetch (uObjectPerObjectPositionsDecodeMatrix, ivec2(objectIndexCoords.x*4+3, objectIndexCoords.y), 0));"),t.push("uint solid = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+7, objectIndexCoords.y), 0).r;"),t.push("positions[0] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.r, indexPositionV.r), 0));"),t.push("positions[1] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.g, indexPositionV.g), 0));"),t.push("positions[2] = vec3(texelFetch(uTexturePerVertexIdCoordinates, ivec2(indexPositionH.b, indexPositionV.b), 0));"),t.push("uvec4 color = texelFetch (uObjectPerObjectColorsAndFlags, ivec2(objectIndexCoords.x*8+0, objectIndexCoords.y), 0);"),t.push("if (color.a == 0u) {"),t.push(" gl_Position = vec4(3.0, 3.0, 3.0, 1.0);"),t.push(" return;"),t.push("};"),t.push("vec3 normal = normalize(cross(positions[2] - positions[0], positions[1] - positions[0]));"),t.push("vec3 position;"),t.push("position = positions[gl_VertexID % 3];"),t.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),t.push("if (solid != 1u) {"),t.push("if (isPerspectiveMatrix(projMatrix)) {"),t.push("vec3 uCameraEyeRtcInQuantizedSpace = (inverse(sceneModelMatrix * objectDecodeAndInstanceMatrix) * vec4(uCameraEyeRtc, 1)).xyz;"),t.push("if (dot(position.xyz - uCameraEyeRtcInQuantizedSpace, normal) < 0.0) {"),t.push("position = positions[2 - (gl_VertexID % 3)];"),t.push("viewNormal = -viewNormal;"),t.push("}"),t.push("} else {"),t.push("vec3 viewNormal = -normalize((transpose(inverse(viewMatrix*objectDecodeAndInstanceMatrix)) * vec4(normal,1)).xyz);"),t.push("if (viewNormal.z < 0.0) {"),t.push("position = positions[2 - (gl_VertexID % 3)];"),t.push("}"),t.push("}"),t.push("}"),t.push("vec4 worldPosition = sceneModelMatrix * (objectDecodeAndInstanceMatrix * vec4(position, 1.0)); "),t.push("vec4 viewPosition = viewMatrix * worldPosition; "),t.push("vec4 clipPos = projMatrix * viewPosition;"),A.logarithmicDepthBufferEnabled&&(t.push("vFragDepth = 1.0 + clipPos.w;"),t.push("isPerspective = float (isPerspectiveMatrix(projMatrix));")),t.push("vWorldPosition = worldPosition;"),e&&t.push("vFlags2 = flags2.r;"),t.push("gl_Position = remapClipPos(clipPos);"),t.push("}"),t.push("}"),t}_buildFragmentShader(){const A=this._scene,e=A._sectionPlanesState.getNumAllocatedSectionPlanes()>0,t=[];if(t.push("#version 300 es"),t.push("// TrianglesDataTexturePickNormalsRenderer fragment shader"),t.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),t.push("precision highp float;"),t.push("precision highp int;"),t.push("#else"),t.push("precision mediump float;"),t.push("precision mediump int;"),t.push("#endif"),A.logarithmicDepthBufferEnabled&&(t.push("in float isPerspective;"),t.push("uniform float logDepthBufFC;"),t.push("in float vFragDepth;")),t.push("in vec4 vWorldPosition;"),e){t.push("flat in uint vFlags2;");for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e 0u;"),t.push(" if (clippable) {"),t.push(" float dist = 0.0;");for(let e=0,i=A._sectionPlanesState.getNumAllocatedSectionPlanes();e 0.0) { "),t.push(" discard;"),t.push(" }"),t.push("}")}return A.logarithmicDepthBufferEnabled&&t.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;"),t.push(" vec3 xTangent = dFdx( vWorldPosition.xyz );"),t.push(" vec3 yTangent = dFdy( vWorldPosition.xyz );"),t.push(" vec3 worldNormal = normalize( cross( xTangent, yTangent ) );"),t.push(` outNormal = ivec4(worldNormal * float(${g.MAX_INT}), 1.0);`),t.push("}"),t}webglContextRestored(){this._program=null}destroy(){this._program&&this._program.destroy(),this._program=null}}class oc{constructor(A){this._scene=A}_compile(){this._colorRenderer&&!this._colorRenderer.getValid()&&(this._colorRenderer.destroy(),this._colorRenderer=null),this._colorRendererWithSAO&&!this._colorRendererWithSAO.getValid()&&(this._colorRendererWithSAO.destroy(),this._colorRendererWithSAO=null),this._flatColorRenderer&&!this._flatColorRenderer.getValid()&&(this._flatColorRenderer.destroy(),this._flatColorRenderer=null),this._flatColorRendererWithSAO&&!this._flatColorRendererWithSAO.getValid()&&(this._flatColorRendererWithSAO.destroy(),this._flatColorRendererWithSAO=null),this._colorQualityRendererWithSAO&&!this._colorQualityRendererWithSAO.getValid()&&(this._colorQualityRendererWithSAO.destroy(),this._colorQualityRendererWithSAO=null),this._depthRenderer&&!this._depthRenderer.getValid()&&(this._depthRenderer.destroy(),this._depthRenderer=null),this._normalsRenderer&&!this._normalsRenderer.getValid()&&(this._normalsRenderer.destroy(),this._normalsRenderer=null),this._silhouetteRenderer&&!this._silhouetteRenderer.getValid()&&(this._silhouetteRenderer.destroy(),this._silhouetteRenderer=null),this._edgesRenderer&&!this._edgesRenderer.getValid()&&(this._edgesRenderer.destroy(),this._edgesRenderer=null),this._edgesColorRenderer&&!this._edgesColorRenderer.getValid()&&(this._edgesColorRenderer.destroy(),this._edgesColorRenderer=null),this._pickMeshRenderer&&!this._pickMeshRenderer.getValid()&&(this._pickMeshRenderer.destroy(),this._pickMeshRenderer=null),this._pickDepthRenderer&&!this._pickDepthRenderer.getValid()&&(this._pickDepthRenderer.destroy(),this._pickDepthRenderer=null),this._snapRenderer&&!this._snapRenderer.getValid()&&(this._snapRenderer.destroy(),this._snapRenderer=null),this._snapInitRenderer&&!this._snapInitRenderer.getValid()&&(this._snapInitRenderer.destroy(),this._snapInitRenderer=null),this._pickNormalsRenderer&&!1===this._pickNormalsRenderer.getValid()&&(this._pickNormalsRenderer.destroy(),this._pickNormalsRenderer=null),this._pickNormalsFlatRenderer&&!1===this._pickNormalsFlatRenderer.getValid()&&(this._pickNormalsFlatRenderer.destroy(),this._pickNormalsFlatRenderer=null),this._occlusionRenderer&&!1===this._occlusionRenderer.getValid()&&(this._occlusionRenderer.destroy(),this._occlusionRenderer=null)}eagerCreateRenders(){this._silhouetteRenderer||(this._silhouetteRenderer=new cr(this._scene)),this._pickMeshRenderer||(this._pickMeshRenderer=new Fr(this._scene)),this._pickDepthRenderer||(this._pickDepthRenderer=new Dr(this._scene)),this._pickNormalsRenderer||(this._pickNormalsRenderer=new nc(this._scene)),this._snapRenderer||(this._snapRenderer=new Tr(this._scene)),this._snapInitRenderer||(this._snapInitRenderer=new Gr(this._scene)),this._snapRenderer||(this._snapRenderer=new Tr(this._scene))}get colorRenderer(){return this._colorRenderer||(this._colorRenderer=new tr(this._scene,!1)),this._colorRenderer}get colorRendererWithSAO(){return this._colorRendererWithSAO||(this._colorRendererWithSAO=new tr(this._scene,!0)),this._colorRendererWithSAO}get colorQualityRendererWithSAO(){return this._colorQualityRendererWithSAO}get silhouetteRenderer(){return this._silhouetteRenderer||(this._silhouetteRenderer=new cr(this._scene)),this._silhouetteRenderer}get depthRenderer(){return this._depthRenderer||(this._depthRenderer=new Vr(this._scene)),this._depthRenderer}get normalsRenderer(){return this._normalsRenderer||(this._normalsRenderer=new Ac(this._scene)),this._normalsRenderer}get edgesRenderer(){return this._edgesRenderer||(this._edgesRenderer=new lr(this._scene)),this._edgesRenderer}get edgesColorRenderer(){return this._edgesColorRenderer||(this._edgesColorRenderer=new ur(this._scene)),this._edgesColorRenderer}get pickMeshRenderer(){return this._pickMeshRenderer||(this._pickMeshRenderer=new Fr(this._scene)),this._pickMeshRenderer}get pickNormalsRenderer(){return this._pickNormalsRenderer||(this._pickNormalsRenderer=new nc(this._scene)),this._pickNormalsRenderer}get pickNormalsFlatRenderer(){return this._pickNormalsFlatRenderer||(this._pickNormalsFlatRenderer=new nc(this._scene)),this._pickNormalsFlatRenderer}get pickDepthRenderer(){return this._pickDepthRenderer||(this._pickDepthRenderer=new Dr(this._scene)),this._pickDepthRenderer}get snapRenderer(){return this._snapRenderer||(this._snapRenderer=new Tr(this._scene)),this._snapRenderer}get snapInitRenderer(){return this._snapInitRenderer||(this._snapInitRenderer=new Gr(this._scene)),this._snapInitRenderer}get occlusionRenderer(){return this._occlusionRenderer||(this._occlusionRenderer=new Or(this._scene)),this._occlusionRenderer}_destroy(){this._colorRenderer&&this._colorRenderer.destroy(),this._colorRendererWithSAO&&this._colorRendererWithSAO.destroy(),this._flatColorRenderer&&this._flatColorRenderer.destroy(),this._flatColorRendererWithSAO&&this._flatColorRendererWithSAO.destroy(),this._colorQualityRendererWithSAO&&this._colorQualityRendererWithSAO.destroy(),this._depthRenderer&&this._depthRenderer.destroy(),this._normalsRenderer&&this._normalsRenderer.destroy(),this._silhouetteRenderer&&this._silhouetteRenderer.destroy(),this._edgesRenderer&&this._edgesRenderer.destroy(),this._edgesColorRenderer&&this._edgesColorRenderer.destroy(),this._pickMeshRenderer&&this._pickMeshRenderer.destroy(),this._pickDepthRenderer&&this._pickDepthRenderer.destroy(),this._snapRenderer&&this._snapRenderer.destroy(),this._snapInitRenderer&&this._snapInitRenderer.destroy(),this._pickNormalsRenderer&&this._pickNormalsRenderer.destroy(),this._pickNormalsFlatRenderer&&this._pickNormalsFlatRenderer.destroy(),this._occlusionRenderer&&this._occlusionRenderer.destroy()}}const rc={};class cc{constructor(){this.positionsCompressed=[],this.lenPositionsCompressed=0,this.metallicRoughness=[],this.indices8Bits=[],this.lenIndices8Bits=0,this.indices16Bits=[],this.lenIndices16Bits=0,this.indices32Bits=[],this.lenIndices32Bits=0,this.edgeIndices8Bits=[],this.lenEdgeIndices8Bits=0,this.edgeIndices16Bits=[],this.lenEdgeIndices16Bits=0,this.edgeIndices32Bits=[],this.lenEdgeIndices32Bits=0,this.perObjectColors=[],this.perObjectPickColors=[],this.perObjectSolid=[],this.perObjectOffsets=[],this.perObjectPositionsDecodeMatrices=[],this.perObjectInstancePositioningMatrices=[],this.perObjectVertexBases=[],this.perObjectIndexBaseOffsets=[],this.perObjectEdgeIndexBaseOffsets=[],this.perTriangleNumberPortionId8Bits=[],this.perTriangleNumberPortionId16Bits=[],this.perTriangleNumberPortionId32Bits=[],this.perEdgeNumberPortionId8Bits=[],this.perEdgeNumberPortionId16Bits=[],this.perEdgeNumberPortionId32Bits=[]}}class ac{constructor(){this.texturePerObjectColorsAndFlags=null,this.texturePerObjectOffsets=null,this.texturePerObjectInstanceMatrices=null,this.texturePerObjectPositionsDecodeMatrix=null,this.texturePerVertexIdCoordinates=null,this.texturePerPolygonIdPortionIds8Bits=null,this.texturePerPolygonIdPortionIds16Bits=null,this.texturePerPolygonIdPortionIds32Bits=null,this.texturePerEdgeIdPortionIds8Bits=null,this.texturePerEdgeIdPortionIds16Bits=null,this.texturePerEdgeIdPortionIds32Bits=null,this.texturePerPolygonIdIndices8Bits=null,this.texturePerPolygonIdIndices16Bits=null,this.texturePerPolygonIdIndices32Bits=null,this.texturePerPolygonIdEdgeIndices8Bits=null,this.texturePerPolygonIdEdgeIndices16Bits=null,this.texturePerPolygonIdEdgeIndices32Bits=null,this.textureModelMatrices=null}finalize(){this.indicesPerBitnessTextures={8:this.texturePerPolygonIdIndices8Bits,16:this.texturePerPolygonIdIndices16Bits,32:this.texturePerPolygonIdIndices32Bits},this.indicesPortionIdsPerBitnessTextures={8:this.texturePerPolygonIdPortionIds8Bits,16:this.texturePerPolygonIdPortionIds16Bits,32:this.texturePerPolygonIdPortionIds32Bits},this.edgeIndicesPerBitnessTextures={8:this.texturePerPolygonIdEdgeIndices8Bits,16:this.texturePerPolygonIdEdgeIndices16Bits,32:this.texturePerPolygonIdEdgeIndices32Bits},this.edgeIndicesPortionIdsPerBitnessTextures={8:this.texturePerEdgeIdPortionIds8Bits,16:this.texturePerEdgeIdPortionIds16Bits,32:this.texturePerEdgeIdPortionIds32Bits}}bindCommonTextures(A,e,t,i,s){this.texturePerObjectPositionsDecodeMatrix.bindTexture(A,e,1),this.texturePerVertexIdCoordinates.bindTexture(A,t,2),this.texturePerObjectColorsAndFlags.bindTexture(A,i,3),this.texturePerObjectInstanceMatrices.bindTexture(A,s,4)}bindTriangleIndicesTextures(A,e,t,i){this.indicesPortionIdsPerBitnessTextures[i].bindTexture(A,e,5),this.indicesPerBitnessTextures[i].bindTexture(A,t,6)}bindEdgeIndicesTextures(A,e,t,i){this.edgeIndicesPortionIdsPerBitnessTextures[i].bindTexture(A,e,5),this.edgeIndicesPerBitnessTextures[i].bindTexture(A,t,6)}}const hc={sizeDataColorsAndFlags:0,sizeDataPositionDecodeMatrices:0,sizeDataTextureOffsets:0,sizeDataTexturePositions:0,sizeDataTextureIndices:0,sizeDataTextureEdgeIndices:0,sizeDataTexturePortionIds:0,numberOfGeometries:0,numberOfPortions:0,numberOfLayers:0,numberOfTextures:0,totalPolygons:0,totalPolygons8Bits:0,totalPolygons16Bits:0,totalPolygons32Bits:0,totalEdges:0,totalEdges8Bits:0,totalEdges16Bits:0,totalEdges32Bits:0,cannotCreatePortion:{because10BitsObjectId:0,becauseTextureSize:0},overheadSizeAlignementIndices:0,overheadSizeAlignementEdgeIndices:0};window.printDataTextureRamStats=function(){console.log(JSON.stringify(hc,null,4));let A=0;Object.keys(hc).forEach((e=>{e.startsWith("size")&&(A+=hc[e])})),console.log(`Total size ${A} bytes (${(A/1e3/1e3).toFixed(2)} MB)`),console.log(`Avg bytes / triangle: ${(A/hc.totalPolygons).toFixed(2)}`);let e={};Object.keys(hc).forEach((t=>{t.startsWith("size")&&(e[t]=`${(hc[t]/A*100).toFixed(2)} % of total`)})),console.log(JSON.stringify({percentualRamUsage:e},null,4))};class Bc{constructor(){}disableBindedTextureFiltering(A){A.texParameteri(A.TEXTURE_2D,A.TEXTURE_MAG_FILTER,A.NEAREST),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_MIN_FILTER,A.NEAREST),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_WRAP_S,A.CLAMP_TO_EDGE),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_WRAP_T,A.CLAMP_TO_EDGE)}createTextureForColorsAndFlags(A,e,t,i,s,n,o){const r=e.length;this.numPortions=r;const c=4096,a=Math.ceil(r/512);if(0===a)throw"texture height===0";const h=new Uint8Array(16384*a);hc.sizeDataColorsAndFlags+=h.byteLength,hc.numberOfTextures++;for(let A=0;A>24&255,i[A]>>16&255,i[A]>>8&255,255&i[A]],32*A+16),h.set([s[A]>>24&255,s[A]>>16&255,s[A]>>8&255,255&s[A]],32*A+20),h.set([n[A]>>24&255,n[A]>>16&255,n[A]>>8&255,255&n[A]],32*A+24),h.set([o[A]?1:0,0,0,0],32*A+28);const B=A.createTexture();return A.bindTexture(A.TEXTURE_2D,B),A.texStorage2D(A.TEXTURE_2D,1,A.RGBA8UI,c,a),A.texSubImage2D(A.TEXTURE_2D,0,0,0,c,a,A.RGBA_INTEGER,A.UNSIGNED_BYTE,h,0),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_MAG_FILTER,A.NEAREST),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_MIN_FILTER,A.NEAREST),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_WRAP_S,A.CLAMP_TO_EDGE),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_WRAP_T,A.CLAMP_TO_EDGE),A.bindTexture(A.TEXTURE_2D,null),new vo(A,B,c,a,h)}createTextureForObjectOffsets(A,e){const t=512,i=Math.ceil(e/t);if(0===i)throw"texture height===0";const s=new Float32Array(1536*i).fill(0);hc.sizeDataTextureOffsets+=s.byteLength,hc.numberOfTextures++;const n=A.createTexture();return A.bindTexture(A.TEXTURE_2D,n),A.texStorage2D(A.TEXTURE_2D,1,A.RGB32F,t,i),A.texSubImage2D(A.TEXTURE_2D,0,0,0,t,i,A.RGB,A.FLOAT,s,0),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_MAG_FILTER,A.NEAREST),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_MIN_FILTER,A.NEAREST),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_WRAP_S,A.CLAMP_TO_EDGE),A.texParameteri(A.TEXTURE_2D,A.TEXTURE_WRAP_T,A.CLAMP_TO_EDGE),A.bindTexture(A.TEXTURE_2D,null),new vo(A,n,t,i,s)}createTextureForInstancingMatrices(A,e){const t=e.length;if(0===t)throw"num instance matrices===0";const i=2048,s=Math.ceil(t/512),n=new Float32Array(8192*s);hc.numberOfTextures++;for(let A=0;A{t._compile(),t.eagerCreateRenders()})),A.on("destroyed",(()=>{delete rc[e],t._destroy()}))),t}(A.scene),this.model=A,this._buffer=new cc,this._dtxState=new ac,this._dtxTextureFactory=new Bc,this._state=new Z({origin:g.vec3(e.origin),metallicRoughnessBuf:null,textureState:this._dtxState,numIndices8Bits:0,numIndices16Bits:0,numIndices32Bits:0,numEdgeIndices8Bits:0,numEdgeIndices16Bits:0,numEdgeIndices32Bits:0,numVertices:0}),this._numPortions=0,this._numVisibleLayerPortions=0,this._numTransparentLayerPortions=0,this._numXRayedLayerPortions=0,this._numSelectedLayerPortions=0,this._numHighlightedLayerPortions=0,this._numClippableLayerPortions=0,this._numEdgesLayerPortions=0,this._numPickableLayerPortions=0,this._numCulledLayerPortions=0,this._subPortions=[],this.model.scene.readableGeometryEnabled&&(this._subPortionReadableGeometries={}),this._portionToSubPortionsMap=[],this._bucketGeometries={},this._meshes=[],this._aabb=g.collapseAABB3(),this.aabbDirty=!0,this._numUpdatesInFrame=0,this.primitive=e.primitive,this._finalized=!1}get aabb(){if(this.aabbDirty){g.collapseAABB3(this._aabb);for(let A=0,e=this._meshes.length;A65536&&hc.cannotCreatePortion.because10BitsObjectId++;let t=this._numPortions+e<=65536;const i=void 0!==A.geometryId&&null!==A.geometryId?`${A.geometryId}#0`:`${A.id}#0`;if(!this._bucketGeometries[i]){const e=Math.max(this._state.numIndices8Bits,this._state.numIndices16Bits,this._state.numIndices32Bits);let i=0,s=0;A.buckets.forEach((A=>{i+=A.positionsCompressed.length/3,s+=A.indices.length/3})),(this._state.numVertices+i>4096*lc||e+s>4096*lc)&&hc.cannotCreatePortion.becauseTextureSize++,t&&=this._state.numVertices+i<=4096*lc&&e+s<=4096*lc}return t}createPortion(A,e){if(this._finalized)throw"Already finalized";const t=[];e.buckets.forEach(((A,i)=>{const s=void 0!==e.geometryId&&null!==e.geometryId?`${e.geometryId}#${i}`:`${e.id}#${i}`;let n=this._bucketGeometries[s];n||(n=this._createBucketGeometry(e,A),this._bucketGeometries[s]=n);const o=this._createSubPortion(e,n,A);t.push(o)}));const i=this._portionToSubPortionsMap.length;return this._portionToSubPortionsMap.push(t),this.model.numPortions++,this._meshes.push(A),i}_createBucketGeometry(A,e){if(e.indices){const A=8*Math.ceil(e.indices.length/3/8)*3;hc.overheadSizeAlignementIndices+=2*(A-e.indices.length);const t=new Uint32Array(A);t.fill(0),t.set(e.indices),e.indices=t}if(e.edgeIndices){const A=8*Math.ceil(e.edgeIndices.length/2/8)*2;hc.overheadSizeAlignementEdgeIndices+=2*(A-e.edgeIndices.length);const t=new Uint32Array(A);t.fill(0),t.set(e.edgeIndices),e.edgeIndices=t}const t=e.positionsCompressed,i=e.indices,s=e.edgeIndices,n=this._buffer;n.positionsCompressed.push(t);const o=n.lenPositionsCompressed/3,r=t.length/3;let c;n.lenPositionsCompressed+=t.length;let a,h=0;if(i){let A;h=i.length/3,r<=256?(A=n.indices8Bits,c=n.lenIndices8Bits/3,n.lenIndices8Bits+=i.length):r<=65536?(A=n.indices16Bits,c=n.lenIndices16Bits/3,n.lenIndices16Bits+=i.length):(A=n.indices32Bits,c=n.lenIndices32Bits/3,n.lenIndices32Bits+=i.length),A.push(i)}let B=0;if(s){let A;B=s.length/2,r<=256?(A=n.edgeIndices8Bits,a=n.lenEdgeIndices8Bits/2,n.lenEdgeIndices8Bits+=s.length):r<=65536?(A=n.edgeIndices16Bits,a=n.lenEdgeIndices16Bits/2,n.lenEdgeIndices16Bits+=s.length):(A=n.edgeIndices32Bits,a=n.lenEdgeIndices32Bits/2,n.lenEdgeIndices32Bits+=s.length),A.push(s)}this._state.numVertices+=r,hc.numberOfGeometries++;return{vertexBase:o,numVertices:r,numTriangles:h,numEdges:B,indicesBase:c,edgeIndicesBase:a}}_createSubPortion(A,e,t,i){const s=A.color;A.metallic,A.roughness;const n=A.colors,o=A.opacity,r=A.meshMatrix,c=A.pickColor,a=this._buffer,h=this._state;a.perObjectPositionsDecodeMatrices.push(A.positionsDecodeMatrix),a.perObjectInstancePositioningMatrices.push(r||dc),a.perObjectSolid.push(!!A.solid),n?a.perObjectColors.push([255*n[0],255*n[1],255*n[2],255]):s&&a.perObjectColors.push([s[0],s[1],s[2],o]),a.perObjectPickColors.push(c),a.perObjectVertexBases.push(e.vertexBase);{let A;A=e.numVertices<=256?h.numIndices8Bits:e.numVertices<=65536?h.numIndices16Bits:h.numIndices32Bits,a.perObjectIndexBaseOffsets.push(A/3-e.indicesBase)}{let A;A=e.numVertices<=256?h.numEdgeIndices8Bits:e.numVertices<=65536?h.numEdgeIndices16Bits:h.numEdgeIndices32Bits,a.perObjectEdgeIndexBaseOffsets.push(A/2-e.edgeIndicesBase)}const B=this._subPortions.length;if(e.numTriangles>0){let A,t=3*e.numTriangles;e.numVertices<=256?(A=a.perTriangleNumberPortionId8Bits,h.numIndices8Bits+=t,hc.totalPolygons8Bits+=e.numTriangles):e.numVertices<=65536?(A=a.perTriangleNumberPortionId16Bits,h.numIndices16Bits+=t,hc.totalPolygons16Bits+=e.numTriangles):(A=a.perTriangleNumberPortionId32Bits,h.numIndices32Bits+=t,hc.totalPolygons32Bits+=e.numTriangles),hc.totalPolygons+=e.numTriangles;for(let t=0;t0){let A,t=2*e.numEdges;e.numVertices<=256?(A=a.perEdgeNumberPortionId8Bits,h.numEdgeIndices8Bits+=t,hc.totalEdges8Bits+=e.numEdges):e.numVertices<=65536?(A=a.perEdgeNumberPortionId16Bits,h.numEdgeIndices16Bits+=t,hc.totalEdges16Bits+=e.numEdges):(A=a.perEdgeNumberPortionId32Bits,h.numEdgeIndices32Bits+=t,hc.totalEdges32Bits+=e.numEdges),hc.totalEdges+=e.numEdges;for(let t=0;t0&&(e.texturePerEdgeIdPortionIds8Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(t,i.perEdgeNumberPortionId8Bits)),i.perEdgeNumberPortionId16Bits.length>0&&(e.texturePerEdgeIdPortionIds16Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(t,i.perEdgeNumberPortionId16Bits)),i.perEdgeNumberPortionId32Bits.length>0&&(e.texturePerEdgeIdPortionIds32Bits=this._dtxTextureFactory.createTextureForPackedPortionIds(t,i.perEdgeNumberPortionId32Bits)),i.lenIndices8Bits>0&&(e.texturePerPolygonIdIndices8Bits=this._dtxTextureFactory.createTextureFor8BitIndices(t,i.indices8Bits,i.lenIndices8Bits)),i.lenIndices16Bits>0&&(e.texturePerPolygonIdIndices16Bits=this._dtxTextureFactory.createTextureFor16BitIndices(t,i.indices16Bits,i.lenIndices16Bits)),i.lenIndices32Bits>0&&(e.texturePerPolygonIdIndices32Bits=this._dtxTextureFactory.createTextureFor32BitIndices(t,i.indices32Bits,i.lenIndices32Bits)),i.lenEdgeIndices8Bits>0&&(e.texturePerPolygonIdEdgeIndices8Bits=this._dtxTextureFactory.createTextureFor8BitsEdgeIndices(t,i.edgeIndices8Bits,i.lenEdgeIndices8Bits)),i.lenEdgeIndices16Bits>0&&(e.texturePerPolygonIdEdgeIndices16Bits=this._dtxTextureFactory.createTextureFor16BitsEdgeIndices(t,i.edgeIndices16Bits,i.lenEdgeIndices16Bits)),i.lenEdgeIndices32Bits>0&&(e.texturePerPolygonIdEdgeIndices32Bits=this._dtxTextureFactory.createTextureFor32BitsEdgeIndices(t,i.edgeIndices32Bits,i.lenEdgeIndices32Bits)),e.finalize(),this._buffer=null,this._bucketGeometries={},this._finalized=!0,this._deferredSetFlagsDirty=!1,this._onSceneRendering=this.model.scene.on("rendering",(()=>{this._deferredSetFlagsDirty&&this._uploadDeferredFlags(),this._numUpdatesInFrame=0}))}isEmpty(){return 0===this._numPortions}initFlags(A,e,t){e&Wt&&(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++),e&qt&&(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++),e&Zt&&(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++),e&$t&&(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++),e&Vt&&(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++),e&Ai&&(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++),e&Lt&&(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++),e&Xt&&(this._numCulledLayerPortions++,this.model.numCulledLayerPortions++),t&&(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++);const i=!0;this._setFlags(A,e,t,i),this._setFlags2(A,e,i)}flushInitFlags(){this._setDeferredFlags(),this._setDeferredFlags2()}setVisible(A,e,t){if(!this._finalized)throw"Not finalized";e&Wt?(this._numVisibleLayerPortions++,this.model.numVisibleLayerPortions++):(this._numVisibleLayerPortions--,this.model.numVisibleLayerPortions--),this._setFlags(A,e,t)}setHighlighted(A,e,t){if(!this._finalized)throw"Not finalized";e&qt?(this._numHighlightedLayerPortions++,this.model.numHighlightedLayerPortions++):(this._numHighlightedLayerPortions--,this.model.numHighlightedLayerPortions--),this._setFlags(A,e,t)}setXRayed(A,e,t){if(!this._finalized)throw"Not finalized";e&Zt?(this._numXRayedLayerPortions++,this.model.numXRayedLayerPortions++):(this._numXRayedLayerPortions--,this.model.numXRayedLayerPortions--),this._setFlags(A,e,t)}setSelected(A,e,t){if(!this._finalized)throw"Not finalized";e&$t?(this._numSelectedLayerPortions++,this.model.numSelectedLayerPortions++):(this._numSelectedLayerPortions--,this.model.numSelectedLayerPortions--),this._setFlags(A,e,t)}setEdges(A,e,t){if(!this._finalized)throw"Not finalized";e&Ai?(this._numEdgesLayerPortions++,this.model.numEdgesLayerPortions++):(this._numEdgesLayerPortions--,this.model.numEdgesLayerPortions--),this._setFlags(A,e,t)}setClippable(A,e){if(!this._finalized)throw"Not finalized";e&Vt?(this._numClippableLayerPortions++,this.model.numClippableLayerPortions++):(this._numClippableLayerPortions--,this.model.numClippableLayerPortions--),this._setFlags2(A,e)}_beginDeferredFlags(){this._deferredSetFlagsActive=!0}_uploadDeferredFlags(){if(this._deferredSetFlagsActive=!1,!this._deferredSetFlagsDirty)return;this._deferredSetFlagsDirty=!1;const A=this.model.scene.canvas.gl,e=this._dtxState;A.bindTexture(A.TEXTURE_2D,e.texturePerObjectColorsAndFlags._texture),A.texSubImage2D(A.TEXTURE_2D,0,0,0,e.texturePerObjectColorsAndFlags._textureWidth,e.texturePerObjectColorsAndFlags._textureHeight,A.RGBA_INTEGER,A.UNSIGNED_BYTE,e.texturePerObjectColorsAndFlags._textureData)}setCulled(A,e,t){if(!this._finalized)throw"Not finalized";e&Xt?(this._numCulledLayerPortions+=this._portionToSubPortionsMap[A].length,this.model.numCulledLayerPortions++):(this._numCulledLayerPortions-=this._portionToSubPortionsMap[A].length,this.model.numCulledLayerPortions--),this._setFlags(A,e,t)}setCollidable(A,e){if(!this._finalized)throw"Not finalized"}setPickable(A,e,t){if(!this._finalized)throw"Not finalized";e&Lt?(this._numPickableLayerPortions++,this.model.numPickableLayerPortions++):(this._numPickableLayerPortions--,this.model.numPickableLayerPortions--),this._setFlags(A,e,t)}setColor(A,e){const t=this._portionToSubPortionsMap[A];for(let A=0,i=t.length;A=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,t.texturePerObjectColorsAndFlags._texture),i.texSubImage2D(i.TEXTURE_2D,0,A%512*8,Math.floor(A/512),1,1,i.RGBA_INTEGER,i.UNSIGNED_BYTE,Mc))}setTransparent(A,e,t){t?(this._numTransparentLayerPortions++,this.model.numTransparentLayerPortions++):(this._numTransparentLayerPortions--,this.model.numTransparentLayerPortions--),this._setFlags(A,e,t)}_setFlags(A,e,t,i=!1){const s=this._portionToSubPortionsMap[A];for(let A=0,n=s.length;A=10&&this._beginDeferredFlags(),M.bindTexture(M.TEXTURE_2D,Q.texturePerObjectColorsAndFlags._texture),M.texSubImage2D(M.TEXTURE_2D,0,A%512*8+2,Math.floor(A/512),1,1,M.RGBA_INTEGER,M.UNSIGNED_BYTE,Mc))}_setDeferredFlags(){}_setFlags2(A,e,t=!1){const i=this._portionToSubPortionsMap[A];for(let A=0,s=i.length;A=10&&this._beginDeferredFlags(),n.bindTexture(n.TEXTURE_2D,s.texturePerObjectColorsAndFlags._texture),n.texSubImage2D(n.TEXTURE_2D,0,A%512*8+3,Math.floor(A/512),1,1,n.RGBA_INTEGER,n.UNSIGNED_BYTE,Mc))}_setDeferredFlags2(){}setOffset(A,e){const t=this._portionToSubPortionsMap[A];for(let A=0,i=t.length;A=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,t.texturePerObjectOffsets._texture),i.texSubImage2D(i.TEXTURE_2D,0,0,A,1,1,i.RGB,i.FLOAT,uc))}setMatrix(A,e){const t=this._portionToSubPortionsMap[A];for(let A=0,i=t.length;A=10&&this._beginDeferredFlags(),i.bindTexture(i.TEXTURE_2D,t.texturePerObjectInstanceMatrices._texture),i.texSubImage2D(i.TEXTURE_2D,0,A%512*4,Math.floor(A/512),4,1,i.RGBA,i.FLOAT,Qc))}getEachVertex(A,e){if(!this.model.scene.readableGeometryEnabled)return;const t=this._state,i=this._portionToSubPortionsMap[A];if(i)for(let A=0,s=i.length;A{e&&e(s),this.manager.itemEnd(A)}),0),s;if(void 0!==Yc[A])return void Yc[A].push({onLoad:e,onProgress:t,onError:i});Yc[A]=[],Yc[A].push({onLoad:e,onProgress:t,onError:i});const n=new Request(A,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),o=this.mimeType,r=this.responseType;fetch(n).then((e=>{if(200===e.status||0===e.status){if(0===e.status&&console.warn("FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===e.body.getReader)return e;const t=Yc[A],i=e.body.getReader(),s=e.headers.get("Content-Length"),n=s?parseInt(s):0,o=0!==n;let r=0;const c=new ReadableStream({start(A){!function e(){i.read().then((({done:i,value:s})=>{if(i)A.close();else{r+=s.byteLength;const i=new ProgressEvent("progress",{lengthComputable:o,loaded:r,total:n});for(let A=0,e=t.length;A{switch(r){case"arraybuffer":return A.arrayBuffer();case"blob":return A.blob();case"document":return A.text().then((A=>(new DOMParser).parseFromString(A,o)));case"json":return A.json();default:if(void 0===o)return A.text();{const e=/charset="?([^;"\s]*)"?/i.exec(o),t=e&&e[1]?e[1].toLowerCase():void 0,i=new TextDecoder(t);return A.arrayBuffer().then((A=>i.decode(A)))}}})).then((e=>{pc.add(A,e);const t=Yc[A];delete Yc[A];for(let A=0,i=t.length;A{const t=Yc[A];if(void 0===t)throw this.manager.itemError(A),e;delete Yc[A];for(let A=0,i=t.length;A{this.manager.itemEnd(A)})),this.manager.itemStart(A)}setResponseType(A){return this.responseType=A,this}setMimeType(A){return this.mimeType=A,this}}class mc{constructor(A=4){this.pool=A,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(A){if(!this.workers[A]){const e=this.workerCreator();e.addEventListener("message",this._onMessage.bind(this,A)),this.workers[A]=e}}_getIdleWorker(){for(let A=0;A{const i=this._getIdleWorker();-1!==i?(this._initWorker(i),this.workerStatus|=1<A.terminate())),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}let Jc=0;class Nc{constructor({viewer:A,transcoderPath:e,workerLimit:t}){this._transcoderPath=e||"https://cdn.jsdelivr.net/npm/@xeokit/xeokit-sdk/dist/basis/",this._transcoderBinary=null,this._transcoderPending=null,this._workerPool=new mc,this._workerSourceURL="",t&&this._workerPool.setWorkerLimit(t);const i=A.capabilities;this._workerConfig={astcSupported:i.astcSupported,etc1Supported:i.etc1Supported,etc2Supported:i.etc2Supported,dxtSupported:i.dxtSupported,bptcSupported:i.bptcSupported,pvrtcSupported:i.pvrtcSupported},this._supportedFileTypes=["xkt2"]}_init(){if(!this._transcoderPending){const A=new Dc;A.setPath(this._transcoderPath),A.setWithCredentials(this.withCredentials);const e=A.loadAsync("basis_transcoder.js"),t=new Dc;t.setPath(this._transcoderPath),t.setResponseType("arraybuffer"),t.setWithCredentials(this.withCredentials);const i=t.loadAsync("basis_transcoder.wasm");this._transcoderPending=Promise.all([e,i]).then((([A,e])=>{const t=Nc.BasisWorker.toString(),i=["/* constants */","let _EngineFormat = "+JSON.stringify(Nc.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(Nc.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(Nc.BasisFormat),"/* basis_transcoder.js */",A,"/* worker */",t.substring(t.indexOf("{")+1,t.lastIndexOf("}"))].join("\n");this._workerSourceURL=URL.createObjectURL(new Blob([i])),this._transcoderBinary=e,this._workerPool.setWorkerCreator((()=>{const A=new Worker(this._workerSourceURL),e=this._transcoderBinary.slice(0);return A.postMessage({type:"init",config:this._workerConfig,transcoderBinary:e},[e]),A}))})),Jc>0&&console.warn("KTX2TextureTranscoder: Multiple active KTX2TextureTranscoder may cause performance issues. Use a single KTX2TextureTranscoder instance, or call .dispose() on old instances."),Jc++}return this._transcoderPending}transcode(A,e,t={}){return new Promise(((i,s)=>{const n=t;this._init().then((()=>this._workerPool.postMessage({type:"transcode",buffers:A,taskConfig:n},A))).then((A=>{const t=A.data,{mipmaps:n,width:o,height:r,format:c,type:a,error:h,dfdTransferFn:B,dfdFlags:g}=t;if("error"===a)return s(h);e.setCompressedData({mipmaps:n,props:{format:c,minFilter:1===n.length?OA:WA,magFilter:1===n.length?OA:WA,encoding:2===B?oe:ne,premultiplyAlpha:!!(1&g)}}),i()}))}))}destroy(){URL.revokeObjectURL(this._workerSourceURL),this._workerPool.destroy(),Jc--}}Nc.BasisFormat={ETC1S:0,UASTC_4x4:1},Nc.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16},Nc.EngineFormat={RGBAFormat:LA,RGBA_ASTC_4x4_Format:ie,RGBA_BPTC_Format:se,RGBA_ETC2_EAC_Format:te,RGBA_PVRTC_4BPPV1_Format:Ae,RGBA_S3TC_DXT5_Format:qA,RGB_ETC1_Format:36196,RGB_ETC2_Format:ee,RGB_PVRTC_4BPPV1_Format:$A,RGB_S3TC_DXT1_Format:VA},Nc.BasisWorker=function(){let A,e,t;const i=_EngineFormat,s=_TranscoderFormat,n=_BasisFormat;self.addEventListener("message",(function(o){const h=o.data;switch(h.type){case"init":A=h.config,B=h.transcoderBinary,e=new Promise((A=>{t={wasmBinary:B,onRuntimeInitialized:A},BASIS(t)})).then((()=>{t.initializeBasis(),void 0===t.KTX2File&&console.warn("KTX2TextureTranscoder: Please update Basis Universal transcoder.")}));break;case"transcode":e.then((()=>{try{const{width:e,height:o,hasAlpha:B,mipmaps:g,format:l,dfdTransferFn:E,dfdFlags:Q}=function(e){const o=new t.KTX2File(new Uint8Array(e));function h(){o.close(),o.delete()}if(!o.isValid())throw h(),new Error("KTX2TextureTranscoder: Invalid or unsupported .ktx2 file");const B=o.isUASTC()?n.UASTC_4x4:n.ETC1S,g=o.getWidth(),l=o.getHeight(),E=o.getLevels(),Q=o.getHasAlpha(),M=o.getDFDTransferFunc(),u=o.getDFDFlags(),{transcoderFormat:w,engineFormat:d}=function(e,t,o,h){let B,g;const l=e===n.ETC1S?r:c;for(let i=0;i=A)){Uc=new Uint32Array(A);for(let e=0;e>e;t.sort(kc);const i=new Int32Array(A.length);for(let e=0,s=t.length;eA[e+1]){let t=A[e];A[e]=A[e+1],A[e+1]=t}Pc=new Int32Array(A),e.sort(Gc);const t=new Int32Array(A.length);for(let i=0,s=e.length;ie){let t=A;A=e,e=t}function t(t,i){return t!==A?A-t:i!==e?e-i:0}let i=0,s=(n.length>>1)-1;for(;i<=s;){const A=s+i>>1,e=t(n[2*A],n[2*A+1]);if(e>0)i=A+1;else{if(!(e<0))return A;s=A-1}}return-i-1}const r=new Int32Array(n.length/2);r.fill(0);const c=i.length/3;if(c>8*(1<g.maxNumPositions&&(g=B()),g.bucketNumber>8)return[A];let E;-1===a[c]&&(a[c]=g.numPositions++,g.positionsCompressed.push(i[3*c]),g.positionsCompressed.push(i[3*c+1]),g.positionsCompressed.push(i[3*c+2])),-1===a[h]&&(a[h]=g.numPositions++,g.positionsCompressed.push(i[3*h]),g.positionsCompressed.push(i[3*h+1]),g.positionsCompressed.push(i[3*h+2])),-1===a[l]&&(a[l]=g.numPositions++,g.positionsCompressed.push(i[3*l]),g.positionsCompressed.push(i[3*l+1]),g.positionsCompressed.push(i[3*l+2])),g.indices.push(a[c]),g.indices.push(a[h]),g.indices.push(a[l]),(E=o(c,h))>=0&&0===r[E]&&(r[E]=1,g.edgeIndices.push(a[n[2*E]]),g.edgeIndices.push(a[n[2*E+1]])),(E=o(c,l))>=0&&0===r[E]&&(r[E]=1,g.edgeIndices.push(a[n[2*E]]),g.edgeIndices.push(a[n[2*E+1]])),(E=o(h,l))>=0&&0===r[E]&&(r[E]=1,g.edgeIndices.push(a[n[2*E]]),g.edgeIndices.push(a[n[2*E+1]]))}const l=e/8*2,E=e/8,Q=2*i.length+(s.length+n.length)*l;let M=0,u=-i.length/3;return h.forEach((A=>{M+=2*A.positionsCompressed.length+(A.indices.length+A.edgeIndices.length)*E,u+=A.positionsCompressed.length/3})),M>Q?[A]:(t&&function(A,e){const t={};let i=0;A.forEach((A=>{const e=A.indices,s=A.edgeIndices,n=A.positionsCompressed;for(let A=0,i=e.length;A0?this.meshes[0]._colorize[3]/255:1}set opacity(A){if(0===this.meshes.length)return;const e=null!=A,t=this.meshes[0]._colorize[3];let i=255;if(e){if(A<0?A=0:A>1&&(A=1),i=Math.floor(255*A),t===i)return}else if(i=255,t===i)return;for(let A=0,e=this.meshes.length;A=0&&(A+=t)}return A>0?A:-1}_getFlag(A){return!!(this._flags&A)}_finalize(){const A=this.model.scene;this._isObject&&(this.visible&&A._objectVisibilityUpdated(this),this.highlighted&&A._objectHighlightedUpdated(this),this.xrayed&&A._objectXRayedUpdated(this),this.selected&&A._objectSelectedUpdated(this));for(let A=0,e=this.meshes.length;A0){const A=e._meshes;for(let e=0,t=A.length;e0){const A=this._meshes;for(let e=0,t=A.length;e{delete yc[e],t.destroy()}))),t}(this.scene.viewer),this._maxGeometryBatchSize=e.maxGeometryBatchSize,this._aabb=g.collapseAABB3(),this._aabbDirty=!0,this._quantizationRanges={},this._vboInstancingLayers={},this._vboBatchingLayers={},this._dtxLayers={},this._meshList=[],this.layerList=[],this._layersToFinalize=[],this._entityList=[],this._entitiesToFinalize=[],this._geometries={},this._dtxBuckets={},this._textures={},this._textureSets={},this._transforms={},this._meshes={},this._unusedMeshes={},this._entities={},this.renderFlags=new Ze,this.numGeometries=0,this.numPortions=0,this.numVisibleLayerPortions=0,this.numTransparentLayerPortions=0,this.numXRayedLayerPortions=0,this.numHighlightedLayerPortions=0,this.numSelectedLayerPortions=0,this.numEdgesLayerPortions=0,this.numPickableLayerPortions=0,this.numClippableLayerPortions=0,this.numCulledLayerPortions=0,this.numEntities=0,this._numTriangles=0,this._numLines=0,this._numPoints=0,this._layersFinalized=!1,this._edgeThreshold=e.edgeThreshold||10,this._origin=g.vec3(e.origin||[0,0,0]),this._position=g.vec3(e.position||[0,0,0]),this._rotation=g.vec3(e.rotation||[0,0,0]),this._quaternion=g.vec4(e.quaternion||[0,0,0,1]),this._conjugateQuaternion=g.vec4(e.quaternion||[0,0,0,1]),e.rotation&&g.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._scale=g.vec3(e.scale||[1,1,1]),this._worldRotationMatrix=g.mat4(),this._worldRotationMatrixConjugate=g.mat4(),this._matrix=g.mat4(),this._matrixDirty=!0,this._rebuildMatrices(),this._worldNormalMatrix=g.mat4(),g.inverseMat4(this._matrix,this._worldNormalMatrix),g.transposeMat4(this._worldNormalMatrix),(e.matrix||e.position||e.rotation||e.scale||e.quaternion)&&(this._viewMatrix=g.mat4(),this._viewNormalMatrix=g.mat4(),this._viewMatrixDirty=!0,this._matrixNonIdentity=!0),this._opacity=1,this._colorize=[1,1,1],this._saoEnabled=!1!==e.saoEnabled,this._pbrEnabled=!1!==e.pbrEnabled,this._colorTextureEnabled=!1!==e.colorTextureEnabled,this._isModel=e.isModel,this._isModel&&this.scene._registerModel(this),this._onCameraViewMatrix=this.scene.camera.on("matrix",(()=>{this._viewMatrixDirty=!0})),this._meshesWithDirtyMatrices=[],this._numMeshesWithDirtyMatrices=0,this._onTick=this.scene.on("tick",(()=>{for(;this._numMeshesWithDirtyMatrices>0;)this._meshesWithDirtyMatrices[--this._numMeshesWithDirtyMatrices]._updateMatrix()})),this._createDefaultTextureSet(),this.visible=e.visible,this.culled=e.culled,this.pickable=e.pickable,this.clippable=e.clippable,this.collidable=e.collidable,this.castsShadow=e.castsShadow,this.receivesShadow=e.receivesShadow,this.xrayed=e.xrayed,this.highlighted=e.highlighted,this.selected=e.selected,this.edges=e.edges,this.colorize=e.colorize,this.opacity=e.opacity,this.backfaces=e.backfaces}_meshMatrixDirty(A){this._meshesWithDirtyMatrices[this._numMeshesWithDirtyMatrices++]=A}_createDefaultTextureSet(){const A=new Fc({id:na,texture:new ut({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})}),e=new Fc({id:oa,texture:new ut({gl:this.scene.canvas.gl,preloadColor:[0,1,1,1]})}),t=new Fc({id:ra,texture:new ut({gl:this.scene.canvas.gl,preloadColor:[0,0,0,0]})}),i=new Fc({id:ca,texture:new ut({gl:this.scene.canvas.gl,preloadColor:[0,0,0,1]})}),s=new Fc({id:aa,texture:new ut({gl:this.scene.canvas.gl,preloadColor:[1,1,1,1]})});this._textures[na]=A,this._textures[oa]=e,this._textures[ra]=t,this._textures[ca]=i,this._textures[aa]=s,this._textureSets[ha]=new xc({id:ha,model:this,colorTexture:A,metallicRoughnessTexture:e,normalsTexture:t,emissiveTexture:i,occlusionTexture:s})}get isPerformanceModel(){return!0}get transforms(){return this._transforms}get textures(){return this._textures}get textureSets(){return this._textureSets}get meshes(){return this._meshes}get objects(){return this._entities}get origin(){return this._origin}set position(A){this._position.set(A||[0,0,0]),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get position(){return this._position}set rotation(A){this._rotation.set(A||[0,0,0]),g.eulerToQuaternion(this._rotation,"XYZ",this._quaternion),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get rotation(){return this._rotation}set quaternion(A){this._quaternion.set(A||[0,0,0,1]),g.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get quaternion(){return this._quaternion}set scale(A){}get scale(){return this._scale}set matrix(A){this._matrix.set(A||sa),g.decomposeMat4(this._matrix,this._position,this._quaternion,this._scale),g.quaternionToEuler(this._quaternion,"XYZ",this._rotation),this._matrixDirty=!1,this._setWorldMatrixDirty(),this._sceneModelDirty(),this.glRedraw()}get matrix(){return this._rebuildMatrices(),this._matrix}get rotationMatrix(){return this._rebuildMatrices(),this._worldRotationMatrix}_rebuildMatrices(){this._matrixDirty&&(g.quaternionToRotationMat4(this._quaternion,this._worldRotationMatrix),g.conjugateQuaternion(this._quaternion,this._conjugateQuaternion),g.quaternionToRotationMat4(this._conjugateQuaternion,this._worldRotationMatrixConjugate),g.scaleMat4v(this._scale,this._worldRotationMatrix),g.scaleMat4v(this._scale,this._worldRotationMatrixConjugate),this._matrix.set(this._worldRotationMatrix),g.translateMat4v(this._position,this._matrix),this._matrixDirty=!1,this._viewMatrixDirty=!0)}get rotationMatrixConjugate(){return this._rebuildMatrices(),this._worldRotationMatrixConjugate}_setWorldMatrixDirty(){this._matrixDirty=!0,this._aabbDirty=!0}_transformDirty(){this._matrixDirty=!0,this._aabbDirty=!0,this.scene._aabbDirty=!0}_sceneModelDirty(){this.scene._aabbDirty=!0,this._aabbDirty=!0,this.scene._aabbDirty=!0,this._matrixDirty=!0;for(let A=0,e=this._entityList.length;A0}set visible(A){A=!1!==A,this._visible=A;for(let e=0,t=this._entityList.length;e0}set xrayed(A){A=!!A,this._xrayed=A;for(let e=0,t=this._entityList.length;e0}set highlighted(A){A=!!A,this._highlighted=A;for(let e=0,t=this._entityList.length;e0}set selected(A){A=!!A,this._selected=A;for(let e=0,t=this._entityList.length;e0}set edges(A){A=!!A,this._edges=A;for(let e=0,t=this._entityList.length;e0}set pickable(A){A=!1!==A,this._pickable=A;for(let e=0,t=this._entityList.length;e0)A.colorsCompressed=new Uint8Array(A.colorsCompressed);else if(A.colors&&A.colors.length>0){const e=A.colors,t=new Uint8Array(e.length);for(let A=0,i=e.length;A{c.setImage(a,{minFilter:t,magFilter:i,wrapS:s,wrapT:n,wrapR:o,flipY:A.flipY,encoding:r}),this.glRedraw()},a.src=A.src;break;default:this._textureTranscoder?u.loadArraybuffer(A.src,(A=>{A.byteLength?this._textureTranscoder.transcode([A],c).then((()=>{this.glRedraw()})):this.error("[createTexture] Can't create texture from 'src': file data is zero length")}),(function(A){this.error(`[createTexture] Can't create texture from 'src': ${A}`)})):this.error(`[createTexture] Can't create texture from 'src' - SceneModel needs to be configured with a TextureTranscoder for this file type ('${e}')`)}}else A.buffers&&(this._textureTranscoder?this._textureTranscoder.transcode(A.buffers,c).then((()=>{this.glRedraw()})):this.error("[createTexture] Can't create texture from 'buffers' - SceneModel needs to be configured with a TextureTranscoder for this option"));this._textures[e]=new Fc({id:e,texture:c})}createTextureSet(A){const e=A.id;if(null==e)return void this.error("[createTextureSet] Config missing: id");if(this._textureSets[e])return void this.error(`[createTextureSet] Texture set already created: ${e}`);let t,i,s,n,o;if(void 0!==A.colorTextureId&&null!==A.colorTextureId){if(t=this._textures[A.colorTextureId],!t)return void this.error(`[createTextureSet] Texture not found: ${A.colorTextureId} - ensure that you create it first with createTexture()`)}else t=this._textures[na];if(void 0!==A.metallicRoughnessTextureId&&null!==A.metallicRoughnessTextureId){if(i=this._textures[A.metallicRoughnessTextureId],!i)return void this.error(`[createTextureSet] Texture not found: ${A.metallicRoughnessTextureId} - ensure that you create it first with createTexture()`)}else i=this._textures[oa];if(void 0!==A.normalsTextureId&&null!==A.normalsTextureId){if(s=this._textures[A.normalsTextureId],!s)return void this.error(`[createTextureSet] Texture not found: ${A.normalsTextureId} - ensure that you create it first with createTexture()`)}else s=this._textures[ra];if(void 0!==A.emissiveTextureId&&null!==A.emissiveTextureId){if(n=this._textures[A.emissiveTextureId],!n)return void this.error(`[createTextureSet] Texture not found: ${A.emissiveTextureId} - ensure that you create it first with createTexture()`)}else n=this._textures[ca];if(void 0!==A.occlusionTextureId&&null!==A.occlusionTextureId){if(o=this._textures[A.occlusionTextureId],!o)return void this.error(`[createTextureSet] Texture not found: ${A.occlusionTextureId} - ensure that you create it first with createTexture()`)}else o=this._textures[aa];const r=new xc({id:e,model:this,colorTexture:t,alphaCutoff:A.alphaCutoff,metallicRoughnessTexture:i,normalsTexture:s,emissiveTexture:n,occlusionTexture:o});return this._textureSets[e]=r,r}createTransform(A){if(void 0===A.id||null===A.id)return void this.error("[createTransform] SceneModel.createTransform() config missing: id");if(this._transforms[A.id])return void this.error(`[createTransform] SceneModel already has a transform with this ID: ${A.id}`);let e;if(A.parentTransformId&&(e=this._transforms[A.parentTransformId],!e))return void this.error("[createTransform] SceneModel.createTransform() config missing: id");const t=new Zc({id:A.id,model:this,parent:e,matrix:A.matrix,position:A.position,scale:A.scale,rotation:A.rotation,quaternion:A.quaternion});return this._transforms[t.id]=t,t}createMesh(A){if(void 0===A.id||null===A.id)return this.error("[createMesh] SceneModel.createMesh() config missing: id"),!1;if(this._meshes[A.id])return this.error(`[createMesh] SceneModel already has a mesh with this ID: ${A.id}`),!1;if(!(void 0!==A.geometryId)){if(void 0!==A.primitive&&null!==A.primitive||(A.primitive="triangles"),"points"!==A.primitive&&"lines"!==A.primitive&&"triangles"!==A.primitive&&"solid"!==A.primitive&&"surface"!==A.primitive)return this.error(`Unsupported value for 'primitive': '${primitive}' ('geometryId' is absent) - supported values are 'points', 'lines', 'triangles', 'solid' and 'surface'.`),!1;if(!A.positions&&!A.positionsCompressed&&!A.buckets)return this.error("Param expected: 'positions', 'positionsCompressed' or `buckets` ('geometryId' is absent)"),!1;if(A.positions&&(A.positionsDecodeMatrix||A.positionsDecodeBoundary))return this.error("Illegal params: 'positions' not expected with 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),!1;if(A.positionsCompressed&&!A.positionsDecodeMatrix&&!A.positionsDecodeBoundary)return this.error("Param expected: 'positionsCompressed' should be accompanied by 'positionsDecodeMatrix'/'positionsDecodeBoundary' ('geometryId' is absent)"),!1;if(A.uvCompressed&&!A.uvDecodeMatrix)return this.error("Param expected: 'uvCompressed' should be accompanied by `uvDecodeMatrix` ('geometryId' is absent)"),!1;if(!(A.buckets||A.indices||"triangles"!==A.primitive&&"solid"!==A.primitive&&"surface"!==A.primitive)){const e=(A.positions||A.positionsCompressed).length/3;A.indices=this._createDefaultIndices(e)}if(!A.buckets&&!A.indices&&"points"!==A.primitive)return A.indices=this._createDefaultIndices(numIndices),this.error(`Param expected: indices (required for '${A.primitive}' primitive type)`),!1;if((A.matrix||A.position||A.rotation||A.scale)&&(A.positionsCompressed||A.positionsDecodeBoundary))return this.error("Unexpected params: 'matrix', 'rotation', 'scale', 'position' not allowed with 'positionsCompressed'"),!1;const e=!(!this._dtxEnabled||"triangles"!==A.primitive&&"solid"!==A.primitive&&"surface"!==A.primitive||A.textureSetId);if(A.origin=A.origin?g.addVec3(this._origin,A.origin,g.vec3()):this._origin,A.matrix)A.meshMatrix=A.matrix;else if(A.scale||A.rotation||A.position||A.quaternion){const e=A.scale||ea,t=A.position||ta;A.rotation?(g.eulerToQuaternion(A.rotation,"XYZ",Aa),A.meshMatrix=g.composeMat4(t,Aa,e,g.mat4())):A.meshMatrix=g.composeMat4(t,A.quaternion||ia,e,g.mat4())}if(A.positionsDecodeBoundary&&(A.positionsDecodeMatrix=Li(A.positionsDecodeBoundary,g.mat4())),e){if(A.type=2,A.color=A.color?new Uint8Array([Math.floor(255*A.color[0]),Math.floor(255*A.color[1]),Math.floor(255*A.color[2])]):Ba,A.opacity=void 0!==A.opacity&&null!==A.opacity?Math.floor(255*A.opacity):255,A.positions){const e=g.vec3(),t=[];bA(A.positions,t,e)&&(A.positions=t,A.origin=g.addVec3(A.origin,e,e))}if(A.positions){const e=g.collapseAABB3();A.positionsDecodeMatrix=g.mat4(),g.expandAABB3Points3(e,A.positions),A.positionsCompressed=Xi(A.positions,e,A.positionsDecodeMatrix),A.aabb=e}else if(A.positionsCompressed){const e=g.collapseAABB3();g.expandAABB3Points3(e,A.positionsCompressed),oA.decompressAABB(e,A.positionsDecodeMatrix),A.aabb=e}if(A.buckets){const e=g.collapseAABB3();for(let t=0,i=A.buckets.length;t>24&255,s=t>>16&255,n=t>>8&255,o=255&t;switch(A.pickColor=new Uint8Array([o,n,s,i]),A.solid="solid"===A.primitive,e.origin=g.vec3(A.origin),A.type){case 2:e.layer=this._getDTXLayer(A),e.aabb=A.aabb;break;case 1:e.layer=this._getVBOBatchingLayer(A),e.aabb=A.aabb;break;case 0:e.layer=this._getVBOInstancingLayer(A),e.aabb=A.aabb}return A.transform&&(A.meshMatrix=A.transform.worldMatrix),e.portionId=e.layer.createPortion(e,A),e.numPrimitives=A.numPrimitives,this._meshes[A.id]=e,this._unusedMeshes[A.id]=e,this._meshList.push(e),e}_getNumPrimitives(A){let e=0;switch(A.geometry?A.geometry.primitive:A.primitive){case"triangles":case"solid":case"surface":switch(A.type){case 2:for(let t=0,i=A.buckets.length;t>>0).toString(16)}_getVBOInstancingLayer(A){const e=this,t=A.origin,i=A.textureSetId||"-",s=A.geometryId,n=`${Math.round(t[0])}.${Math.round(t[1])}.${Math.round(t[2])}.${i}.${s}`;let o=this._vboInstancingLayers[n];if(o)return o;let r=A.textureSet;const c=A.geometry;for(;!o;)switch(c.primitive){case"triangles":case"surface":o=new qs({model:e,textureSet:r,geometry:c,origin:t,layerIndex:0,solid:!1});break;case"solid":o=new qs({model:e,textureSet:r,geometry:c,origin:t,layerIndex:0,solid:!0});break;case"lines":o=new Pn({model:e,textureSet:r,geometry:c,origin:t,layerIndex:0});break;case"points":o=new yo({model:e,textureSet:r,geometry:c,origin:t,layerIndex:0})}return this._vboInstancingLayers[n]=o,this.layerList.push(o),this._layersToFinalize.push(o),o}createEntity(A){if(void 0===A.id?A.id=g.createUUID():this.scene.components[A.id]&&(this.error(`Scene already has a Component with this ID: ${A.id} - will assign random ID`),A.id=g.createUUID()),void 0===A.meshIds)return void this.error("Config missing: meshIds");let e=0;return this._visible&&!1!==A.visible&&(e|=Wt),this._pickable&&!1!==A.pickable&&(e|=Lt),this._culled&&!1!==A.culled&&(e|=Xt),this._clippable&&!1!==A.clippable&&(e|=Vt),this._collidable&&!1!==A.collidable&&(e|=Kt),this._edges&&!1!==A.edges&&(e|=Ai),this._xrayed&&!1!==A.xrayed&&(e|=Zt),this._highlighted&&!1!==A.highlighted&&(e|=qt),this._selected&&!1!==A.selected&&(e|=$t),A.flags=e,this._createEntity(A)}_createEntity(A){let e=[];for(let t=0,i=A.meshIds.length;tA.sortIde.sortId?1:0));for(let A=0,e=this.layerList.length;A0&&0===this.renderFlags.numVisibleLayers?this.renderFlags.culled=!0:this._updateRenderFlags()}_updateRenderFlagsVisibleLayers(){const A=this.renderFlags;A.numLayers=this.layerList.length,A.numVisibleLayers=0;for(let e=0,t=this.layerList.length;e0){const e=`${this.id}-${g.createUUID()}`;this.warn(`Creating dummy SceneModelEntity "${e}" for unused SceneMeshes: [${A.join(",")}]`),this.createEntity({id:e,meshIds:A,isObject:!0})}this._unusedMeshes={}}_getActiveSectionPlanesForLayer(A){const e=this.renderFlags,t=this.scene._sectionPlanesState.sectionPlanes,i=t.length,s=A.layerIndex*i;if(i>0)for(let A=0;A0&&(A.colorTransparent=!0),this.numXRayedLayerPortions>0){const e=this.scene.xrayMaterial._state;e.fill&&(e.fillAlpha<1?A.xrayedSilhouetteTransparent=!0:A.xrayedSilhouetteOpaque=!0),e.edges&&(e.edgeAlpha<1?A.xrayedEdgesTransparent=!0:A.xrayedEdgesOpaque=!0)}if(this.numEdgesLayerPortions>0){this.scene.edgeMaterial._state.edges&&(A.edgesOpaque=this.numTransparentLayerPortions0&&(A.edgesTransparent=!0))}if(this.numSelectedLayerPortions>0){const e=this.scene.selectedMaterial._state;e.fill&&(e.fillAlpha<1?A.selectedSilhouetteTransparent=!0:A.selectedSilhouetteOpaque=!0),e.edges&&(e.edgeAlpha<1?A.selectedEdgesTransparent=!0:A.selectedEdgesOpaque=!0)}if(this.numHighlightedLayerPortions>0){const e=this.scene.highlightMaterial._state;e.fill&&(e.fillAlpha<1?A.highlightedSilhouetteTransparent=!0:A.highlightedSilhouetteOpaque=!0),e.edges&&(e.edgeAlpha<1?A.highlightedEdgesTransparent=!0:A.highlightedEdgesOpaque=!0)}}drawColorOpaque(A,e){const t=this.renderFlags;for(let e=0,i=t.visibleLayers.length;e65536?16:8)}else o=[{positionsCompressed:i,indices:s,edgeIndices:n}];return o}class Ea extends N{constructor(A,e={}){if(super(A,e),this._positions=e.positions||[],e.indices)this._indices=e.indices;else{this._indices=[];for(let A=0,e=this._positions.length/3-1;Ai.deleteTexture(A))),i.deleteFramebuffer(this.buffer.framebuf),i.deleteRenderbuffer(this.buffer.renderbuf)}const s=[];let n;A.length>0?s.push(...A.map((A=>this.createTexture(e,t,A)))):s.push(this.createTexture(e,t)),this._hasDepthTexture&&(n=i.createTexture(),i.bindTexture(i.TEXTURE_2D,n),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,i.DEPTH_COMPONENT32F,e,t,0,i.DEPTH_COMPONENT,i.FLOAT,null));const o=i.createRenderbuffer();i.bindRenderbuffer(i.RENDERBUFFER,o),i.renderbufferStorage(i.RENDERBUFFER,i.DEPTH_COMPONENT32F,e,t);const r=i.createFramebuffer();i.bindFramebuffer(i.FRAMEBUFFER,r);for(let A=0;A0&&i.drawBuffers(s.map(((A,e)=>i.COLOR_ATTACHMENT0+e))),this._hasDepthTexture?i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.TEXTURE_2D,n,0):i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.RENDERBUFFER,o),i.bindTexture(i.TEXTURE_2D,null),i.bindRenderbuffer(i.RENDERBUFFER,null),i.bindFramebuffer(i.FRAMEBUFFER,null),i.bindFramebuffer(i.FRAMEBUFFER,r),!i.isFramebuffer(r))throw"Invalid framebuffer";i.bindFramebuffer(i.FRAMEBUFFER,null);const c=i.checkFramebufferStatus(i.FRAMEBUFFER);switch(c){case i.FRAMEBUFFER_COMPLETE:break;case i.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case i.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case i.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:throw"Incomplete framebuffer: FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case i.FRAMEBUFFER_UNSUPPORTED:throw"Incomplete framebuffer: FRAMEBUFFER_UNSUPPORTED";default:throw"Incomplete framebuffer: "+c}this.buffer={framebuf:r,renderbuf:o,texture:s[0],textures:s,depthTexture:n,width:e,height:t},this.bound=!1}clear(){if(!this.bound)throw"Render buffer not bound";const A=this.gl;A.clear(A.COLOR_BUFFER_BIT|A.DEPTH_BUFFER_BIT)}read(A,e,t=null,i=null,s=Uint8Array,n=4,o=0){const r=A,c=this.buffer.height?this.buffer.height-e-1:this.gl.drawingBufferHeight-e,a=new s(n),h=this.gl;return h.readBuffer(h.COLOR_ATTACHMENT0+o),h.readPixels(r,c,1,1,t||h.RGBA,i||h.UNSIGNED_BYTE,a,0),a}readArray(A=null,e=null,t=Uint8Array,i=4,s=0){const n=new t(this.buffer.width*this.buffer.height*i),o=this.gl;return o.readBuffer(o.COLOR_ATTACHMENT0+s),o.readPixels(0,0,this.buffer.width,this.buffer.height,A||o.RGBA,e||o.UNSIGNED_BYTE,n,0),n}readImageAsCanvas(){const A=this.gl,e=this._getImageDataCache(),t=e.pixelData,i=e.canvas,s=e.imageData,n=e.context;A.readPixels(0,0,this.buffer.width,this.buffer.height,A.RGBA,A.UNSIGNED_BYTE,t);const o=this.buffer.width,r=this.buffer.height,c=r/2|0,a=4*o,h=new Uint8Array(4*o);for(let A=0;AA.deleteTexture(e))),A.deleteTexture(this.buffer.depthTexture),A.deleteFramebuffer(this.buffer.framebuf),A.deleteRenderbuffer(this.buffer.renderbuf),this.allocated=!1,this.buffer=null,this.bound=!1}this._imageDataCache=null,this._texture=null,this._depthTexture=null}}class wa extends Qa{get type(){return"DirLight"}constructor(A,e={}){super(A,e),this._shadowRenderBuf=null,this._shadowViewMatrix=null,this._shadowProjMatrix=null,this._shadowViewMatrixDirty=!0,this._shadowProjMatrixDirty=!0;const t=this.scene.camera,i=this.scene.canvas;this._onCameraViewMatrix=t.on("viewMatrix",(()=>{this._shadowViewMatrixDirty=!0})),this._onCameraProjMatrix=t.on("projMatrix",(()=>{this._shadowProjMatrixDirty=!0})),this._onCanvasBoundary=i.on("boundary",(()=>{this._shadowProjMatrixDirty=!0})),this._state=new Z({type:"dir",dir:g.vec3([1,1,1]),color:g.vec3([.7,.7,.8]),intensity:1,space:e.space||"view",castsShadow:!1,getShadowViewMatrix:()=>{if(this._shadowViewMatrixDirty){this._shadowViewMatrix||(this._shadowViewMatrix=g.identityMat4());const A=this.scene.camera,e=this._state.dir,t=A.look,i=[t[0]-e[0],t[1]-e[1],t[2]-e[2]],s=[0,1,0];g.lookAtMat4v(i,t,s,this._shadowViewMatrix),this._shadowViewMatrixDirty=!1}return this._shadowViewMatrix},getShadowProjMatrix:()=>(this._shadowProjMatrixDirty&&(this._shadowProjMatrix||(this._shadowProjMatrix=g.identityMat4()),g.orthoMat4c(-40,40,-40,40,-40,80,this._shadowProjMatrix),this._shadowProjMatrixDirty=!1),this._shadowProjMatrix),getShadowRenderBuf:()=>(this._shadowRenderBuf||(this._shadowRenderBuf=new ua(this.scene.canvas.canvas,this.scene.canvas.gl,{size:[1024,1024]})),this._shadowRenderBuf)}),this.dir=e.dir,this.color=e.color,this.intensity=e.intensity,this.castsShadow=e.castsShadow,this.scene._lightCreated(this)}set dir(A){this._state.dir.set(A||[1,1,1]),this._shadowViewMatrixDirty=!0,this.glRedraw()}get dir(){return this._state.dir}set color(A){this._state.color.set(A||[.7,.7,.8]),this.glRedraw()}get color(){return this._state.color}set intensity(A){A=void 0!==A?A:1,this._state.intensity=A,this.glRedraw()}get intensity(){return this._state.intensity}set castsShadow(A){A=!!A,this._state.castsShadow!==A&&(this._state.castsShadow=A,this._shadowViewMatrixDirty=!0,this.glRedraw())}get castsShadow(){return this._state.castsShadow}destroy(){const A=this.scene.camera,e=this.scene.canvas;A.off(this._onCameraViewMatrix),A.off(this._onCameraProjMatrix),e.off(this._onCanvasBoundary),super.destroy(),this._state.destroy(),this._shadowRenderBuf&&this._shadowRenderBuf.destroy(),this.scene._lightDestroyed(this),this.glRedraw()}}const da=g.vec4(),Ca=g.vec4();class xa extends N{constructor(A,e){super(A,e),this._entity=null,this._visible=null,this._worldPos=g.vec3(),this._origin=g.vec3(),this._rtcPos=g.vec3(),this._viewPos=g.vec3(),this._canvasPos=g.vec2(),this._occludable=!1,this._onCameraViewMatrix=this.scene.camera.on("matrix",(()=>{this._viewPosDirty=!0,this._needUpdate()})),this._onCameraProjMatrix=this.scene.camera.on("projMatrix",(()=>{this._canvasPosDirty=!0,this._needUpdate()})),this._onEntityDestroyed=null,this._onEntityModelDestroyed=null,this._renderer.addMarker(this),this.entity=e.entity,this.worldPos=e.worldPos,this.occludable=e.occludable}_update(){if(this._viewPosDirty&&(g.transformPoint3(this.scene.camera.viewMatrix,this._worldPos,this._viewPos),this._viewPosDirty=!1,this._canvasPosDirty=!0,this.fire("viewPos",this._viewPos)),this._canvasPosDirty){da.set(this._viewPos),da[3]=1,g.transformPoint4(this.scene.camera.projMatrix,da,Ca);const A=this.scene.canvas.boundary;this._canvasPos[0]=Math.floor((1+Ca[0]/Ca[3])*A[2]/2),this._canvasPos[1]=Math.floor((1-Ca[1]/Ca[3])*A[3]/2),this._canvasPosDirty=!1,this.fire("canvasPos",this._canvasPos)}}_setVisible(A){this._visible,this._visible=A,this.fire("visible",this._visible)}set entity(A){this._entity!==A&&(this._cleanupDestroyedHandlers(),this._entity=A,this._entity&&(this._entity.isSceneModelEntity?this._onEntityModelDestroyed=this._entity.model.on("destroyed",(()=>{this._entity=null,this._onEntityModelDestroyed=null})):this._onEntityDestroyed=this._entity.on("destroyed",(()=>{this._entity=null,this._onEntityDestroyed=null}))),this.fire("entity",this._entity,!0))}get entity(){return this._entity}set occludable(A){(A=!!A)!==this._occludable&&(this._occludable=A,this._occludable&&this._renderer.markerWorldPosUpdated(this))}get occludable(){return this._occludable}set worldPos(A){this._worldPos.set(A||[0,0,0]),RA(this._worldPos,this._origin,this._rtcPos),this._occludable&&this._renderer.markerWorldPosUpdated(this),this._viewPosDirty=!0,this.fire("worldPos",this._worldPos),this._needUpdate()}get worldPos(){return this._worldPos}get origin(){return this._origin}get rtcPos(){return this._rtcPos}get viewPos(){return this._update(),this._viewPos}get canvasPos(){return this._update(),this._canvasPos}get visible(){return!!this._visible}destroy(){this.fire("destroyed",!0),this.scene.camera.off(this._onCameraViewMatrix),this.scene.camera.off(this._onCameraProjMatrix),this._cleanupDestroyedHandlers(),this._renderer.removeMarker(this),super.destroy()}_cleanupDestroyedHandlers(){this._entity&&(null!==this._onEntityDestroyed&&(this._entity.model?this._entity.model.off(this._onEntityDestroyed):this._entity.off(this._onEntityDestroyed),this._onEntityDestroyed=null),null!==this._onEntityModelDestroyed&&(this._entity.model&&this._entity.model.off(this._onEntityModelDestroyed),this._onEntityModelDestroyed=null))}}const Fa=g.vec3();class pa{constructor(A){if(this.objectsVisible=[],this.objectsEdges=[],this.objectsXrayed=[],this.objectsHighlighted=[],this.objectsSelected=[],this.objectsClippable=[],this.objectsPickable=[],this.objectsColorize=[],this.objectsOpacity=[],this.numObjects=0,A){const e=A.metaScene.scene;this.saveObjects(e,A)}}saveObjects(A,e,t){this.numObjects=0,this._mask=t?u.apply(t,{}):null;const i=!t||t.visible,s=!t||t.edges,n=!t||t.xrayed,o=!t||t.highlighted,r=!t||t.selected,c=!t||t.clippable,a=!t||t.pickable,h=!t||t.colorize,B=!t||t.opacity,g=e.metaObjects,l=A.objects;for(let A=0,e=g.length;A"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.mxMaxTouchPoints>0};class Ta{constructor(A,e,t){this.id=t&&t.id?t.id:A,this.viewer=e,this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._eventSubsNum=null,this._events=null,this._eventCallDepth=0,e.addPlugin(this)}scheduleTask(A){Y.scheduleTask(A,null)}fire(A,e,t){this._events||(this._events={}),this._eventSubs||(this._eventSubs={},this._eventSubsNum={}),!0!==t&&(this._events[A]=e||!0);const i=this._eventSubs[A];let s;if(i)for(const t in i)i.hasOwnProperty(t)&&(s=i[t],this._eventCallDepth++,this._eventCallDepth<300?s.callback.call(s.scope,e):this.error("fire: potential stack overflow from recursive event '"+A+"' - dropping this event"),this._eventCallDepth--)}on(e,t,i){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new A),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={}),this._eventSubsNum||(this._eventSubsNum={});let s=this._eventSubs[e];s?this._eventSubsNum[e]++:(s={},this._eventSubs[e]=s,this._eventSubsNum[e]=1);const n=this._subIdMap.addItem();s[n]={callback:t,scope:i||this},this._subIdEvents[n]=e;const o=this._events[e];return void 0!==o&&t.call(i||this,o),n}off(A){if(null==A)return;if(!this._subIdEvents)return;const e=this._subIdEvents[A];if(e){delete this._subIdEvents[A];const t=this._eventSubs[e];t&&(delete t[A],this._eventSubsNum[e]--),this._subIdMap.removeItem(A)}}once(A,e,t){const i=this,s=this.on(A,(function(A){i.off(s),e.call(t||this,A)}),t)}hasSubs(A){return this._eventSubsNum&&this._eventSubsNum[A]>0}log(A){console.log(`[xeokit plugin ${this.id}]: ${A}`)}warn(A){console.warn(`[xeokit plugin ${this.id}]: ${A}`)}error(A){console.error(`[xeokit plugin ${this.id}]: ${A}`)}send(A,e){}destroy(){this.viewer.removePlugin(this)}}class Ua extends N{get type(){return"Spinner"}constructor(A,e={}){super(A,e),this._canvas=e.canvas,this._element=null,this._isCustom=!1,e.elementId&&(this._element=document.getElementById(e.elementId),this._element?this._adjustPosition():this.error("Can't find given Spinner HTML element: '"+e.elementId+"' - will automatically create default element")),this._element||this._createDefaultSpinner(),this.processes=0}_createDefaultSpinner(){this._injectDefaultCSS();const A=document.createElement("div"),e=A.style;e["z-index"]="9000",e.position="absolute",A.innerHTML='
    ',this._canvas.parentElement.appendChild(A),this._element=A,this._isCustom=!1,this._adjustPosition()}_injectDefaultCSS(){const A="xeokit-spinner-css";if(document.getElementById(A))return;const e=document.createElement("style");e.innerHTML=".sk-fading-circle { background: transparent; margin: 20px auto; width: 50px; height:50px; position: relative; } .sk-fading-circle .sk-circle { width: 120%; height: 120%; position: absolute; left: 0; top: 0; } .sk-fading-circle .sk-circle:before { content: ''; display: block; margin: 0 auto; width: 15%; height: 15%; background-color: #ff8800; border-radius: 100%; -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; animation: sk-circleFadeDelay 1.2s infinite ease-in-out both; } .sk-fading-circle .sk-circle2 { -webkit-transform: rotate(30deg); -ms-transform: rotate(30deg); transform: rotate(30deg); } .sk-fading-circle .sk-circle3 { -webkit-transform: rotate(60deg); -ms-transform: rotate(60deg); transform: rotate(60deg); } .sk-fading-circle .sk-circle4 { -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .sk-fading-circle .sk-circle5 { -webkit-transform: rotate(120deg); -ms-transform: rotate(120deg); transform: rotate(120deg); } .sk-fading-circle .sk-circle6 { -webkit-transform: rotate(150deg); -ms-transform: rotate(150deg); transform: rotate(150deg); } .sk-fading-circle .sk-circle7 { -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .sk-fading-circle .sk-circle8 { -webkit-transform: rotate(210deg); -ms-transform: rotate(210deg); transform: rotate(210deg); } .sk-fading-circle .sk-circle9 { -webkit-transform: rotate(240deg); -ms-transform: rotate(240deg); transform: rotate(240deg); } .sk-fading-circle .sk-circle10 { -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } .sk-fading-circle .sk-circle11 { -webkit-transform: rotate(300deg); -ms-transform: rotate(300deg); transform: rotate(300deg); } .sk-fading-circle .sk-circle12 { -webkit-transform: rotate(330deg); -ms-transform: rotate(330deg); transform: rotate(330deg); } .sk-fading-circle .sk-circle2:before { -webkit-animation-delay: -1.1s; animation-delay: -1.1s; } .sk-fading-circle .sk-circle3:before { -webkit-animation-delay: -1s; animation-delay: -1s; } .sk-fading-circle .sk-circle4:before { -webkit-animation-delay: -0.9s; animation-delay: -0.9s; } .sk-fading-circle .sk-circle5:before { -webkit-animation-delay: -0.8s; animation-delay: -0.8s; } .sk-fading-circle .sk-circle6:before { -webkit-animation-delay: -0.7s; animation-delay: -0.7s; } .sk-fading-circle .sk-circle7:before { -webkit-animation-delay: -0.6s; animation-delay: -0.6s; } .sk-fading-circle .sk-circle8:before { -webkit-animation-delay: -0.5s; animation-delay: -0.5s; } .sk-fading-circle .sk-circle9:before { -webkit-animation-delay: -0.4s; animation-delay: -0.4s; } .sk-fading-circle .sk-circle10:before { -webkit-animation-delay: -0.3s; animation-delay: -0.3s; } .sk-fading-circle .sk-circle11:before { -webkit-animation-delay: -0.2s; animation-delay: -0.2s; } .sk-fading-circle .sk-circle12:before { -webkit-animation-delay: -0.1s; animation-delay: -0.1s; } @-webkit-keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } } @keyframes sk-circleFadeDelay { 0%, 39%, 100% { opacity: 0; } 40% { opacity: 1; } }",e.id=A,document.body.appendChild(e)}_adjustPosition(){if(this._isCustom)return;const A=this._canvas,e=this._element,t=e.style;t.left=A.offsetLeft+.5*A.clientWidth-.5*e.clientWidth+"px",t.top=A.offsetTop+.5*A.clientHeight-.5*e.clientHeight+"px"}set processes(A){if(A=A||0,this._processes===A)return;if(A<0)return;const e=this._processes;this._processes=A;const t=this._element;t&&(t.style.visibility=this._processes>0?"visible":"hidden"),this.fire("processes",this._processes),0===this._processes&&this._processes!==e&&this.fire("zeroProcesses",this._processes)}get processes(){return this._processes}_destroy(){this._element&&!this._isCustom&&(this._element.parentNode.removeChild(this._element),this._element=null);const A=document.getElementById("xeokit-spinner-css");A&&A.parentNode.removeChild(A)}}const Ra=["webgl2","experimental-webgl","webkit-3d","moz-webgl","moz-glweb20"];class ba extends N{constructor(A,e={}){super(A,e),this._backgroundColor=g.vec3([e.backgroundColor?e.backgroundColor[0]:1,e.backgroundColor?e.backgroundColor[1]:1,e.backgroundColor?e.backgroundColor[2]:1]),this._backgroundColorFromAmbientLight=!!e.backgroundColorFromAmbientLight,this.canvas=e.canvas,this.gl=null,this.webgl2=!1,this.transparent=!!e.transparent,this.contextAttr=e.contextAttr||{},this.contextAttr.alpha=this.transparent,this.contextAttr.preserveDrawingBuffer=!!this.contextAttr.preserveDrawingBuffer,this.contextAttr.stencil=!1,this.contextAttr.premultipliedAlpha=!!this.contextAttr.premultipliedAlpha,this.contextAttr.antialias=!1!==this.contextAttr.antialias,this.resolutionScale=e.resolutionScale,this.canvas.width=Math.round(this.canvas.clientWidth*this._resolutionScale),this.canvas.height=Math.round(this.canvas.clientHeight*this._resolutionScale),this.boundary=[this.canvas.offsetLeft,this.canvas.offsetTop,this.canvas.clientWidth,this.canvas.clientHeight],this._initWebGL(e);const t=this;this.canvas.addEventListener("webglcontextlost",this._webglcontextlostListener=function(A){console.time("webglcontextrestored"),t.scene._webglContextLost(),t.fire("webglcontextlost"),A.preventDefault()},!1),this.canvas.addEventListener("webglcontextrestored",this._webglcontextrestoredListener=function(A){t._initWebGL(),t.gl&&(t.scene._webglContextRestored(t.gl),t.fire("webglcontextrestored",t.gl),A.preventDefault()),console.timeEnd("webglcontextrestored")},!1);let i=!0;new ResizeObserver((A=>{for(const e of A)e.contentBoxSize&&(i=!0)})).observe(this.canvas),this._tick=this.scene.on("tick",(()=>{i&&(i=!1,t.canvas.width=Math.round(t.canvas.clientWidth*t._resolutionScale),t.canvas.height=Math.round(t.canvas.clientHeight*t._resolutionScale),t.boundary[0]=t.canvas.offsetLeft,t.boundary[1]=t.canvas.offsetTop,t.boundary[2]=t.canvas.clientWidth,t.boundary[3]=t.canvas.clientHeight,t.fire("boundary",t.boundary))})),this._spinner=new Ua(this.scene,{canvas:this.canvas,elementId:e.spinnerElementId})}get type(){return"Canvas"}get backgroundColorFromAmbientLight(){return this._backgroundColorFromAmbientLight}set backgroundColorFromAmbientLight(A){this._backgroundColorFromAmbientLight=!1!==A,this.glRedraw()}get backgroundColor(){return this._backgroundColor}set backgroundColor(A){A?(this._backgroundColor[0]=A[0],this._backgroundColor[1]=A[1],this._backgroundColor[2]=A[2]):(this._backgroundColor[0]=1,this._backgroundColor[1]=1,this._backgroundColor[2]=1),this.glRedraw()}get resolutionScale(){return this._resolutionScale}set resolutionScale(A){if((A=A||1)===this._resolutionScale)return;this._resolutionScale=A;const e=this.canvas;e.width=Math.round(e.clientWidth*this._resolutionScale),e.height=Math.round(e.clientHeight*this._resolutionScale),this.glRedraw()}get spinner(){return this._spinner}_createCanvas(){const A="xeokit-canvas-"+g.createUUID(),e=document.getElementsByTagName("body")[0],t=document.createElement("div"),i=t.style;i.height="100%",i.width="100%",i.padding="0",i.margin="0",i.background="rgba(0,0,0,0);",i.float="left",i.left="0",i.top="0",i.position="absolute",i.opacity="1.0",i["z-index"]="-10000",t.innerHTML+='',e.appendChild(t),this.canvas=document.getElementById(A)}_getElementXY(A){let e=0,t=0;for(;A;)e+=A.offsetLeft-A.scrollLeft,t+=A.offsetTop-A.scrollTop,A=A.offsetParent;return{x:e,y:t}}_initWebGL(){if(!this.gl)for(let A=0;!this.gl&&A-e){t._setVisible(!1);continue}const o=t.canvasPos,r=o[0],c=o[1];r+10<0||c+10<0||r-10>i||c-10>s?t._setVisible(!1):!t.entity||t.entity.visible?t.occludable?(this.occlusionTestList[this.lenOcclusionTestList++]=t,this.pixels[n++]=r,this.pixels[n++]=c):t._setVisible(!0):t._setVisible(!1)}}_updateActiveSectionPlanes(){const A=this.scene._sectionPlanesState.sectionPlanes,e=A.length;if(e>0)for(let t=0;t{this._occlusionTestListDirty=!0})),this._onCameraProjMatrix=A.camera.on("projMatrix",(()=>{this._occlusionTestListDirty=!0})),this._onCanvasBoundary=A.canvas.on("boundary",(()=>{this._occlusionTestListDirty=!0}))}addMarker(A){const e=A.origin.join();let t=this._occlusionLayers[e];t||(t=new Pa(this._scene,A.origin),this._occlusionLayers[t.originHash]=t,this._occlusionLayersListDirty=!0),t.addMarker(A),this._markersToOcclusionLayersMap[A.id]=t,this._occlusionTestListDirty=!0}markerWorldPosUpdated(A){const e=this._markersToOcclusionLayersMap[A.id];if(!e)return;const t=A.origin.join();if(t!==e.originHash){1===e.numMarkers?(e.destroy(),delete this._occlusionLayers[e.originHash],this._occlusionLayersListDirty=!0):e.removeMarker(A);let i=this._occlusionLayers[t];i||(i=new Pa(this._scene,A.origin),this._occlusionLayers[t]=i,this._occlusionLayersListDirty=!0),i.addMarker(A),this._markersToOcclusionLayersMap[A.id]=i}else e.markerWorldPosUpdated(A)}removeMarker(A){const e=A.origin.join();let t=this._occlusionLayers[e];t&&(1===t.numMarkers?(t.destroy(),delete this._occlusionLayers[t.originHash],this._occlusionLayersListDirty=!0):t.removeMarker(A),delete this._markersToOcclusionLayersMap[A.id])}get needOcclusionTest(){return this._occlusionTestListDirty}bindRenderBuf(){const A=[this._scene.canvas.canvas.id,this._scene._sectionPlanesState.getHash()].join(";");if(A!==this._shaderSourceHash&&(this._shaderSourceHash=A,this._shaderSourceDirty=!0),this._shaderSourceDirty&&(this._buildShaderSource(),this._shaderSourceDirty=!1,this._programDirty=!0),this._programDirty&&(this._buildProgram(),this._programDirty=!1,this._occlusionTestListDirty=!0),this._occlusionLayersListDirty&&(this._buildOcclusionLayersList(),this._occlusionLayersListDirty=!1),this._occlusionTestListDirty){for(let A=0,e=this._occlusionLayersList.length;A0,t=[];return t.push("#version 300 es"),t.push("// OcclusionTester vertex shader"),t.push("in vec3 position;"),t.push("uniform mat4 modelMatrix;"),t.push("uniform mat4 viewMatrix;"),t.push("uniform mat4 projMatrix;"),A.logarithmicDepthBufferEnabled&&(t.push("uniform float logDepthBufFC;"),t.push("out float vFragDepth;")),e&&t.push("out vec4 vWorldPosition;"),t.push("void main(void) {"),t.push("vec4 worldPosition = vec4(position, 1.0); "),t.push(" vec4 viewPosition = viewMatrix * worldPosition;"),e&&t.push(" vWorldPosition = worldPosition;"),t.push(" vec4 clipPos = projMatrix * viewPosition;"),t.push(" gl_PointSize = 20.0;"),A.logarithmicDepthBufferEnabled?t.push("vFragDepth = 1.0 + clipPos.w;"):A.markerZOffset<0&&t.push("clipPos.z += "+A.markerZOffset+";"),t.push(" gl_Position = clipPos;"),t.push("}"),t}_buildFragmentShaderSource(){const A=this._scene,e=A._sectionPlanesState,t=e.sectionPlanes.length>0,i=[];if(i.push("#version 300 es"),i.push("// OcclusionTester fragment shader"),i.push("#ifdef GL_FRAGMENT_PRECISION_HIGH"),i.push("precision highp float;"),i.push("precision highp int;"),i.push("#else"),i.push("precision mediump float;"),i.push("precision mediump int;"),i.push("#endif"),A.logarithmicDepthBufferEnabled&&(i.push("uniform float logDepthBufFC;"),i.push("in float vFragDepth;")),t){i.push("in vec4 vWorldPosition;");for(let A=0;A 0.0) { discard; }")}return A.logarithmicDepthBufferEnabled&&i.push("gl_FragDepth = log2( vFragDepth ) * logDepthBufFC * 0.5;"),i.push(" outColor = vec4(1.0, 0.0, 0.0, 1.0); "),i.push("}"),i}_buildProgram(){this._program&&this._program.destroy();const A=this._scene,e=A.canvas.gl,t=A._sectionPlanesState;if(this._program=new de(e,this._shaderSource),this._program.errors)return void(this.errors=this._program.errors);const i=this._program;this._uViewMatrix=i.getLocation("viewMatrix"),this._uProjMatrix=i.getLocation("projMatrix"),this._uSectionPlanes=[];for(let A=0,e=t.sectionPlanes.length;A0){const A=i.sectionPlanes;for(let i=0;i{let A=!0;this._scene.camera.on("projMatrix",(function(){A=!0}));const e=g.mat4();return()=>(A&&g.inverseMat4(i.camera.projMatrix,e),e)})());const e=this._scene.canvas.gl,t=this._program,i=this._scene,s=i.sao,n=e.drawingBufferWidth,o=e.drawingBufferHeight,r=i.camera.project._state,c=r.near,a=r.far,h=r.matrix,B=this._getInverseProjectMat(),l=Math.random(),E="perspective"===i.camera.projection;Sa[0]=n,Sa[1]=o,e.viewport(0,0,n,o),e.clearColor(0,0,0,1),e.disable(e.DEPTH_TEST),e.disable(e.BLEND),e.frontFace(e.CCW),e.clear(e.COLOR_BUFFER_BIT),t.bind(),e.uniform1f(this._uCameraNear,c),e.uniform1f(this._uCameraFar,a),e.uniformMatrix4fv(this._uCameraProjectionMatrix,!1,h),e.uniformMatrix4fv(this._uCameraInverseProjectionMatrix,!1,B),e.uniform1i(this._uPerspective,E),e.uniform1f(this._uScale,s.scale*(a/5)),e.uniform1f(this._uIntensity,s.intensity),e.uniform1f(this._uBias,s.bias),e.uniform1f(this._uKernelRadius,s.kernelRadius),e.uniform1f(this._uMinResolution,s.minResolution),e.uniform2fv(this._uViewport,Sa),e.uniform1f(this._uRandomSeed,l);const Q=A.getDepthTexture();t.bindTexture(this._uDepthTexture,Q,0),this._aUV.bindArrayBuffer(this._uvBuf),this._aPosition.bindArrayBuffer(this._positionsBuf),this._indicesBuf.bind(),e.drawElements(e.TRIANGLES,this._indicesBuf.numItems,this._indicesBuf.itemType,0)}_build(){let A=!1;const e=this._scene.sao;if(e.numSamples!==this._numSamples&&(this._numSamples=Math.floor(e.numSamples),A=!0),!A&&!this._rebuild)return;this._rebuild=!1;const t=this._scene.canvas.gl;if(this._program&&(this._program.destroy(),this._program=null),this._program=new de(t,{vertex:["#version 300 es\n precision highp float;\n precision highp int;\n \n in vec3 aPosition;\n in vec2 aUV; \n \n out vec2 vUV;\n \n void main () {\n gl_Position = vec4(aPosition, 1.0);\n vUV = aUV;\n }"],fragment:[`#version 300 es \n precision highp float;\n precision highp int; \n \n #define NORMAL_TEXTURE 0\n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define EPSILON 1e-6\n #define NUM_SAMPLES ${this._numSamples}\n #define NUM_RINGS 4 \n \n in vec2 vUV;\n \n uniform sampler2D uDepthTexture;\n \n uniform float uCameraNear;\n uniform float uCameraFar;\n uniform mat4 uProjectMatrix;\n uniform mat4 uInverseProjectMatrix;\n \n uniform bool uPerspective;\n\n uniform float uScale;\n uniform float uIntensity;\n uniform float uBias;\n uniform float uKernelRadius;\n uniform float uMinResolution;\n uniform vec2 uViewport;\n uniform float uRandomSeed;\n\n float pow2( const in float x ) { return x*x; }\n \n highp float rand( const in vec2 uv ) {\n const highp float a = 12.9898, b = 78.233, c = 43758.5453;\n highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n return fract(sin(sn) * c);\n }\n\n vec3 packNormalToRGB( const in vec3 normal ) {\n return normalize( normal ) * 0.5 + 0.5;\n }\n\n vec3 unpackRGBToNormal( const in vec3 rgb ) {\n return 2.0 * rgb.xyz - 1.0;\n }\n\n const float packUpscale = 256. / 255.;\n const float unpackDownScale = 255. / 256.; \n\n const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\n const vec4 unPackFactors = unpackDownScale / vec4( packFactors, 1. ); \n\n const float shiftRights = 1. / 256.;\n\n vec4 packFloatToRGBA( const in float v ) {\n vec4 r = vec4( fract( v * packFactors ), v );\n r.yzw -= r.xyz * shiftRights; \n return r * packUpscale;\n }\n\n float unpackRGBAToFloat( const in vec4 v ) { \n return dot( floor( v * 255.0 + 0.5 ) / 255.0, unPackFactors );\n }\n \n float perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n return ( near * far ) / ( ( far - near ) * invClipZ - far );\n }\n\n float orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n return linearClipZ * ( near - far ) - near;\n }\n \n float getDepth( const in vec2 screenPosition ) {\n return vec4(texture(uDepthTexture, screenPosition)).r;\n }\n\n float getViewZ( const in float depth ) {\n if (uPerspective) {\n return perspectiveDepthToViewZ( depth, uCameraNear, uCameraFar );\n } else {\n return orthographicDepthToViewZ( depth, uCameraNear, uCameraFar );\n }\n }\n\n vec3 getViewPos( const in vec2 screenPos, const in float depth, const in float viewZ ) {\n \tfloat clipW = uProjectMatrix[2][3] * viewZ + uProjectMatrix[3][3];\n \tvec4 clipPosition = vec4( ( vec3( screenPos, depth ) - 0.5 ) * 2.0, 1.0 );\n \tclipPosition *= clipW; \n \treturn ( uInverseProjectMatrix * clipPosition ).xyz;\n }\n\n vec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPos ) { \n return normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );\n }\n\n float scaleDividedByCameraFar;\n float minResolutionMultipliedByCameraFar;\n\n float getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) {\n \tvec3 viewDelta = sampleViewPosition - centerViewPosition;\n \tfloat viewDistance = length( viewDelta );\n \tfloat scaledScreenDistance = scaleDividedByCameraFar * viewDistance;\n \treturn max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - uBias) / (1.0 + pow2( scaledScreenDistance ) );\n }\n\n const float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );\n const float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );\n\n float getAmbientOcclusion( const in vec3 centerViewPosition ) {\n \n \tscaleDividedByCameraFar = uScale / uCameraFar;\n \tminResolutionMultipliedByCameraFar = uMinResolution * uCameraFar;\n \tvec3 centerViewNormal = getViewNormal( centerViewPosition, vUV );\n\n \tfloat angle = rand( vUV + uRandomSeed ) * PI2;\n \tvec2 radius = vec2( uKernelRadius * INV_NUM_SAMPLES ) / uViewport;\n \tvec2 radiusStep = radius;\n\n \tfloat occlusionSum = 0.0;\n \tfloat weightSum = 0.0;\n\n \tfor( int i = 0; i < NUM_SAMPLES; i ++ ) {\n \t\tvec2 sampleUv = vUV + vec2( cos( angle ), sin( angle ) ) * radius;\n \t\tradius += radiusStep;\n \t\tangle += ANGLE_STEP;\n\n \t\tfloat sampleDepth = getDepth( sampleUv );\n \t\tif( sampleDepth >= ( 1.0 - EPSILON ) ) {\n \t\t\tcontinue;\n \t\t}\n\n \t\tfloat sampleViewZ = getViewZ( sampleDepth );\n \t\tvec3 sampleViewPosition = getViewPos( sampleUv, sampleDepth, sampleViewZ );\n \t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );\n \t\tweightSum += 1.0;\n \t}\n\n \tif( weightSum == 0.0 ) discard;\n\n \treturn occlusionSum * ( uIntensity / weightSum );\n }\n\n out vec4 outColor;\n \n void main() {\n \n \tfloat centerDepth = getDepth( vUV );\n \t\n \tif( centerDepth >= ( 1.0 - EPSILON ) ) {\n \t\tdiscard;\n \t}\n\n \tfloat centerViewZ = getViewZ( centerDepth );\n \tvec3 viewPosition = getViewPos( vUV, centerDepth, centerViewZ );\n\n \tfloat ambientOcclusion = getAmbientOcclusion( viewPosition );\n \n \toutColor = packFloatToRGBA( 1.0- ambientOcclusion );\n }`]}),this._program.errors)return console.error(this._program.errors.join("\n")),void(this._programError=!0);const i=new Float32Array([1,1,0,1,0,0,1,0]),s=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),n=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new q(t,t.ARRAY_BUFFER,s,s.length,3,t.STATIC_DRAW),this._uvBuf=new q(t,t.ARRAY_BUFFER,i,i.length,2,t.STATIC_DRAW),this._indicesBuf=new q(t,t.ELEMENT_ARRAY_BUFFER,n,n.length,1,t.STATIC_DRAW),this._program.bind(),this._uCameraNear=this._program.getLocation("uCameraNear"),this._uCameraFar=this._program.getLocation("uCameraFar"),this._uCameraProjectionMatrix=this._program.getLocation("uProjectMatrix"),this._uCameraInverseProjectionMatrix=this._program.getLocation("uInverseProjectMatrix"),this._uPerspective=this._program.getLocation("uPerspective"),this._uScale=this._program.getLocation("uScale"),this._uIntensity=this._program.getLocation("uIntensity"),this._uBias=this._program.getLocation("uBias"),this._uKernelRadius=this._program.getLocation("uKernelRadius"),this._uMinResolution=this._program.getLocation("uMinResolution"),this._uViewport=this._program.getLocation("uViewport"),this._uRandomSeed=this._program.getLocation("uRandomSeed"),this._aPosition=this._program.getAttribute("aPosition"),this._aUV=this._program.getAttribute("aUV"),this._dirty=!1}destroy(){this._program&&(this._program.destroy(),this._program=null)}}const Oa=new Float32Array(Ka(17,[0,1])),_a=new Float32Array(Ka(17,[1,0])),Wa=new Float32Array(function(A,e){const t=[];for(let i=0;i<=A;i++)t.push(Va(i,e));return t}(17,4)),Xa=new Float32Array(2);class La{constructor(A){this._scene=A,this._program=null,this._programError=!1,this._aPosition=null,this._aUV=null,this._uDepthTexture="uDepthTexture",this._uOcclusionTexture="uOcclusionTexture",this._uViewport=null,this._uCameraNear=null,this._uCameraFar=null,this._uCameraProjectionMatrix=null,this._uCameraInverseProjectionMatrix=null,this._uvBuf=null,this._positionsBuf=null,this._indicesBuf=null,this.init()}init(){const A=this._scene.canvas.gl;if(this._program=new de(A,{vertex:["#version 300 es\n precision highp float;\n precision highp int;\n \n in vec3 aPosition;\n in vec2 aUV;\n uniform vec2 uViewport;\n out vec2 vUV;\n out vec2 vInvSize;\n void main () {\n vUV = aUV;\n vInvSize = 1.0 / uViewport;\n gl_Position = vec4(aPosition, 1.0);\n }"],fragment:["#version 300 es\n precision highp float;\n precision highp int;\n \n #define PI 3.14159265359\n #define PI2 6.28318530718\n #define EPSILON 1e-6\n\n #define KERNEL_RADIUS 16\n\n in vec2 vUV;\n in vec2 vInvSize;\n \n uniform sampler2D uDepthTexture;\n uniform sampler2D uOcclusionTexture; \n \n uniform float uCameraNear;\n uniform float uCameraFar; \n uniform float uDepthCutoff;\n\n uniform vec2 uSampleOffsets[ KERNEL_RADIUS + 1 ];\n uniform float uSampleWeights[ KERNEL_RADIUS + 1 ];\n\n const float unpackDownscale = 255. / 256.; \n\n const vec3 packFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\n const vec4 unpackFactors = unpackDownscale / vec4( packFactors, 1. ); \n\n const float packUpscale = 256. / 255.;\n \n const float shiftRights = 1. / 256.;\n \n float unpackRGBAToFloat( const in vec4 v ) {\n return dot( floor( v * 255.0 + 0.5 ) / 255.0, unpackFactors );\n } \n\n vec4 packFloatToRGBA( const in float v ) {\n vec4 r = vec4( fract( v * packFactors ), v );\n r.yzw -= r.xyz * shiftRights; \n return r * packUpscale;\n }\n\n float viewZToOrthographicDepth( const in float viewZ) {\n return ( viewZ + uCameraNear ) / ( uCameraNear - uCameraFar );\n }\n \n float orthographicDepthToViewZ( const in float linearClipZ) {\n return linearClipZ * ( uCameraNear - uCameraFar ) - uCameraNear;\n }\n\n float viewZToPerspectiveDepth( const in float viewZ) {\n return (( uCameraNear + viewZ ) * uCameraFar ) / (( uCameraFar - uCameraNear ) * viewZ );\n }\n \n float perspectiveDepthToViewZ( const in float invClipZ) {\n return ( uCameraNear * uCameraFar ) / ( ( uCameraFar - uCameraNear ) * invClipZ - uCameraFar );\n }\n\n float getDepth( const in vec2 screenPosition ) {\n return vec4(texture(uDepthTexture, screenPosition)).r;\n }\n\n float getViewZ( const in float depth ) {\n return perspectiveDepthToViewZ( depth );\n }\n\n out vec4 outColor;\n \n void main() {\n \n float depth = getDepth( vUV );\n if( depth >= ( 1.0 - EPSILON ) ) {\n discard;\n }\n\n float centerViewZ = -getViewZ( depth );\n bool rBreak = false;\n bool lBreak = false;\n\n float weightSum = uSampleWeights[0];\n float occlusionSum = unpackRGBAToFloat(texture( uOcclusionTexture, vUV )) * weightSum;\n\n for( int i = 1; i <= KERNEL_RADIUS; i ++ ) {\n\n float sampleWeight = uSampleWeights[i];\n vec2 sampleUVOffset = uSampleOffsets[i] * vInvSize;\n\n vec2 sampleUV = vUV + sampleUVOffset;\n float viewZ = -getViewZ( getDepth( sampleUV ) );\n\n if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {\n rBreak = true;\n }\n\n if( ! rBreak ) {\n occlusionSum += unpackRGBAToFloat(texture( uOcclusionTexture, sampleUV )) * sampleWeight;\n weightSum += sampleWeight;\n }\n\n sampleUV = vUV - sampleUVOffset;\n viewZ = -getViewZ( getDepth( sampleUV ) );\n\n if( abs( viewZ - centerViewZ ) > uDepthCutoff ) {\n lBreak = true;\n }\n\n if( ! lBreak ) {\n occlusionSum += unpackRGBAToFloat(texture( uOcclusionTexture, sampleUV )) * sampleWeight;\n weightSum += sampleWeight;\n }\n }\n\n outColor = packFloatToRGBA(occlusionSum / weightSum);\n }"]}),this._program.errors)return console.error(this._program.errors.join("\n")),void(this._programError=!0);const e=new Float32Array([1,1,0,1,0,0,1,0]),t=new Float32Array([1,1,0,-1,1,0,-1,-1,0,1,-1,0]),i=new Uint32Array([0,1,2,0,2,3]);this._positionsBuf=new q(A,A.ARRAY_BUFFER,t,t.length,3,A.STATIC_DRAW),this._uvBuf=new q(A,A.ARRAY_BUFFER,e,e.length,2,A.STATIC_DRAW),this._indicesBuf=new q(A,A.ELEMENT_ARRAY_BUFFER,i,i.length,1,A.STATIC_DRAW),this._program.bind(),this._uViewport=this._program.getLocation("uViewport"),this._uCameraNear=this._program.getLocation("uCameraNear"),this._uCameraFar=this._program.getLocation("uCameraFar"),this._uDepthCutoff=this._program.getLocation("uDepthCutoff"),this._uSampleOffsets=A.getUniformLocation(this._program.handle,"uSampleOffsets"),this._uSampleWeights=A.getUniformLocation(this._program.handle,"uSampleWeights"),this._aPosition=this._program.getAttribute("aPosition"),this._aUV=this._program.getAttribute("aUV")}render(A,e,t){if(this._programError)return;this._getInverseProjectMat||(this._getInverseProjectMat=(()=>{let A=!0;this._scene.camera.on("projMatrix",(function(){A=!0}));const e=g.mat4();return()=>(A&&g.inverseMat4(n.camera.projMatrix,e),e)})());const i=this._scene.canvas.gl,s=this._program,n=this._scene,o=i.drawingBufferWidth,r=i.drawingBufferHeight,c=n.camera.project._state,a=c.near,h=c.far;i.viewport(0,0,o,r),i.clearColor(0,0,0,1),i.enable(i.DEPTH_TEST),i.disable(i.BLEND),i.frontFace(i.CCW),i.clear(i.COLOR_BUFFER_BIT|i.DEPTH_BUFFER_BIT),s.bind(),Xa[0]=o,Xa[1]=r,i.uniform2fv(this._uViewport,Xa),i.uniform1f(this._uCameraNear,a),i.uniform1f(this._uCameraFar,h),i.uniform1f(this._uDepthCutoff,.01),0===t?i.uniform2fv(this._uSampleOffsets,_a):i.uniform2fv(this._uSampleOffsets,Oa),i.uniform1fv(this._uSampleWeights,Wa);const B=A.getDepthTexture(),l=e.getTexture();s.bindTexture(this._uDepthTexture,B,0),s.bindTexture(this._uOcclusionTexture,l,1),this._aUV.bindArrayBuffer(this._uvBuf),this._aPosition.bindArrayBuffer(this._positionsBuf),this._indicesBuf.bind(),i.drawElements(i.TRIANGLES,this._indicesBuf.numItems,this._indicesBuf.itemType,0)}destroy(){this._program.destroy()}}function Va(A,e){return Math.exp(-A*A/(e*e*2))/(Math.sqrt(2*Math.PI)*e)}function Ka(A,e){const t=[];for(let i=0;i<=A;i++)t.push(e[0]*i),t.push(e[1]*i);return t}class Za{constructor(A){this.scene=A,this._renderBuffersBasic={},this._renderBuffersScaled={}}getRenderBuffer(A,e){const t=1===this.scene.canvas.resolutionScale?this._renderBuffersBasic:this._renderBuffersScaled;let i=t[A];return i||(i=new ua(this.scene.canvas.canvas,this.scene.canvas.gl,e),t[A]=i),i}destroy(){for(let A in this._renderBuffersBasic)this._renderBuffersBasic[A].destroy();for(let A in this._renderBuffersScaled)this._renderBuffersScaled[A].destroy()}}const qa=g.vec3([0,0,0]),$a=function(e,t){t=t||{};const i=new ka(e),s=e.canvas.canvas,n=e.canvas.gl,o=!!t.transparent,r=t.alphaDepthMask,c=new A({});let a={},h={},B=[],E=[],Q=[],M=!0,u=!0,w=!0,d=!0,C=!0,x=!0,F=!0,p=!0;const I=new Za(e);let f=!1;const Y=new ja(e),D=new La(e);function m(){M&&(!function(){for(let A in a)if(a.hasOwnProperty(A)){const e=a[A],t=e.drawableMap,i=e.drawableListPreCull;let s=0;for(let A in t)t.hasOwnProperty(A)&&(i[s++]=t[A]);i.length=s}}(),M=!1,u=!0),u&&(!function(){let A=0;for(let e in a)if(a.hasOwnProperty(e)){const t=a[e].drawableListPreCull;for(let e=0,i=t.length;eA.renderOrder-e.renderOrder))}(),u=!1,w=!0),w&&function(){let A=0,e=0;for(let t=0,i=B.length;t0)for(i.withSAO=!0,U=0;U0)for(U=0;U0)for(U=0;U0)for(U=0;U0||b>0||Q>0||F>0){if(n.enable(n.CULL_FACE),n.enable(n.BLEND),o?(n.blendEquation(n.FUNC_ADD),n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA)):(n.blendEquation(n.FUNC_ADD),n.blendFunc(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA)),i.backfaces=!1,r||n.depthMask(!1),(Q>0||F>0)&&n.blendFunc(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA),F>0)for(U=0;U0){const A=i.pickOrigin||e.camera.eye,t=c.map((e=>({drawable:e,distSq:g.distVec3(e.origin||qa,A)})));for(t.sort(((A,e)=>e.distSq-A.distSq)),U=0;U0)for(U=0;U0)for(U=0;U0||P>0){if(i.lastProgramId=null,e.highlightMaterial.glowThrough&&n.clear(n.DEPTH_BUFFER_BIT),P>0)for(U=0;U0)for(U=0;U0||v>0||k>0){if(i.lastProgramId=null,e.selectedMaterial.glowThrough&&n.clear(n.DEPTH_BUFFER_BIT),n.enable(n.BLEND),o?(n.blendEquation(n.FUNC_ADD),n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA)):n.blendFunc(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA),n.enable(n.CULL_FACE),v>0)for(U=0;U0)for(U=0;U0||S>0){if(i.lastProgramId=null,e.selectedMaterial.glowThrough&&n.clear(n.DEPTH_BUFFER_BIT),S>0)for(U=0;U0)for(U=0;U0||O>0){if(i.lastProgramId=null,e.selectedMaterial.glowThrough&&n.clear(n.DEPTH_BUFFER_BIT),n.enable(n.CULL_FACE),n.enable(n.BLEND),o?(n.blendEquation(n.FUNC_ADD),n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA)):n.blendFunc(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA),O>0)for(U=0;U0)for(U=0;U0&&(n.clear(n.DEPTH_BUFFER_BIT),k(Q));const P=Date.now(),G=l.frame;G.renderTime=(P-b)/1e3,G.drawElements=i.drawElements,G.drawArrays=i.drawArrays,G.useProgram=i.useProgram,G.bindTexture=i.bindTexture,G.bindArray=i.bindArray;const v=Ce.MAX_TEXTURE_IMAGE_UNITS;for(let A=0;A0&&(n.clear(n.DEPTH_BUFFER_BIT),l(Q));const M=A.read(0,0),u=M[0]+(M[1]<<8)+(M[2]<<16)+(M[3]<<24);if(u<0)return;const w=c.items[u];return w}(f,l,x,F,w,d);if(!Y)return f.unbind(),null;const D=Y.delegatePickedEntity?Y.delegatePickedEntity():Y;return D?(w.pickSurface&&(Y.canPickTriangle&&Y.canPickTriangle()?(!function(A,t,s,o,r,c){if(!t.drawPickTriangles)return;const a=e.canvas.resolutionScale;i.reset(),i.backfaces=!0,i.frontface=!0,i.pickOrigin=c.origin,i.pickViewMatrix=o,i.pickProjMatrix=r,i.pickClipPos=[z(s[0]*a,n.drawingBufferWidth),T(s[1]*a,n.drawingBufferHeight)],n.viewport(0,0,1,1),n.clearColor(0,0,0,0),n.enable(n.DEPTH_TEST),n.disable(n.CULL_FACE),n.disable(n.BLEND),n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT),t.drawPickTriangles(i);const h=A.read(0,0);let B=h[0]+256*h[1]+256*h[2]*256+256*h[3]*256*256;B*=3,c.primIndex=B}(f,Y,l,x,F,d),Y.pickTriangleSurface(x,F,p,d),d.pickSurfacePrecision=!1):Y.canPickWorldPos&&Y.canPickWorldPos()&&(N(f,Y,l,x,F,B,d),!1!==w.pickSurfaceNormal&&function(A,t,s,o,r,c){const a=e.canvas.resolutionScale;i.reset(),i.backfaces=!0,i.frontface=!0,i.pickOrigin=c.origin,i.pickViewMatrix=o,i.pickProjMatrix=r,i.pickClipPos=[z(s[0]*a,n.drawingBufferWidth),T(s[1]*a,n.drawingBufferHeight)];const h=I.getRenderBuffer("pick-normal",{size:[3,3]});h.bind(n.RGBA32I),n.viewport(0,0,h.size[0],h.size[1]),n.enable(n.DEPTH_TEST),n.disable(n.CULL_FACE),n.disable(n.BLEND),n.clear(n.DEPTH_BUFFER_BIT),n.clearBufferiv(n.COLOR,0,new Int32Array([0,0,0,0])),t.drawPickNormals(i);const B=h.read(1,1,n.RGBA_INTEGER,n.INT,Int32Array,4);h.unbind();const l=[B[0]/g.MAX_INT,B[1]/g.MAX_INT,B[2]/g.MAX_INT];g.normalizeVec3(l),c.worldNormal=l}(0,Y,l,x,F,d),d.pickSurfacePrecision=!1)),f.unbind(),d.entity=D,d):(f.unbind(),null)}}();const N=function(){const A=g.vec4(),t=g.vec4(),o=g.vec4(),r=g.vec4(),c=g.vec4(),a=g.mat4(),h=g.mat4(),B=g.mat4();return function(l,E,Q,M,u,w,d){const C=e.canvas.resolutionScale;i.reset(),i.backfaces=!0,i.frontface=!0,i.pickOrigin=d.origin,i.pickViewMatrix=M,i.pickProjMatrix=u,i.pickZNear=w[0],i.pickZFar=w[1],i.pickElementsCount=E.pickElementsCount,i.pickElementsOffset=E.pickElementsOffset,i.pickClipPos=[z(Q[0]*C,n.drawingBufferWidth),T(Q[1]*C,n.drawingBufferHeight)],n.viewport(0,0,1,1),n.clearColor(0,0,0,0),n.depthMask(!0),n.enable(n.DEPTH_TEST),n.disable(n.CULL_FACE),n.disable(n.BLEND),n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT),E.drawPickDepths(i);const x=function(A){const e=[A[0]/256,A[1]/256,A[2]/256,A[3]/256],t=[1/16777216,1/65536,1/256,1];return g.dotVec4(e,t)}(l.read(0,0)),F=(Q[0]-s.clientWidth/2)/(s.clientWidth/2),p=-(Q[1]-s.clientHeight/2)/(s.clientHeight/2),I=E.origin;let f;if(I){const A=UA(M,I,a);f=g.mulMat4(u,A,h)}else f=g.mulMat4(u,M,h);const Y=g.inverseMat4(f,B);A[0]=F,A[1]=p,A[2]=-1,A[3]=1;let D=g.transformVec4(Y,A);D=g.mulVec4Scalar(D,1/D[3]),t[0]=F,t[1]=p,t[2]=1,t[3]=1;let m=g.transformVec4(Y,t);m=g.mulVec4Scalar(m,1/m[3]);const J=g.subVec3(m,D,o),N=g.addVec3(D,g.mulVec4Scalar(J,x,r),c);I&&g.addVec3(N,I),d.worldPos=N}}();function y(A){A.snapPickLayerParams=A.snapPickLayerParams||[],A.snapPickLayerNumber=A.snapPickLayerParams.length;for(let e=0,t=E.length;e0){const e=Math.floor(A/4),t=w.size[0],i=e%t-Math.floor(t/2),s=Math.floor(e/t)-Math.floor(t/2),n=Math.sqrt(Math.pow(i,2)+Math.pow(s,2));b.push({x:i,y:s,dist:n,isVertex:l&&Q?F[A+3]>x.length/2:l,result:[F[A+0],F[A+1],F[A+2],F[A+3]],normal:[p[A+0],p[A+1],p[A+2],p[A+3]],id:[f[A+0],f[A+1],f[A+2],f[A+3]]})}let k=null,P=null,G=null,v=null;if(b.length>0){b.sort(((A,e)=>A.isVertex!==e.isVertex?A.isVertex?-1:1:A.dist-e.dist)),v=b[0].isVertex?"vertex":"edge";const A=b[0].result,e=b[0].normal,t=b[0].id,i=x[A[3]],s=i.origin,n=i.coordinateScale;P=g.normalizeVec3([e[0]/g.MAX_INT,e[1]/g.MAX_INT,e[2]/g.MAX_INT]),k=[A[0]*n[0]+s[0],A[1]*n[1]+s[1],A[2]*n[2]+s[2]],G=c.items[t[0]+(t[1]<<8)+(t[2]<<16)+(t[3]<<24)]}if(null===Y&&null==k)return null;let H=null;null!==k&&(H=e.camera.projectWorldPos(k));const S=G&&G.delegatePickedEntity?G.delegatePickedEntity():G;return!S&&m&&(m=m.delegatePickedEntity?m.delegatePickedEntity():m),s.reset(),s.snappedToEdge="edge"===v,s.snappedToVertex="vertex"===v,s.worldPos=k||Y,s.worldNormal=P||D,s.entity=S||m,s.canvasPos=o||e.camera.projectWorldPos(Y||k),s.snappedCanvasPos=H||o,s}}(),this.addMarker=function(A){this._occlusionTester=this._occlusionTester||new Ha(e,I),this._occlusionTester.addMarker(A),e.occlusionTestCountdown=0},this.markerWorldPosUpdated=function(A){this._occlusionTester.markerWorldPosUpdated(A)},this.removeMarker=function(A){this._occlusionTester.removeMarker(A)},this.doOcclusionTest=function(){if(this._occlusionTester&&this._occlusionTester.needOcclusionTest){m(),this._occlusionTester.bindRenderBuf(),i.reset(),i.backfaces=!0,i.frontface=!0,n.viewport(0,0,n.drawingBufferWidth,n.drawingBufferHeight),n.clearColor(0,0,0,0),n.enable(n.DEPTH_TEST),n.disable(n.CULL_FACE),n.disable(n.BLEND),n.clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT);for(let A=0,e=E.length;A{this.enabled&&this.keyboardEnabled&&"INPUT"!==A.target.tagName&&"TEXTAREA"!==A.target.tagName&&(A.keyCode===this.KEY_CTRL?this.ctrlDown=!0:A.keyCode===this.KEY_ALT?this.altDown=!0:A.keyCode===this.KEY_SHIFT&&(this.shiftDown=!0),this.keyDown[A.keyCode]=!0,this.fire("keydown",A.keyCode,!0))},!1),this._keyboardEventsElement.addEventListener("keyup",this._keyUpListener=A=>{this.enabled&&this.keyboardEnabled&&"INPUT"!==A.target.tagName&&"TEXTAREA"!==A.target.tagName&&(A.keyCode===this.KEY_CTRL?this.ctrlDown=!1:A.keyCode===this.KEY_ALT?this.altDown=!1:A.keyCode===this.KEY_SHIFT&&(this.shiftDown=!1),this.keyDown[A.keyCode]=!1,this.fire("keyup",A.keyCode,!0))}),this.element.addEventListener("mouseenter",this._mouseEnterListener=A=>{this.enabled&&(this.mouseover=!0,this._getMouseCanvasPos(A),this.fire("mouseenter",this.mouseCanvasPos,!0))}),this.element.addEventListener("mouseleave",this._mouseLeaveListener=A=>{this.enabled&&(this.mouseover=!1,this._getMouseCanvasPos(A),this.fire("mouseleave",this.mouseCanvasPos,!0))}),this.element.addEventListener("mousedown",this._mouseDownListener=A=>{if(this.enabled){switch(A.which){case 1:this.mouseDownLeft=!0;break;case 2:this.mouseDownMiddle=!0;break;case 3:this.mouseDownRight=!0}this._getMouseCanvasPos(A),this.element.focus(),this.fire("mousedown",this.mouseCanvasPos,!0),this.mouseover&&A.preventDefault()}}),document.addEventListener("mouseup",this._mouseUpListener=A=>{if(this.enabled){switch(A.which){case 1:this.mouseDownLeft=!1;break;case 2:this.mouseDownMiddle=!1;break;case 3:this.mouseDownRight=!1}this.fire("mouseup",this.mouseCanvasPos,!0)}},!0),document.addEventListener("click",this._clickListener=A=>{if(this.enabled){switch(A.which){case 1:case 3:this.mouseDownLeft=!1,this.mouseDownRight=!1;break;case 2:this.mouseDownMiddle=!1}this._getMouseCanvasPos(A),this.fire("click",this.mouseCanvasPos,!0),this.mouseover&&A.preventDefault()}}),document.addEventListener("dblclick",this._dblClickListener=A=>{if(this.enabled){switch(A.which){case 1:case 3:this.mouseDownLeft=!1,this.mouseDownRight=!1;break;case 2:this.mouseDownMiddle=!1}this._getMouseCanvasPos(A),this.fire("dblclick",this.mouseCanvasPos,!0),this.mouseover&&A.preventDefault()}});const A=this.scene.tickify((()=>this.fire("mousemove",this.mouseCanvasPos,!0)));this.element.addEventListener("mousemove",this._mouseMoveListener=e=>{this.enabled&&(this._getMouseCanvasPos(e),A(),this.mouseover&&e.preventDefault())}),this.element.addEventListener("contextmenu",this._contextmenuListener=A=>{this.enabled&&(this._getMouseCanvasPos(A),this.fire("contextmenu",this.mouseCanvasPos,!0))});const e=this.scene.tickify((A=>{this.fire("mousewheel",A,!0)}));this.element.addEventListener("wheel",this._mouseWheelListener=(A,t)=>{if(!this.enabled)return;const i=Math.max(-1,Math.min(1,40*-A.deltaY));e(i)},{passive:!0});{let A,e;const t=2;this.on("mousedown",(t=>{A=t[0],e=t[1]})),this.on("mouseup",(i=>{A>=i[0]-t&&A<=i[0]+t&&e>=i[1]-t&&e<=i[1]+t&&this.fire("mouseclicked",i,!0)}))}this.element.addEventListener("touchstart",this._touchstartListener=A=>{this.enabled&&[...A.changedTouches].forEach((A=>{this.fire("touchstart",[A.identifier,this._getTouchCanvasPos(A)],!0)}))}),this.element.addEventListener("touchend",this._touchendListener=A=>{this.enabled&&[...A.changedTouches].forEach((A=>{this.fire("touchend",[A.identifier,this._getTouchCanvasPos(A)],!0)}))}),this._eventsBound=!0}_unbindEvents(){this._eventsBound&&(this._keyboardEventsElement.removeEventListener("keydown",this._keyDownListener),this._keyboardEventsElement.removeEventListener("keyup",this._keyUpListener),this.element.removeEventListener("mouseenter",this._mouseEnterListener),this.element.removeEventListener("mouseleave",this._mouseLeaveListener),this.element.removeEventListener("mousedown",this._mouseDownListener),document.removeEventListener("mouseup",this._mouseDownListener),document.removeEventListener("click",this._clickListener),document.removeEventListener("dblclick",this._dblClickListener),this.element.removeEventListener("mousemove",this._mouseMoveListener),this.element.removeEventListener("contextmenu",this._contextmenuListener),this.element.removeEventListener("wheel",this._mouseWheelListener),this.element.removeEventListener("touchstart",this._touchstartListener),this.element.removeEventListener("touchend",this._touchendListener),window.OrientationChangeEvent&&window.removeEventListener("orientationchange",this._orientationchangedListener),window.DeviceMotionEvent&&window.removeEventListener("devicemotion",this._deviceMotionListener),window.DeviceOrientationEvent&&window.removeEventListener("deviceorientation",this._deviceOrientListener),this._eventsBound=!1)}_getTouchCanvasPos(A){let e=A.target,t=0,i=0;for(;e.offsetParent;)t+=e.offsetLeft,i+=e.offsetTop,e=e.offsetParent;return[A.pageX-t,A.pageY-i]}_getMouseCanvasPos(A){if(A){const e=A.target.getBoundingClientRect();this.mouseCanvasPos[0]=A.clientX-e.left,this.mouseCanvasPos[1]=A.clientY-e.top}else A=window.event,this.mouseCanvasPos[0]=A.x,this.mouseCanvasPos[1]=A.y}setEnabled(A){this.enabled!==A&&this.fire("enabled",this.enabled=A)}getEnabled(){return this.enabled}setKeyboardEnabled(A){this.keyboardEnabled=A}getKeyboardEnabled(){return this.keyboardEnabled}destroy(){super.destroy(),this._unbindEvents()}}class eh extends N{get type(){return"Viewport"}constructor(A,e={}){super(A,e),this._state=new Z({boundary:[0,0,100,100]}),this.boundary=e.boundary,this.autoBoundary=e.autoBoundary}set boundary(A){if(!this._autoBoundary){if(!A){const e=this.scene.canvas.boundary;A=[0,0,e[2],e[3]]}this._state.boundary=A,this.glRedraw(),this.fire("boundary",this._state.boundary)}}get boundary(){return this._state.boundary}set autoBoundary(A){(A=!!A)!==this._autoBoundary&&(this._autoBoundary=A,this._autoBoundary?this._onCanvasSize=this.scene.canvas.on("boundary",(function(A){const e=A[2],t=A[3];this._state.boundary=[0,0,e,t],this.glRedraw(),this.fire("boundary",this._state.boundary)}),this):this._onCanvasSize&&(this.scene.canvas.off(this._onCanvasSize),this._onCanvasSize=null),this.fire("autoBoundary",this._autoBoundary))}get autoBoundary(){return this._autoBoundary}_getState(){return this._state}destroy(){super.destroy(),this._state.destroy()}}class th extends N{get type(){return"Perspective"}constructor(A,e={}){super(A,e),this.camera=A,this._state=new Z({matrix:g.mat4(),inverseMatrix:g.mat4(),transposedMatrix:g.mat4(),near:.1,far:1e4}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this._fov=60,this._canvasResized=this.scene.canvas.on("boundary",this._needUpdate,this),this.fov=e.fov,this.fovAxis=e.fovAxis,this.near=e.near,this.far=e.far}_update(){const A=this.scene.canvas.boundary,e=A[2]/A[3],t=this._fovAxis;let i=this._fov;("x"===t||"min"===t&&e<1||"max"===t&&e>1)&&(i/=e),i=Math.min(i,120),g.perspectiveMat4(i*(Math.PI/180),e,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.camera._updateScheduled=!0,this.fire("matrix",this._state.matrix)}set fov(A){(A=null!=A?A:60)!==this._fov&&(this._fov=A,this._needUpdate(0),this.fire("fov",this._fov))}get fov(){return this._fov}set fovAxis(A){A=A||"min",this._fovAxis!==A&&("x"!==A&&"y"!==A&&"min"!==A&&(this.error("Unsupported value for 'fovAxis': "+A+" - defaulting to 'min'"),A="min"),this._fovAxis=A,this._needUpdate(0),this.fire("fovAxis",this._fovAxis))}get fovAxis(){return this._fovAxis}set near(A){const e=null!=A?A:.1;this._state.near!==e&&(this._state.near=e,this._needUpdate(0),this.fire("near",this._state.near))}get near(){return this._state.near}set far(A){const e=null!=A?A:1e4;this._state.far!==e&&(this._state.far=e,this._needUpdate(0),this.fire("far",this._state.far))}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(g.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(g.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(A,e,t,i,s){const n=this.scene.canvas.canvas,o=n.offsetWidth/2,r=n.offsetHeight/2;return t[0]=(A[0]-o)/o,t[1]=(A[1]-r)/r,t[2]=e,t[3]=1,g.mulMat4v4(this.inverseMatrix,t,i),g.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1,g.mulMat4v4(this.camera.inverseViewMatrix,i,s),s}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._canvasResized)}}class ih extends N{get type(){return"Ortho"}constructor(A,e={}){super(A,e),this.camera=A,this._state=new Z({matrix:g.mat4(),inverseMatrix:g.mat4(),transposedMatrix:g.mat4(),near:.1,far:1e4}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.scale=e.scale,this.near=e.near,this.far=e.far,this._onCanvasBoundary=this.scene.canvas.on("boundary",this._needUpdate,this)}_update(){const A=this.scene,e=.5*this._scale,t=A.canvas.boundary,i=t[2],s=t[3],n=i/s;let o,r,c,a;i>s?(o=-e,r=e,c=e/n,a=-e/n):(o=-e*n,r=e*n,c=e,a=-e),g.orthoMat4c(o,r,a,c,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}set scale(A){null==A&&(A=1),A<=0&&(A=.01),this._scale=A,this._needUpdate(0),this.fire("scale",this._scale)}get scale(){return this._scale}set near(A){const e=null!=A?A:.1;this._state.near!==e&&(this._state.near=e,this._needUpdate(0),this.fire("near",this._state.near))}get near(){return this._state.near}set far(A){const e=null!=A?A:1e4;this._state.far!==e&&(this._state.far=e,this._needUpdate(0),this.fire("far",this._state.far))}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(g.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(g.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(A,e,t,i,s){const n=this.scene.canvas.canvas,o=n.offsetWidth/2,r=n.offsetHeight/2;return t[0]=(A[0]-o)/o,t[1]=(A[1]-r)/r,t[2]=e,t[3]=1,g.mulMat4v4(this.inverseMatrix,t,i),g.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1,g.mulMat4v4(this.camera.inverseViewMatrix,i,s),s}destroy(){super.destroy(),this._state.destroy(),this.scene.canvas.off(this._onCanvasBoundary)}}class sh extends N{get type(){return"Frustum"}constructor(A,e={}){super(A,e),this.camera=A,this._state=new Z({matrix:g.mat4(),inverseMatrix:g.mat4(),transposedMatrix:g.mat4(),near:.1,far:1e4}),this._left=-1,this._right=1,this._bottom=-1,this._top=1,this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.left=e.left,this.right=e.right,this.bottom=e.bottom,this.top=e.top,this.near=e.near,this.far=e.far}_update(){g.frustumMat4(this._left,this._right,this._bottom,this._top,this._state.near,this._state.far,this._state.matrix),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}set left(A){this._left=null!=A?A:-1,this._needUpdate(0),this.fire("left",this._left)}get left(){return this._left}set right(A){this._right=null!=A?A:1,this._needUpdate(0),this.fire("right",this._right)}get right(){return this._right}set top(A){this._top=null!=A?A:1,this._needUpdate(0),this.fire("top",this._top)}get top(){return this._top}set bottom(A){this._bottom=null!=A?A:-1,this._needUpdate(0),this.fire("bottom",this._bottom)}get bottom(){return this._bottom}set near(A){this._state.near=null!=A?A:.1,this._needUpdate(0),this.fire("near",this._state.near)}get near(){return this._state.near}set far(A){this._state.far=null!=A?A:1e4,this._needUpdate(0),this.fire("far",this._state.far)}get far(){return this._state.far}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(g.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(g.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(A,e,t,i,s){const n=this.scene.canvas.canvas,o=n.offsetWidth/2,r=n.offsetHeight/2;return t[0]=(A[0]-o)/o,t[1]=(A[1]-r)/r,t[2]=e,t[3]=1,g.mulMat4v4(this.inverseMatrix,t,i),g.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1,g.mulMat4v4(this.camera.inverseViewMatrix,i,s),s}destroy(){super.destroy(),this._state.destroy(),super.destroy()}}class nh extends N{get type(){return"CustomProjection"}constructor(A,e={}){super(A,e),this.camera=A,this._state=new Z({matrix:g.mat4(),inverseMatrix:g.mat4(),transposedMatrix:g.mat4()}),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!1,this.matrix=e.matrix}set matrix(A){this._state.matrix.set(A||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this._inverseMatrixDirty=!0,this._transposedMatrixDirty=!0,this.glRedraw(),this.fire("matrix",this._state.matrix)}get matrix(){return this._state.matrix}get inverseMatrix(){return this._updateScheduled&&this._doUpdate(),this._inverseMatrixDirty&&(g.inverseMat4(this._state.matrix,this._state.inverseMatrix),this._inverseMatrixDirty=!1),this._state.inverseMatrix}get transposedMatrix(){return this._updateScheduled&&this._doUpdate(),this._transposedMatrixDirty&&(g.transposeMat4(this._state.matrix,this._state.transposedMatrix),this._transposedMatrixDirty=!1),this._state.transposedMatrix}unproject(A,e,t,i,s){const n=this.scene.canvas.canvas,o=n.offsetWidth/2,r=n.offsetHeight/2;return t[0]=(A[0]-o)/o,t[1]=(A[1]-r)/r,t[2]=e,t[3]=1,g.mulMat4v4(this.inverseMatrix,t,i),g.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1,g.mulMat4v4(this.camera.inverseViewMatrix,i,s),s}destroy(){super.destroy(),this._state.destroy()}}const oh=g.vec3(),rh=g.vec3(),ch=g.vec3(),ah=g.vec3(),hh=g.vec3(),Bh=g.vec3(),gh=g.vec4(),lh=g.vec4(),Eh=g.vec4(),Qh=g.mat4(),Mh=g.mat4(),uh=g.vec3(),wh=g.vec3(),dh=g.vec3(),Ch=g.vec3();class xh extends N{get type(){return"Camera"}constructor(A,e={}){super(A,e),this._state=new Z({offsetEyeFromLook:!0,deviceMatrix:g.mat4(),hasDeviceMatrix:!1,matrix:g.mat4(),normalMatrix:g.mat4(),inverseMatrix:g.mat4()}),this._perspective=new th(this),this._ortho=new ih(this),this._frustum=new sh(this),this._customProjection=new nh(this),this._project=this._perspective,this._eye=g.vec3([0,0,10]),this._look=g.vec3([0,0,0]),this._up=g.vec3([0,1,0]),this._worldUp=g.vec3([0,1,0]),this._worldRight=g.vec3([1,0,0]),this._worldForward=g.vec3([0,0,-1]),this.deviceMatrix=e.deviceMatrix,this.eye=e.eye,this.look=e.look,this.up=e.up,this.worldAxis=e.worldAxis,this.gimbalLock=e.gimbalLock,this.constrainPitch=e.constrainPitch,this.projection=e.projection,this._perspective.on("matrix",(()=>{"perspective"===this._projectionType&&this.fire("projMatrix",this._perspective.matrix)})),this._ortho.on("matrix",(()=>{"ortho"===this._projectionType&&this.fire("projMatrix",this._ortho.matrix)})),this._frustum.on("matrix",(()=>{"frustum"===this._projectionType&&this.fire("projMatrix",this._frustum.matrix)})),this._customProjection.on("matrix",(()=>{"customProjection"===this._projectionType&&this.fire("projMatrix",this._customProjection.matrix)}))}_update(){const A=this._state;let e;"ortho"===this.projection&&this._state.offsetEyeFromLook?(g.subVec3(this._eye,this._look,uh),g.normalizeVec3(uh,wh),g.mulVec3Scalar(wh,1e3,dh),g.addVec3(this._look,dh,Ch),e=Ch):e=this._eye,A.hasDeviceMatrix?(g.lookAtMat4v(e,this._look,this._up,Mh),g.mulMat4(A.deviceMatrix,Mh,A.matrix)):g.lookAtMat4v(e,this._look,this._up,A.matrix),g.inverseMat4(this._state.matrix,this._state.inverseMatrix),g.transposeMat4(this._state.inverseMatrix,this._state.normalMatrix),this.glRedraw(),this.fire("matrix",this._state.matrix),this.fire("viewMatrix",this._state.matrix)}orbitYaw(A){let e=g.subVec3(this._eye,this._look,oh);g.rotationMat4v(.0174532925*A,this._gimbalLock?this._worldUp:this._up,Qh),e=g.transformPoint3(Qh,e,rh),this.eye=g.addVec3(this._look,e,ch),this.up=g.transformPoint3(Qh,this._up,ah)}orbitPitch(A){if(this._constrainPitch&&(A=g.dotVec3(this._up,this._worldUp)/g.DEGTORAD)<1)return;let e=g.subVec3(this._eye,this._look,oh);const t=g.cross3Vec3(g.normalizeVec3(e,rh),g.normalizeVec3(this._up,ch));g.rotationMat4v(.0174532925*A,t,Qh),e=g.transformPoint3(Qh,e,ah),this.up=g.transformPoint3(Qh,this._up,hh),this.eye=g.addVec3(e,this._look,Bh)}yaw(A){let e=g.subVec3(this._look,this._eye,oh);g.rotationMat4v(.0174532925*A,this._gimbalLock?this._worldUp:this._up,Qh),e=g.transformPoint3(Qh,e,rh),this.look=g.addVec3(e,this._eye,ch),this._gimbalLock&&(this.up=g.transformPoint3(Qh,this._up,ah))}pitch(A){if(this._constrainPitch&&(A=g.dotVec3(this._up,this._worldUp)/g.DEGTORAD)<1)return;let e=g.subVec3(this._look,this._eye,oh);const t=g.cross3Vec3(g.normalizeVec3(e,rh),g.normalizeVec3(this._up,ch));g.rotationMat4v(.0174532925*A,t,Qh),this.up=g.transformPoint3(Qh,this._up,Bh),e=g.transformPoint3(Qh,e,ah),this.look=g.addVec3(e,this._eye,hh)}pan(A){const e=g.subVec3(this._eye,this._look,oh),t=[0,0,0];let i;if(0!==A[0]){const s=g.cross3Vec3(g.normalizeVec3(e,[]),g.normalizeVec3(this._up,rh));i=g.mulVec3Scalar(s,A[0]),t[0]+=i[0],t[1]+=i[1],t[2]+=i[2]}0!==A[1]&&(i=g.mulVec3Scalar(g.normalizeVec3(this._up,ch),A[1]),t[0]+=i[0],t[1]+=i[1],t[2]+=i[2]),0!==A[2]&&(i=g.mulVec3Scalar(g.normalizeVec3(e,ah),A[2]),t[0]+=i[0],t[1]+=i[1],t[2]+=i[2]),this.eye=g.addVec3(this._eye,t,hh),this.look=g.addVec3(this._look,t,Bh)}zoom(A){const e=g.subVec3(this._eye,this._look,oh),t=Math.abs(g.lenVec3(e,rh)),i=Math.abs(t+A);if(i<.5)return;const s=g.normalizeVec3(e,ch);this.eye=g.addVec3(this._look,g.mulVec3Scalar(s,i),ah)}set eye(A){this._eye.set(A||[0,0,10]),this._needUpdate(0),this.fire("eye",this._eye)}get eye(){return this._eye}set look(A){this._look.set(A||[0,0,0]),this._needUpdate(0),this.fire("look",this._look)}get look(){return this._look}set up(A){this._up.set(A||[0,1,0]),this._needUpdate(0),this.fire("up",this._up)}get up(){return this._up}set deviceMatrix(A){this._state.deviceMatrix.set(A||[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),this._state.hasDeviceMatrix=!!A,this._needUpdate(0),this.fire("deviceMatrix",this._state.deviceMatrix)}get deviceMatrix(){return this._state.deviceMatrix}set worldAxis(A){A=A||[1,0,0,0,1,0,0,0,1],this._worldAxis?this._worldAxis.set(A):this._worldAxis=g.vec3(A),this._worldRight[0]=this._worldAxis[0],this._worldRight[1]=this._worldAxis[1],this._worldRight[2]=this._worldAxis[2],this._worldUp[0]=this._worldAxis[3],this._worldUp[1]=this._worldAxis[4],this._worldUp[2]=this._worldAxis[5],this._worldForward[0]=this._worldAxis[6],this._worldForward[1]=this._worldAxis[7],this._worldForward[2]=this._worldAxis[8],this.fire("worldAxis",this._worldAxis)}get worldAxis(){return this._worldAxis}get worldUp(){return this._worldUp}get xUp(){return this._worldUp[0]>this._worldUp[1]&&this._worldUp[0]>this._worldUp[2]}get yUp(){return this._worldUp[1]>this._worldUp[0]&&this._worldUp[1]>this._worldUp[2]}get zUp(){return this._worldUp[2]>this._worldUp[0]&&this._worldUp[2]>this._worldUp[1]}get worldRight(){return this._worldRight}get worldForward(){return this._worldForward}set gimbalLock(A){this._gimbalLock=!1!==A,this.fire("gimbalLock",this._gimbalLock)}get gimbalLock(){return this._gimbalLock}set constrainPitch(A){this._constrainPitch=!!A,this.fire("constrainPitch",this._constrainPitch)}get eyeLookDist(){return g.lenVec3(g.subVec3(this._look,this._eye,oh))}get matrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get viewMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.matrix}get normalMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.normalMatrix}get viewNormalMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.normalMatrix}get inverseViewMatrix(){return this._updateScheduled&&this._doUpdate(),this._state.inverseMatrix}get projMatrix(){return this[this.projection].matrix}get perspective(){return this._perspective}get ortho(){return this._ortho}get frustum(){return this._frustum}get customProjection(){return this._customProjection}set projection(A){A=A||"perspective",this._projectionType!==A&&("perspective"===A?this._project=this._perspective:"ortho"===A?this._project=this._ortho:"frustum"===A?this._project=this._frustum:"customProjection"===A?this._project=this._customProjection:(this.error("Unsupported value for 'projection': "+A+" defaulting to 'perspective'"),this._project=this._perspective,A="perspective"),this._project._update(),this._projectionType=A,this.glRedraw(),this._update(),this.fire("dirty"),this.fire("projection",this._projectionType),this.fire("projMatrix",this._project.matrix))}get projection(){return this._projectionType}get project(){return this._project}get offsetEyeFromLook(){return this._state.offsetEyeFromLook}set offsetEyeFromLook(A){this._state.offsetEyeFromLook=A,this._needUpdate(0)}projectWorldPos(A){const e=gh,t=lh,i=Eh;e[0]=A[0],e[1]=A[1],e[2]=A[2],e[3]=1,g.mulMat4v4(this.viewMatrix,e,t),g.mulMat4v4(this.projMatrix,t,i),g.mulVec3Scalar(i,1/i[3]),i[3]=1,i[1]*=-1;const s=this.scene.canvas.canvas,n=s.offsetWidth/2,o=s.offsetHeight/2;return[i[0]*n+n,i[1]*o+o]}destroy(){super.destroy(),this._state.destroy()}}const Fh={meters:{abbrev:"m"},metres:{abbrev:"m"},centimeters:{abbrev:"cm"},centimetres:{abbrev:"cm"},millimeters:{abbrev:"mm"},millimetres:{abbrev:"mm"},yards:{abbrev:"yd"},feet:{abbrev:"ft"},inches:{abbrev:"in"}};class ph extends N{constructor(A,e={}){super(A,e),this._units="meters",this._scale=1,this._origin=g.vec3([0,0,0]),this.units=e.units,this.scale=e.scale,this.origin=e.origin}get unitsInfo(){return Fh}set units(A){A||(A="meters");Fh[A]||(this.error("Unsupported value for 'units': "+A+" defaulting to 'meters'"),A="meters"),this._units=A,this.fire("units",this._units)}get units(){return this._units}set scale(A){(A=A||1)<=0?this.error("scale value should be larger than zero"):(this._scale=A,this.fire("scale",this._scale))}get scale(){return this._scale}set origin(A){if(!A)return this._origin[0]=0,this._origin[1]=0,void(this._origin[2]=0);this._origin[0]=A[0],this._origin[1]=A[1],this._origin[2]=A[2],this.fire("origin",this._origin)}get origin(){return this._origin}worldToRealPos(A,e=g.vec3(3)){e[0]=this._origin[0]+this._scale*A[0],e[1]=this._origin[1]+this._scale*A[1],e[2]=this._origin[2]+this._scale*A[2]}realToWorldPos(A,e=g.vec3(3)){return e[0]=(A[0]-this._origin[0])/this._scale,e[1]=(A[1]-this._origin[1])/this._scale,e[2]=(A[2]-this._origin[2])/this._scale,e}}class Ih extends N{constructor(A,e={}){super(A,e),this._supported=Ce.SUPPORTED_EXTENSIONS.OES_standard_derivatives,this.enabled=e.enabled,this.kernelRadius=e.kernelRadius,this.intensity=e.intensity,this.bias=e.bias,this.scale=e.scale,this.minResolution=e.minResolution,this.numSamples=e.numSamples,this.blur=e.blur,this.blendCutoff=e.blendCutoff,this.blendFactor=e.blendFactor}get supported(){return this._supported}set enabled(A){A=!!A,this._enabled!==A&&(this._enabled=A,this.glRedraw())}get enabled(){return this._enabled}get possible(){if(!this._supported)return!1;if(!this._enabled)return!1;const A=this.scene.camera.projection;return"customProjection"!==A&&"frustum"!==A}get active(){return this._active}set kernelRadius(A){null==A&&(A=100),this._kernelRadius!==A&&(this._kernelRadius=A,this.glRedraw())}get kernelRadius(){return this._kernelRadius}set intensity(A){null==A&&(A=.15),this._intensity!==A&&(this._intensity=A,this.glRedraw())}get intensity(){return this._intensity}set bias(A){null==A&&(A=.5),this._bias!==A&&(this._bias=A,this.glRedraw())}get bias(){return this._bias}set scale(A){null==A&&(A=1),this._scale!==A&&(this._scale=A,this.glRedraw())}get scale(){return this._scale}set minResolution(A){null==A&&(A=0),this._minResolution!==A&&(this._minResolution=A,this.glRedraw())}get minResolution(){return this._minResolution}set numSamples(A){null==A&&(A=10),this._numSamples!==A&&(this._numSamples=A,this.glRedraw())}get numSamples(){return this._numSamples}set blur(A){A=!1!==A,this._blur!==A&&(this._blur=A,this.glRedraw())}get blur(){return this._blur}set blendCutoff(A){null==A&&(A=.3),this._blendCutoff!==A&&(this._blendCutoff=A,this.glRedraw())}get blendCutoff(){return this._blendCutoff}set blendFactor(A){null==A&&(A=1),this._blendFactor!==A&&(this._blendFactor=A,this.glRedraw())}get blendFactor(){return this._blendFactor}destroy(){super.destroy()}}class fh extends N{constructor(A,e={}){super(A,e),this.sliceColor=e.sliceColor,this.sliceThickness=e.sliceThickness}set sliceThickness(A){null==A&&(A=0),this._sliceThickness!==A&&(this._sliceThickness=A,this.glRedraw())}get sliceThickness(){return this._sliceThickness}set sliceColor(A){null==A&&(A=[0,0,0,1]),this._sliceColor!==A&&(this._sliceColor=A,this.glRedraw())}get sliceColor(){return this._sliceColor}destroy(){super.destroy()}}const Yh={default:{pointSize:4,roundPoints:!0,perspectivePoints:!0},square:{pointSize:4,roundPoints:!1,perspectivePoints:!0},round:{pointSize:4,roundPoints:!0,perspectivePoints:!0}};class Dh extends ht{get type(){return"PointsMaterial"}get presets(){return Yh}constructor(A,e={}){super(A,e),this._state=new Z({type:"PointsMaterial",pointSize:null,roundPoints:null,perspectivePoints:null,minPerspectivePointSize:null,maxPerspectivePointSize:null,filterIntensity:null,minIntensity:null,maxIntensity:null}),e.preset?(this.preset=e.preset,void 0!==e.pointSize&&(this.pointSize=e.pointSize),void 0!==e.roundPoints&&(this.roundPoints=e.roundPoints),void 0!==e.perspectivePoints&&(this.perspectivePoints=e.perspectivePoints),void 0!==e.minPerspectivePointSize&&(this.minPerspectivePointSize=e.minPerspectivePointSize),void 0!==e.maxPerspectivePointSize&&(this.maxPerspectivePointSize=e.minPerspectivePointSize)):(this._preset="default",this.pointSize=e.pointSize,this.roundPoints=e.roundPoints,this.perspectivePoints=e.perspectivePoints,this.minPerspectivePointSize=e.minPerspectivePointSize,this.maxPerspectivePointSize=e.maxPerspectivePointSize),this.filterIntensity=e.filterIntensity,this.minIntensity=e.minIntensity,this.maxIntensity=e.maxIntensity}set pointSize(A){this._state.pointSize=A||2,this.glRedraw()}get pointSize(){return this._state.pointSize}set roundPoints(A){A=!1!==A,this._state.roundPoints!==A&&(this._state.roundPoints=A,this.scene._needRecompile=!0,this.glRedraw())}get roundPoints(){return this._state.roundPoints}set perspectivePoints(A){A=!1!==A,this._state.perspectivePoints!==A&&(this._state.perspectivePoints=A,this.scene._needRecompile=!0,this.glRedraw())}get perspectivePoints(){return this._state.perspectivePoints}set minPerspectivePointSize(A){this._state.minPerspectivePointSize=A||1,this.scene._needRecompile=!0,this.glRedraw()}get minPerspectivePointSize(){return this._state.minPerspectivePointSize}set maxPerspectivePointSize(A){this._state.maxPerspectivePointSize=A||6,this.scene._needRecompile=!0,this.glRedraw()}get maxPerspectivePointSize(){return this._state.maxPerspectivePointSize}set filterIntensity(A){A=!1!==A,this._state.filterIntensity!==A&&(this._state.filterIntensity=A,this.scene._needRecompile=!0,this.glRedraw())}get filterIntensity(){return this._state.filterIntensity}set minIntensity(A){this._state.minIntensity=null!=A?A:0,this.glRedraw()}get minIntensity(){return this._state.minIntensity}set maxIntensity(A){this._state.maxIntensity=null!=A?A:1,this.glRedraw()}get maxIntensity(){return this._state.maxIntensity}set preset(A){if(A=A||"default",this._preset===A)return;const e=Yh[A];e?(this.pointSize=e.pointSize,this.roundPoints=e.roundPoints,this.perspectivePoints=e.perspectivePoints,this.minPerspectivePointSize=e.minPerspectivePointSize,this.maxPerspectivePointSize=e.maxPerspectivePointSize,this._preset=A):this.error("unsupported preset: '"+A+"' - supported values are "+Object.keys(Yh).join(", "))}get preset(){return this._preset}get hash(){return[this.pointSize,this.roundPoints,this.perspectivePoints,this.minPerspectivePointSize,this.maxPerspectivePointSize,this.filterIntensity].join(";")}destroy(){super.destroy(),this._state.destroy()}}const mh={default:{lineWidth:1},thick:{lineWidth:2},thicker:{lineWidth:4}};class Jh extends ht{get type(){return"LinesMaterial"}get presets(){return mh}constructor(A,e={}){super(A,e),this._state=new Z({type:"LinesMaterial",lineWidth:null}),e.preset?(this.preset=e.preset,void 0!==e.lineWidth&&(this.lineWidth=e.lineWidth)):(this._preset="default",this.lineWidth=e.lineWidth)}set lineWidth(A){this._state.lineWidth=A||1,this.glRedraw()}get lineWidth(){return this._state.lineWidth}set preset(A){if(A=A||"default",this._preset===A)return;const e=mh[A];e?(this.lineWidth=e.lineWidth,this._preset=A):this.error("unsupported preset: '"+A+"' - supported values are "+Object.keys(mh).join(", "))}get preset(){return this._preset}get hash(){return[""+this.lineWidth].join(";")}destroy(){super.destroy(),this._state.destroy()}}function Nh(A,e,t=2){const i=e&&e.length,s=i?e[0]*t:A.length;let n=yh(A,0,s,t,!0);const o=[];if(!n||n.next===n.prev)return o;let r,c,a;if(i&&(n=function(A,e,t,i){const s=[];for(let t=0,n=e.length;t80*t){r=1/0,c=1/0;let e=-1/0,i=-1/0;for(let n=t;ne&&(e=t),s>i&&(i=s)}a=Math.max(e-r,i-c),a=0!==a?32767/a:0}return Th(n,o,t,r,c,a,0),o}function yh(A,e,t,i,s){let n;if(s===function(A,e,t,i){let s=0;for(let n=e,o=t-i;n0)for(let s=e;s=e;s-=i)n=$h(s/i|0,A[s],A[s+1],n);return n&&Xh(n,n.next)&&(AB(n),n=n.next),n}function zh(A,e){if(!A)return A;e||(e=A);let t,i=A;do{if(t=!1,i.steiner||!Xh(i,i.next)&&0!==Wh(i.prev,i,i.next))i=i.next;else{if(AB(i),i=e=i.prev,i===i.next)break;t=!0}}while(t||i!==e);return e}function Th(A,e,t,i,s,n,o){if(!A)return;!o&&n&&function(A,e,t,i){let s=A;do{0===s.z&&(s.z=Hh(s.x,s.y,e,t,i)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next}while(s!==A);s.prevZ.nextZ=null,s.prevZ=null,function(A){let e,t=1;do{let i,s=A;A=null;let n=null;for(e=0;s;){e++;let o=s,r=0;for(let A=0;A0||c>0&&o;)0!==r&&(0===c||!o||s.z<=o.z)?(i=s,s=s.nextZ,r--):(i=o,o=o.nextZ,c--),n?n.nextZ=i:A=i,i.prevZ=n,n=i;s=o}n.nextZ=null,t*=2}while(e>1)}(s)}(A,i,s,n);let r=A;for(;A.prev!==A.next;){const c=A.prev,a=A.next;if(n?Rh(A,i,s,n):Uh(A))e.push(c.i,A.i,a.i),AB(A),A=a.next,r=a.next;else if((A=a)===r){o?1===o?Th(A=bh(zh(A),e),e,t,i,s,n,2):2===o&&kh(A,e,t,i,s,n):Th(zh(A),e,t,i,s,n,1);break}}}function Uh(A){const e=A.prev,t=A,i=A.next;if(Wh(e,t,i)>=0)return!1;const s=e.x,n=t.x,o=i.x,r=e.y,c=t.y,a=i.y,h=Math.min(s,n,o),B=Math.min(r,c,a),g=Math.max(s,n,o),l=Math.max(r,c,a);let E=i.next;for(;E!==e;){if(E.x>=h&&E.x<=g&&E.y>=B&&E.y<=l&&Oh(s,r,n,c,o,a,E.x,E.y)&&Wh(E.prev,E,E.next)>=0)return!1;E=E.next}return!0}function Rh(A,e,t,i){const s=A.prev,n=A,o=A.next;if(Wh(s,n,o)>=0)return!1;const r=s.x,c=n.x,a=o.x,h=s.y,B=n.y,g=o.y,l=Math.min(r,c,a),E=Math.min(h,B,g),Q=Math.max(r,c,a),M=Math.max(h,B,g),u=Hh(l,E,e,t,i),w=Hh(Q,M,e,t,i);let d=A.prevZ,C=A.nextZ;for(;d&&d.z>=u&&C&&C.z<=w;){if(d.x>=l&&d.x<=Q&&d.y>=E&&d.y<=M&&d!==s&&d!==o&&Oh(r,h,c,B,a,g,d.x,d.y)&&Wh(d.prev,d,d.next)>=0)return!1;if(d=d.prevZ,C.x>=l&&C.x<=Q&&C.y>=E&&C.y<=M&&C!==s&&C!==o&&Oh(r,h,c,B,a,g,C.x,C.y)&&Wh(C.prev,C,C.next)>=0)return!1;C=C.nextZ}for(;d&&d.z>=u;){if(d.x>=l&&d.x<=Q&&d.y>=E&&d.y<=M&&d!==s&&d!==o&&Oh(r,h,c,B,a,g,d.x,d.y)&&Wh(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;C&&C.z<=w;){if(C.x>=l&&C.x<=Q&&C.y>=E&&C.y<=M&&C!==s&&C!==o&&Oh(r,h,c,B,a,g,C.x,C.y)&&Wh(C.prev,C,C.next)>=0)return!1;C=C.nextZ}return!0}function bh(A,e){let t=A;do{const i=t.prev,s=t.next.next;!Xh(i,s)&&Lh(i,t,t.next,s)&&Zh(i,s)&&Zh(s,i)&&(e.push(i.i,t.i,s.i),AB(t),AB(t.next),t=A=s),t=t.next}while(t!==A);return zh(t)}function kh(A,e,t,i,s,n){let o=A;do{let A=o.next.next;for(;A!==o.prev;){if(o.i!==A.i&&_h(o,A)){let r=qh(o,A);return o=zh(o,o.next),r=zh(r,r.next),Th(o,e,t,i,s,n,0),void Th(r,e,t,i,s,n,0)}A=A.next}o=o.next}while(o!==A)}function Ph(A,e){let t=A.x-e.x;if(0===t&&(t=A.y-e.y,0===t)){t=(A.next.y-A.y)/(A.next.x-A.x)-(e.next.y-e.y)/(e.next.x-e.x)}return t}function Gh(A,e){const t=function(A,e){let t=e;const i=A.x,s=A.y;let n,o=-1/0;if(Xh(A,t))return t;do{if(Xh(A,t.next))return t.next;if(s<=t.y&&s>=t.next.y&&t.next.y!==t.y){const A=t.x+(s-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(A<=i&&A>o&&(o=A,n=t.x=t.x&&t.x>=c&&i!==t.x&&jh(sn.x||t.x===n.x&&vh(n,t)))&&(n=t,h=e)}t=t.next}while(t!==r);return n}(A,e);if(!t)return e;const i=qh(t,A);return zh(i,i.next),zh(t,t.next)}function vh(A,e){return Wh(A.prev,A,e.prev)<0&&Wh(e.next,A,A.next)<0}function Hh(A,e,t,i,s){return(A=1431655765&((A=858993459&((A=252645135&((A=16711935&((A=(A-t)*s|0)|A<<8))|A<<4))|A<<2))|A<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-i)*s|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Sh(A){let e=A,t=A;do{(e.x=(A-o)*(n-r)&&(A-o)*(i-r)>=(t-o)*(e-r)&&(t-o)*(n-r)>=(s-o)*(i-r)}function Oh(A,e,t,i,s,n,o,r){return!(A===o&&e===r)&&jh(A,e,t,i,s,n,o,r)}function _h(A,e){return A.next.i!==e.i&&A.prev.i!==e.i&&!function(A,e){let t=A;do{if(t.i!==A.i&&t.next.i!==A.i&&t.i!==e.i&&t.next.i!==e.i&&Lh(t,t.next,A,e))return!0;t=t.next}while(t!==A);return!1}(A,e)&&(Zh(A,e)&&Zh(e,A)&&function(A,e){let t=A,i=!1;const s=(A.x+e.x)/2,n=(A.y+e.y)/2;do{t.y>n!=t.next.y>n&&t.next.y!==t.y&&s<(t.next.x-t.x)*(n-t.y)/(t.next.y-t.y)+t.x&&(i=!i),t=t.next}while(t!==A);return i}(A,e)&&(Wh(A.prev,A,e.prev)||Wh(A,e.prev,e))||Xh(A,e)&&Wh(A.prev,A,A.next)>0&&Wh(e.prev,e,e.next)>0)}function Wh(A,e,t){return(e.y-A.y)*(t.x-e.x)-(e.x-A.x)*(t.y-e.y)}function Xh(A,e){return A.x===e.x&&A.y===e.y}function Lh(A,e,t,i){const s=Kh(Wh(A,e,t)),n=Kh(Wh(A,e,i)),o=Kh(Wh(t,i,A)),r=Kh(Wh(t,i,e));return s!==n&&o!==r||(!(0!==s||!Vh(A,t,e))||(!(0!==n||!Vh(A,i,e))||(!(0!==o||!Vh(t,A,i))||!(0!==r||!Vh(t,e,i)))))}function Vh(A,e,t){return e.x<=Math.max(A.x,t.x)&&e.x>=Math.min(A.x,t.x)&&e.y<=Math.max(A.y,t.y)&&e.y>=Math.min(A.y,t.y)}function Kh(A){return A>0?1:A<0?-1:0}function Zh(A,e){return Wh(A.prev,A,A.next)<0?Wh(A,e,A.next)>=0&&Wh(A,A.prev,e)>=0:Wh(A,e,A.prev)<0||Wh(A,A.next,e)<0}function qh(A,e){const t=eB(A.i,A.x,A.y),i=eB(e.i,e.x,e.y),s=A.next,n=e.prev;return A.next=e,e.prev=A,t.next=s,s.prev=t,i.next=t,t.prev=i,n.next=i,i.prev=n,i}function $h(A,e,t,i){const s=eB(A,e,t);return i?(s.next=i.next,s.prev=i,i.next.prev=s,i.next=s):(s.prev=s,s.next=s),s}function AB(A){A.next.prev=A.prev,A.prev.next=A.next,A.prevZ&&(A.prevZ.nextZ=A.nextZ),A.nextZ&&(A.nextZ.prevZ=A.prevZ)}function eB(A,e,t){return{i:A,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}const tB=1e-6,iB=[0,1,0],sB=[1,0,0],nB=g.vec3(),oB=g.vec3(),rB=g.vec3(),cB=g.vec3(),aB=g.vec3();function hB(A,e){return Math.abs(A[0]-e[0]){const e=()=>{this._setAllDirty(!0),this._update()};this._sectionPlanes.push(A),A.on("pos",e),A.on("dir",e),A.on("active",e),A.once("destroyed",(()=>{const e=A.id;e&&(this._sectionPlanes=this._sectionPlanes.filter((A=>A.id!==e)),this._update())}).bind(this))};for(const e in this.scene.sectionPlanes)A(this.scene.sectionPlanes[e]);this._onSectionPlaneCreated=this.scene.on("sectionPlaneCreated",A),this._onTick=this.scene.on("tick",(()=>{let A=!1;for(const e in this._sceneModelsData)this.scene.models[e]?this._sceneModelsData[e].visible!==!!this.scene.models[e].visible&&(this._sceneModelsData[e].visible=!!this.scene.models[e].visible,A=!0):(delete this._sceneModelsData[e],A=!0);A&&this._update()}))}this._dirtyMap[e]||(this._dirtyMap[e]=new Map),this._dirtyMap[e].set(A,!0),this._update()}_update(){clearTimeout(this._updateTimeout),this._deletePreviousModels(),this._updateTimeout=setTimeout((()=>{clearTimeout(this._updateTimeout);const A=Object.values(this.scene.models).filter((A=>A.visible));this._addHatches(A,this._sectionPlanes.filter((A=>A.active))),this._setAllDirty(!1)}),100)}_setAllDirty(A){for(const e in this._dirty)this._dirtyMap[e].forEach(((t,i)=>this._dirtyMap[e].set(i,A)))}_addHatches(A,e){e.forEach((e=>{A.forEach((A=>{if(!this._doesPlaneIntersectBoundingBox(A.aabb,e))return;if(!this._dirtyMap[A.id])return;const t=new Map,i=A.objects,s=[g.vec3(),g.vec3(),g.vec3()];this._dirtyMap[A.id].forEach(((n,o)=>{if(!n)return;const r=i[o];if(!this._doesPlaneIntersectBoundingBox(r.aabb,e))return;if(!this._sceneModelsData[A.id]){const e=A.aabb;this._sceneModelsData[A.id]={verticesMap:new Map,indicesMap:new Map,modelOrigin:g.vec3([(e[0]+e[3])/2,(e[1]+e[4])/2,(e[2]+e[5])/2])}}const c=this._sceneModelsData[A.id],a=c.modelOrigin;if(!c.verticesMap.has(o)){const A=r.meshes[0].isSolid(),e=[],t=[];A&&r.capMaterial&&(r.getEachVertex((A=>e.push(A[0]-a[0],A[1]-a[1],A[2]-a[2]))),r.getEachIndex((A=>t.push(A)))),c.verticesMap.set(o,e),c.indicesMap.set(o,t)}const h=c.verticesMap.get(o),B=c.indicesMap.get(o),l=-g.dotVec3(g.subVec3(e.pos,a,nB),e.dir),E=[],Q=B.length;for(let A=0;A0)continue;const c=-o/(r-o);t.push(g.lerpVec3(c,0,1,i,n,g.vec3()))}2===t.length&&E.push(t)}E.length>0&&t.set(o,E)}));const n=new Map;t.forEach(((A,e)=>{n.set(e,[[A[0]]]),A.splice(0,1);let i=0;for(;A.length>0;){const s=n.get(e)[i][n.get(e)[i].length-1][1];let o=!1;for(let t=0;t1)n.get(e).push([t.get(e)[0]]),A.splice(0,1),i++;else if(!o)break}}));const o=new Map;n.forEach(((A,t)=>{const i=[];for(let t=0;t{i[t].push([this._projectTo2D(A[0],e.dir),this._projectTo2D(A[1],e.dir)])}));o.set(t,i)}));const r=new Map;let c;o.forEach(((t,i)=>{const s=this._sceneModelsData[A.id].modelOrigin;c=[];const n=t,o=[],a=new Set;for(let A=0;A{const t=[],i=[];let n=0;const o=A.map((A=>{let e=0;for(let t=0;t{t.push(A[0][0],A[0][1]),n+=2}));for(let e=0;e{t.push(A[0][0],A[0][1]),n+=2})));const a=Nh(t,i),h=[];for(let A=0;A{c=[],A.forEach((A=>{const e=new Map,t=[],i=[];let s=0;A.forEach((A=>{const n=[];A.forEach((A=>{const i=`${A[0].toFixed(6)},${A[1].toFixed(6)},${A[2].toFixed(6)}`;e.has(i)?n.push(e.get(i)):(t.push(A[0],A[1],A[2]),e.set(i,s),n.push(s),s++)})),i.push(...n)})),c.push({positions:t,indices:i})})),a.set(e,c)})),this._prevIntersectionModelsMap[A.id]||(this._prevIntersectionModelsMap[A.id]=new Map),g.mulVec3Scalar(e.dir,.001,aB),a.forEach(((t,i)=>{const s=this._sceneModelsData[A.id].modelOrigin,n=new Array(t.size);let o=0;t.forEach(((t,r)=>{const c=t.positions,a=t.indices;c.length;const h=g.buildNormals(c,a),B=this._createUVs(c,e,s);n[o++]=new ct(this.scene,{id:`${e.id}-${i}-${r}`,geometry:new aA(this.scene,{primitive:"triangles",positions:c,indices:a,normals:h,uv:B}),origin:g.addVec3(s,aB,nB),position:[0,0,0],rotation:[0,0,0],material:A.objects[i].capMaterial})})),this._prevIntersectionModelsMap[A.id].has(i)?this._prevIntersectionModelsMap[A.id].get(i).push(...n):this._prevIntersectionModelsMap[A.id].set(i,n)}))}))}))}_doesPlaneIntersectBoundingBox(A,e){const t=[A[0],A[1],A[2]],i=[A[3],A[4],A[5]],s=[[t[0],t[1],t[2]],[i[0],t[1],t[2]],[t[0],i[1],t[2]],[i[0],i[1],t[2]],[t[0],t[1],i[2]],[i[0],t[1],i[2]],[t[0],i[1],i[2]],[i[0],i[1],i[2]]];let n=!1,o=!1;for(const A of s){const t=e.dist+g.dotVec3(e.dir,A);if(t>0&&(n=!0),t<0&&(o=!0),n&&o)return!0}return!1}_buildLines(A){for(const e in A)for(let t=0;t{new ct(this.scene,{clippable:!1,geometry:new aA(this.scene,xA({startPoint:A[0],endPoint:A[1]})),material:new lt(this.scene,{emissive:[1,0,0]})})}))}}_projectTo2D(A,e){let t;t=Math.abs(e[0])>Math.abs(e[1])?[-e[2],0,e[0]]:[0,e[2],-e[1]],t=g.normalizeVec3(t);const i=g.vec3(e),s=g.cross3Vec3(i,t),n=g.normalizeVec3(s);return[g.dotVec3(A,t),g.dotVec3(A,n)]}_isLoopInside(A,e){const t=A[0][0];let i=!1;for(let A=0,s=e.length-1;At[1]!=c>t[1]&&t[0]<(r-n)*(t[1]-o)/(c-o)+n&&(i=!i)}return i}_convertTo3D(A,e,t){let i,s=e.dir,n=e.pos;i=Math.abs(s[0])>Math.abs(s[1])?[-s[2],0,s[0]]:[0,s[2],-s[1]],i=g.normalizeVec3(i);const o=g.vec3(s),r=g.cross3Vec3(o,i),c=g.normalizeVec3(r),a=A[0],h=A[1],B=[i[0]*a+c[0]*h,i[1]*a+c[1]*h,i[2]*a+c[2]*h],l=g.dotVec3(s,[n[0]-B[0]-t[0],n[1]-B[1]-t[1],n[2]-B[2]-t[2]]);return[B[0]+s[0]*l,B[1]+s[1]*l,B[2]+s[2]*l]}_deletePreviousModels(){for(const A in this._prevIntersectionModelsMap){this._prevIntersectionModelsMap[A].forEach(((e,t)=>{this._dirtyMap[A].get(t)&&(e.forEach((A=>{A.destroy()})),this._prevIntersectionModelsMap[A].delete(t))})),this._prevIntersectionModelsMap[A].size<=0&&delete this._prevIntersectionModelsMap[A]}}_createUVs(A,e,t){const i=e.pos,s=nB;s.set(e.dir),g.normalizeVec3(s);const n=oB,o=[];for(let e=0;e{this.glRedraw()})),this.canvas.on("webglContextFailed",(()=>{alert("xeokit failed to find WebGL!")})),this._renderer=new $a(this,{transparent:i,alphaDepthMask:s}),this._sectionPlanesState=new function(){this.sectionPlanes=[],this.clippingCaps=!1,this._numCachedSectionPlanes=0;let A=null;this.getHash=function(){if(A)return A;const e=this.getNumAllocatedSectionPlanes();if(this.sectionPlanes,0===e)return this.hash=";";const t=[];for(let A=0,i=e;Athis._numCachedSectionPlanes?A:this._numCachedSectionPlanes}},this._sectionPlanesState.setNumCachedSectionPlanes(e.numCachedSectionPlanes||0),this._lightsState=new function(){const A=g.vec4([0,0,0,0]),e=g.vec4();this.lights=[],this.reflectionMaps=[],this.lightMaps=[];let t=null,i=null;this.getHash=function(){if(t)return t;const A=[],e=this.lights;let i;for(let t=0,s=e.length;t0&&A.push("/lm"),this.reflectionMaps.length>0&&A.push("/rm"),A.push(";"),t=A.join(""),t},this.addLight=function(A){this.lights.push(A),i=null,t=null},this.removeLight=function(A){for(let e=0,s=this.lights.length;e{this._renderer.imageDirty()}))}_initDefaults(){}_addComponent(A){if(A.id&&this.components[A.id]&&(this.error("Component "+u.inQuotes(A.id)+" already exists in Scene - ignoring ID, will randomly-generate instead"),A.id=null),!A.id)for(void 0===window.nextID&&(window.nextID=0),A.id="__"+window.nextID++;this.components[A.id];)A.id=g.createUUID();this.components[A.id]=A;const e=A.type;let t=this.types[A.type];t||(t=this.types[e]={}),t[A.id]=A,A.compile&&(this._compilables[A.id]=A),A.isDrawable&&(this._renderer.addDrawable(A.id,A),this._collidables[A.id]=A)}_removeComponent(A){var e=A.id,t=A.type;delete this.components[e];const i=this.types[t];i&&(delete i[e],u.isEmptyObject(i)&&delete this.types[t]),A.compile&&delete this._compilables[A.id],A.isDrawable&&(this._renderer.removeDrawable(A.id),delete this._collidables[A.id])}_capMaterialUpdated(A,e){this._sectionCaps._onCapMaterialUpdated(A,e)}_sectionPlaneCreated(A){this.sectionPlanes[A.id]=A,this.scene._sectionPlanesState.addSectionPlane(A._state),this.scene.fire("sectionPlaneCreated",A,!0),this._needRecompile=!0}_bitmapCreated(A){this.bitmaps[A.id]=A,this.scene.fire("bitmapCreated",A,!0)}_lineSetCreated(A){this.lineSets[A.id]=A,this.scene.fire("lineSetCreated",A,!0)}_lightCreated(A){this.lights[A.id]=A,this.scene._lightsState.addLight(A._state),this._needRecompile=!0}_lightMapCreated(A){this.lightMaps[A.id]=A,this.scene._lightsState.addLightMap(A._state),this._needRecompile=!0}_reflectionMapCreated(A){this.reflectionMaps[A.id]=A,this.scene._lightsState.addReflectionMap(A._state),this._needRecompile=!0}_sectionPlaneDestroyed(A){delete this.sectionPlanes[A.id],this.scene._sectionPlanesState.removeSectionPlane(A._state),this.scene.fire("sectionPlaneDestroyed",A,!0),this._needRecompile=!0}_bitmapDestroyed(A){delete this.bitmaps[A.id],this.scene.fire("bitmapDestroyed",A,!0)}_lineSetDestroyed(A){delete this.lineSets[A.id],this.scene.fire("lineSetDestroyed",A,!0)}_lightDestroyed(A){delete this.lights[A.id],this.scene._lightsState.removeLight(A._state),this._needRecompile=!0}_lightMapDestroyed(A){delete this.lightMaps[A.id],this.scene._lightsState.removeLightMap(A._state),this._needRecompile=!0}_reflectionMapDestroyed(A){delete this.reflectionMaps[A.id],this.scene._lightsState.removeReflectionMap(A._state),this._needRecompile=!0}_registerModel(A){this.models[A.id]=A,this._modelIds=null}_deregisterModel(A){const e=A.id;delete this.models[e],this._modelIds=null,this.fire("modelUnloaded",e)}_registerObject(A){this.objects[A.id]=A,this._numObjects++,this._objectIds=null}_deregisterObject(A){delete this.objects[A.id],this._numObjects--,this._objectIds=null}_objectVisibilityUpdated(A,e=!0){A.visible?(this.visibleObjects[A.id]=A,this._numVisibleObjects++):(delete this.visibleObjects[A.id],this._numVisibleObjects--),this._visibleObjectIds=null,e&&this.fire("objectVisibility",A,!0)}_deRegisterVisibleObject(A){delete this.visibleObjects[A.id],this._numVisibleObjects--,this._visibleObjectIds=null}_objectXRayedUpdated(A,e=!0){A.xrayed?(this.xrayedObjects[A.id]=A,this._numXRayedObjects++):(delete this.xrayedObjects[A.id],this._numXRayedObjects--),this._xrayedObjectIds=null,e&&this.fire("objectXRayed",A,!0)}_deRegisterXRayedObject(A){delete this.xrayedObjects[A.id],this._numXRayedObjects--,this._xrayedObjectIds=null}_objectHighlightedUpdated(A){A.highlighted?(this.highlightedObjects[A.id]=A,this._numHighlightedObjects++):(delete this.highlightedObjects[A.id],this._numHighlightedObjects--),this._highlightedObjectIds=null}_deRegisterHighlightedObject(A){delete this.highlightedObjects[A.id],this._numHighlightedObjects--,this._highlightedObjectIds=null}_objectSelectedUpdated(A,e=!0){A.selected?(this.selectedObjects[A.id]=A,this._numSelectedObjects++):(delete this.selectedObjects[A.id],this._numSelectedObjects--),this._selectedObjectIds=null,e&&this.fire("objectSelected",A,!0)}_deRegisterSelectedObject(A){delete this.selectedObjects[A.id],this._numSelectedObjects--,this._selectedObjectIds=null}_objectColorizeUpdated(A,e){e?(this.colorizedObjects[A.id]=A,this._numColorizedObjects++):(delete this.colorizedObjects[A.id],this._numColorizedObjects--),this._colorizedObjectIds=null}_deRegisterColorizedObject(A){delete this.colorizedObjects[A.id],this._numColorizedObjects--,this._colorizedObjectIds=null}_objectOpacityUpdated(A,e){e?(this.opacityObjects[A.id]=A,this._numOpacityObjects++):(delete this.opacityObjects[A.id],this._numOpacityObjects--),this._opacityObjectIds=null}_deRegisterOpacityObject(A){delete this.opacityObjects[A.id],this._numOpacityObjects--,this._opacityObjectIds=null}_objectOffsetUpdated(A,e){!e||0===e[0]&&0===e[1]&&0===e[2]?(this.offsetObjects[A.id]=A,this._numOffsetObjects++):(delete this.offsetObjects[A.id],this._numOffsetObjects--),this._offsetObjectIds=null}_deRegisterOffsetObject(A){delete this.offsetObjects[A.id],this._numOffsetObjects--,this._offsetObjectIds=null}_webglContextLost(){this.canvas.spinner.processes++;for(const A in this.components)if(this.components.hasOwnProperty(A)){const e=this.components[A];e._webglContextLost&&e._webglContextLost()}this._renderer.webglContextLost()}_webglContextRestored(){const A=this.canvas.gl;for(const e in this.components)if(this.components.hasOwnProperty(e)){const t=this.components[e];t._webglContextRestored&&t._webglContextRestored(A)}this._renderer.webglContextRestored(A),this.canvas.spinner.processes--}get capabilities(){return this._renderer.capabilities}get entityOffsetsEnabled(){return this._entityOffsetsEnabled}get readableGeometryEnabled(){return this._readableGeometry}get pickSurfacePrecisionEnabled(){return this._readableGeometry}get logarithmicDepthBufferEnabled(){return this._logarithmicDepthBufferEnabled}set numCachedSectionPlanes(A){A=A||0,this._sectionPlanesState.getNumCachedSectionPlanes()!==A&&(this._sectionPlanesState.setNumCachedSectionPlanes(A),this._needRecompile=!0,this.glRedraw())}get numCachedSectionPlanes(){return this._sectionPlanesState.getNumCachedSectionPlanes()}set pbrEnabled(A){this._pbrEnabled=!!A,this.glRedraw()}get pbrEnabled(){return this._pbrEnabled}set dtxEnabled(A){A=!!A,this._dtxEnabled!==A&&(this._dtxEnabled=A)}get dtxEnabled(){return this._dtxEnabled}set colorTextureEnabled(A){this._colorTextureEnabled=!!A,this.glRedraw()}get colorTextureEnabled(){return this._colorTextureEnabled}get markerZOffset(){return null==this._markerZOffset?-.001:this._markerZOffset}doOcclusionTest(){this._needRecompile&&(this._recompile(),this._needRecompile=!1),this._renderer.doOcclusionTest()}render(A){A&&Y.runTasks();const e={sceneId:null,pass:0};if(this._needRecompile&&(this._recompile(),this._renderer.imageDirty(),this._needRecompile=!1),!A&&!this._renderer.needsRender())return;e.sceneId=this.id;const t=this._passes,i=this._clearEachPass;let s,n;for(s=0;ss&&(s=A[3]),A[4]>n&&(n=A[4]),A[5]>o&&(o=A[5]),a=!0}a||(e=-100,t=-100,i=-100,s=100,n=100,o=100),this._aabb[0]=e,this._aabb[1]=t,this._aabb[2]=i,this._aabb[3]=s,this._aabb[4]=n,this._aabb[5]=o,this._aabbDirty=!1,this._center=null}return this._aabb}_setAABBDirty(){this._aabbDirty=!0,this.fire("boundary")}pick(A,e){if(0===this.canvas.boundary[2]||0===this.canvas.boundary[3])return this.error("Picking not allowed while canvas has zero width or height"),null;(A=A||{}).pickSurface=A.pickSurface||A.rayPick,A.canvasPos||A.matrix||A.origin&&A.direction||this.warn("picking without canvasPos, matrix, or ray origin and direction");const t=A.includeEntities||A.include;t&&(A.includeEntityIds=gB(this,t));const i=A.excludeEntities||A.exclude;return i&&(A.excludeEntityIds=gB(this,i)),this._needRecompile&&(this._recompile(),this._renderer.imageDirty(),this._needRecompile=!1),(e=A.snapToEdge||A.snapToVertex?this._renderer.snapPick(A,e):this._renderer.pick(A,e))&&e.entity&&e.entity.fire&&e.entity.fire("picked",e),e}snapPick(A){if(void 0===this._warnSnapPickDeprecated&&(this._warnSnapPickDeprecated=!0,this.warn("Scene.snapPick() is deprecated since v2.4.2 - use Scene.pick() instead")),A.canvasPos)return this._renderer.snapPick(A);this.error("Scene.snapPick() canvasPos parameter expected")}clear(){var A;for(const e in this.components)this.components.hasOwnProperty(e)&&((A=this.components[e])._dontClear||A.destroy())}clearLights(){const A=Object.keys(this.lights);for(let e=0,t=A.length;e{if(A.collidable){const c=A.aabb;c[0]n&&(n=c[3]),c[4]>o&&(o=c[4]),c[5]>r&&(r=c[5]),e=!0}})),e){const A=g.AABB3();return A[0]=t,A[1]=i,A[2]=s,A[3]=n,A[4]=o,A[5]=r,A}return this.aabb}setObjectsVisible(A,e){return this.withObjects(A,(A=>{const t=A.visible!==e;return A.visible=e,t}))}setObjectsCollidable(A,e){return this.withObjects(A,(A=>{const t=A.collidable!==e;return A.collidable=e,t}))}setObjectsCulled(A,e){return this.withObjects(A,(A=>{const t=A.culled!==e;return A.culled=e,t}))}setObjectsSelected(A,e){return this.withObjects(A,(A=>{const t=A.selected!==e;return A.selected=e,t}))}setObjectsHighlighted(A,e){return this.withObjects(A,(A=>{const t=A.highlighted!==e;return A.highlighted=e,t}))}setObjectsXRayed(A,e){return this.withObjects(A,(A=>{const t=A.xrayed!==e;return A.xrayed=e,t}))}setObjectsEdges(A,e){return this.withObjects(A,(A=>{const t=A.edges!==e;return A.edges=e,t}))}setObjectsColorized(A,e){return this.withObjects(A,(A=>{A.colorize=e}))}setObjectsOpacity(A,e){return this.withObjects(A,(A=>{const t=A.opacity!==e;return A.opacity=e,t}))}setObjectsPickable(A,e){return this.withObjects(A,(A=>{const t=A.pickable!==e;return A.pickable=e,t}))}setObjectsOffset(A,e){this.withObjects(A,(A=>{A.offset=e}))}withObjects(A,e){u.isString(A)&&(A=[A]);let t=!1;for(let i=0,s=A.length;i{s>i&&(i=s,A(...t))}));return this._tickifiedFunctions[e]={tickSubId:o,wrapperFunc:n},n}destroy(){super.destroy();for(const A in this.components)this.components.hasOwnProperty(A)&&this.components[A].destroy();this._sectionCaps.destroy(),this.canvas.gl=null,this.components=null,this.models=null,this.objects=null,this.visibleObjects=null,this.xrayedObjects=null,this.highlightedObjects=null,this.selectedObjects=null,this.colorizedObjects=null,this.opacityObjects=null,this.sectionPlanes=null,this.lights=null,this.lightMaps=null,this.reflectionMaps=null,this._objectIds=null,this._visibleObjectIds=null,this._xrayedObjectIds=null,this._highlightedObjectIds=null,this._selectedObjectIds=null,this._colorizedObjectIds=null,this._sectionCaps=null,this.types=null,this.components=null,this.canvas=null,this._renderer=null,this.input=null,this._viewport=null,this._camera=null}}const EB=g.vec4(),QB=g.vec4(),MB=g.vec3(),uB=g.vec3(),wB=g.vec3(),dB=g.vec4(),CB=g.vec4(),xB=g.vec4();class FB{constructor(A){this._scene=A}dollyToCanvasPos(A,e,t){let i=!1;const s=this._scene.camera;if(A){const e=g.subVec3(A,s.eye,MB);i=g.lenVec3(e){this._cameraDirty=!0})),this._onProjMatrix=this._scene.camera.on("projMatrix",(()=>{this._cameraDirty=!0})),this._onTick=this._scene.on("tick",(()=>{this.updatePivotElement(),this.updatePivotSphere()}))}createPivotSphere(){const A=this.getPivotPos(),e=g.vec3();g.decomposeMat4(g.inverseMat4(this._scene.viewer.camera.viewMatrix,g.mat4()),e,g.vec4(),g.vec3());const t=g.distVec3(e,A);let i=Math.tan(Math.PI/500)*t*this._pivotSphereSize;"ortho"==this._scene.camera.projection&&(i/=this._scene.camera.ortho.scale/2),RA(A,this._rtcCenter,this._rtcPos),this._pivotSphereGeometry=new gA(this._scene,uA({radius:i})),this._pivotSphere=new ct(this._scene,{geometry:this._pivotSphereGeometry,material:this._pivotSphereMaterial,pickable:!1,position:this._rtcPos,rtcCenter:this._rtcCenter})}destroyPivotSphere(){this._pivotSphere&&(this._pivotSphere.destroy(),this._pivotSphere=null),this._pivotSphereGeometry&&(this._pivotSphereGeometry.destroy(),this._pivotSphereGeometry=null)}updatePivotElement(){const A=this._scene.camera,e=this._scene.canvas;if(this._pivoting&&this._cameraDirty){g.transformPoint3(A.viewMatrix,this.getPivotPos(),this._pivotViewPos),this._pivotViewPos[3]=1,g.transformPoint4(A.projMatrix,this._pivotViewPos,this._pivotProjPos);const t=e.boundary,i=t[2],s=t[3];this._pivotCanvasPos[0]=Math.floor((1+this._pivotProjPos[0]/this._pivotProjPos[3])*i/2),this._pivotCanvasPos[1]=Math.floor((1-this._pivotProjPos[1]/this._pivotProjPos[3])*s/2);let n=e._lastBoundingClientRect;if(!n||e._canvasSizeChanged){const A=e.canvas;n=e._lastBoundingClientRect=A.getBoundingClientRect()}this._pivotElement&&(this._pivotElement.style.left=Math.floor(n.left+this._pivotCanvasPos[0])-this._pivotElement.clientWidth/2+window.scrollX+"px",this._pivotElement.style.top=Math.floor(n.top+this._pivotCanvasPos[1])-this._pivotElement.clientHeight/2+window.scrollY+"px"),this._cameraDirty=!1}}updatePivotSphere(){this._pivoting&&this._pivotSphere&&(RA(this.getPivotPos(),this._rtcCenter,this._rtcPos),g.compareVec3(this._rtcPos,this._pivotSphere.position)||(this.destroyPivotSphere(),this.createPivotSphere()))}setPivotElement(A){this._pivotElement=A}enablePivotSphere(A={}){this.destroyPivotSphere(),this._pivotSphereEnabled=!0,A.size&&(this._pivotSphereSize=A.size);const e=A.color||[1,0,0];this._pivotSphereMaterial=new lt(this._scene,{emissive:e,ambient:e,specular:[0,0,0],diffuse:[0,0,0]})}disablePivotSphere(){this.destroyPivotSphere(),this._pivotSphereEnabled=!1}startPivot(){const A=this._scene.camera;let e=g.lookAtMat4v(A.eye,A.look,A.up);g.transformPoint3(e,this.getPivotPos(),this._cameraOffset);const t=this.getPivotPos();this._cameraOffset[2]+=g.distVec3(A.eye,t),e=g.inverseMat4(e);const i=g.transformVec3(e,this._cameraOffset),s=g.vec3();if(g.subVec3(A.eye,t,s),g.addVec3(s,i),A.zUp){const A=s[1];s[1]=s[2],s[2]=A}this._radius=g.lenVec3(s),this._polar=Math.acos(s[1]/this._radius),this._azimuth=Math.atan2(s[0],s[2]),this._pivoting=!0}_cameraLookingDownwards(){const A=this._scene.camera,e=g.normalizeVec3(g.subVec3(A.look,A.eye,pB)),t=g.cross3Vec3(e,A.worldUp,IB);return g.sqLenVec3(t)<=1e-4}getPivoting(){return this._pivoting}setPivotPos(A){this._pivotWorldPos.set(A),this._pivotPosSet=!0}setCanvasPivotPos(A){const e=this._scene.camera,t=Math.abs(g.distVec3(this._scene.center,e.eye)),i=e.project.transposedMatrix,s=i.subarray(8,12),n=i.subarray(12),o=[0,0,-1,1],r=g.dotVec4(o,s)/g.dotVec4(o,n),c=YB;e.project.unproject(A,r,DB,mB,c);const a=g.normalizeVec3(g.subVec3(c,e.eye,pB)),h=g.addVec3(e.eye,g.mulVec3Scalar(a,t,IB),fB);this.setPivotPos(h)}getPivotPos(){return this._pivotPosSet?this._pivotWorldPos:this._scene.camera.look}continuePivot(A,e){if(!this._pivoting)return;if(0===A&&0===e)return;const t=this._scene.camera;var i=-A;const s=-e;1===t.worldUp[2]&&(i=-i),this._azimuth+=.01*-i;const n=s<0,o=s>0,r=Math.abs(this._polar-JB)<.005,c=Math.abs(this._polar-NB)<.005;let a=this._polar+.01*s;a=r&&n?JB:c&&o?NB:g.clamp(a,JB,NB),this._polar=a;const h=[this._radius*Math.sin(this._polar)*Math.sin(this._azimuth),this._radius*Math.cos(this._polar),this._radius*Math.sin(this._polar)*Math.cos(this._azimuth)];if(1===t.worldUp[2]){const A=h[1];h[1]=h[2],h[2]=A}const B=g.lenVec3(g.subVec3(t.look,t.eye,g.vec3())),l=this.getPivotPos();g.addVec3(h,l);let E=g.lookAtMat4v(h,l,t.worldUp);E=g.inverseMat4(E);const Q=g.transformVec3(E,this._cameraOffset);E[12]-=Q[0],E[13]-=Q[1],E[14]-=Q[2];const M=[E[8],E[9],E[10]];t.eye=[E[12],E[13],E[14]],g.subVec3(t.eye,g.mulVec3Scalar(M,B),t.look),t.up=[E[4],E[5],E[6]],this.showPivot()}showPivot(){this._shown||(this._pivotElement&&(this.updatePivotElement(),this._pivotElement.style.visibility="visible"),this._pivotSphereEnabled&&(this.destroyPivotSphere(),this.createPivotSphere()),this._shown=!0)}hidePivot(){this._shown&&(this._pivotElement&&(this._pivotElement.style.visibility="hidden"),this._pivotSphereEnabled&&this.destroyPivotSphere(),this._shown=!1)}endPivot(){this._pivoting=!1}destroy(){this.destroyPivotSphere(),this._scene.camera.off(this._onViewMatrix),this._scene.camera.off(this._onProjMatrix),this._scene.off(this._onTick)}}class zB{constructor(A,e){this._scene=A.scene,this._cameraControl=A,this._scene.canvas.canvas.oncontextmenu=function(A){A.preventDefault()},this._configs=e,this.schedulePickEntity=!1,this.schedulePickSurface=!1,this.scheduleSnapOrPick=!1,this.pickCursorPos=g.vec2(),this.picked=!1,this.pickedSurface=!1,this.pickResult=null,this._lastPickedEntityId=null,this._lastHash=null,this._needFireEvents=0}update(){if(!this._configs.pointerEnabled)return;if(!this.schedulePickEntity&&!this.schedulePickSurface)return;const A=`${~~this.pickCursorPos[0]}-${~~this.pickCursorPos[1]}-${this.scheduleSnapOrPick}-${this.schedulePickSurface}-${this.schedulePickEntity}`;if(this._lastHash===A)return;this.picked=!1,this.pickedSurface=!1,this.snappedOrPicked=!1,this.hoveredSnappedOrSurfaceOff=!1;const e=this._cameraControl.hasSubs("hoverSurface");if(this.scheduleSnapOrPick){const A=this._scene.pick({canvasPos:this.pickCursorPos,snapRadius:this._configs.snapRadius,snapToVertex:this._configs.snapToVertex,snapToEdge:this._configs.snapToEdge});A&&(A.snappedToEdge||A.snappedToVertex)?(this.snapPickResult=A,this.snappedOrPicked=!0,this._needFireEvents++):(this.schedulePickSurface=!0,this.snapPickResult=null)}if(this.schedulePickSurface&&this.pickResult&&this.pickResult.worldPos){const A=this.pickResult.canvasPos;if(A[0]===this.pickCursorPos[0]&&A[1]===this.pickCursorPos[1])return this.picked=!0,this.pickedSurface=!0,this._needFireEvents+=e?1:0,this.schedulePickEntity=!1,this.schedulePickSurface=!1,this.scheduleSnapOrPick?this.snappedOrPicked=!0:this.hoveredSnappedOrSurfaceOff=!0,void(this.scheduleSnapOrPick=!1)}if(this.schedulePickEntity&&this.pickResult&&(this.pickResult.canvasPos||this.pickResult.snappedCanvasPos)){const A=this.pickResult.canvasPos||this.pickResult.snappedCanvasPos;if(A[0]===this.pickCursorPos[0]&&A[1]===this.pickCursorPos[1])return this.picked=!0,this.pickedSurface=!1,this.schedulePickEntity=!1,void(this.schedulePickSurface=!1)}this.schedulePickSurface||this.scheduleSnapOrPick&&!this.snapPickResult?(this.pickResult=this._scene.pick({pickSurface:!0,pickSurfaceNormal:!1,canvasPos:this.pickCursorPos}),this.pickResult?(this.picked=!0,this.scheduleSnapOrPick?this.snappedOrPicked=!0:this.pickedSurface=!0,this._needFireEvents++):this.scheduleSnapOrPick&&(this.hoveredSnappedOrSurfaceOff=!0,this._needFireEvents++)):(this.pickResult=this._scene.pick({canvasPos:this.pickCursorPos}),this.pickResult&&(this.picked=!0,this.pickedSurface=!1,this._needFireEvents++)),this.scheduleSnapOrPick=!1,this.schedulePickEntity=!1,this.schedulePickSurface=!1}fireEvents(){if(0!==this._needFireEvents){if(this.hoveredSnappedOrSurfaceOff&&this._cameraControl.fire("hoverSnapOrSurfaceOff",{canvasPos:this.pickCursorPos,pointerPos:this.pickCursorPos},!0),this.snappedOrPicked)if(this.snapPickResult){const A=new ya;A.entity=this.snapPickResult.entity,A.snappedToVertex=this.snapPickResult.snappedToVertex,A.snappedToEdge=this.snapPickResult.snappedToEdge,A.worldPos=this.snapPickResult.worldPos,A.canvasPos=this.pickCursorPos,A.snappedCanvasPos=this.snapPickResult.snappedCanvasPos,this._cameraControl.fire("hoverSnapOrSurface",A,!0),this.snapPickResult=null}else this._cameraControl.fire("hoverSnapOrSurface",this.pickResult,!0);if(this.picked&&this.pickResult&&(this.pickResult.entity||this.pickResult.worldPos)){if(this.pickResult.entity){const A=this.pickResult.entity.id;this._lastPickedEntityId!==A&&(void 0!==this._lastPickedEntityId&&this._cameraControl.fire("hoverOut",{entity:this._scene.objects[this._lastPickedEntityId]},!0),this._cameraControl.fire("hoverEnter",this.pickResult,!0),this._lastPickedEntityId=A)}this._cameraControl.fire("hover",this.pickResult,!0),this.pickResult.worldPos&&(this.pickedSurface=!0,this._cameraControl.fire("hoverSurface",this.pickResult,!0))}else void 0!==this._lastPickedEntityId&&(this._cameraControl.fire("hoverOut",{entity:this._scene.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),this._cameraControl.fire("hoverOff",{canvasPos:this.pickCursorPos},!0);this.pickResult=null,this._needFireEvents=0}}}const TB=g.vec2();class UB{constructor(A,e,t,i,s){this._scene=A;const n=e.pickController,o=e.cameraControl;let r,c,a,h=0,B=0,l=0,E=0,Q=!1;const M=g.vec3();let u=!0;const w=this._scene.canvas.canvas,d=[];function C(A=!0){h=i.pointerCanvasPos[0],B=i.pointerCanvasPos[1],l=i.pointerCanvasPos[0],E=i.pointerCanvasPos[1],A&&(n.pickCursorPos=i.pointerCanvasPos,n.schedulePickSurface=!0,n.update(),n.picked&&n.pickedSurface&&n.pickResult&&n.pickResult.worldPos?(Q=!0,M.set(n.pickResult.worldPos)):Q=!1)}document.addEventListener("keydown",this._documentKeyDownHandler=e=>{if(!t.active||!t.pointerEnabled||!A.input.keyboardEnabled)return;const i=e.keyCode;d[i]=!0}),document.addEventListener("keyup",this._documentKeyUpHandler=e=>{if(!t.active||!t.pointerEnabled||!A.input.keyboardEnabled)return;const i=e.keyCode;d[i]=!1}),document.addEventListener("visibilitychange",this._onVisibilityChange=()=>{d.splice(0)}),window.addEventListener("blur",this._onBlur=()=>{d.splice(0)}),w.addEventListener("mousedown",this._mouseDownHandler=e=>{if(t.active&&t.pointerEnabled)switch(e.which){case 1:d[A.input.KEY_SHIFT]||t.planView?(r=!0,d[A.input.MOUSE_LEFT_BUTTON]=!0,C()):(r=!0,d[A.input.MOUSE_LEFT_BUTTON]=!0,C(!1));break;case 2:c=!0,d[A.input.MOUSE_MIDDLE_BUTTON]=!0,C();break;case 3:a=!0,d[A.input.MOUSE_RIGHT_BUTTON]=!0,t.panRightClick&&C()}}),document.addEventListener("mousemove",this._documentMouseMoveHandler=e=>{if(!t.active||!t.pointerEnabled)return;if(!r&&!c&&!a)return;const n=A.canvas.boundary,l=n[2],E=n[3],u=i.pointerCanvasPos[0],w=i.pointerCanvasPos[1],C=t.planView||o._isKeyDownForAction(o.MOUSE_PAN,d),x=o._isKeyDownForAction(o.MOUSE_ROTATE,d),F=document.pointerLockElement?e.movementX:u-h,p=document.pointerLockElement?e.movementY:w-B;if(C){const e=A.camera;if("perspective"===e.projection){const t=Math.abs(Q?g.lenVec3(g.subVec3(M,A.camera.eye,[])):A.camera.eyeLookDist)*Math.tan(e.perspective.fov/2*Math.PI/180);s.panDeltaX+=1.5*F*t/E,s.panDeltaY+=1.5*p*t/E}else s.panDeltaX+=.5*e.ortho.scale*(F/E),s.panDeltaY+=.5*e.ortho.scale*(p/E)}else x&&(t.planView||(t.firstPerson?(s.rotateDeltaY-=F/l*t.dragRotationRate/2,s.rotateDeltaX+=p/E*(t.dragRotationRate/4)):(s.rotateDeltaY-=F/l*(1.5*t.dragRotationRate),s.rotateDeltaX+=p/E*(1.5*t.dragRotationRate))));h=u,B=w}),w.addEventListener("mousemove",this._canvasMouseMoveHandler=A=>{t.active&&t.pointerEnabled&&i.mouseover&&(u=!0)}),document.addEventListener("mouseup",this._documentMouseUpHandler=e=>{if(t.active&&t.pointerEnabled)switch(e.which){case 1:case 2:case 3:r=!1,c=!1,a=!1,d[A.input.MOUSE_LEFT_BUTTON]=!1,d[A.input.MOUSE_MIDDLE_BUTTON]=!1,d[A.input.MOUSE_RIGHT_BUTTON]=!1}}),w.addEventListener("mouseup",this._mouseUpHandler=A=>{if(t.active&&t.pointerEnabled){if(3===A.which){!function(A,e){if(A){let t=A.target,i=0,s=0,n=0,o=0;for(;t.offsetParent;)i+=t.offsetLeft,s+=t.offsetTop,n+=t.scrollLeft,o+=t.scrollTop,t=t.offsetParent;e[0]=A.pageX+n-i,e[1]=A.pageY+o-s}else A=window.event,e[0]=A.x,e[1]=A.y}(A,TB);const t=TB[0],i=TB[1];Math.abs(t-l)<3&&Math.abs(i-E)<3&&e.cameraControl.fire("rightClick",{pagePos:[Math.round(A.pageX),Math.round(A.pageY)],canvasPos:TB,event:A},!0)}w.style.removeProperty("cursor")}}),w.addEventListener("mouseenter",this._mouseEnterHandler=()=>{t.active&&t.pointerEnabled});const x=1/60;let F=null;w.addEventListener("wheel",this._mouseWheelHandler=A=>{if(!(t.active&&t.pointerEnabled&&t.zoomOnMouseWheel&&o._isKeyDownForAction(o.MOUSE_DOLLY,d)))return;const e=performance.now()/1e3;var n=null!==F?e-F:0;F=e,n>.05&&(n=.05),n{if(!t.active||!t.pointerEnabled||!A.input.keyboardEnabled)return;if(t.keyboardEnabledOnlyIfMouseover&&!i.mouseover)return;const o=s._isKeyDownForAction(s.AXIS_VIEW_RIGHT),r=s._isKeyDownForAction(s.AXIS_VIEW_BACK),c=s._isKeyDownForAction(s.AXIS_VIEW_LEFT),a=s._isKeyDownForAction(s.AXIS_VIEW_FRONT),h=s._isKeyDownForAction(s.AXIS_VIEW_TOP),B=s._isKeyDownForAction(s.AXIS_VIEW_BOTTOM);if(!(o||r||c||a||h||B))return;const l=A.aabb,E=g.getAABB3Diag(l);g.getAABB3Center(l,RB);const Q=Math.abs(E/Math.tan(e.cameraFlight.fitFOV*g.DEGTORAD)),M=1.1*E;vB.orthoScale=M,o?(vB.eye.set(g.addVec3(RB,g.mulVec3Scalar(n.worldRight,Q,bB),GB)),vB.look.set(RB),vB.up.set(n.worldUp)):r?(vB.eye.set(g.addVec3(RB,g.mulVec3Scalar(n.worldForward,Q,bB),GB)),vB.look.set(RB),vB.up.set(n.worldUp)):c?(vB.eye.set(g.addVec3(RB,g.mulVec3Scalar(n.worldRight,-Q,bB),GB)),vB.look.set(RB),vB.up.set(n.worldUp)):a?(vB.eye.set(g.addVec3(RB,g.mulVec3Scalar(n.worldForward,-Q,bB),GB)),vB.look.set(RB),vB.up.set(n.worldUp)):h?(vB.eye.set(g.addVec3(RB,g.mulVec3Scalar(n.worldUp,Q,bB),GB)),vB.look.set(RB),vB.up.set(g.normalizeVec3(g.mulVec3Scalar(n.worldForward,1,kB),PB))):B&&(vB.eye.set(g.addVec3(RB,g.mulVec3Scalar(n.worldUp,-Q,bB),GB)),vB.look.set(RB),vB.up.set(g.normalizeVec3(g.mulVec3Scalar(n.worldForward,-1,kB)))),!t.firstPerson&&t.followPointer&&e.pivotController.setPivotPos(RB),e.cameraFlight.duration>0?e.cameraFlight.flyTo(vB,(()=>{e.pivotController.getPivoting()&&t.followPointer&&e.pivotController.showPivot()})):(e.cameraFlight.jumpTo(vB),e.pivotController.getPivoting()&&t.followPointer&&e.pivotController.showPivot())}))}reset(){}destroy(){this._scene.input.off(this._onSceneKeyDown)}}class SB{constructor(A,e,t,i,s){this._scene=A;const n=e.pickController,o=e.pivotController,r=e.cameraControl;this._clicks=0,this._timeout=null,this._lastPickedEntityId=null,this._lastClickedWorldPos=null;let c=!1,a=!1;const h=this._scene.canvas.canvas,B=t=>{let i;t&&t.worldPos&&(i=t.worldPos);const s=t&&t.entity?t.entity.aabb:A.aabb;if(i){const t=A.camera;g.subVec3(t.eye,t.look,[]),e.cameraFlight.flyTo({aabb:s})}else e.cameraFlight.flyTo({aabb:s})},l=A.tickify(this._canvasMouseMoveHandler=e=>{if(!t.active||!t.pointerEnabled)return;if(c||a)return;if(r.hasSubs("rayMove")){const e=g.vec3(),t=g.vec3();g.canvasPosToWorldRay(A.canvas.canvas,A.camera.viewMatrix,A.camera.projMatrix,A.camera.projection,i.pointerCanvasPos,e,t),r.fire("rayMove",{canvasPos:i.pointerCanvasPos,ray:{origin:e,direction:t,canvasPos:i.pointerCanvasPos}},!0)}const s=r.hasSubs("hover"),o=r.hasSubs("hoverEnter"),h=r.hasSubs("hoverOut"),B=r.hasSubs("hoverOff"),l=r.hasSubs("hoverSurface"),E=r.hasSubs("hoverSnapOrSurface");if(s||o||h||B||l||E)if(n.pickCursorPos=i.pointerCanvasPos,n.schedulePickEntity=!0,n.schedulePickSurface=l,n.scheduleSnapOrPick=E,n.update(),n.pickResult){if(n.pickResult.entity){const e=n.pickResult.entity.id;this._lastPickedEntityId!==e&&(void 0!==this._lastPickedEntityId&&r.fire("hoverOut",{entity:A.objects[this._lastPickedEntityId]},!0),r.fire("hoverEnter",n.pickResult,!0),this._lastPickedEntityId=e)}r.fire("hover",n.pickResult,!0),(n.pickResult.worldPos||n.pickResult.snappedWorldPos)&&r.fire("hoverSurface",n.pickResult,!0)}else void 0!==this._lastPickedEntityId&&(r.fire("hoverOut",{entity:A.objects[this._lastPickedEntityId]},!0),this._lastPickedEntityId=void 0),r.fire("hoverOff",{canvasPos:n.pickCursorPos},!0)});h.addEventListener("mousemove",l),h.addEventListener("mousedown",this._canvasMouseDownHandler=e=>{1===e.which&&(c=!0),3===e.which&&(a=!0);if(1===e.which&&t.active&&t.pointerEnabled&&(i.mouseDownClientX=e.clientX,i.mouseDownClientY=e.clientY,i.mouseDownCursorX=i.pointerCanvasPos[0],i.mouseDownCursorY=i.pointerCanvasPos[1],!t.firstPerson&&t.followPointer&&(n.pickCursorPos=i.pointerCanvasPos,n.schedulePickSurface=!0,n.update(),1===e.which))){const e=n.pickResult;e&&e.worldPos?(o.setPivotPos(e.worldPos),o.startPivot(),this._lastClickedWorldPos=e.worldPos.slice()):(t.smartPivot?o.setCanvasPivotPos(i.pointerCanvasPos):this._lastClickedWorldPos?o.setPivotPos(this._lastClickedWorldPos):o.setPivotPos(A.camera.look),o.startPivot())}}),document.addEventListener("mouseup",this._documentMouseUpHandler=A=>{1===A.which&&(c=!1),3===A.which&&(a=!1),o.getPivoting()&&o.endPivot()}),h.addEventListener("mouseup",this._canvasMouseUpHandler=s=>{if(!t.active||!t.pointerEnabled)return;if(!(1===s.which))return;if(o.hidePivot(),Math.abs(s.clientX-i.mouseDownClientX)>3||Math.abs(s.clientY-i.mouseDownClientY)>3)return;const c=r.hasSubs("picked"),a=r.hasSubs("pickedNothing"),h=r.hasSubs("pickedSurface"),l=r.hasSubs("doublePicked"),E=r.hasSubs("doublePickedSurface"),Q=r.hasSubs("doublePickedNothing");if(!(t.doublePickFlyTo||l||E||Q))return(c||a||h)&&(n.pickCursorPos=i.pointerCanvasPos,n.schedulePickEntity=!0,n.schedulePickSurface=h,n.update(),n.pickResult?(r.fire("picked",n.pickResult,!0),n.pickedSurface&&r.fire("pickedSurface",n.pickResult,!0)):r.fire("pickedNothing",{canvasPos:i.pointerCanvasPos},!0)),void(this._clicks=0);if(this._clicks++,1===this._clicks){n.pickCursorPos=i.pointerCanvasPos,n.schedulePickEntity=t.doublePickFlyTo,n.schedulePickSurface=h,n.update();const A=n.pickResult,s=n.pickedSurface;this._timeout=setTimeout((()=>{A?(r.fire("picked",A,!0),s&&(r.fire("pickedSurface",A,!0),!t.firstPerson&&t.followPointer&&(e.pivotController.setPivotPos(A.worldPos),e.pivotController.startPivot()&&e.pivotController.showPivot()))):r.fire("pickedNothing",{canvasPos:i.pointerCanvasPos},!0),this._clicks=0}),t.doubleClickTimeFrame)}else{if(null!==this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null),n.pickCursorPos=i.pointerCanvasPos,n.schedulePickEntity=t.doublePickFlyTo||l||E,n.schedulePickSurface=n.schedulePickEntity&&E,n.update(),n.pickResult){if(r.fire("doublePicked",n.pickResult,!0),n.pickedSurface&&r.fire("doublePickedSurface",n.pickResult,!0),t.doublePickFlyTo&&(B(n.pickResult),!t.firstPerson&&t.followPointer)){const A=n.pickResult.entity.aabb,t=g.getAABB3Center(A);e.pivotController.setPivotPos(t),e.pivotController.startPivot()&&e.pivotController.showPivot()}}else if(r.fire("doublePickedNothing",{canvasPos:i.pointerCanvasPos},!0),t.doublePickFlyTo&&(B(),!t.firstPerson&&t.followPointer)){const t=A.aabb,i=g.getAABB3Center(t);e.pivotController.setPivotPos(i),e.pivotController.startPivot()&&e.pivotController.showPivot()}this._clicks=0}},!1)}reset(){this._clicks=0,this._lastPickedEntityId=null,this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null)}destroy(){const A=this._scene.canvas.canvas;A.removeEventListener("mousemove",this._canvasMouseMoveHandler),A.removeEventListener("mousedown",this._canvasMouseDownHandler),document.removeEventListener("mouseup",this._documentMouseUpHandler),A.removeEventListener("mouseup",this._canvasMouseUpHandler),this._timeout&&(window.clearTimeout(this._timeout),this._timeout=null)}}class jB{constructor(A,e,t,i,s){this._scene=A;const n=A.input,o=[];A.canvas.canvas;let r=!0;this._onSceneMouseMove=n.on("mousemove",(()=>{r=!0})),this._onSceneKeyDown=n.on("keydown",(e=>{t.active&&t.pointerEnabled&&A.input.keyboardEnabled&&(t.keyboardEnabledOnlyIfMouseover&&!i.mouseover||(o[e]=!0))})),this._onSceneKeyUp=n.on("keyup",(i=>{t.active&&t.pointerEnabled&&A.input.keyboardEnabled&&(o[i]=!1,e.pivotController.getPivoting()&&e.pivotController.endPivot())})),document.addEventListener("visibilitychange",this._onVisibilityChange=()=>{o.splice(0)}),window.addEventListener("blur",this._onBlur=()=>{o.splice(0)}),this._onTick=A.on("tick",(c=>{if(!t.active||!t.pointerEnabled||!A.input.keyboardEnabled)return;if(t.keyboardEnabledOnlyIfMouseover&&!i.mouseover)return;const a=e.cameraControl,h=c.deltaTime/1e3;if(!t.planView){const A=a._isKeyDownForAction(a.ROTATE_Y_POS,o),i=a._isKeyDownForAction(a.ROTATE_Y_NEG,o),n=a._isKeyDownForAction(a.ROTATE_X_POS,o),r=a._isKeyDownForAction(a.ROTATE_X_NEG,o),c=h*t.keyboardRotationRate;(A||i||n||r)&&(!t.firstPerson&&t.followPointer&&e.pivotController.startPivot(),A?s.rotateDeltaY+=c:i&&(s.rotateDeltaY-=c),n?s.rotateDeltaX+=c:r&&(s.rotateDeltaX-=c),!t.firstPerson&&t.followPointer&&e.pivotController.startPivot())}if(!o[n.KEY_CTRL]&&!o[n.KEY_ALT]){const A=a._isKeyDownForAction(a.DOLLY_BACKWARDS,o),n=a._isKeyDownForAction(a.DOLLY_FORWARDS,o);if(A||n){const o=h*t.keyboardDollyRate;!t.firstPerson&&t.followPointer&&e.pivotController.startPivot(),n?s.dollyDelta-=o:A&&(s.dollyDelta+=o),r&&(i.followPointerDirty=!0,r=!1)}}const B=a._isKeyDownForAction(a.PAN_FORWARDS,o),g=a._isKeyDownForAction(a.PAN_BACKWARDS,o),l=a._isKeyDownForAction(a.PAN_LEFT,o),E=a._isKeyDownForAction(a.PAN_RIGHT,o),Q=a._isKeyDownForAction(a.PAN_UP,o),M=a._isKeyDownForAction(a.PAN_DOWN,o),u=(o[n.KEY_ALT]?.3:1)*h*t.keyboardPanRate;(B||g||l||E||Q||M)&&(!t.firstPerson&&t.followPointer&&e.pivotController.startPivot(),M?s.panDeltaY+=u:Q&&(s.panDeltaY+=-u),E?s.panDeltaX+=-u:l&&(s.panDeltaX+=u),g?s.panDeltaZ+=u:B&&(s.panDeltaZ+=-u))}))}reset(){}destroy(){this._scene.off(this._onTick),this._scene.input.off(this._onSceneMouseMove),this._scene.input.off(this._onSceneKeyDown),document.removeEventListener("visibilitychange",this._onVisibilityChange),window.removeEventListener("blur",this._onBlur),this._scene.input.off(this._onSceneKeyUp)}}const OB=.001,_B=g.vec3();class WB{constructor(A,e,t,i,s){this._scene=A;const n=A.camera,o=e.pickController,r=e.pivotController,c=e.panController,a=e.cameraControl;let h=1,B=1,l=null;this._onTick=A.on("tick",(()=>{if(!t.active||!t.pointerEnabled)return;let e="default";if(Math.abs(s.dollyDelta){i.mouseover=!0}),n.addEventListener("mouseleave",this._mouseLeaveHandler=()=>{i.mouseover=!1,n.style.cursor=null}),document.addEventListener("mousemove",this._mouseMoveHandler=A=>{LB(A,n,i.pointerCanvasPos)}),n.addEventListener("mousedown",this._mouseDownHandler=A=>{t.active&&t.pointerEnabled&&(LB(A,n,i.pointerCanvasPos),i.mouseover=!0)}),n.addEventListener("mouseup",this._mouseUpHandler=A=>{t.active&&t.pointerEnabled})}reset(){}destroy(){const A=this._scene.canvas.canvas;document.removeEventListener("mousemove",this._mouseMoveHandler),A.removeEventListener("mouseenter",this._mouseEnterHandler),A.removeEventListener("mouseleave",this._mouseLeaveHandler),A.removeEventListener("mousedown",this._mouseDownHandler),A.removeEventListener("mouseup",this._mouseUpHandler)}}function LB(A,e,t){if(A){const{left:i,top:s}=e.getBoundingClientRect();t[0]=A.clientX-i,t[1]=A.clientY-s}else A=window.event,t[0]=A.x,t[1]=A.y;return t}const VB=function(A,e){if(A){let t=A.target,i=0,s=0;for(;t.offsetParent;)i+=t.offsetLeft,s+=t.offsetTop,t=t.offsetParent;e[0]=A.pageX-i,e[1]=A.pageY-s}else A=window.event,e[0]=A.x,e[1]=A.y;return e};class KB{constructor(A,e,t,i,s){this._scene=A;const n=e.pickController,o=e.pivotController,r=g.vec2(),c=g.vec2(),a=g.vec2(),h=g.vec2(),B=[],l=this._scene.canvas.canvas;let E=0,Q=!1;this._onTick=A.on("tick",(()=>{Q=!1})),l.addEventListener("touchstart",this._canvasTouchStartHandler=e=>{if(!t.active||!t.pointerEnabled)return;e.preventDefault();const s=e.touches,c=e.changedTouches;for(i.touchStartTime=Date.now(),1===s.length&&1===c.length&&(VB(s[0],r),t.followPointer&&(n.pickCursorPos=r,n.schedulePickSurface=!0,n.update(),t.planView||(n.picked&&n.pickedSurface&&n.pickResult&&n.pickResult.worldPos?(o.setPivotPos(n.pickResult.worldPos),!t.firstPerson&&o.startPivot()&&o.showPivot()):(t.smartPivot?o.setCanvasPivotPos(i.pointerCanvasPos):o.setPivotPos(A.camera.look),!t.firstPerson&&o.startPivot()&&o.showPivot()))));B.length{o.getPivoting()&&(o.endPivot(),o.hidePivot())}),l.addEventListener("touchmove",this._canvasTouchMoveHandler=e=>{if(!t.active||!t.pointerEnabled)return;if(e.stopPropagation(),e.preventDefault(),Q)return;Q=!0;const o=A.canvas.boundary,r=o[2],l=o[3],M=e.touches;if(e.touches.length===E){if(1===E){VB(M[0],c),g.subVec2(c,B[0],h);const e=h[0],n=h[1];if(null!==i.longTouchTimeout&&(Math.abs(e)>t.longTapRadius||Math.abs(n)>t.longTapRadius)&&(clearTimeout(i.longTouchTimeout),i.longTouchTimeout=null),t.planView){const i=A.camera;if("perspective"===i.projection){const o=Math.abs(A.camera.eyeLookDist)*Math.tan(i.perspective.fov/2*Math.PI/180);s.panDeltaX+=e*o/l*t.touchPanRate,s.panDeltaY+=n*o/l*t.touchPanRate}else s.panDeltaX+=.5*i.ortho.scale*(e/l)*t.touchPanRate,s.panDeltaY+=.5*i.ortho.scale*(n/l)*t.touchPanRate}else s.rotateDeltaY-=e/r*(1*t.dragRotationRate),s.rotateDeltaX+=n/l*(1.5*t.dragRotationRate)}else if(2===E){const e=M[0],o=M[1];VB(e,c),VB(o,a);const r=g.geometricMeanVec2(B[0],B[1]),h=g.geometricMeanVec2(c,a),E=g.vec2();g.subVec2(r,h,E);const Q=E[0],u=E[1],w=A.camera,d=g.distVec2([e.pageX,e.pageY],[o.pageX,o.pageY]),C=(g.distVec2(B[0],B[1])-d)*t.touchDollyRate;if(s.dollyDelta=C,Math.abs(C)<1)if("perspective"===w.projection){const e=n.pickResult?n.pickResult.worldPos:A.center,i=Math.abs(g.lenVec3(g.subVec3(e,A.camera.eye,[])))*Math.tan(w.perspective.fov/2*Math.PI/180);s.panDeltaX-=Q*i/l*t.touchPanRate,s.panDeltaY-=u*i/l*t.touchPanRate}else s.panDeltaX-=.5*w.ortho.scale*(Q/l)*t.touchPanRate,s.panDeltaY-=.5*w.ortho.scale*(u/l)*t.touchPanRate;i.pointerCanvasPos=h}for(let A=0;A{let i;t&&t.worldPos&&(i=t.worldPos);const s=t?t.entity.aabb:A.aabb;if(i){const t=A.camera;g.subVec3(t.eye,t.look,[]),e.cameraFlight.flyTo({aabb:s})}else e.cameraFlight.flyTo({aabb:s})};l.addEventListener("touchstart",this._canvasTouchStartHandler=A=>{if(!t.active||!t.pointerEnabled)return;null!==i.longTouchTimeout&&(clearTimeout(i.longTouchTimeout),i.longTouchTimeout=null);const s=A.touches,n=A.changedTouches;if(r=Date.now(),1===s.length&&1===n.length){h=r,ZB(s[0],a);const n=a[0],o=a[1],c=s[0].pageX,B=s[0].pageY;i.longTouchTimeout=setTimeout((()=>{e.cameraControl.fire("rightClick",{pagePos:[Math.round(c),Math.round(B)],canvasPos:[Math.round(n),Math.round(o)],event:A},!0),i.longTouchTimeout=null}),t.longTapTimeout)}else h=-1;for(;c.length{if(!t.active||!t.pointerEnabled)return;const e=Date.now(),s=A.touches,r=A.changedTouches,l=o.hasSubs("pickedSurface");null!==i.longTouchTimeout&&(clearTimeout(i.longTouchTimeout),i.longTouchTimeout=null),0===s.length&&1===r.length&&h>-1&&e-h<150&&(B>-1&&h-B<325?(ZB(r[0],n.pickCursorPos),n.schedulePickEntity=!0,n.schedulePickSurface=l,n.update(),n.pickResult?(n.pickResult.touchInput=!0,o.fire("doublePicked",n.pickResult),n.pickedSurface&&o.fire("doublePickedSurface",n.pickResult),t.doublePickFlyTo&&E(n.pickResult)):(o.fire("doublePickedNothing"),t.doublePickFlyTo&&E()),B=-1):g.distVec2(c[0],a)<4&&(ZB(r[0],n.pickCursorPos),n.schedulePickEntity=!0,n.schedulePickSurface=l,n.update(),n.pickResult?(n.pickResult.touchInput=!0,o.fire("picked",n.pickResult),n.pickedSurface&&o.fire("pickedSurface",n.pickResult)):o.fire("pickedNothing"),B=e),h=-1),c.length=s.length;for(let A=0,e=s.length;A{A.preventDefault()},this._configs={longTapTimeout:600,longTapRadius:5,active:!0,keyboardLayout:"qwerty",navMode:"orbit",planView:!1,firstPerson:!1,followPointer:!0,doublePickFlyTo:!0,panRightClick:!0,showPivot:!1,pointerEnabled:!0,constrainVertical:!1,smartPivot:!1,doubleClickTimeFrame:250,zoomOnMouseWheel:!0,snapToVertex:true,snapToEdge:true,snapRadius:30,keyboardEnabledOnlyIfMouseover:!0,dragRotationRate:360,keyboardRotationRate:90,rotationInertia:0,keyboardPanRate:1,touchPanRate:1,panInertia:.5,keyboardDollyRate:10,mouseWheelDollyRate:100,touchDollyRate:.2,dollyInertia:0,dollyProximityThreshold:30,dollyMinSpeed:.04},this._states={pointerCanvasPos:g.vec2(),mouseover:!1,followPointerDirty:!0,mouseDownClientX:0,mouseDownClientY:0,mouseDownCursorX:0,mouseDownCursorY:0,touchStartTime:null,activeTouches:[],tapStartPos:g.vec2(),tapStartTime:-1,lastTapTime:-1,longTouchTimeout:null},this._updates={rotateDeltaX:0,rotateDeltaY:0,panDeltaX:0,panDeltaY:0,panDeltaZ:0,dollyDelta:0};const t=this.scene;this._controllers={cameraControl:this,pickController:new zB(this,this._configs),pivotController:new yB(t,this._configs),panController:new FB(t),cameraFlight:new X(this,{duration:.5})},this._handlers=[new XB(this.scene,this._controllers,this._configs,this._states,this._updates),new KB(this.scene,this._controllers,this._configs,this._states,this._updates),new UB(this.scene,this._controllers,this._configs,this._states,this._updates),new HB(this.scene,this._controllers,this._configs,this._states,this._updates),new SB(this.scene,this._controllers,this._configs,this._states,this._updates),new qB(this.scene,this._controllers,this._configs,this._states,this._updates),new jB(this.scene,this._controllers,this._configs,this._states,this._updates)],this._cursors={dollyForward:"zoom-in",dollyBackward:"zoom-out",rotate:"grabbing",pan:"move"},this._cameraUpdater=new WB(this.scene,this._controllers,this._configs,this._states,this._updates),this.navMode=e.navMode,e.planView&&(this.planView=e.planView),this.constrainVertical=e.constrainVertical,e.keyboardLayout?this.keyboardLayout=e.keyboardLayout:this.keyMap=e.keyMap,this.doublePickFlyTo=e.doublePickFlyTo,this.panRightClick=e.panRightClick,this.active=e.active,this.followPointer=e.followPointer,this.rotationInertia=e.rotationInertia,this.keyboardPanRate=e.keyboardPanRate,this.touchPanRate=e.touchPanRate,this.keyboardRotationRate=e.keyboardRotationRate,this.dragRotationRate=e.dragRotationRate,this.touchDollyRate=e.touchDollyRate,this.dollyInertia=e.dollyInertia,this.dollyProximityThreshold=e.dollyProximityThreshold,this.dollyMinSpeed=e.dollyMinSpeed,this.panInertia=e.panInertia,this.pointerEnabled=!0,this.keyboardDollyRate=e.keyboardDollyRate,this.mouseWheelDollyRate=e.mouseWheelDollyRate}set keyMap(A){if(A=A||"qwerty",u.isString(A)){const e=this.scene.input,t={};switch(A){default:this.error("Unsupported value for 'keyMap': "+A+" defaulting to 'qwerty'");case"qwerty":t[this.PAN_LEFT]=[e.KEY_A],t[this.PAN_RIGHT]=[e.KEY_D],t[this.PAN_UP]=[e.KEY_Z],t[this.PAN_DOWN]=[e.KEY_X],t[this.PAN_BACKWARDS]=[],t[this.PAN_FORWARDS]=[],t[this.DOLLY_FORWARDS]=[e.KEY_W,e.KEY_ADD],t[this.DOLLY_BACKWARDS]=[e.KEY_S,e.KEY_SUBTRACT],t[this.ROTATE_X_POS]=[e.KEY_DOWN_ARROW],t[this.ROTATE_X_NEG]=[e.KEY_UP_ARROW],t[this.ROTATE_Y_POS]=[e.KEY_Q,e.KEY_LEFT_ARROW],t[this.ROTATE_Y_NEG]=[e.KEY_E,e.KEY_RIGHT_ARROW],t[this.AXIS_VIEW_RIGHT]=[e.KEY_NUM_1],t[this.AXIS_VIEW_BACK]=[e.KEY_NUM_2],t[this.AXIS_VIEW_LEFT]=[e.KEY_NUM_3],t[this.AXIS_VIEW_FRONT]=[e.KEY_NUM_4],t[this.AXIS_VIEW_TOP]=[e.KEY_NUM_5],t[this.AXIS_VIEW_BOTTOM]=[e.KEY_NUM_6],t[this.MOUSE_PAN]=[[e.MOUSE_LEFT_BUTTON,e.KEY_SHIFT],this._configs.panRightClick?e.MOUSE_RIGHT_BUTTON:e.MOUSE_MIDDLE_BUTTON],t[this.MOUSE_ROTATE]=[e.MOUSE_LEFT_BUTTON],t[this.MOUSE_DOLLY]=[];break;case"azerty":t[this.PAN_LEFT]=[e.KEY_Q],t[this.PAN_RIGHT]=[e.KEY_D],t[this.PAN_UP]=[e.KEY_W],t[this.PAN_DOWN]=[e.KEY_X],t[this.PAN_BACKWARDS]=[],t[this.PAN_FORWARDS]=[],t[this.DOLLY_FORWARDS]=[e.KEY_Z,e.KEY_ADD],t[this.DOLLY_BACKWARDS]=[e.KEY_S,e.KEY_SUBTRACT],t[this.ROTATE_X_POS]=[e.KEY_DOWN_ARROW],t[this.ROTATE_X_NEG]=[e.KEY_UP_ARROW],t[this.ROTATE_Y_POS]=[e.KEY_A,e.KEY_LEFT_ARROW],t[this.ROTATE_Y_NEG]=[e.KEY_E,e.KEY_RIGHT_ARROW],t[this.AXIS_VIEW_RIGHT]=[e.KEY_NUM_1],t[this.AXIS_VIEW_BACK]=[e.KEY_NUM_2],t[this.AXIS_VIEW_LEFT]=[e.KEY_NUM_3],t[this.AXIS_VIEW_FRONT]=[e.KEY_NUM_4],t[this.AXIS_VIEW_TOP]=[e.KEY_NUM_5],t[this.AXIS_VIEW_BOTTOM]=[e.KEY_NUM_6],t[this.MOUSE_PAN]=[[e.MOUSE_LEFT_BUTTON,e.KEY_SHIFT],this._configs.panRightClick?e.MOUSE_RIGHT_BUTTON:e.MOUSE_MIDDLE_BUTTON],t[this.MOUSE_ROTATE]=[e.MOUSE_LEFT_BUTTON],t[this.MOUSE_DOLLY]=[]}this._keyMap=t}else{const e=A;this._keyMap=e}}get keyMap(){return this._keyMap}_areAllKeysDown(A,e){if(!e||e.length<=0)return!0;if(!A)return!1;for(let t=0,i=e.length;t0){const A=this.scene.input;for(let t=0,i=e.length;t0&&console.error(`[MetaModel._decompressProperties] Properties not found: ${t}`)}finalize(){if(this.finalized)throw"MetaScene already finalized - can't re-finalize";const A=this.metaScene;for(let e in A.metaObjects){const t=A.metaObjects[e];if(t.children&&(t.children=[]),t.propertySets&&(t.propertySets=[]),t.propertySetIds)for(let e=0,i=t.propertySetIds.length;ee.id!==A))}for(let A in this.metaObjects){const e=this.metaObjects[A];if(e.children&&(e.children=[]),e.propertySets&&(e.propertySets=[]),e.propertySetIds)for(let A=0,t=e.propertySetIds.length;A0?ng(e):null,o=t&&t.length>0?ng(t):null,r=A=>{if(!A)return;var e=!0;(o&&o[A.type]||n&&!n[A.type])&&(e=!1),e&&i.push(A.id);const t=A.children;if(t)for(var s=0,c=t.length;s * Copyright (c) 2022 Niklas von Hertzen * Released under MIT License */ /*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */var og=function(A,e){return og=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(A[t]=e[t])},og(A,e)};function rg(A,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function t(){this.constructor=A}og(A,e),A.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)}var cg=function(){return cg=Object.assign||function(A){for(var e,t=1,i=arguments.length;t0&&s[s.length-1])||6!==n[0]&&2!==n[0])){o=0;continue}if(3===n[0]&&(!s||n[1]>s[0]&&n[1]=55296&&s<=56319&&t>10),o%1024+56320)),(s+1===t||i.length>16384)&&(n+=String.fromCharCode.apply(String,i),i.length=0)}return n},Mg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ug="undefined"==typeof Uint8Array?[]:new Uint8Array(256),wg=0;wg<64;wg++)ug[Mg.charCodeAt(wg)]=wg;for(var dg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Cg="undefined"==typeof Uint8Array?[]:new Uint8Array(256),xg=0;xg<64;xg++)Cg[dg.charCodeAt(xg)]=xg;for(var Fg=function(A,e,t){return A.slice?A.slice(e,t):new Uint16Array(Array.prototype.slice.call(A,e,t))},pg=function(){function A(A,e,t,i,s,n){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=i,this.index=s,this.data=n}return A.prototype.get=function(A){var e;if(A>=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),Ig="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fg="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Yg=0;Yg<64;Yg++)fg[Ig.charCodeAt(Yg)]=Yg;var Dg=10,mg=13,Jg=15,Ng=17,yg=18,zg=19,Tg=20,Ug=21,Rg=22,bg=24,kg=25,Pg=26,Gg=27,vg=28,Hg=30,Sg=32,jg=33,Og=34,_g=35,Wg=37,Xg=38,Lg=39,Vg=40,Kg=42,Zg=[9001,65288],qg="×",$g="÷",Al=function(A){var e,t,i,s=function(A){var e,t,i,s,n,o=.75*A.length,r=A.length,c=0;"="===A[A.length-1]&&(o--,"="===A[A.length-2]&&o--);var a="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(o):new Array(o),h=Array.isArray(a)?a:new Uint8Array(a);for(e=0;e>4,h[c++]=(15&i)<<4|s>>2,h[c++]=(3&s)<<6|63&n;return a}(A),n=Array.isArray(s)?function(A){for(var e=A.length,t=[],i=0;i0;){var o=i[--n];if(Array.isArray(A)?-1!==A.indexOf(o):A===o)for(var r=t;r<=i.length;){var c;if((c=i[++r])===e)return!0;if(c!==Dg)break}if(o!==Dg)break}return!1},al=function(A,e){for(var t=A;t>=0;){var i=e[t];if(i!==Dg)return i;t--}return 0},hl=function(A,e,t,i,s){if(0===t[i])return qg;var n=i-1;if(Array.isArray(s)&&!0===s[n])return qg;var o=n-1,r=n+1,c=e[n],a=o>=0?e[o]:0,h=e[r];if(2===c&&3===h)return qg;if(-1!==tl.indexOf(c))return"!";if(-1!==tl.indexOf(h))return qg;if(-1!==il.indexOf(h))return qg;if(8===al(n,e))return $g;if(11===Al.get(A[n]))return qg;if((c===Sg||c===jg)&&11===Al.get(A[r]))return qg;if(7===c||7===h)return qg;if(9===c)return qg;if(-1===[Dg,mg,Jg].indexOf(c)&&9===h)return qg;if(-1!==[Ng,yg,zg,bg,vg].indexOf(h))return qg;if(al(n,e)===Rg)return qg;if(cl(23,Rg,n,e))return qg;if(cl([Ng,yg],Ug,n,e))return qg;if(cl(12,12,n,e))return qg;if(c===Dg)return $g;if(23===c||23===h)return qg;if(16===h||16===c)return $g;if(-1!==[mg,Jg,Ug].indexOf(h)||14===c)return qg;if(36===a&&-1!==rl.indexOf(c))return qg;if(c===vg&&36===h)return qg;if(h===Tg)return qg;if(-1!==el.indexOf(h)&&c===kg||-1!==el.indexOf(c)&&h===kg)return qg;if(c===Gg&&-1!==[Wg,Sg,jg].indexOf(h)||-1!==[Wg,Sg,jg].indexOf(c)&&h===Pg)return qg;if(-1!==el.indexOf(c)&&-1!==sl.indexOf(h)||-1!==sl.indexOf(c)&&-1!==el.indexOf(h))return qg;if(-1!==[Gg,Pg].indexOf(c)&&(h===kg||-1!==[Rg,Jg].indexOf(h)&&e[r+1]===kg)||-1!==[Rg,Jg].indexOf(c)&&h===kg||c===kg&&-1!==[kg,vg,bg].indexOf(h))return qg;if(-1!==[kg,vg,bg,Ng,yg].indexOf(h))for(var B=n;B>=0;){if((g=e[B])===kg)return qg;if(-1===[vg,bg].indexOf(g))break;B--}if(-1!==[Gg,Pg].indexOf(h))for(B=-1!==[Ng,yg].indexOf(c)?o:n;B>=0;){var g;if((g=e[B])===kg)return qg;if(-1===[vg,bg].indexOf(g))break;B--}if(Xg===c&&-1!==[Xg,Lg,Og,_g].indexOf(h)||-1!==[Lg,Og].indexOf(c)&&-1!==[Lg,Vg].indexOf(h)||-1!==[Vg,_g].indexOf(c)&&h===Vg)return qg;if(-1!==ol.indexOf(c)&&-1!==[Tg,Pg].indexOf(h)||-1!==ol.indexOf(h)&&c===Gg)return qg;if(-1!==el.indexOf(c)&&-1!==el.indexOf(h))return qg;if(c===bg&&-1!==el.indexOf(h))return qg;if(-1!==el.concat(kg).indexOf(c)&&h===Rg&&-1===Zg.indexOf(A[r])||-1!==el.concat(kg).indexOf(h)&&c===yg)return qg;if(41===c&&41===h){for(var l=t[n],E=1;l>0&&41===e[--l];)E++;if(E%2!=0)return qg}return c===Sg&&h===jg?qg:$g},Bl=function(A,e){e||(e={lineBreak:"normal",wordBreak:"normal"});var t=function(A,e){void 0===e&&(e="strict");var t=[],i=[],s=[];return A.forEach((function(A,n){var o=Al.get(A);if(o>50?(s.push(!0),o-=50):s.push(!1),-1!==["normal","auto","loose"].indexOf(e)&&-1!==[8208,8211,12316,12448].indexOf(A))return i.push(n),t.push(16);if(4===o||11===o){if(0===n)return i.push(n),t.push(Hg);var r=t[n-1];return-1===nl.indexOf(r)?(i.push(i[n-1]),t.push(r)):(i.push(n),t.push(Hg))}return i.push(n),31===o?t.push("strict"===e?Ug:Wg):o===Kg||29===o?t.push(Hg):43===o?A>=131072&&A<=196605||A>=196608&&A<=262141?t.push(Wg):t.push(Hg):void t.push(o)})),[i,t,s]}(A,e.lineBreak),i=t[0],s=t[1],n=t[2];"break-all"!==e.wordBreak&&"break-word"!==e.wordBreak||(s=s.map((function(A){return-1!==[kg,Hg,Kg].indexOf(A)?Wg:A})));var o="keep-all"===e.wordBreak?n.map((function(e,t){return e&&A[t]>=19968&&A[t]<=40959})):void 0;return[i,s,o]},gl=function(){function A(A,e,t,i){this.codePoints=A,this.required="!"===e,this.start=t,this.end=i}return A.prototype.slice=function(){return Qg.apply(void 0,this.codePoints.slice(this.start,this.end))},A}(),ll=45,El=43,Ql=-1,Ml=function(A){return A>=48&&A<=57},ul=function(A){return Ml(A)||A>=65&&A<=70||A>=97&&A<=102},wl=function(A){return 10===A||9===A||32===A},dl=function(A){return function(A){return function(A){return A>=97&&A<=122}(A)||function(A){return A>=65&&A<=90}(A)}(A)||function(A){return A>=128}(A)||95===A},Cl=function(A){return dl(A)||Ml(A)||A===ll},xl=function(A){return A>=0&&A<=8||11===A||A>=14&&A<=31||127===A},Fl=function(A,e){return 92===A&&10!==e},pl=function(A,e,t){return A===ll?dl(e)||Fl(e,t):!!dl(A)||!(92!==A||!Fl(A,e))},Il=function(A,e,t){return A===El||A===ll?!!Ml(e)||46===e&&Ml(t):Ml(46===A?e:A)},fl=function(A){var e=0,t=1;A[e]!==El&&A[e]!==ll||(A[e]===ll&&(t=-1),e++);for(var i=[];Ml(A[e]);)i.push(A[e++]);var s=i.length?parseInt(Qg.apply(void 0,i),10):0;46===A[e]&&e++;for(var n=[];Ml(A[e]);)n.push(A[e++]);var o=n.length,r=o?parseInt(Qg.apply(void 0,n),10):0;69!==A[e]&&101!==A[e]||e++;var c=1;A[e]!==El&&A[e]!==ll||(A[e]===ll&&(c=-1),e++);for(var a=[];Ml(A[e]);)a.push(A[e++]);var h=a.length?parseInt(Qg.apply(void 0,a),10):0;return t*(s+r*Math.pow(10,-o))*Math.pow(10,c*h)},Yl={type:2},Dl={type:3},ml={type:4},Jl={type:13},Nl={type:8},yl={type:21},zl={type:9},Tl={type:10},Ul={type:11},Rl={type:12},bl={type:14},kl={type:23},Pl={type:1},Gl={type:25},vl={type:24},Hl={type:26},Sl={type:27},jl={type:28},Ol={type:29},_l={type:31},Wl={type:32},Xl=function(){function A(){this._value=[]}return A.prototype.write=function(A){this._value=this._value.concat(Eg(A))},A.prototype.read=function(){for(var A=[],e=this.consumeToken();e!==Wl;)A.push(e),e=this.consumeToken();return A},A.prototype.consumeToken=function(){var A=this.consumeCodePoint();switch(A){case 34:return this.consumeStringToken(34);case 35:var e=this.peekCodePoint(0),t=this.peekCodePoint(1),i=this.peekCodePoint(2);if(Cl(e)||Fl(t,i)){var s=pl(e,t,i)?2:1;return{type:5,value:this.consumeName(),flags:s}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Jl;break;case 39:return this.consumeStringToken(39);case 40:return Yl;case 41:return Dl;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),bl;break;case El:if(Il(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 44:return ml;case ll:var n=A,o=this.peekCodePoint(0),r=this.peekCodePoint(1);if(Il(n,o,r))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(pl(n,o,r))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(o===ll&&62===r)return this.consumeCodePoint(),this.consumeCodePoint(),vl;break;case 46:if(Il(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var c=this.consumeCodePoint();if(42===c&&47===(c=this.consumeCodePoint()))return this.consumeToken();if(c===Ql)return this.consumeToken()}break;case 58:return Hl;case 59:return Sl;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===ll&&this.peekCodePoint(2)===ll)return this.consumeCodePoint(),this.consumeCodePoint(),Gl;break;case 64:var a=this.peekCodePoint(0),h=this.peekCodePoint(1),B=this.peekCodePoint(2);if(pl(a,h,B))return{type:7,value:this.consumeName()};break;case 91:return jl;case 92:if(Fl(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case 93:return Ol;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Nl;break;case 123:return Ul;case 125:return Rl;case 117:case 85:var g=this.peekCodePoint(0),l=this.peekCodePoint(1);return g!==El||!ul(l)&&63!==l||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),zl;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),yl;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Tl;break;case Ql:return Wl}return wl(A)?(this.consumeWhiteSpace(),_l):Ml(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):dl(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:6,value:Qg(A)}},A.prototype.consumeCodePoint=function(){var A=this._value.shift();return void 0===A?-1:A},A.prototype.reconsumeCodePoint=function(A){this._value.unshift(A)},A.prototype.peekCodePoint=function(A){return A>=this._value.length?-1:this._value[A]},A.prototype.consumeUnicodeRangeToken=function(){for(var A=[],e=this.consumeCodePoint();ul(e)&&A.length<6;)A.push(e),e=this.consumeCodePoint();for(var t=!1;63===e&&A.length<6;)A.push(e),e=this.consumeCodePoint(),t=!0;if(t)return{type:30,start:parseInt(Qg.apply(void 0,A.map((function(A){return 63===A?48:A}))),16),end:parseInt(Qg.apply(void 0,A.map((function(A){return 63===A?70:A}))),16)};var i=parseInt(Qg.apply(void 0,A),16);if(this.peekCodePoint(0)===ll&&ul(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();for(var s=[];ul(e)&&s.length<6;)s.push(e),e=this.consumeCodePoint();return{type:30,start:i,end:parseInt(Qg.apply(void 0,s),16)}}return{type:30,start:i,end:i}},A.prototype.consumeIdentLikeToken=function(){var A=this.consumeName();return"url"===A.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:A}):{type:20,value:A}},A.prototype.consumeUrlToken=function(){var A=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===Ql)return{type:22,value:""};var e=this.peekCodePoint(0);if(39===e||34===e){var t=this.consumeStringToken(this.consumeCodePoint());return 0===t.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===Ql||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:t.value}):(this.consumeBadUrlRemnants(),kl)}for(;;){var i=this.consumeCodePoint();if(i===Ql||41===i)return{type:22,value:Qg.apply(void 0,A)};if(wl(i))return this.consumeWhiteSpace(),this.peekCodePoint(0)===Ql||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:Qg.apply(void 0,A)}):(this.consumeBadUrlRemnants(),kl);if(34===i||39===i||40===i||xl(i))return this.consumeBadUrlRemnants(),kl;if(92===i){if(!Fl(i,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),kl;A.push(this.consumeEscapedCodePoint())}else A.push(i)}},A.prototype.consumeWhiteSpace=function(){for(;wl(this.peekCodePoint(0));)this.consumeCodePoint()},A.prototype.consumeBadUrlRemnants=function(){for(;;){var A=this.consumeCodePoint();if(41===A||A===Ql)return;Fl(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},A.prototype.consumeStringSlice=function(A){for(var e="";A>0;){var t=Math.min(5e4,A);e+=Qg.apply(void 0,this._value.splice(0,t)),A-=t}return this._value.shift(),e},A.prototype.consumeStringToken=function(A){for(var e="",t=0;;){var i=this._value[t];if(i===Ql||void 0===i||i===A)return{type:0,value:e+=this.consumeStringSlice(t)};if(10===i)return this._value.splice(0,t),Pl;if(92===i){var s=this._value[t+1];s!==Ql&&void 0!==s&&(10===s?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):Fl(i,s)&&(e+=this.consumeStringSlice(t),e+=Qg(this.consumeEscapedCodePoint()),t=-1))}t++}},A.prototype.consumeNumber=function(){var A=[],e=4,t=this.peekCodePoint(0);for(t!==El&&t!==ll||A.push(this.consumeCodePoint());Ml(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0);var i=this.peekCodePoint(1);if(46===t&&Ml(i))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;Ml(this.peekCodePoint(0));)A.push(this.consumeCodePoint());t=this.peekCodePoint(0),i=this.peekCodePoint(1);var s=this.peekCodePoint(2);if((69===t||101===t)&&((i===El||i===ll)&&Ml(s)||Ml(i)))for(A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=8;Ml(this.peekCodePoint(0));)A.push(this.consumeCodePoint());return[fl(A),e]},A.prototype.consumeNumericToken=function(){var A=this.consumeNumber(),e=A[0],t=A[1],i=this.peekCodePoint(0),s=this.peekCodePoint(1),n=this.peekCodePoint(2);return pl(i,s,n)?{type:15,number:e,flags:t,unit:this.consumeName()}:37===i?(this.consumeCodePoint(),{type:16,number:e,flags:t}):{type:17,number:e,flags:t}},A.prototype.consumeEscapedCodePoint=function(){var A=this.consumeCodePoint();if(ul(A)){for(var e=Qg(A);ul(this.peekCodePoint(0))&&e.length<6;)e+=Qg(this.consumeCodePoint());wl(this.peekCodePoint(0))&&this.consumeCodePoint();var t=parseInt(e,16);return 0===t||function(A){return A>=55296&&A<=57343}(t)||t>1114111?65533:t}return A===Ql?65533:A},A.prototype.consumeName=function(){for(var A="";;){var e=this.consumeCodePoint();if(Cl(e))A+=Qg(e);else{if(!Fl(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),A;A+=Qg(this.consumeEscapedCodePoint())}}},A}(),Ll=function(){function A(A){this._tokens=A}return A.create=function(e){var t=new Xl;return t.write(e),new A(t.read())},A.parseValue=function(e){return A.create(e).parseComponentValue()},A.parseValues=function(e){return A.create(e).parseComponentValues()},A.prototype.parseComponentValue=function(){for(var A=this.consumeToken();31===A.type;)A=this.consumeToken();if(32===A.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);var e=this.consumeComponentValue();do{A=this.consumeToken()}while(31===A.type);if(32===A.type)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},A.prototype.parseComponentValues=function(){for(var A=[];;){var e=this.consumeComponentValue();if(32===e.type)return A;A.push(e),A.push()}},A.prototype.consumeComponentValue=function(){var A=this.consumeToken();switch(A.type){case 11:case 28:case 2:return this.consumeSimpleBlock(A.type);case 19:return this.consumeFunction(A)}return A},A.prototype.consumeSimpleBlock=function(A){for(var e={type:A,values:[]},t=this.consumeToken();;){if(32===t.type||iE(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}},A.prototype.consumeFunction=function(A){for(var e={name:A.value,values:[],type:18};;){var t=this.consumeToken();if(32===t.type||3===t.type)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}},A.prototype.consumeToken=function(){var A=this._tokens.shift();return void 0===A?Wl:A},A.prototype.reconsumeToken=function(A){this._tokens.unshift(A)},A}(),Vl=function(A){return 15===A.type},Kl=function(A){return 17===A.type},Zl=function(A){return 20===A.type},ql=function(A){return 0===A.type},$l=function(A,e){return Zl(A)&&A.value===e},AE=function(A){return 31!==A.type},eE=function(A){return 31!==A.type&&4!==A.type},tE=function(A){var e=[],t=[];return A.forEach((function(A){if(4===A.type){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return e.push(t),void(t=[])}31!==A.type&&t.push(A)})),t.length&&e.push(t),e},iE=function(A,e){return 11===e&&12===A.type||(28===e&&29===A.type||2===e&&3===A.type)},sE=function(A){return 17===A.type||15===A.type},nE=function(A){return 16===A.type||sE(A)},oE=function(A){return A.length>1?[A[0],A[1]]:[A[0]]},rE={type:17,number:0,flags:4},cE={type:16,number:50,flags:4},aE={type:16,number:100,flags:4},hE=function(A,e,t){var i=A[0],s=A[1];return[BE(i,e),BE(void 0!==s?s:i,t)]},BE=function(A,e){if(16===A.type)return A.number/100*e;if(Vl(A))switch(A.unit){case"rem":case"em":return 16*A.number;default:return A.number}return A.number},gE="grad",lE="turn",EE=function(A,e){if(15===e.type)switch(e.unit){case"deg":return Math.PI*e.number/180;case gE:return Math.PI/200*e.number;case"rad":return e.number;case lE:return 2*Math.PI*e.number}throw new Error("Unsupported angle type")},QE=function(A){return 15===A.type&&("deg"===A.unit||A.unit===gE||"rad"===A.unit||A.unit===lE)},ME=function(A){switch(A.filter(Zl).map((function(A){return A.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[rE,rE];case"to top":case"bottom":return uE(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[rE,aE];case"to right":case"left":return uE(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[aE,aE];case"to bottom":case"top":return uE(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[aE,rE];case"to left":case"right":return uE(270)}return 0},uE=function(A){return Math.PI*A/180},wE=function(A,e){if(18===e.type){var t=YE[e.name];if(void 0===t)throw new Error('Attempting to parse an unsupported color function "'+e.name+'"');return t(A,e.values)}if(5===e.type){if(3===e.value.length){var i=e.value.substring(0,1),s=e.value.substring(1,2),n=e.value.substring(2,3);return xE(parseInt(i+i,16),parseInt(s+s,16),parseInt(n+n,16),1)}if(4===e.value.length){i=e.value.substring(0,1),s=e.value.substring(1,2),n=e.value.substring(2,3);var o=e.value.substring(3,4);return xE(parseInt(i+i,16),parseInt(s+s,16),parseInt(n+n,16),parseInt(o+o,16)/255)}if(6===e.value.length){i=e.value.substring(0,2),s=e.value.substring(2,4),n=e.value.substring(4,6);return xE(parseInt(i,16),parseInt(s,16),parseInt(n,16),1)}if(8===e.value.length){i=e.value.substring(0,2),s=e.value.substring(2,4),n=e.value.substring(4,6),o=e.value.substring(6,8);return xE(parseInt(i,16),parseInt(s,16),parseInt(n,16),parseInt(o,16)/255)}}if(20===e.type){var r=mE[e.value.toUpperCase()];if(void 0!==r)return r}return mE.TRANSPARENT},dE=function(A){return!(255&A)},CE=function(A){var e=255&A,t=255&A>>8,i=255&A>>16,s=255&A>>24;return e<255?"rgba("+s+","+i+","+t+","+e/255+")":"rgb("+s+","+i+","+t+")"},xE=function(A,e,t,i){return(A<<24|e<<16|t<<8|Math.round(255*i))>>>0},FE=function(A,e){if(17===A.type)return A.number;if(16===A.type){var t=3===e?1:255;return 3===e?A.number/100*t:Math.round(A.number/100*t)}return 0},pE=function(A,e){var t=e.filter(eE);if(3===t.length){var i=t.map(FE),s=i[0],n=i[1],o=i[2];return xE(s,n,o,1)}if(4===t.length){var r=t.map(FE),c=(s=r[0],n=r[1],o=r[2],r[3]);return xE(s,n,o,c)}return 0};function IE(A,e,t){return t<0&&(t+=1),t>=1&&(t-=1),t<1/6?(e-A)*t*6+A:t<.5?e:t<2/3?6*(e-A)*(2/3-t)+A:A}var fE=function(A,e){var t=e.filter(eE),i=t[0],s=t[1],n=t[2],o=t[3],r=(17===i.type?uE(i.number):EE(A,i))/(2*Math.PI),c=nE(s)?s.number/100:0,a=nE(n)?n.number/100:0,h=void 0!==o&&nE(o)?BE(o,1):1;if(0===c)return xE(255*a,255*a,255*a,1);var B=a<=.5?a*(c+1):a+c-a*c,g=2*a-B,l=IE(g,B,r+1/3),E=IE(g,B,r),Q=IE(g,B,r-1/3);return xE(255*l,255*E,255*Q,h)},YE={hsl:fE,hsla:fE,rgb:pE,rgba:pE},DE=function(A,e){return wE(A,Ll.create(e).parseComponentValue())},mE={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},JE={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(Zl(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},NE={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},yE=function(A,e){var t=wE(A,e[0]),i=e[1];return i&&nE(i)?{color:t,stop:i}:{color:t,stop:null}},zE=function(A,e){var t=A[0],i=A[A.length-1];null===t.stop&&(t.stop=rE),null===i.stop&&(i.stop=aE);for(var s=[],n=0,o=0;on?s.push(c):s.push(n),n=c}else s.push(null)}var a=null;for(o=0;oA.optimumDistance)?{optimumCorner:e,optimumDistance:r}:A}),{optimumDistance:s?1/0:-1/0,optimumCorner:null}).optimumCorner},bE=function(A,e){var t=uE(180),i=[];return tE(e).forEach((function(e,s){if(0===s){var n=e[0];if(20===n.type&&-1!==["top","left","right","bottom"].indexOf(n.value))return void(t=ME(e));if(QE(n))return void(t=(EE(A,n)+uE(270))%uE(360))}var o=yE(A,e);i.push(o)})),{angle:t,stops:i,type:1}},kE="closest-side",PE="farthest-side",GE="closest-corner",vE="farthest-corner",HE="circle",SE="ellipse",jE="cover",OE="contain",_E=function(A,e){var t=0,i=3,s=[],n=[];return tE(e).forEach((function(e,o){var r=!0;if(0===o?r=e.reduce((function(A,e){if(Zl(e))switch(e.value){case"center":return n.push(cE),!1;case"top":case"left":return n.push(rE),!1;case"right":case"bottom":return n.push(aE),!1}else if(nE(e)||sE(e))return n.push(e),!1;return A}),r):1===o&&(r=e.reduce((function(A,e){if(Zl(e))switch(e.value){case HE:return t=0,!1;case SE:return t=1,!1;case OE:case kE:return i=0,!1;case PE:return i=1,!1;case GE:return i=2,!1;case jE:case vE:return i=3,!1}else if(sE(e)||nE(e))return Array.isArray(i)||(i=[]),i.push(e),!1;return A}),r)),r){var c=yE(A,e);s.push(c)}})),{size:i,shape:t,stops:s,position:n,type:2}},WE=function(A,e){if(22===e.type){var t={url:e.value,type:0};return A.cache.addImage(e.value),t}if(18===e.type){var i=LE[e.name];if(void 0===i)throw new Error('Attempting to parse an unsupported image function "'+e.name+'"');return i(A,e.values)}throw new Error("Unsupported image type "+e.type)};var XE,LE={"linear-gradient":function(A,e){var t=uE(180),i=[];return tE(e).forEach((function(e,s){if(0===s){var n=e[0];if(20===n.type&&"to"===n.value)return void(t=ME(e));if(QE(n))return void(t=EE(A,n))}var o=yE(A,e);i.push(o)})),{angle:t,stops:i,type:1}},"-moz-linear-gradient":bE,"-ms-linear-gradient":bE,"-o-linear-gradient":bE,"-webkit-linear-gradient":bE,"radial-gradient":function(A,e){var t=0,i=3,s=[],n=[];return tE(e).forEach((function(e,o){var r=!0;if(0===o){var c=!1;r=e.reduce((function(A,e){if(c)if(Zl(e))switch(e.value){case"center":return n.push(cE),A;case"top":case"left":return n.push(rE),A;case"right":case"bottom":return n.push(aE),A}else(nE(e)||sE(e))&&n.push(e);else if(Zl(e))switch(e.value){case HE:return t=0,!1;case SE:return t=1,!1;case"at":return c=!0,!1;case kE:return i=0,!1;case jE:case PE:return i=1,!1;case OE:case GE:return i=2,!1;case vE:return i=3,!1}else if(sE(e)||nE(e))return Array.isArray(i)||(i=[]),i.push(e),!1;return A}),r)}if(r){var a=yE(A,e);s.push(a)}})),{size:i,shape:t,stops:s,position:n,type:2}},"-moz-radial-gradient":_E,"-ms-radial-gradient":_E,"-o-radial-gradient":_E,"-webkit-radial-gradient":_E,"-webkit-gradient":function(A,e){var t=uE(180),i=[],s=1;return tE(e).forEach((function(e,t){var n=e[0];if(0===t){if(Zl(n)&&"linear"===n.value)return void(s=1);if(Zl(n)&&"radial"===n.value)return void(s=2)}if(18===n.type)if("from"===n.name){var o=wE(A,n.values[0]);i.push({stop:rE,color:o})}else if("to"===n.name){o=wE(A,n.values[0]);i.push({stop:aE,color:o})}else if("color-stop"===n.name){var r=n.values.filter(eE);if(2===r.length){o=wE(A,r[1]);var c=r[0];Kl(c)&&i.push({stop:{type:16,number:100*c.number,flags:c.flags},color:o})}}})),1===s?{angle:(t+uE(180))%uE(360),stops:i,type:s}:{size:3,shape:0,stops:i,position:[],type:s}}},VE={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(A,e){if(0===e.length)return[];var t=e[0];return 20===t.type&&"none"===t.value?[]:e.filter((function(A){return eE(A)&&function(A){return!(20===A.type&&"none"===A.value||18===A.type&&!LE[A.name])}(A)})).map((function(e){return WE(A,e)}))}},KE={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(A,e){return e.map((function(A){if(Zl(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},ZE={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(A,e){return tE(e).map((function(A){return A.filter(nE)})).map(oE)}},qE={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(A,e){return tE(e).map((function(A){return A.filter(Zl).map((function(A){return A.value})).join(" ")})).map($E)}},$E=function(A){switch(A){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(A){A.AUTO="auto",A.CONTAIN="contain",A.COVER="cover"}(XE||(XE={}));var AQ,eQ={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(A,e){return tE(e).map((function(A){return A.filter(tQ)}))}},tQ=function(A){return Zl(A)||nE(A)},iQ=function(A){return{name:"border-"+A+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},sQ=iQ("top"),nQ=iQ("right"),oQ=iQ("bottom"),rQ=iQ("left"),cQ=function(A){return{name:"border-radius-"+A,initialValue:"0 0",prefix:!1,type:1,parse:function(A,e){return oE(e.filter(nE))}}},aQ=cQ("top-left"),hQ=cQ("top-right"),BQ=cQ("bottom-right"),gQ=cQ("bottom-left"),lQ=function(A){return{name:"border-"+A+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(A,e){switch(e){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},EQ=lQ("top"),QQ=lQ("right"),MQ=lQ("bottom"),uQ=lQ("left"),wQ=function(A){return{name:"border-"+A+"-width",initialValue:"0",type:0,prefix:!1,parse:function(A,e){return Vl(e)?e.number:0}}},dQ=wQ("top"),CQ=wQ("right"),xQ=wQ("bottom"),FQ=wQ("left"),pQ={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},IQ={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(A,e){return"rtl"===e?1:0}},fQ={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(A,e){return e.filter(Zl).reduce((function(A,e){return A|YQ(e.value)}),0)}},YQ=function(A){switch(A){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},DQ={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},mQ={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(A,e){return 20===e.type&&"normal"===e.value?0:17===e.type||15===e.type?e.number:0}};!function(A){A.NORMAL="normal",A.STRICT="strict"}(AQ||(AQ={}));var JQ,NQ={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"strict"===e?AQ.STRICT:AQ.NORMAL}},yQ={name:"line-height",initialValue:"normal",prefix:!1,type:4},zQ=function(A,e){return Zl(A)&&"normal"===A.value?1.2*e:17===A.type?e*A.number:nE(A)?BE(A,e):e},TQ={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(A,e){return 20===e.type&&"none"===e.value?null:WE(A,e)}},UQ={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(A,e){return"inside"===e?0:1}},RQ={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(A,e){switch(e){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},bQ=function(A){return{name:"margin-"+A,initialValue:"0",prefix:!1,type:4}},kQ=bQ("top"),PQ=bQ("right"),GQ=bQ("bottom"),vQ=bQ("left"),HQ={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(A,e){return e.filter(Zl).map((function(A){switch(A.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},SQ={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(A,e){return"break-word"===e?"break-word":"normal"}},jQ=function(A){return{name:"padding-"+A,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},OQ=jQ("top"),_Q=jQ("right"),WQ=jQ("bottom"),XQ=jQ("left"),LQ={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(A,e){switch(e){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},VQ={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(A,e){switch(e){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},KQ={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(A,e){return 1===e.length&&$l(e[0],"none")?[]:tE(e).map((function(e){for(var t={color:mE.TRANSPARENT,offsetX:rE,offsetY:rE,blur:rE},i=0,s=0;s1?1:0],this.overflowWrap=JM(A,SQ,e.overflowWrap),this.paddingTop=JM(A,OQ,e.paddingTop),this.paddingRight=JM(A,_Q,e.paddingRight),this.paddingBottom=JM(A,WQ,e.paddingBottom),this.paddingLeft=JM(A,XQ,e.paddingLeft),this.paintOrder=JM(A,pM,e.paintOrder),this.position=JM(A,VQ,e.position),this.textAlign=JM(A,LQ,e.textAlign),this.textDecorationColor=JM(A,cM,null!==(t=e.textDecorationColor)&&void 0!==t?t:e.color),this.textDecorationLine=JM(A,aM,null!==(i=e.textDecorationLine)&&void 0!==i?i:e.textDecoration),this.textShadow=JM(A,KQ,e.textShadow),this.textTransform=JM(A,ZQ,e.textTransform),this.transform=JM(A,qQ,e.transform),this.transformOrigin=JM(A,tM,e.transformOrigin),this.visibility=JM(A,iM,e.visibility),this.webkitTextStrokeColor=JM(A,IM,e.webkitTextStrokeColor),this.webkitTextStrokeWidth=JM(A,fM,e.webkitTextStrokeWidth),this.wordBreak=JM(A,sM,e.wordBreak),this.zIndex=JM(A,nM,e.zIndex)}return A.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},A.prototype.isTransparent=function(){return dE(this.backgroundColor)},A.prototype.isTransformed=function(){return null!==this.transform},A.prototype.isPositioned=function(){return 0!==this.position},A.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},A.prototype.isFloating=function(){return 0!==this.float},A.prototype.isInlineLevel=function(){return QM(this.display,4)||QM(this.display,33554432)||QM(this.display,268435456)||QM(this.display,536870912)||QM(this.display,67108864)||QM(this.display,134217728)},A}(),DM=function(A,e){this.content=JM(A,MM,e.content),this.quotes=JM(A,CM,e.quotes)},mM=function(A,e){this.counterIncrement=JM(A,uM,e.counterIncrement),this.counterReset=JM(A,wM,e.counterReset)},JM=function(A,e,t){var i=new Xl,s=null!=t?t.toString():e.initialValue;i.write(s);var n=new Ll(i.read());switch(e.type){case 2:var o=n.parseComponentValue();return e.parse(A,Zl(o)?o.value:e.initialValue);case 0:return e.parse(A,n.parseComponentValue());case 1:return e.parse(A,n.parseComponentValues());case 4:return n.parseComponentValue();case 3:switch(e.format){case"angle":return EE(A,n.parseComponentValue());case"color":return wE(A,n.parseComponentValue());case"image":return WE(A,n.parseComponentValue());case"length":var r=n.parseComponentValue();return sE(r)?r:rE;case"length-percentage":var c=n.parseComponentValue();return nE(c)?c:rE;case"time":return oM(A,n.parseComponentValue())}}},NM=function(A,e){var t=function(A){switch(A.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(A);return 1===t||e===t},yM=function(A,e){this.context=A,this.textNodes=[],this.elements=[],this.flags=0,NM(e,3),this.styles=new YM(A,window.getComputedStyle(e,null)),Ru(e)&&(this.styles.animationDuration.some((function(A){return A>0}))&&(e.style.animationDuration="0s"),null!==this.styles.transform&&(e.style.transform="none")),this.bounds=lg(this.context,e),NM(e,4)&&(this.flags|=16)},zM="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",TM="undefined"==typeof Uint8Array?[]:new Uint8Array(256),UM=0;UM<64;UM++)TM[zM.charCodeAt(UM)]=UM;for(var RM=function(A,e,t){return A.slice?A.slice(e,t):new Uint16Array(Array.prototype.slice.call(A,e,t))},bM=function(){function A(A,e,t,i,s,n){this.initialValue=A,this.errorValue=e,this.highStart=t,this.highValueIndex=i,this.index=s,this.data=n}return A.prototype.get=function(A){var e;if(A>=0){if(A<55296||A>56319&&A<=65535)return e=((e=this.index[A>>5])<<2)+(31&A),this.data[e];if(A<=65535)return e=((e=this.index[2048+(A-55296>>5)])<<2)+(31&A),this.data[e];if(A>11),e=this.index[e],e+=A>>5&63,e=((e=this.index[e])<<2)+(31&A),this.data[e];if(A<=1114111)return this.data[this.highValueIndex]}return this.errorValue},A}(),kM="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",PM="undefined"==typeof Uint8Array?[]:new Uint8Array(256),GM=0;GM<64;GM++)PM[kM.charCodeAt(GM)]=GM;var vM,HM=8,SM=9,jM=11,OM=12,_M=function(){for(var A=[],e=0;e>10),o%1024+56320)),(s+1===t||i.length>16384)&&(n+=String.fromCharCode.apply(String,i),i.length=0)}return n},WM=function(A){var e,t,i,s=function(A){var e,t,i,s,n,o=.75*A.length,r=A.length,c=0;"="===A[A.length-1]&&(o--,"="===A[A.length-2]&&o--);var a="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(o):new Array(o),h=Array.isArray(a)?a:new Uint8Array(a);for(e=0;e>4,h[c++]=(15&i)<<4|s>>2,h[c++]=(3&s)<<6|63&n;return a}(A),n=Array.isArray(s)?function(A){for(var e=A.length,t=[],i=0;i=55296&&s<=56319&&t=t)return{done:!0,value:null};for(var A=XM;io.x||s.y>o.y;return o=s,0===e||r}));return A.body.removeChild(e),r}(document);return Object.defineProperty(Au,"SUPPORT_WORD_BREAKING",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=function(A){var e=new Image,t=A.createElement("canvas"),i=t.getContext("2d");if(!i)return!1;e.src="data:image/svg+xml,";try{i.drawImage(e,0,0),t.toDataURL()}catch(A){return!1}return!0}(document);return Object.defineProperty(Au,"SUPPORT_SVG_DRAWING",{value:A}),A},get SUPPORT_FOREIGNOBJECT_DRAWING(){var A="function"==typeof Array.from&&"function"==typeof window.fetch?function(A){var e=A.createElement("canvas"),t=100;e.width=t,e.height=t;var i=e.getContext("2d");if(!i)return Promise.reject(!1);i.fillStyle="rgb(0, 255, 0)",i.fillRect(0,0,t,t);var s=new Image,n=e.toDataURL();s.src=n;var o=qM(t,t,0,0,s);return i.fillStyle="red",i.fillRect(0,0,t,t),$M(o).then((function(e){i.drawImage(e,0,0);var s=i.getImageData(0,0,t,t).data;i.fillStyle="red",i.fillRect(0,0,t,t);var o=A.createElement("div");return o.style.backgroundImage="url("+n+")",o.style.height=t+"px",ZM(s)?$M(qM(t,t,0,0,o)):Promise.reject(!1)})).then((function(A){return i.drawImage(A,0,0),ZM(i.getImageData(0,0,t,t).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(Au,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=void 0!==(new Image).crossOrigin;return Object.defineProperty(Au,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(Au,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Au,"SUPPORT_CORS_XHR",{value:A}),A},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var A=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(Au,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:A}),A}},eu=function(A,e){this.text=A,this.bounds=e},tu=function(A,e){var t=e.ownerDocument;if(t){var i=t.createElement("html2canvaswrapper");i.appendChild(e.cloneNode(!0));var s=e.parentNode;if(s){s.replaceChild(i,e);var n=lg(A,i);return i.firstChild&&s.replaceChild(i.firstChild,i),n}}return gg.EMPTY},iu=function(A,e,t){var i=A.ownerDocument;if(!i)throw new Error("Node has no owner document");var s=i.createRange();return s.setStart(A,e),s.setEnd(A,e+t),s},su=function(A){if(Au.SUPPORT_NATIVE_TEXT_SEGMENTATION){var e=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(e.segment(A)).map((function(A){return A.segment}))}return function(A){for(var e,t=KM(A),i=[];!(e=t.next()).done;)e.value&&i.push(e.value.slice());return i}(A)},nu=function(A,e){return 0!==e.letterSpacing?su(A):function(A,e){if(Au.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(t.segment(A)).map((function(A){return A.segment}))}return ru(A,e)}(A,e)},ou=[32,160,4961,65792,65793,4153,4241],ru=function(A,e){for(var t,i=function(A,e){var t=Eg(A),i=Bl(t,e),s=i[0],n=i[1],o=i[2],r=t.length,c=0,a=0;return{next:function(){if(a>=r)return{done:!0,value:null};for(var A=qg;a0)if(Au.SUPPORT_RANGE_BOUNDS){var s=iu(i,o,e.length).getClientRects();if(s.length>1){var r=su(e),c=0;r.forEach((function(e){n.push(new eu(e,gg.fromDOMRectList(A,iu(i,c+o,e.length).getClientRects()))),c+=e.length}))}else n.push(new eu(e,gg.fromDOMRectList(A,s)))}else{var a=i.splitText(e.length);n.push(new eu(e,tu(A,i))),i=a}else Au.SUPPORT_RANGE_BOUNDS||(i=i.splitText(e.length));o+=e.length})),n}(A,this.text,t,e)},au=function(A,e){switch(e){case 1:return A.toLowerCase();case 3:return A.replace(hu,Bu);case 2:return A.toUpperCase();default:return A}},hu=/(^|\s|:|-|\(|\))([a-z])/g,Bu=function(A,e,t){return A.length>0?e+t.toUpperCase():A},gu=function(A){function e(e,t){var i=A.call(this,e,t)||this;return i.src=t.currentSrc||t.src,i.intrinsicWidth=t.naturalWidth,i.intrinsicHeight=t.naturalHeight,i.context.cache.addImage(i.src),i}return rg(e,A),e}(yM),lu=function(A){function e(e,t){var i=A.call(this,e,t)||this;return i.canvas=t,i.intrinsicWidth=t.width,i.intrinsicHeight=t.height,i}return rg(e,A),e}(yM),Eu=function(A){function e(e,t){var i=A.call(this,e,t)||this,s=new XMLSerializer,n=lg(e,t);return t.setAttribute("width",n.width+"px"),t.setAttribute("height",n.height+"px"),i.svg="data:image/svg+xml,"+encodeURIComponent(s.serializeToString(t)),i.intrinsicWidth=t.width.baseVal.value,i.intrinsicHeight=t.height.baseVal.value,i.context.cache.addImage(i.svg),i}return rg(e,A),e}(yM),Qu=function(A){function e(e,t){var i=A.call(this,e,t)||this;return i.value=t.value,i}return rg(e,A),e}(yM),Mu=function(A){function e(e,t){var i=A.call(this,e,t)||this;return i.start=t.start,i.reversed="boolean"==typeof t.reversed&&!0===t.reversed,i}return rg(e,A),e}(yM),uu=[{type:15,flags:0,unit:"px",number:3}],wu=[{type:16,flags:0,number:50}],du="checkbox",Cu="radio",xu="password",Fu=707406591,pu=function(A){function e(e,t){var i,s,n,o=A.call(this,e,t)||this;switch(o.type=t.type.toLowerCase(),o.checked=t.checked,o.value=0===(s=(i=t).type===xu?new Array(i.value.length+1).join("•"):i.value).length?i.placeholder||"":s,o.type!==du&&o.type!==Cu||(o.styles.backgroundColor=3739148031,o.styles.borderTopColor=o.styles.borderRightColor=o.styles.borderBottomColor=o.styles.borderLeftColor=2779096575,o.styles.borderTopWidth=o.styles.borderRightWidth=o.styles.borderBottomWidth=o.styles.borderLeftWidth=1,o.styles.borderTopStyle=o.styles.borderRightStyle=o.styles.borderBottomStyle=o.styles.borderLeftStyle=1,o.styles.backgroundClip=[0],o.styles.backgroundOrigin=[0],o.bounds=(n=o.bounds).width>n.height?new gg(n.left+(n.width-n.height)/2,n.top,n.height,n.height):n.width0)t.textNodes.push(new cu(A,s,t.styles));else if(Uu(s))if(Vu(s)&&s.assignedNodes)s.assignedNodes().forEach((function(e){return mu(A,e,t,i)}));else{var o=Ju(A,s);o.styles.isVisible()&&(yu(s,o,i)?o.flags|=4:zu(o.styles)&&(o.flags|=2),-1!==Du.indexOf(s.tagName)&&(o.flags|=8),t.elements.push(o),s.slot,s.shadowRoot?mu(A,s.shadowRoot,o,i):Xu(s)||vu(s)||Lu(s)||mu(A,s,o,i))}},Ju=function(A,e){return Ou(e)?new gu(A,e):Su(e)?new lu(A,e):vu(e)?new Eu(A,e):ku(e)?new Qu(A,e):Pu(e)?new Mu(A,e):Gu(e)?new pu(A,e):Lu(e)?new Iu(A,e):Xu(e)?new fu(A,e):_u(e)?new Yu(A,e):new yM(A,e)},Nu=function(A,e){var t=Ju(A,e);return t.flags|=4,mu(A,e,t,t),t},yu=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||Hu(A)&&t.styles.isTransparent()},zu=function(A){return A.isPositioned()||A.isFloating()},Tu=function(A){return A.nodeType===Node.TEXT_NODE},Uu=function(A){return A.nodeType===Node.ELEMENT_NODE},Ru=function(A){return Uu(A)&&void 0!==A.style&&!bu(A)},bu=function(A){return"object"==typeof A.className},ku=function(A){return"LI"===A.tagName},Pu=function(A){return"OL"===A.tagName},Gu=function(A){return"INPUT"===A.tagName},vu=function(A){return"svg"===A.tagName},Hu=function(A){return"BODY"===A.tagName},Su=function(A){return"CANVAS"===A.tagName},ju=function(A){return"VIDEO"===A.tagName},Ou=function(A){return"IMG"===A.tagName},_u=function(A){return"IFRAME"===A.tagName},Wu=function(A){return"STYLE"===A.tagName},Xu=function(A){return"TEXTAREA"===A.tagName},Lu=function(A){return"SELECT"===A.tagName},Vu=function(A){return"SLOT"===A.tagName},Ku=function(A){return A.tagName.indexOf("-")>0},Zu=function(){function A(){this.counters={}}return A.prototype.getCounterValue=function(A){var e=this.counters[A];return e&&e.length?e[e.length-1]:1},A.prototype.getCounterValues=function(A){var e=this.counters[A];return e||[]},A.prototype.pop=function(A){var e=this;A.forEach((function(A){return e.counters[A].pop()}))},A.prototype.parse=function(A){var e=this,t=A.counterIncrement,i=A.counterReset,s=!0;null!==t&&t.forEach((function(A){var t=e.counters[A.counter];t&&0!==A.increment&&(s=!1,t.length||t.push(1),t[Math.max(0,t.length-1)]+=A.increment)}));var n=[];return s&&i.forEach((function(A){var t=e.counters[A.counter];n.push(A.counter),t||(t=e.counters[A.counter]=[]),t.push(A.reset)})),n},A}(),qu={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},$u={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},Aw={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},ew={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},tw=function(A,e,t,i,s,n){return At?Bw(A,s,n.length>0):i.integers.reduce((function(e,t,s){for(;A>=t;)A-=t,e+=i.values[s];return e}),"")+n},iw=function(A,e,t,i){var s="";do{t||A--,s=i(A)+s,A/=e}while(A*e>=e);return s},sw=function(A,e,t,i,s){var n=t-e+1;return(A<0?"-":"")+(iw(Math.abs(A),n,i,(function(A){return Qg(Math.floor(A%n)+e)}))+s)},nw=function(A,e,t){void 0===t&&(t=". ");var i=e.length;return iw(Math.abs(A),i,!1,(function(A){return e[Math.floor(A%i)]}))+t},ow=function(A,e,t,i,s,n){if(A<-9999||A>9999)return Bw(A,4,s.length>0);var o=Math.abs(A),r=s;if(0===o)return e[0]+r;for(var c=0;o>0&&c<=4;c++){var a=o%10;0===a&&QM(n,1)&&""!==r?r=e[a]+r:a>1||1===a&&0===c||1===a&&1===c&&QM(n,2)||1===a&&1===c&&QM(n,4)&&A>100||1===a&&c>1&&QM(n,8)?r=e[a]+(c>0?t[c-1]:"")+r:1===a&&c>0&&(r=t[c-1]+r),o=Math.floor(o/10)}return(A<0?i:"")+r},rw="十百千萬",cw="拾佰仟萬",aw="マイナス",hw="마이너스",Bw=function(A,e,t){var i=t?". ":"",s=t?"、":"",n=t?", ":"",o=t?" ":"";switch(e){case 0:return"•"+o;case 1:return"◦"+o;case 2:return"◾"+o;case 5:var r=sw(A,48,57,!0,i);return r.length<4?"0"+r:r;case 4:return nw(A,"〇一二三四五六七八九",s);case 6:return tw(A,1,3999,qu,3,i).toLowerCase();case 7:return tw(A,1,3999,qu,3,i);case 8:return sw(A,945,969,!1,i);case 9:return sw(A,97,122,!1,i);case 10:return sw(A,65,90,!1,i);case 11:return sw(A,1632,1641,!0,i);case 12:case 49:return tw(A,1,9999,$u,3,i);case 35:return tw(A,1,9999,$u,3,i).toLowerCase();case 13:return sw(A,2534,2543,!0,i);case 14:case 30:return sw(A,6112,6121,!0,i);case 15:return nw(A,"子丑寅卯辰巳午未申酉戌亥",s);case 16:return nw(A,"甲乙丙丁戊己庚辛壬癸",s);case 17:case 48:return ow(A,"零一二三四五六七八九",rw,"負",s,14);case 47:return ow(A,"零壹貳參肆伍陸柒捌玖",cw,"負",s,15);case 42:return ow(A,"零一二三四五六七八九",rw,"负",s,14);case 41:return ow(A,"零壹贰叁肆伍陆柒捌玖",cw,"负",s,15);case 26:return ow(A,"〇一二三四五六七八九","十百千万",aw,s,0);case 25:return ow(A,"零壱弐参四伍六七八九","拾百千万",aw,s,7);case 31:return ow(A,"영일이삼사오육칠팔구","십백천만",hw,n,7);case 33:return ow(A,"零一二三四五六七八九","十百千萬",hw,n,0);case 32:return ow(A,"零壹貳參四五六七八九","拾百千",hw,n,7);case 18:return sw(A,2406,2415,!0,i);case 20:return tw(A,1,19999,ew,3,i);case 21:return sw(A,2790,2799,!0,i);case 22:return sw(A,2662,2671,!0,i);case 22:return tw(A,1,10999,Aw,3,i);case 23:return nw(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return nw(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return sw(A,3302,3311,!0,i);case 28:return nw(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",s);case 29:return nw(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",s);case 34:return sw(A,3792,3801,!0,i);case 37:return sw(A,6160,6169,!0,i);case 38:return sw(A,4160,4169,!0,i);case 39:return sw(A,2918,2927,!0,i);case 40:return sw(A,1776,1785,!0,i);case 43:return sw(A,3046,3055,!0,i);case 44:return sw(A,3174,3183,!0,i);case 45:return sw(A,3664,3673,!0,i);case 46:return sw(A,3872,3881,!0,i);default:return sw(A,48,57,!0,i)}},gw="data-html2canvas-ignore",lw=function(){function A(A,e,t){if(this.context=A,this.options=t,this.scrolledElements=[],this.referenceElement=e,this.counters=new Zu,this.quoteDepth=0,!e.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(e.ownerDocument.documentElement,!1)}return A.prototype.toIFrame=function(A,e){var t=this,i=Qw(A,e);if(!i.contentWindow)return Promise.reject("Unable to find iframe window");var s=A.defaultView.pageXOffset,n=A.defaultView.pageYOffset,o=i.contentWindow,r=o.document,c=ww(i).then((function(){return ag(t,0,void 0,(function(){var A,t;return hg(this,(function(s){switch(s.label){case 0:return this.scrolledElements.forEach(pw),o&&(o.scrollTo(e.left,e.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||o.scrollY===e.top&&o.scrollX===e.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(o.scrollX-e.left,o.scrollY-e.top,0,0))),A=this.options.onclone,void 0===(t=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:r.fonts&&r.fonts.ready?[4,r.fonts.ready]:[3,2];case 1:s.sent(),s.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,uw(r)]:[3,4];case 3:s.sent(),s.label=4;case 4:return"function"==typeof A?[2,Promise.resolve().then((function(){return A(r,t)})).then((function(){return i}))]:[2,i]}}))}))}));return r.open(),r.write(xw(document.doctype)+""),Fw(this.referenceElement.ownerDocument,s,n),r.replaceChild(r.adoptNode(this.documentElement),r.documentElement),r.close(),c},A.prototype.createElementClone=function(A){if(NM(A,2),Su(A))return this.createCanvasClone(A);if(ju(A))return this.createVideoClone(A);if(Wu(A))return this.createStyleClone(A);var e=A.cloneNode(!1);return Ou(e)&&(Ou(A)&&A.currentSrc&&A.currentSrc!==A.src&&(e.src=A.currentSrc,e.srcset=""),"lazy"===e.loading&&(e.loading="eager")),Ku(e)?this.createCustomElementClone(e):e},A.prototype.createCustomElementClone=function(A){var e=document.createElement("html2canvascustomelement");return Cw(A.style,e),e},A.prototype.createStyleClone=function(A){try{var e=A.sheet;if(e&&e.cssRules){var t=[].slice.call(e.cssRules,0).reduce((function(A,e){return e&&"string"==typeof e.cssText?A+e.cssText:A}),""),i=A.cloneNode(!1);return i.textContent=t,i}}catch(A){if(this.context.logger.error("Unable to access cssRules property",A),"SecurityError"!==A.name)throw A}return A.cloneNode(!1)},A.prototype.createCanvasClone=function(A){var e;if(this.options.inlineImages&&A.ownerDocument){var t=A.ownerDocument.createElement("img");try{return t.src=A.toDataURL(),t}catch(e){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",A)}}var i=A.cloneNode(!1);try{i.width=A.width,i.height=A.height;var s=A.getContext("2d"),n=i.getContext("2d");if(n)if(!this.options.allowTaint&&s)n.putImageData(s.getImageData(0,0,A.width,A.height),0,0);else{var o=null!==(e=A.getContext("webgl2"))&&void 0!==e?e:A.getContext("webgl");if(o){var r=o.getContextAttributes();!1===(null==r?void 0:r.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",A)}n.drawImage(A,0,0)}return i}catch(e){this.context.logger.info("Unable to clone canvas as it is tainted",A)}return i},A.prototype.createVideoClone=function(A){var e=A.ownerDocument.createElement("canvas");e.width=A.offsetWidth,e.height=A.offsetHeight;var t=e.getContext("2d");try{return t&&(t.drawImage(A,0,0,e.width,e.height),this.options.allowTaint||t.getImageData(0,0,e.width,e.height)),e}catch(e){this.context.logger.info("Unable to clone video as it is tainted",A)}var i=A.ownerDocument.createElement("canvas");return i.width=A.offsetWidth,i.height=A.offsetHeight,i},A.prototype.appendChildNode=function(A,e,t){Uu(e)&&("SCRIPT"===e.tagName||e.hasAttribute(gw)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(e))||this.options.copyStyles&&Uu(e)&&Wu(e)||A.appendChild(this.cloneNode(e,t))},A.prototype.cloneChildNodes=function(A,e,t){for(var i=this,s=A.shadowRoot?A.shadowRoot.firstChild:A.firstChild;s;s=s.nextSibling)if(Uu(s)&&Vu(s)&&"function"==typeof s.assignedNodes){var n=s.assignedNodes();n.length&&n.forEach((function(A){return i.appendChildNode(e,A,t)}))}else this.appendChildNode(e,s,t)},A.prototype.cloneNode=function(A,e){if(Tu(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var t=A.ownerDocument.defaultView;if(t&&Uu(A)&&(Ru(A)||bu(A))){var i=this.createElementClone(A);i.style.transitionProperty="none";var s=t.getComputedStyle(A),n=t.getComputedStyle(A,":before"),o=t.getComputedStyle(A,":after");this.referenceElement===A&&Ru(i)&&(this.clonedReferenceElement=i),Hu(i)&&Dw(i);var r=this.counters.parse(new mM(this.context,s)),c=this.resolvePseudoContent(A,i,n,vM.BEFORE);Ku(A)&&(e=!0),ju(A)||this.cloneChildNodes(A,i,e),c&&i.insertBefore(c,i.firstChild);var a=this.resolvePseudoContent(A,i,o,vM.AFTER);return a&&i.appendChild(a),this.counters.pop(r),(s&&(this.options.copyStyles||bu(A))&&!_u(A)||e)&&Cw(s,i),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([i,A.scrollLeft,A.scrollTop]),(Xu(A)||Lu(A))&&(Xu(i)||Lu(i))&&(i.value=A.value),i}return A.cloneNode(!1)},A.prototype.resolvePseudoContent=function(A,e,t,i){var s=this;if(t){var n=t.content,o=e.ownerDocument;if(o&&n&&"none"!==n&&"-moz-alt-content"!==n&&"none"!==t.display){this.counters.parse(new mM(this.context,t));var r=new DM(this.context,t),c=o.createElement("html2canvaspseudoelement");Cw(t,c),r.content.forEach((function(e){if(0===e.type)c.appendChild(o.createTextNode(e.value));else if(22===e.type){var t=o.createElement("img");t.src=e.value,t.style.opacity="1",c.appendChild(t)}else if(18===e.type){if("attr"===e.name){var i=e.values.filter(Zl);i.length&&c.appendChild(o.createTextNode(A.getAttribute(i[0].value)||""))}else if("counter"===e.name){var n=e.values.filter(eE),a=n[0],h=n[1];if(a&&Zl(a)){var B=s.counters.getCounterValue(a.value),g=h&&Zl(h)?RQ.parse(s.context,h.value):3;c.appendChild(o.createTextNode(Bw(B,g,!1)))}}else if("counters"===e.name){var l=e.values.filter(eE),E=(a=l[0],l[1]);h=l[2];if(a&&Zl(a)){var Q=s.counters.getCounterValues(a.value),M=h&&Zl(h)?RQ.parse(s.context,h.value):3,u=E&&0===E.type?E.value:"",w=Q.map((function(A){return Bw(A,M,!1)})).join(u);c.appendChild(o.createTextNode(w))}}}else if(20===e.type)switch(e.value){case"open-quote":c.appendChild(o.createTextNode(xM(r.quotes,s.quoteDepth++,!0)));break;case"close-quote":c.appendChild(o.createTextNode(xM(r.quotes,--s.quoteDepth,!1)));break;default:c.appendChild(o.createTextNode(e.value))}})),c.className=Iw+" "+fw;var a=i===vM.BEFORE?" "+Iw:" "+fw;return bu(e)?e.className.baseValue+=a:e.className+=a,c}}},A.destroy=function(A){return!!A.parentNode&&(A.parentNode.removeChild(A),!0)},A}();!function(A){A[A.BEFORE=0]="BEFORE",A[A.AFTER=1]="AFTER"}(vM||(vM={}));var Ew,Qw=function(A,e){var t=A.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=e.width.toString(),t.height=e.height.toString(),t.scrolling="no",t.setAttribute(gw,"true"),A.body.appendChild(t),t},Mw=function(A){return new Promise((function(e){A.complete?e():A.src?(A.onload=e,A.onerror=e):e()}))},uw=function(A){return Promise.all([].slice.call(A.images,0).map(Mw))},ww=function(A){return new Promise((function(e,t){var i=A.contentWindow;if(!i)return t("No window assigned for iframe");var s=i.document;i.onload=A.onload=function(){i.onload=A.onload=null;var t=setInterval((function(){s.body.childNodes.length>0&&"complete"===s.readyState&&(clearInterval(t),e(A))}),50)}}))},dw=["all","d","content"],Cw=function(A,e){for(var t=A.length-1;t>=0;t--){var i=A.item(t);-1===dw.indexOf(i)&&e.style.setProperty(i,A.getPropertyValue(i))}return e},xw=function(A){var e="";return A&&(e+=""),e},Fw=function(A,e,t){A&&A.defaultView&&(e!==A.defaultView.pageXOffset||t!==A.defaultView.pageYOffset)&&A.defaultView.scrollTo(e,t)},pw=function(A){var e=A[0],t=A[1],i=A[2];e.scrollLeft=t,e.scrollTop=i},Iw="___html2canvas___pseudoelement_before",fw="___html2canvas___pseudoelement_after",Yw='{\n content: "" !important;\n display: none !important;\n}',Dw=function(A){mw(A,"."+Iw+":before"+Yw+"\n ."+fw+":after"+Yw)},mw=function(A,e){var t=A.ownerDocument;if(t){var i=t.createElement("style");i.textContent=e,A.appendChild(i)}},Jw=function(){function A(){}return A.getOrigin=function(e){var t=A._link;return t?(t.href=e,t.href=t.href,t.protocol+t.hostname+t.port):"about:blank"},A.isSameOrigin=function(e){return A.getOrigin(e)===A._origin},A.setContext=function(e){A._link=e.document.createElement("a"),A._origin=A.getOrigin(e.location.href)},A._origin="about:blank",A}(),Nw=function(){function A(A,e){this.context=A,this._options=e,this._cache={}}return A.prototype.addImage=function(A){var e=Promise.resolve();return this.has(A)?e:kw(A)||Uw(A)?((this._cache[A]=this.loadImage(A)).catch((function(){})),e):e},A.prototype.match=function(A){return this._cache[A]},A.prototype.loadImage=function(A){return ag(this,0,void 0,(function(){var e,t,i,s,n=this;return hg(this,(function(o){switch(o.label){case 0:return e=Jw.isSameOrigin(A),t=!Rw(A)&&!0===this._options.useCORS&&Au.SUPPORT_CORS_IMAGES&&!e,i=!Rw(A)&&!e&&!kw(A)&&"string"==typeof this._options.proxy&&Au.SUPPORT_CORS_XHR&&!t,e||!1!==this._options.allowTaint||Rw(A)||kw(A)||i||t?(s=A,i?[4,this.proxy(s)]:[3,2]):[2];case 1:s=o.sent(),o.label=2;case 2:return this.context.logger.debug("Added image "+A.substring(0,256)),[4,new Promise((function(A,e){var i=new Image;i.onload=function(){return A(i)},i.onerror=e,(bw(s)||t)&&(i.crossOrigin="anonymous"),i.src=s,!0===i.complete&&setTimeout((function(){return A(i)}),500),n._options.imageTimeout>0&&setTimeout((function(){return e("Timed out ("+n._options.imageTimeout+"ms) loading image")}),n._options.imageTimeout)}))];case 3:return[2,o.sent()]}}))}))},A.prototype.has=function(A){return void 0!==this._cache[A]},A.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},A.prototype.proxy=function(A){var e=this,t=this._options.proxy;if(!t)throw new Error("No proxy defined");var i=A.substring(0,256);return new Promise((function(s,n){var o=Au.SUPPORT_RESPONSE_TYPE?"blob":"text",r=new XMLHttpRequest;r.onload=function(){if(200===r.status)if("text"===o)s(r.response);else{var A=new FileReader;A.addEventListener("load",(function(){return s(A.result)}),!1),A.addEventListener("error",(function(A){return n(A)}),!1),A.readAsDataURL(r.response)}else n("Failed to proxy resource "+i+" with status code "+r.status)},r.onerror=n;var c=t.indexOf("?")>-1?"&":"?";if(r.open("GET",""+t+c+"url="+encodeURIComponent(A)+"&responseType="+o),"text"!==o&&r instanceof XMLHttpRequest&&(r.responseType=o),e._options.imageTimeout){var a=e._options.imageTimeout;r.timeout=a,r.ontimeout=function(){return n("Timed out ("+a+"ms) proxying "+i)}}r.send()}))},A}(),yw=/^data:image\/svg\+xml/i,zw=/^data:image\/.*;base64,/i,Tw=/^data:image\/.*/i,Uw=function(A){return Au.SUPPORT_SVG_DRAWING||!Pw(A)},Rw=function(A){return Tw.test(A)},bw=function(A){return zw.test(A)},kw=function(A){return"blob"===A.substr(0,4)},Pw=function(A){return"svg"===A.substr(-3).toLowerCase()||yw.test(A)},Gw=function(){function A(A,e){this.type=0,this.x=A,this.y=e}return A.prototype.add=function(e,t){return new A(this.x+e,this.y+t)},A}(),vw=function(A,e,t){return new Gw(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)},Hw=function(){function A(A,e,t,i){this.type=1,this.start=A,this.startControl=e,this.endControl=t,this.end=i}return A.prototype.subdivide=function(e,t){var i=vw(this.start,this.startControl,e),s=vw(this.startControl,this.endControl,e),n=vw(this.endControl,this.end,e),o=vw(i,s,e),r=vw(s,n,e),c=vw(o,r,e);return t?new A(this.start,i,o,c):new A(c,r,n,this.end)},A.prototype.add=function(e,t){return new A(this.start.add(e,t),this.startControl.add(e,t),this.endControl.add(e,t),this.end.add(e,t))},A.prototype.reverse=function(){return new A(this.end,this.endControl,this.startControl,this.start)},A}(),Sw=function(A){return 1===A.type},jw=function(A){var e=A.styles,t=A.bounds,i=hE(e.borderTopLeftRadius,t.width,t.height),s=i[0],n=i[1],o=hE(e.borderTopRightRadius,t.width,t.height),r=o[0],c=o[1],a=hE(e.borderBottomRightRadius,t.width,t.height),h=a[0],B=a[1],g=hE(e.borderBottomLeftRadius,t.width,t.height),l=g[0],E=g[1],Q=[];Q.push((s+r)/t.width),Q.push((l+h)/t.width),Q.push((n+E)/t.height),Q.push((c+B)/t.height);var M=Math.max.apply(Math,Q);M>1&&(s/=M,n/=M,r/=M,c/=M,h/=M,B/=M,l/=M,E/=M);var u=t.width-r,w=t.height-B,d=t.width-h,C=t.height-E,x=e.borderTopWidth,F=e.borderRightWidth,p=e.borderBottomWidth,I=e.borderLeftWidth,f=BE(e.paddingTop,A.bounds.width),Y=BE(e.paddingRight,A.bounds.width),D=BE(e.paddingBottom,A.bounds.width),m=BE(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=s>0||n>0?Ow(t.left+I/3,t.top+x/3,s-I/3,n-x/3,Ew.TOP_LEFT):new Gw(t.left+I/3,t.top+x/3),this.topRightBorderDoubleOuterBox=s>0||n>0?Ow(t.left+u,t.top+x/3,r-F/3,c-x/3,Ew.TOP_RIGHT):new Gw(t.left+t.width-F/3,t.top+x/3),this.bottomRightBorderDoubleOuterBox=h>0||B>0?Ow(t.left+d,t.top+w,h-F/3,B-p/3,Ew.BOTTOM_RIGHT):new Gw(t.left+t.width-F/3,t.top+t.height-p/3),this.bottomLeftBorderDoubleOuterBox=l>0||E>0?Ow(t.left+I/3,t.top+C,l-I/3,E-p/3,Ew.BOTTOM_LEFT):new Gw(t.left+I/3,t.top+t.height-p/3),this.topLeftBorderDoubleInnerBox=s>0||n>0?Ow(t.left+2*I/3,t.top+2*x/3,s-2*I/3,n-2*x/3,Ew.TOP_LEFT):new Gw(t.left+2*I/3,t.top+2*x/3),this.topRightBorderDoubleInnerBox=s>0||n>0?Ow(t.left+u,t.top+2*x/3,r-2*F/3,c-2*x/3,Ew.TOP_RIGHT):new Gw(t.left+t.width-2*F/3,t.top+2*x/3),this.bottomRightBorderDoubleInnerBox=h>0||B>0?Ow(t.left+d,t.top+w,h-2*F/3,B-2*p/3,Ew.BOTTOM_RIGHT):new Gw(t.left+t.width-2*F/3,t.top+t.height-2*p/3),this.bottomLeftBorderDoubleInnerBox=l>0||E>0?Ow(t.left+2*I/3,t.top+C,l-2*I/3,E-2*p/3,Ew.BOTTOM_LEFT):new Gw(t.left+2*I/3,t.top+t.height-2*p/3),this.topLeftBorderStroke=s>0||n>0?Ow(t.left+I/2,t.top+x/2,s-I/2,n-x/2,Ew.TOP_LEFT):new Gw(t.left+I/2,t.top+x/2),this.topRightBorderStroke=s>0||n>0?Ow(t.left+u,t.top+x/2,r-F/2,c-x/2,Ew.TOP_RIGHT):new Gw(t.left+t.width-F/2,t.top+x/2),this.bottomRightBorderStroke=h>0||B>0?Ow(t.left+d,t.top+w,h-F/2,B-p/2,Ew.BOTTOM_RIGHT):new Gw(t.left+t.width-F/2,t.top+t.height-p/2),this.bottomLeftBorderStroke=l>0||E>0?Ow(t.left+I/2,t.top+C,l-I/2,E-p/2,Ew.BOTTOM_LEFT):new Gw(t.left+I/2,t.top+t.height-p/2),this.topLeftBorderBox=s>0||n>0?Ow(t.left,t.top,s,n,Ew.TOP_LEFT):new Gw(t.left,t.top),this.topRightBorderBox=r>0||c>0?Ow(t.left+u,t.top,r,c,Ew.TOP_RIGHT):new Gw(t.left+t.width,t.top),this.bottomRightBorderBox=h>0||B>0?Ow(t.left+d,t.top+w,h,B,Ew.BOTTOM_RIGHT):new Gw(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=l>0||E>0?Ow(t.left,t.top+C,l,E,Ew.BOTTOM_LEFT):new Gw(t.left,t.top+t.height),this.topLeftPaddingBox=s>0||n>0?Ow(t.left+I,t.top+x,Math.max(0,s-I),Math.max(0,n-x),Ew.TOP_LEFT):new Gw(t.left+I,t.top+x),this.topRightPaddingBox=r>0||c>0?Ow(t.left+Math.min(u,t.width-F),t.top+x,u>t.width+F?0:Math.max(0,r-F),Math.max(0,c-x),Ew.TOP_RIGHT):new Gw(t.left+t.width-F,t.top+x),this.bottomRightPaddingBox=h>0||B>0?Ow(t.left+Math.min(d,t.width-I),t.top+Math.min(w,t.height-p),Math.max(0,h-F),Math.max(0,B-p),Ew.BOTTOM_RIGHT):new Gw(t.left+t.width-F,t.top+t.height-p),this.bottomLeftPaddingBox=l>0||E>0?Ow(t.left+I,t.top+Math.min(C,t.height-p),Math.max(0,l-I),Math.max(0,E-p),Ew.BOTTOM_LEFT):new Gw(t.left+I,t.top+t.height-p),this.topLeftContentBox=s>0||n>0?Ow(t.left+I+m,t.top+x+f,Math.max(0,s-(I+m)),Math.max(0,n-(x+f)),Ew.TOP_LEFT):new Gw(t.left+I+m,t.top+x+f),this.topRightContentBox=r>0||c>0?Ow(t.left+Math.min(u,t.width+I+m),t.top+x+f,u>t.width+I+m?0:r-I+m,c-(x+f),Ew.TOP_RIGHT):new Gw(t.left+t.width-(F+Y),t.top+x+f),this.bottomRightContentBox=h>0||B>0?Ow(t.left+Math.min(d,t.width-(I+m)),t.top+Math.min(w,t.height+x+f),Math.max(0,h-(F+Y)),B-(p+D),Ew.BOTTOM_RIGHT):new Gw(t.left+t.width-(F+Y),t.top+t.height-(p+D)),this.bottomLeftContentBox=l>0||E>0?Ow(t.left+I+m,t.top+C,Math.max(0,l-(I+m)),E-(p+D),Ew.BOTTOM_LEFT):new Gw(t.left+I+m,t.top+t.height-(p+D))};!function(A){A[A.TOP_LEFT=0]="TOP_LEFT",A[A.TOP_RIGHT=1]="TOP_RIGHT",A[A.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",A[A.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(Ew||(Ew={}));var Ow=function(A,e,t,i,s){var n=(Math.sqrt(2)-1)/3*4,o=t*n,r=i*n,c=A+t,a=e+i;switch(s){case Ew.TOP_LEFT:return new Hw(new Gw(A,a),new Gw(A,a-r),new Gw(c-o,e),new Gw(c,e));case Ew.TOP_RIGHT:return new Hw(new Gw(A,e),new Gw(A+o,e),new Gw(c,a-r),new Gw(c,a));case Ew.BOTTOM_RIGHT:return new Hw(new Gw(c,e),new Gw(c,e+r),new Gw(A+o,a),new Gw(A,a));case Ew.BOTTOM_LEFT:default:return new Hw(new Gw(c,a),new Gw(c-o,a),new Gw(A,e+r),new Gw(A,e))}},_w=function(A){return[A.topLeftBorderBox,A.topRightBorderBox,A.bottomRightBorderBox,A.bottomLeftBorderBox]},Ww=function(A){return[A.topLeftPaddingBox,A.topRightPaddingBox,A.bottomRightPaddingBox,A.bottomLeftPaddingBox]},Xw=function(A,e,t){this.offsetX=A,this.offsetY=e,this.matrix=t,this.type=0,this.target=6},Lw=function(A,e){this.path=A,this.target=e,this.type=1},Vw=function(A){this.opacity=A,this.type=2,this.target=6},Kw=function(A){return 1===A.type},Zw=function(A,e){return A.length===e.length&&A.some((function(A,t){return A===e[t]}))},qw=function(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},$w=function(){function A(A,e){if(this.container=A,this.parent=e,this.effects=[],this.curves=new jw(this.container),this.container.styles.opacity<1&&this.effects.push(new Vw(this.container.styles.opacity)),null!==this.container.styles.transform){var t=this.container.bounds.left+this.container.styles.transformOrigin[0].number,i=this.container.bounds.top+this.container.styles.transformOrigin[1].number,s=this.container.styles.transform;this.effects.push(new Xw(t,i,s))}if(0!==this.container.styles.overflowX){var n=_w(this.curves),o=Ww(this.curves);Zw(n,o)?this.effects.push(new Lw(n,6)):(this.effects.push(new Lw(n,2)),this.effects.push(new Lw(o,4)))}}return A.prototype.getEffects=function(A){for(var e=-1===[2,3].indexOf(this.container.styles.position),t=this.parent,i=this.effects.slice(0);t;){var s=t.effects.filter((function(A){return!Kw(A)}));if(e||0!==t.container.styles.position||!t.parent){if(i.unshift.apply(i,s),e=-1===[2,3].indexOf(t.container.styles.position),0!==t.container.styles.overflowX){var n=_w(t.curves),o=Ww(t.curves);Zw(n,o)||i.unshift(new Lw(o,6))}}else i.unshift.apply(i,s);t=t.parent}return i.filter((function(e){return QM(e.target,A)}))},A}(),Ad=function(A,e,t,i){A.container.elements.forEach((function(s){var n=QM(s.flags,4),o=QM(s.flags,2),r=new $w(s,A);QM(s.styles.display,2048)&&i.push(r);var c=QM(s.flags,8)?[]:i;if(n||o){var a=n||s.styles.isPositioned()?t:e,h=new qw(r);if(s.styles.isPositioned()||s.styles.opacity<1||s.styles.isTransformed()){var B=s.styles.zIndex.order;if(B<0){var g=0;a.negativeZIndex.some((function(A,e){return B>A.element.container.styles.zIndex.order?(g=e,!1):g>0})),a.negativeZIndex.splice(g,0,h)}else if(B>0){var l=0;a.positiveZIndex.some((function(A,e){return B>=A.element.container.styles.zIndex.order?(l=e+1,!1):l>0})),a.positiveZIndex.splice(l,0,h)}else a.zeroOrAutoZIndexOrTransformedOrOpacity.push(h)}else s.styles.isFloating()?a.nonPositionedFloats.push(h):a.nonPositionedInlineLevel.push(h);Ad(r,h,n?h:t,c)}else s.styles.isInlineLevel()?e.inlineLevel.push(r):e.nonInlineLevel.push(r),Ad(r,e,t,c);QM(s.flags,8)&&ed(s,c)}))},ed=function(A,e){for(var t=A instanceof Mu?A.start:1,i=A instanceof Mu&&A.reversed,s=0;s0&&A.intrinsicHeight>0){var i=od(A),s=Ww(e);this.path(s),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,i.left,i.top,i.width,i.height),this.ctx.restore()}},e.prototype.renderNodeContent=function(A){return ag(this,0,void 0,(function(){var t,i,s,n,o,r,c,a,h,B,g,l,E,Q,M,u,w,d;return hg(this,(function(C){switch(C.label){case 0:this.applyEffects(A.getEffects(4)),t=A.container,i=A.curves,s=t.styles,n=0,o=t.textNodes,C.label=1;case 1:return n0&&p>0&&(u=i.ctx.createPattern(E,"repeat"),i.renderRepeat(d,u,f,Y))):function(A){return 2===A.type}(t)&&(w=rd(A,e,[null,null,null]),d=w[0],C=w[1],x=w[2],F=w[3],p=w[4],I=0===t.position.length?[cE]:t.position,f=BE(I[0],F),Y=BE(I[I.length-1],p),D=function(A,e,t,i,s){var n=0,o=0;switch(A.size){case 0:0===A.shape?n=o=Math.min(Math.abs(e),Math.abs(e-i),Math.abs(t),Math.abs(t-s)):1===A.shape&&(n=Math.min(Math.abs(e),Math.abs(e-i)),o=Math.min(Math.abs(t),Math.abs(t-s)));break;case 2:if(0===A.shape)n=o=Math.min(UE(e,t),UE(e,t-s),UE(e-i,t),UE(e-i,t-s));else if(1===A.shape){var r=Math.min(Math.abs(t),Math.abs(t-s))/Math.min(Math.abs(e),Math.abs(e-i)),c=RE(i,s,e,t,!0),a=c[0],h=c[1];o=r*(n=UE(a-e,(h-t)/r))}break;case 1:0===A.shape?n=o=Math.max(Math.abs(e),Math.abs(e-i),Math.abs(t),Math.abs(t-s)):1===A.shape&&(n=Math.max(Math.abs(e),Math.abs(e-i)),o=Math.max(Math.abs(t),Math.abs(t-s)));break;case 3:if(0===A.shape)n=o=Math.max(UE(e,t),UE(e,t-s),UE(e-i,t),UE(e-i,t-s));else if(1===A.shape){r=Math.max(Math.abs(t),Math.abs(t-s))/Math.max(Math.abs(e),Math.abs(e-i));var B=RE(i,s,e,t,!1);a=B[0],h=B[1],o=r*(n=UE(a-e,(h-t)/r))}}return Array.isArray(A.size)&&(n=BE(A.size[0],i),o=2===A.size.length?BE(A.size[1],s):n),[n,o]}(t,f,Y,F,p),m=D[0],J=D[1],m>0&&J>0&&(N=i.ctx.createRadialGradient(C+f,x+Y,0,C+f,x+Y,m),zE(t.stops,2*m).forEach((function(A){return N.addColorStop(A.stop,CE(A.color))})),i.path(d),i.ctx.fillStyle=N,m!==J?(y=A.bounds.left+.5*A.bounds.width,z=A.bounds.top+.5*A.bounds.height,U=1/(T=J/m),i.ctx.save(),i.ctx.translate(y,z),i.ctx.transform(1,0,0,T,0,0),i.ctx.translate(-y,-z),i.ctx.fillRect(C,U*(x-z)+z,F,p*U),i.ctx.restore()):i.ctx.fill())),R.label=6;case 6:return e--,[2]}}))},i=this,s=0,n=A.styles.backgroundImage.slice(0).reverse(),r.label=1;case 1:return s0?2!==c.style?[3,5]:[4,this.renderDashedDottedBorder(c.color,c.width,n,A.curves,2)]:[3,11]:[3,13];case 4:return h.sent(),[3,11];case 5:return 3!==c.style?[3,7]:[4,this.renderDashedDottedBorder(c.color,c.width,n,A.curves,3)];case 6:return h.sent(),[3,11];case 7:return 4!==c.style?[3,9]:[4,this.renderDoubleBorder(c.color,c.width,n,A.curves)];case 8:return h.sent(),[3,11];case 9:return[4,this.renderSolidBorder(c.color,n,A.curves)];case 10:h.sent(),h.label=11;case 11:n++,h.label=12;case 12:return o++,[3,3];case 13:return[2]}}))}))},e.prototype.renderDashedDottedBorder=function(A,e,t,i,s){return ag(this,0,void 0,(function(){var n,o,r,c,a,h,B,g,l,E,Q,M,u,w,d,C;return hg(this,(function(x){return this.ctx.save(),n=function(A,e){switch(e){case 0:return id(A.topLeftBorderStroke,A.topRightBorderStroke);case 1:return id(A.topRightBorderStroke,A.bottomRightBorderStroke);case 2:return id(A.bottomRightBorderStroke,A.bottomLeftBorderStroke);default:return id(A.bottomLeftBorderStroke,A.topLeftBorderStroke)}}(i,t),o=td(i,t),2===s&&(this.path(o),this.ctx.clip()),Sw(o[0])?(r=o[0].start.x,c=o[0].start.y):(r=o[0].x,c=o[0].y),Sw(o[1])?(a=o[1].end.x,h=o[1].end.y):(a=o[1].x,h=o[1].y),B=0===t||2===t?Math.abs(r-a):Math.abs(c-h),this.ctx.beginPath(),3===s?this.formatPath(n):this.formatPath(o.slice(0,2)),g=e<3?3*e:2*e,l=e<3?2*e:e,3===s&&(g=e,l=e),E=!0,B<=2*g?E=!1:B<=2*g+l?(g*=Q=B/(2*g+l),l*=Q):(M=Math.floor((B+l)/(g+l)),u=(B-M*g)/(M-1),l=(w=(B-(M+1)*g)/M)<=0||Math.abs(l-u){}){if(!A||!e)return;let i=null;let s,n;const o=A=>{if(A.preventDefault(),i&&(clearTimeout(i),i=null),A.touches.length>1)return;const t=A.touches[0];s=t.clientX,n=t.clientY,i=setTimeout((()=>{A.clientX=t.clientX,A.clientY=t.clientY,e(A),clearTimeout(i),i=null}),500)},r=A=>{A.touches.length>1&&i&&(clearTimeout(i),i=null)},c=A=>{if(!i)return;const e=A.touches[0],t=Math.abs(e.clientX-s),o=Math.abs(e.clientY-n);(t>3||o>3)&&(clearTimeout(i),i=null)},a=A=>{A.preventDefault(),i&&(t(A),clearTimeout(i),i=null)},h=A=>{e(A),A.preventDefault(),A.stopPropagation()};return za.isIphoneSafari()?(A.addEventListener("touchstart",o),A.addEventListener("touchmove",c),A.addEventListener("touchend",a),window.addEventListener("touchstart",r)):A.addEventListener("contextmenu",h),function(){za.isIphoneSafari()?(A.removeEventListener("touchstart",o),A.removeEventListener("touchmove",c),A.removeEventListener("touchend",a),window.removeEventListener("touchstart",r)):A.removeEventListener("contextmenu",h)}}class Jd{constructor(A,e={}){this._highlightClass="viewer-ruler-dot-highlighted",this._x=0,this._y=0,this._dot=document.createElement("div"),this._dot.className+=this._dot.className?" viewer-ruler-dot":"viewer-ruler-dot",this._dotClickable=document.createElement("div"),this._dotClickable.className+=this._dotClickable.className?" viewer-ruler-dot-clickable":"viewer-ruler-dot-clickable",this._visible=!1!==e.visible,this._culled=!1;var t=this._dot,i=t.style;i["border-radius"]="25px",i.border="solid 2px white",i.background="lightgreen",i.position="absolute",i["z-index"]=void 0===e.zIndex?"40000005":e.zIndex,i.width="8px",i.height="8px",i.visibility=this._visible?"visible":"hidden",i.top="0px",i.left="0px",i["box-shadow"]="0 2px 5px 0 #182A3D;",i.opacity=1,i["pointer-events"]="none",e.onContextMenu,A.appendChild(t);var s=this._dotClickable,n=s.style;if(n["border-radius"]="35px",n.border="solid 10px white",n.position="absolute",n["z-index"]=void 0===e.zIndex?"40000007":e.zIndex+1,n.width="8px",n.height="8px",n.visibility="visible",n.top="0px",n.left="0px",n.opacity=0,n["pointer-events"]="none",e.onContextMenu,A.appendChild(s),s.addEventListener("click",(e=>{A.dispatchEvent(new MouseEvent("mouseover",e))})),e.onMouseOver&&s.addEventListener("mouseover",(t=>{e.onMouseOver(t,this),A.dispatchEvent(new MouseEvent("mouseover",t))})),e.onMouseLeave&&s.addEventListener("mouseleave",(A=>{e.onMouseLeave(A,this)})),e.onMouseWheel&&s.addEventListener("wheel",(A=>{e.onMouseWheel(A,this)})),e.onMouseDown&&s.addEventListener("mousedown",(A=>{e.onMouseDown(A,this)})),e.onMouseUp&&s.addEventListener("mouseup",(A=>{e.onMouseUp(A,this)})),e.onMouseMove&&s.addEventListener("mousemove",(A=>{e.onMouseMove(A,this)})),e.onTouchstart&&s.addEventListener("touchstart",(A=>{e.onTouchstart(A,this)})),e.onTouchmove&&s.addEventListener("touchmove",(A=>{e.onTouchmove(A,this)})),e.onTouchend&&s.addEventListener("touchend",(A=>{e.onTouchend(A,this)})),e.onContextMenu){md(s,(A=>{e.onContextMenu(A,this)}))}this.setPos(e.x||0,e.y||0),this.setFillColor(e.fillColor),this.setBorderColor(e.borderColor)}setPos(A,e){this._x=A,this._y=e;var t=this._dot.style;t.left=Math.round(A)-6+"px",t.top=Math.round(e)-6+"px";var i=this._dotClickable.style;i.left=Math.round(A)-14+"px",i.top=Math.round(e)-14+"px"}setFillColor(A){this._dot.style.background=A||"lightgreen"}setBorderColor(A){this._dot.style.border="solid 2px"+(A||"black")}setOpacity(A){this._dot.style.opacity=A}_updateVisibility(){this._dot.style.visibility=this._dotClickable.style.visibility=this._visible&&!this._culled?"visible":"hidden"}setVisible(A){this._visible!==A&&(this._visible=!!A,this._updateVisibility())}setCulled(A){this._culled!==A&&(this._culled=!!A,this._updateVisibility())}setClickable(A){this._dotClickable.style["pointer-events"]=A?"all":"none"}setHighlighted(A){this._highlighted!==A&&(this._highlighted=!!A,this._highlighted?this._dot.classList.add(this._highlightClass):this._dot.classList.remove(this._highlightClass))}destroy(){this.setVisible(!1),this._dot.parentElement&&this._dot.parentElement.removeChild(this._dot),this._dotClickable.parentElement&&this._dotClickable.parentElement.removeChild(this._dotClickable)}}class Nd{constructor(A,e={}){this._highlightClass="viewer-ruler-label-highlighted",this._prefix=e.prefix||"",this._x=0,this._y=0,this._visible=!0,this._culled=!1,this._label=document.createElement("div"),this._label.className+=this._label.className?" viewer-ruler-label":"viewer-ruler-label",this._timeout=null;var t=this._label,i=t.style;if(i["border-radius"]="5px",i.color="white",i.padding="4px",i.border="solid 1px",i.background="lightgreen",i.position="absolute",i["z-index"]=void 0===e.zIndex?"5000005":e.zIndex,i.width="auto",i.height="auto",i.visibility="visible",i.top="0px",i.left="0px",i["pointer-events"]="all",i.opacity=1,e.onContextMenu,t.innerText="",A.appendChild(t),this.setPos(e.x||0,e.y||0),this.setFillColor(e.fillColor),this.setBorderColor(e.fillColor),this.setText(e.text),e.onMouseOver&&t.addEventListener("mouseover",(A=>{e.onMouseOver(A,this),A.preventDefault()})),e.onMouseLeave&&t.addEventListener("mouseleave",(A=>{e.onMouseLeave(A,this),A.preventDefault()})),e.onMouseWheel&&t.addEventListener("wheel",(A=>{e.onMouseWheel(A,this)})),e.onMouseDown&&t.addEventListener("mousedown",(A=>{e.onMouseDown(A,this),A.stopPropagation()})),e.onMouseUp&&t.addEventListener("mouseup",(A=>{e.onMouseUp(A,this),A.stopPropagation()})),e.onMouseMove&&t.addEventListener("mousemove",(A=>{e.onMouseMove(A,this)})),e.onContextMenu){md(t,(A=>{e.onContextMenu(A,this)}))}}setPos(A,e){this._x=A,this._y=e;var t=this._label.style;t.left=Math.round(A)-20+"px",t.top=Math.round(e)-12+"px"}setPosOnWire(A,e,t,i){var s=A+.5*(t-A),n=e+.5*(i-e),o=this._label.style;o.left=Math.round(s)-20+"px",o.top=Math.round(n)-12+"px"}setPosBetweenWires(A,e,t,i,s,n){var o=(A+t+s)/3,r=(e+i+n)/3,c=this._label.style;c.left=Math.round(o)-20+"px",c.top=Math.round(r)-12+"px"}setText(A){this._label.innerHTML=this._prefix+(A||"")}setFillColor(A){this._fillColor=A||"lightgreen",this._label.style.background=this._fillColor}setBorderColor(A){this._borderColor=A||"black",this._label.style.border="solid 1px "+this._borderColor}setOpacity(A){this._label.style.opacity=A}_updateVisibility(){this._label.style.visibility=this._visible&&!this._culled?"visible":"hidden"}setVisible(A){this._visible!==A&&(this._visible=!!A,this._updateVisibility())}setCulled(A){this._culled!==A&&(this._culled=!!A,this._updateVisibility())}setHighlighted(A){this._highlighted!==A&&(this._highlighted=!!A,this._highlighted?this._label.classList.add(this._highlightClass):this._label.classList.remove(this._highlightClass))}setClickable(A){this._label.style["pointer-events"]=A?"all":"none"}setPrefix(A){this._prefix!==A&&(this._prefix=A)}destroy(){this._label.parentElement&&this._label.parentElement.removeChild(this._label)}}class yd{constructor(A,e={}){this._color=e.color||"black",this._highlightClass="viewer-ruler-wire-highlighted",this._wire=document.createElement("div"),this._wire.className+=this._wire.className?" viewer-ruler-wire":"viewer-ruler-wire",this._wireClickable=document.createElement("div"),this._wireClickable.className+=this._wireClickable.className?" viewer-ruler-wire-clickable":"viewer-ruler-wire-clickable",this._thickness=e.thickness||1,this._thicknessClickable=e.thicknessClickable||6,this._visible=!0,this._culled=!1;var t=this._wire,i=t.style;i.border="solid "+this._thickness+"px "+this._color,i.position="absolute",i["z-index"]=void 0===e.zIndex?"2000001":e.zIndex,i.width="0px",i.height="0px",i.visibility="visible",i.top="0px",i.left="0px",i["-webkit-transform-origin"]="0 0",i["-moz-transform-origin"]="0 0",i["-ms-transform-origin"]="0 0",i["-o-transform-origin"]="0 0",i["transform-origin"]="0 0",i["-webkit-transform"]="rotate(0deg)",i["-moz-transform"]="rotate(0deg)",i["-ms-transform"]="rotate(0deg)",i["-o-transform"]="rotate(0deg)",i.transform="rotate(0deg)",i.opacity=1,i["pointer-events"]="none",e.onContextMenu,A.appendChild(t);var s=this._wireClickable,n=s.style;if(n.border="solid "+this._thicknessClickable+"px "+this._color,n.position="absolute",n["z-index"]=void 0===e.zIndex?"2000002":e.zIndex+1,n.width="0px",n.height="0px",n.visibility="visible",n.top="0px",n.left="0px",n["-webkit-transform-origin"]="0 0",n["-moz-transform-origin"]="0 0",n["-ms-transform-origin"]="0 0",n["-o-transform-origin"]="0 0",n["transform-origin"]="0 0",n["-webkit-transform"]="rotate(0deg)",n["-moz-transform"]="rotate(0deg)",n["-ms-transform"]="rotate(0deg)",n["-o-transform"]="rotate(0deg)",n.transform="rotate(0deg)",n.opacity=0,n["pointer-events"]="none",e.onContextMenu,A.appendChild(s),e.onMouseOver&&s.addEventListener("mouseover",(A=>{e.onMouseOver(A,this)})),e.onMouseLeave&&s.addEventListener("mouseleave",(A=>{e.onMouseLeave(A,this)})),e.onMouseWheel&&s.addEventListener("wheel",(A=>{e.onMouseWheel(A,this)})),e.onMouseDown&&s.addEventListener("mousedown",(A=>{e.onMouseDown(A,this)})),e.onMouseUp&&s.addEventListener("mouseup",(A=>{e.onMouseUp(A,this)})),e.onMouseMove&&s.addEventListener("mousemove",(A=>{e.onMouseMove(A,this)})),e.onContextMenu){md(s,(A=>{e.onContextMenu(A,this)}))}this._x1=0,this._y1=0,this._x2=0,this._y2=0,this._update()}get visible(){return"visible"===this._wire.style.visibility}_update(){var A=Math.abs(Math.sqrt((this._x1-this._x2)*(this._x1-this._x2)+(this._y1-this._y2)*(this._y1-this._y2))),e=180*Math.atan2(this._y2-this._y1,this._x2-this._x1)/Math.PI,t=this._wire.style;t.width=Math.round(A)+"px",t.left=Math.round(this._x1)+"px",t.top=Math.round(this._y1)+"px",t["-webkit-transform"]=t["-moz-transform"]=t["-ms-transform"]=t["-o-transform"]=t.transform="rotate("+e+"deg) translate(-"+this._thickness+"px, -"+this._thickness+"px)";var i=this._wireClickable.style;i.width=Math.round(A)+"px",i.left=Math.round(this._x1)+"px",i.top=Math.round(this._y1)+"px",i["-webkit-transform"]=i["-moz-transform"]=i["-ms-transform"]=i["-o-transform"]=i.transform="rotate("+e+"deg) translate(-"+this._thicknessClickable+"px, -"+this._thicknessClickable+"px)"}setStartAndEnd(A,e,t,i){this._x1=A,this._y1=e,this._x2=t,this._y2=i,this._update()}setColor(A){this._color=A||"black",this._wire.style.border="solid "+this._thickness+"px "+this._color}setOpacity(A){this._wire.style.opacity=A}_updateVisibility(){this._wire.style.visibility=this._wireClickable.style.visibility=this._visible&&!this._culled?"visible":"hidden"}setVisible(A){this._visible!==A&&(this._visible=!!A,this._updateVisibility())}setCulled(A){this._culled!==A&&(this._culled=!!A,this._updateVisibility())}setClickable(A){this._wireClickable.style["pointer-events"]=A?"all":"none"}setHighlighted(A){this._highlighted!==A&&(this._highlighted=!!A,this._highlighted?this._wire.classList.add(this._highlightClass):this._wire.classList.remove(this._highlightClass))}destroy(A){this._wire.parentElement&&this._wire.parentElement.removeChild(this._wire),this._wireClickable.parentElement&&this._wireClickable.parentElement.removeChild(this._wireClickable)}}const zd=g.vec2(),Td=g.vec2(),Ud=g.vec2(),Rd=g.vec2(),bd=g.vec3(),kd=g.vec3(),Pd=g.vec4(),Gd=g.vec4(),vd=g.vec4(),Hd=g.vec4(),Sd=g.mat4();function jd(A,e,t){const i=A.getBoundingClientRect(),s=e.getBoundingClientRect();t[0]+=i.left-s.left,t[1]+=i.top-s.top}g.vec3(),g.vec3();const Od=(A,e,t)=>{Sd.set(A.viewMatrix),Sd.set(A.projMatrix),t.set(e),t[3]=1,g.mulMat4v4(A.viewMatrix,t,t),g.mulMat4v4(A.projMatrix,t,t)},_d=(A,e,t,i)=>{i[0]=.5*(1+t[0])*A.offsetWidth,i[1]=.5*(1-t[1])*A.offsetHeight,jd(A,e,i)},Wd=(A,e,t,i,s,n)=>{const o=A.camera,r=A.canvas.canvas;if(g.distVec3(t,i)<.001)return!1;const c=g.subVec3(i,t,bd);let a=0,h=1;for(let e of A._sectionPlanesState.sectionPlanes){const A=g.dotVec3(e.dir,g.subVec3(e.pos,i,kd)),s=g.dotVec3(e.dir,g.subVec3(e.pos,t,kd));if(s>0&&A>0)return!1;if(s>0||A>0){const A=g.dotVec3(e.dir,c);if(Math.abs(A)>=1e-6){const t=g.dotVec3(e.dir,kd)/A;s>0?a=Math.max(a,t):h=Math.min(h,t)}}}const B=Pd,l=Gd;Od(o,a>0?g.addVec3(t,g.mulVec3Scalar(c,a,kd),kd):t,B),Od(o,h<1?g.addVec3(t,g.mulVec3Scalar(c,h,kd),kd):i,l);const E=B[2]/B[3]<-1||B[3]<0,Q=l[2]/l[3]<-1||l[3]<0;if(E&&Q)return!1;const M=(B[3]+B[2])/(B[3]+B[2]-(l[3]+l[2]));if(M>0&&M<1){const A=g.subVec4(l,B,vd);g.mulVec4Scalar(A,M,A),g.addVec4(B,A,E?B:l)}g.mulVec4Scalar(B,1/B[3]),g.mulVec4Scalar(l,1/l[3]);let u=0,w=1;for(let A=0;A<2;++A){const e=l[A]-B[A],t=(-B[3]-B[A])/e,i=(B[3]-B[A])/e;e>0?(u=Math.max(u,t),w=Math.min(w,i)):(u=Math.max(u,i),w=Math.min(w,t))}if(u>=w)return!1;const d=g.subVec4(l,B,vd);return g.addVec4(B,g.mulVec4Scalar(d,w,Hd),l),g.addVec4(B,g.mulVec4Scalar(d,u,Hd),B),g.mulVec4Scalar(B,1/B[3]),g.mulVec4Scalar(l,1/l[3]),_d(r,e,B,s),_d(r,e,l,n),!0};class Xd extends xa{constructor(A,e,t,i={}){const s=A.camera;super(A,e),this.__visible=!0;const n=(A,e)=>t=>{A&&A(t),this.fire(e,t,!0)};this._dot=new Jd(t,{borderColor:i.borderColor,fillColor:i.fillColor,zIndex:i.zIndex,onMouseOver:n(i.onMouseOver,"mouseover"),onMouseLeave:n(i.onMouseLeave,"mouseleave"),onMouseWheel:n(i.onMouseWheel,"wheel"),onMouseDown:n(i.onMouseDown,"mousedown"),onMouseUp:n(i.onMouseUp,"mouseup"),onMouseMove:n(i.onMouseMove,"mousemove"),onTouchstart:n(i.onTouchstart,"touchstart"),onTouchmove:n(i.onTouchmove,"touchmove"),onTouchend:n(i.onTouchend,"touchend"),onContextMenu:n(i.onContextMenu,"contextmenu")});const o=()=>{if(!this.__visible)return;const e=vd;((A,e)=>{e.set(A),e[3]=1,g.mulMat4v4(s.viewMatrix,e,e),g.mulMat4v4(s.projMatrix,e,e)})(this.worldPos,e),g.mulVec3Scalar(e,1/e[3]);const i=e[3]<0||e[0]<-1||e[0]>1||e[1]<-1||e[1]>1||e[2]<-1||e[2]>1||A._sectionPlanesState.sectionPlanes.some((A=>g.dotVec3(A.dir,g.subVec3(A.pos,this.worldPos,bd))>0));this._dot.setCulled(i),i||((e=>{const i=A.canvas.canvas;e[0]=.5*(1+e[0])*i.offsetWidth,e[1]=.5*(1-e[1])*i.offsetHeight,jd(i,t,e)})(e),this._dot.setPos(e[0],e[1]))};this.on("worldPos",o);const r=s.on("viewMatrix",o),c=s.on("projMatrix",o),a=A.canvas.on("boundary",o),h=A.on("sectionPlaneUpdated",o);this._updatePosition=o,this._cleanup=()=>{s.off(r),s.off(c),A.canvas.off(a),A.off(h),this._dot.destroy()}}setClickable(A){this._dot.setClickable(A)}setFillColor(A){this._dot.setFillColor(A)}setBorderColor(A){this._dot.setBorderColor(A)}setHighlighted(A){this._dot.setHighlighted(A)}setOpacity(A){this._dot.setOpacity(A)}setVisible(A){this.__visible!=A&&(this.__visible=A,this._updatePosition(),this._dot.setVisible(A))}destroy(){this._cleanup(),super.destroy()}}class Ld{constructor(A,e,t){const i=A.camera;this._label=new Nd(e,t),this._start=g.vec3(),this._mid=g.vec3(),this._end=g.vec3(),this._yOff=0,this.__visible=!0,this._updatePos=()=>{Od(i,this._start,Pd),g.mulVec4Scalar(Pd,1/Pd[3]),_d(A.canvas.canvas,e,Pd,zd),this._label.setPos(zd[0],zd[1])};const s=(A,e,t)=>{A[0]+=e[0],A[1]+=e[1],g.mulVec2Scalar(A,.5),this._label.setPos(A[0],A[1]+t)};this._updatePosBetween=()=>{const t=Wd(A,e,this._start,this._mid,zd,Td),i=Wd(A,e,this._end,this._mid,Ud,Rd);this._label.setCulled(!(t||i)),t&&i?(Td[0]+=Rd[0],Td[1]+=Rd[1],g.mulVec2Scalar(Td,.5),Td[0]+=zd[0]+Ud[0],Td[1]+=zd[1]+Ud[1],g.mulVec2Scalar(Td,1/3),this._label.setPos(Td[0],Td[1])):t?s(zd,Td,0):i&&s(Ud,Rd,0)},this._updatePosOnWire=()=>{const t=Wd(A,e,this._start,this._end,zd,Td)&&g.distVec2(zd,Td)>=this._labelMinAxisLength;this._label.setCulled(!t),t&&s(zd,Td,this._yOff)};let n=()=>{};this._setUpdatePositions=A=>{n=A,this._updatePositions()},this._updatePositions=()=>{this.__visible&&n()};const o=i.on("viewMatrix",this._updatePositions),r=i.on("projMatrix",this._updatePositions),c=A.canvas.on("boundary",this._updatePositions),a=A.on("sectionPlaneUpdated",this._updatePositions);this._cleanup=()=>{i.off(o),i.off(r),A.canvas.off(c),A.off(a),this._label.destroy()}}setPos(A){this._start.set(A),this._setUpdatePositions(this._updatePos)}setPosOnWire(A,e,t,i){this._start.set(A),this._end.set(e),this._yOff=t,this._labelMinAxisLength=i,this._setUpdatePositions(this._updatePosOnWire)}setPosBetween(A,e,t){this._start.set(A),this._mid.set(e),this._end.set(t),this._setUpdatePositions(this._updatePosBetween)}setFillColor(A){this._label.setFillColor(A)}setHighlighted(A){this._label.setHighlighted(A)}setText(A){this._label.setText(A)}setClickable(A){this._label.setClickable(A)}setVisible(A){this.__visible!=A&&(this.__visible=A,this._updatePositions(),this._label.setVisible(A))}destroy(){this._cleanup()}}class Vd{constructor(A,e,t){const i=A.camera;this._wire=new yd(e,t),this._start=g.vec3(),this._end=g.vec3(),this.__visible=!0,this._updatePositions=()=>{if(!this.__visible)return;const t=Wd(A,e,this._start,this._end,zd,Td);this._wire.setCulled(!t),t&&this._wire.setStartAndEnd(zd[0],zd[1],Td[0],Td[1])};const s=i.on("viewMatrix",this._updatePositions),n=i.on("projMatrix",this._updatePositions),o=A.canvas.on("boundary",this._updatePositions),r=A.on("sectionPlaneUpdated",this._updatePositions);this._cleanup=()=>{i.off(s),i.off(n),A.canvas.off(o),A.off(r),this._wire.destroy()}}setEnds(A,e){this._start.set(A),this._end.set(e),this._updatePositions()}setClickable(A){this._wire.setClickable(A)}setColor(A){this._wire.setColor(A)}setHighlighted(A){this._wire.setHighlighted(A)}setOpacity(A){this._wire.setOpacity(A)}setVisible(A){this.__visible!=A&&(this.__visible=A,this._updatePositions(),this._wire.setVisible(A))}destroy(){this._cleanup()}}class Kd{constructor(A){this.language="en",this.localeService=A.localeService||new G,this.scene=new lB(this,{canvasId:A.canvasId,canvasElement:A.canvasElement,keyboardEventsElement:A.keyboardEventsElement,contextAttr:{preserveDrawingBuffer:!1!==A.preserveDrawingBuffer,premultipliedAlpha:!!A.premultipliedAlpha,antialias:!1!==A.antialias},spinnerElementId:A.spinnerElementId,transparent:!1!==A.transparent,gammaInput:!0,gammaOutput:!1,backgroundColor:A.backgroundColor,backgroundColorFromAmbientLight:A.backgroundColorFromAmbientLight,ticksPerRender:1,ticksPerOcclusionTest:20,units:A.units,scale:A.scale,origin:A.origin,saoEnabled:A.saoEnabled,alphaDepthMask:!1!==A.alphaDepthMask,entityOffsetsEnabled:!!A.entityOffsetsEnabled,readableGeometryEnabled:!!A.readableGeometryEnabled,logarithmicDepthBufferEnabled:!!A.logarithmicDepthBufferEnabled,pbrEnabled:!!A.pbrEnabled,colorTextureEnabled:!1!==A.colorTextureEnabled,dtxEnabled:!!A.dtxEnabled,markerZOffset:A.markerZOffset,numCachedSectionPlanes:A.numCachedSectionPlanes}),this.metaScene=new sg(this,this.scene),this.id=A.id||this.scene.id,this.camera=this.scene.camera,this.cameraFlight=new X(this.scene,{duration:.5}),this.cameraControl=new $B(this.scene,{doublePickFlyTo:!0}),this._plugins=[],this._eventSubs={}}get capabilities(){return this.scene.capabilities}on(A,e){let t=this._eventSubs[A];t||(t=[],this._eventSubs[A]=t),t.push(e)}fire(A,e){const t=this._eventSubs[A];if(t)for(let A=0,i=t.length;A div:last-child img { display: inline-block; }");for(let A=0,e=h.length;Ae.push(A),get:()=>t,set:A=>{t=!1!==A,e.forEach((A=>A(t)))}}};this._visible=s(e.visible),this._originVisible=s(e.originVisible),this._cornerVisible=s(e.cornerVisible),this._targetVisible=s(e.targetVisible),this._originWireVisible=s(e.originWireVisible),this._targetWireVisible=s(e.targetWireVisible),this._angleVisible=s(e.angleVisible),this._labelsVisible=s(),this.labelsVisible=e.labelsVisible,this._clickable=s(!1),this.approximate=e.approximate;const n=t.canvas.canvas,o=e.onMouseOver?A=>{e.onMouseOver(A,this),n.dispatchEvent(new MouseEvent("mouseover",A))}:null,r=e.onMouseLeave?A=>{e.onMouseLeave(A,this),n.dispatchEvent(new MouseEvent("mouseleave",A))}:null,c=e.onContextMenu?A=>{e.onContextMenu(A,this)}:null,a=A=>n.dispatchEvent(new MouseEvent("mousedown",A)),h=A=>n.dispatchEvent(new MouseEvent("mouseup",A)),B=A=>n.dispatchEvent(new MouseEvent("mousemove",A)),g=A=>n.dispatchEvent(new WheelEvent("wheel",A));this._cleanups=[],this._drawables=[];const l=(A,e)=>{const t=()=>A.setVisible(e.every((A=>A.get())));e.forEach((A=>A.reg(t))),this._drawables.push(A),this._cleanups.push((()=>A.destroy()))},E=(e,s,n)=>{const E=new Vd(t,i,{color:e,thickness:s,thicknessClickable:6,zIndex:void 0!==A.zIndex?A.zIndex+1:void 0,onMouseOver:o,onMouseLeave:r,onMouseWheel:g,onMouseDown:a,onMouseUp:h,onMouseMove:B,onContextMenu:c});return l(E,n),{setEnds:(A,e)=>E.setEnds(A,e),setColor:A=>E.setColor(A)}};this._originWire=E(this._color||"blue",1,[this._visible,this._originWireVisible]),this._targetWire=E(this._color||"red",1,[this._visible,this._targetWireVisible]);this._angleLabel=((e,s,n)=>{const E=new Ld(t,i,{fillColor:e,zIndex:A.zIndex+s,onMouseOver:o,onMouseLeave:r,onMouseWheel:g,onMouseDown:a,onMouseUp:h,onMouseMove:B,onContextMenu:c});return l(E,n),{setFillColor:A=>E.setFillColor(A),setPosOnWire:(A,e,t)=>E.setPosOnWire(A,e,t),setPosBetween:(A,e,t)=>E.setPosBetween(A,e,t),setText:A=>E.setText(A)}})(this._color||"#00BBFF",2,[this._visible,this._angleVisible,this._labelsVisible]);const Q=(e,s)=>{const n=new Xd(t,e,i,{fillColor:this._color,zIndex:void 0!==A.zIndex?A.zIndex+2:void 0,onMouseOver:o,onMouseLeave:r,onMouseWheel:g,onMouseDown:a,onMouseUp:h,onMouseMove:B,onContextMenu:c});return n.on("worldPos",(()=>this._update())),l(n,s),n};this._originDot=Q(e.origin,[this._visible,this._originVisible]),this._cornerDot=Q(e.corner,[this._visible,this._cornerVisible]),this._targetDot=Q(e.target,[this._visible,this._targetVisible]),this._update()}_update(){if(!this._targetDot)return;const A=this._originDot.worldPos,e=this._cornerDot.worldPos,t=this._targetDot.worldPos;this._originWire.setEnds(A,e),this._targetWire.setEnds(e,t),this._angleLabel.setPosBetween(A,e,t),g.subVec3(A,e,Zd),g.subVec3(t,e,qd),g.lenVec3(Zd)>0&&g.lenVec3(qd)>0?(g.normalizeVec3(Zd),g.normalizeVec3(qd),this._angle=Math.abs(g.angleVec3(Zd,qd))*g.RADTODEG,this._angleLabel.setText((this._approximate?" ~ ":" = ")+this._angle.toFixed(2)+"°")):(this._angle=void 0,this._angleLabel.setText(""))}set approximate(A){A=!1!==A,this._approximate!==A&&(this._approximate=A,this._update())}get approximate(){return this._approximate}get origin(){return this._originDot}get corner(){return this._cornerDot}get target(){return this._targetDot}get angle(){return this._angle}get color(){return this._color}set color(A){this._color=A,this._originDot.setFillColor(A),this._cornerDot.setFillColor(A),this._targetDot.setFillColor(A),this._originWire.setColor(A||"blue"),this._targetWire.setColor(A||"red"),this._angleLabel.setFillColor(A||"#00BBFF")}set visible(A){this._visible.set(A)}get visible(){return this._visible.get()}set originVisible(A){this._originVisible.set(A)}get originVisible(){return this._originVisible.get()}set cornerVisible(A){this._cornerVisible.set(A)}get cornerVisible(){return this._cornerVisible.get()}set targetVisible(A){this._targetVisible.set(A)}get targetVisible(){return this._targetVisible.get()}set originWireVisible(A){this._originWireVisible.set(A)}get originWireVisible(){return this._originWireVisible.get()}set targetWireVisible(A){this._targetWireVisible.set(A)}get targetWireVisible(){return this._targetWireVisible.get()}set angleVisible(A){this._angleVisible.set(A)}get angleVisible(){return this._angleVisible.get()}set labelsVisible(A){this._labelsVisible.set(void 0!==A?Boolean(A):this.plugin.defaultLabelsVisible)}get labelsVisible(){return this._labelsVisible.get()}setHighlighted(A){this._drawables.forEach((e=>e.setHighlighted(A)))}set clickable(A){this._clickable.set(!!A),this._drawables.forEach((A=>A.setClickable(this._clickable.get())))}get clickable(){return this._clickable.get()}destroy(){this._cleanups.forEach((A=>A())),super.destroy()}}class AC extends N{get active(){}set snapping(A){}get snapping(){return!0}activate(){}deactivate(){}reset(){}get currentMeasurement(){return null}destroy(){}}class eC extends AC{constructor(A,e={}){super(A.viewer.scene),this._canvasToPagePos=e.canvasToPagePos,this.pointerLens=e.pointerLens,this._active=!1,this._currentAngleMeasurement=null,this._initMarkerDiv(),this._snapping=!1!==e.snapping,this._mouseState=0,this._attachPlugin(A,e)}_initMarkerDiv(){const A=document.createElement("div"),e=this.scene.canvas.canvas;e.parentNode.insertBefore(A,e),A.style.background="black",A.style.border="2px solid blue",A.style.borderRadius="10px",A.style.width="5px",A.style.height="5px",A.style.top="-200px",A.style.left="-200px",A.style.margin="0 0",A.style.zIndex="100",A.style.position="absolute",A.style.pointerEvents="none",this.markerDiv=A}_destroyMarkerDiv(){this.markerDiv&&(this.markerDiv.parentNode.removeChild(this.markerDiv),this.markerDiv=null)}_attachPlugin(A,e={}){this.angleMeasurementsPlugin=A,this.plugin=A}get active(){return this._active}set snapping(A){this._snapping=A}get snapping(){return this._snapping}activate(){if(this._active)return;this.markerDiv||this._initMarkerDiv(),this.angleMeasurementsPlugin;const A=this.scene;A.input;const e=A.canvas.canvas,t=this.angleMeasurementsPlugin.viewer.cameraControl,i=this.pointerLens;let s=!1,n=null,o=0,r=0;const c=g.vec3(),a=g.vec2();this._currentAngleMeasurement=null;const h=g.vec2(),B=A=>{A.snappedToVertex||A.snappedToEdge?(i&&(i.visible=!0,i.canvasPos=A.canvasPos,i.snappedCanvasPos=A.snappedCanvasPos||A.canvasPos,i.snapped=!0),this.markerDiv.style.background="greenyellow",this.markerDiv.style.border="2px solid green"):(i&&(i.visible=!0,i.canvasPos=A.canvasPos,i.snappedCanvasPos=A.canvasPos,i.snapped=!1),this.markerDiv.style.background="pink",this.markerDiv.style.border="2px solid red");const t=A.snappedCanvasPos||A.canvasPos;switch(s=!0,n=A.entity,c.set(A.worldPos),a.set(t),this._mouseState){case 0:if(this._canvasToPagePos)this._canvasToPagePos(e,t,h),this.markerDiv.style.left=h[0]-5+"px",this.markerDiv.style.top=h[1]-5+"px";else{const A=g.vec2(t);jd(e,this.markerDiv.parentNode,A),this.markerDiv.style.left=A[0]-5+"px",this.markerDiv.style.top=A[1]-5+"px"}break;case 1:this._currentAngleMeasurement&&(this._currentAngleMeasurement.originWireVisible=!0,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.cornerVisible=!0,this._currentAngleMeasurement.angleVisible=!1,this._currentAngleMeasurement.corner.worldPos=A.worldPos,this._currentAngleMeasurement.corner.entity=A.entity),this.markerDiv.style.left="-10000px",this.markerDiv.style.top="-10000px",e.style.cursor="pointer";break;case 2:this._currentAngleMeasurement&&(this._currentAngleMeasurement.targetWireVisible=!0,this._currentAngleMeasurement.targetVisible=!0,this._currentAngleMeasurement.angleVisible=!0,this._currentAngleMeasurement.target.worldPos=A.worldPos,this._currentAngleMeasurement.target.entity=A.entity),this.markerDiv.style.left="-10000px",this.markerDiv.style.top="-10000px",e.style.cursor="pointer"}};this._onHoverSnapOrSurface=t.on("hoverSnapOrSurface",(A=>{this._snapping&&B(A)})),this._onHoverSurface=t.on("hoverSurface",(A=>{this._snapping||B(A)})),e.addEventListener("mousedown",this._onMouseDown=A=>{1===A.which&&(o=A.clientX,r=A.clientY)}),e.addEventListener("mouseup",this._onMouseUp=A=>{if(1===A.which&&!(A.clientX>o+20||A.clientXr+20||A.clientY{if(s=!1,i&&(i.visible=!0,i.canvasPos=A.canvasPos,i.snappedCanvasPos=A.snappedCanvasPos||A.canvasPos,i.snapped=!1),this.markerDiv.style.left="-100px",this.markerDiv.style.top="-100px",this._currentAngleMeasurement){switch(this._mouseState){case 0:this._currentAngleMeasurement.originVisible=!1;break;case 1:this._currentAngleMeasurement.cornerVisible=!1,this._currentAngleMeasurement.originWireVisible=!1,this._currentAngleMeasurement.targetVisible=!1,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.angleVisible=!1;break;case 2:this._currentAngleMeasurement.targetVisible=!1,this._currentAngleMeasurement.targetWireVisible=!1,this._currentAngleMeasurement.angleVisible=!1}e.style.cursor="default"}};this._onHoverSnapOrSurfaceOff=t.on("hoverSnapOrSurfaceOff",(A=>{this._snapping&&l(A)})),this._onHoverOff=t.on("hoverOff",(A=>{this._snapping||l(A)})),this._active=!0}deactivate(){if(!this._active)return;this.pointerLens&&(this.pointerLens.visible=!1),this.reset();const A=this.scene.canvas.canvas;A.removeEventListener("mousedown",this._onMouseDown),A.removeEventListener("mouseup",this._onMouseUp);const e=this.angleMeasurementsPlugin.viewer.cameraControl;e.off(this._onHoverSnapOrSurface),e.off(this._onHoverSurface),e.off(this._onHoverSnapOrSurfaceOff),e.off(this._onHoverOff),this._active=!1}reset(){this._active&&(this._destroyMarkerDiv(),this._initMarkerDiv(),this._currentAngleMeasurement&&(this._currentAngleMeasurement.destroy(),this._currentAngleMeasurement=null),this._mouseState=0)}get currentMeasurement(){return this._currentAngleMeasurement}destroy(){this.deactivate(),super.destroy()}}class tC extends Ta{constructor(A,e={}){super("AngleMeasurements",A),this._container=e.container||document.body,this._defaultControl=null,this._measurements={},this.defaultColor=void 0!==e.defaultColor?e.defaultColor:"#00BBFF",this.defaultLabelsVisible=!1!==e.defaultLabelsVisible,this.zIndex=e.zIndex||1e4,this._onMouseOver=(A,e)=>{this.fire("mouseOver",{plugin:this,angleMeasurement:e,measurement:e,event:A})},this._onMouseLeave=(A,e)=>{this.fire("mouseLeave",{plugin:this,angleMeasurement:e,measurement:e,event:A})},this._onContextMenu=(A,e)=>{this.fire("contextMenu",{plugin:this,angleMeasurement:e,measurement:e,event:A})}}getContainerElement(){return this._container}send(A,e){}get control(){return this._defaultControl||(this._defaultControl=new eC(this,{})),this._defaultControl}get measurements(){return this._measurements}createMeasurement(A={}){this.viewer.scene.components[A.id]&&(this.error("Viewer scene component with this ID already exists: "+A.id),delete A.id);const e=A.origin,t=A.corner,i=A.target,s=new $d(this,{id:A.id,plugin:this,container:this._container,origin:{entity:e.entity,worldPos:e.worldPos},corner:{entity:t.entity,worldPos:t.worldPos},target:{entity:i.entity,worldPos:i.worldPos},visible:A.visible,originVisible:!0,originWireVisible:!0,cornerVisible:!0,targetWireVisible:!0,targetVisible:!0,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[s.id]=s,s.on("destroyed",(()=>{delete this._measurements[s.id]})),s.clickable=!0,this.fire("measurementCreated",s),s}destroyMeasurement(A){const e=this._measurements[A];e?(e.destroy(),this.fire("measurementDestroyed",e)):this.log("AngleMeasurement not found: "+A)}setLabelsShown(A){for(const[e,t]of Object.entries(this.measurements))t.labelShown=A}clear(){const A=Object.keys(this._measurements);for(var e=0,t=A.length;eE.has(A.id)||M.has(A.id)||Q.has(A.id))).reduce(((A,t)=>{let i,s=function(A){let e="";return e+=Math.round(255*A[0]).toString(16).padStart(2,"0"),e+=Math.round(255*A[1]).toString(16).padStart(2,"0"),e+=Math.round(255*A[2]).toString(16).padStart(2,"0"),e}(t.colorize);t.xrayed?(i=0===e.xrayMaterial.fillAlpha&&0!==e.xrayMaterial.edgeAlpha?.1:e.xrayMaterial.fillAlpha,i=Math.round(255*i).toString(16).padStart(2,"0"),s=i+s):E.has(t.id)&&(i=Math.round(255*t.opacity).toString(16).padStart(2,"0"),s=i+s),A[s]||(A[s]=[]);const n=t.id,o=t.originalSystemId,r={ifc_guid:o,originating_system:this.originatingSystem};return o!==n&&(r.authoring_tool_id=n),A[s].push(r),A}),{}),w=Object.entries(u).map((([A,e])=>({color:A,components:e})));n.components.coloring=w;const d=e.objectIds,C=e.visibleObjects,x=e.visibleObjectIds,F=d.filter((A=>!C[A])),p=e.selectedObjectIds;return A.defaultInvisible||x.length0&&A.clipping_planes.forEach((function(A){let e=aC(A.location,iC),t=aC(A.direction,iC);a&&g.negateVec3(t),g.subVec3(e,c),s.yUp&&(e=BC(e),t=BC(t)),new Na(i,{pos:e,dir:t})})),i.clearLines(),A.lines&&A.lines.length>0){const e=[],t=[];let s=0;A.lines.forEach((A=>{A.start_point&&A.end_point&&(e.push(A.start_point.x),e.push(A.start_point.y),e.push(A.start_point.z),e.push(A.end_point.x),e.push(A.end_point.y),e.push(A.end_point.z),t.push(s++),t.push(s++))})),new Ea(i,{positions:e,indices:t,clippable:!1,collidable:!0})}if(i.clearBitmaps(),A.bitmaps&&A.bitmaps.length>0&&A.bitmaps.forEach((function(A){const e=A.bitmap_type||"jpg",t=A.bitmap_data;let n=aC(A.location,sC),o=aC(A.normal,nC),r=aC(A.up,oC),c=A.height||1;t&&n&&o&&r&&(s.yUp&&(n=BC(n),o=BC(o),r=BC(r)),new mt(i,{src:t,type:e,pos:n,normal:o,up:r,clippable:!1,collidable:!0,height:c}))})),r&&(i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsHighlighted(i.highlightedObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1)),A.components){if(A.components.visibility){A.components.visibility.default_visibility?(i.setObjectsVisible(i.objectIds,!0),A.components.visibility.exceptions&&A.components.visibility.exceptions.forEach((A=>this._withBCFComponent(e,A,(A=>A.visible=!1))))):(i.setObjectsVisible(i.objectIds,!1),A.components.visibility.exceptions&&A.components.visibility.exceptions.forEach((A=>this._withBCFComponent(e,A,(A=>A.visible=!0)))));const s=A.components.visibility.view_setup_hints;s&&(!1===s.spaces_visible&&i.setObjectsVisible(t.metaScene.getObjectIDsByType("IfcSpace"),!1),void 0!==s.spaces_translucent&&i.setObjectsXRayed(t.metaScene.getObjectIDsByType("IfcSpace"),!0),s.space_boundaries_visible,!1===s.openings_visible&&i.setObjectsVisible(t.metaScene.getObjectIDsByType("IfcOpening"),!0),s.space_boundaries_translucent,void 0!==s.openings_translucent&&i.setObjectsXRayed(t.metaScene.getObjectIDsByType("IfcOpening"),!0))}A.components.selection&&(i.setObjectsSelected(i.selectedObjectIds,!1),A.components.selection.forEach((A=>this._withBCFComponent(e,A,(A=>A.selected=!0))))),A.components.translucency&&(i.setObjectsXRayed(i.xrayedObjectIds,!1),A.components.translucency.forEach((A=>this._withBCFComponent(e,A,(A=>A.xrayed=!0))))),A.components.coloring&&A.components.coloring.forEach((A=>{let t=A.color,i=0,s=!1;8===t.length&&(i=parseInt(t.substring(0,2),16)/256,i<=1&&i>=.95&&(i=1),t=t.substring(2),s=!0);const n=[parseInt(t.substring(0,2),16)/256,parseInt(t.substring(2,4),16)/256,parseInt(t.substring(4,6),16)/256];A.components.map((A=>this._withBCFComponent(e,A,(A=>{A.colorize=n,s&&(A.opacity=i)}))))}))}if(A.perspective_camera||A.orthogonal_camera){let r,a,h,B;if(A.perspective_camera?(r=aC(A.perspective_camera.camera_view_point,iC),a=aC(A.perspective_camera.camera_direction,iC),h=aC(A.perspective_camera.camera_up_vector,iC),s.perspective.fov=A.perspective_camera.field_of_view,B="perspective"):(r=aC(A.orthogonal_camera.camera_view_point,iC),a=aC(A.orthogonal_camera.camera_direction,iC),h=aC(A.orthogonal_camera.camera_up_vector,iC),s.ortho.scale=A.orthogonal_camera.view_to_world_scale,B="ortho"),g.subVec3(r,c),s.yUp&&(r=BC(r),a=BC(a),h=BC(h)),n){const A=i.pick({pickSurface:!0,origin:r,direction:a});a=A?A.worldPos:g.addVec3(r,a,iC)}else a=g.addVec3(r,a,iC);o?(s.eye=r,s.look=a,s.up=h,s.projection=B):t.cameraFlight.flyTo({eye:r,look:a,up:h,duration:e.duration,projection:B})}}_withBCFComponent(A,e,t){const i=this.viewer,s=i.scene;if(e.authoring_tool_id&&e.originating_system===this.originatingSystem){const n=e.authoring_tool_id,o=s.objects[n];if(o)return void t(o);if(A.updateCompositeObjects){if(i.metaScene.metaObjects[n])return void s.withObjects(i.metaScene.getObjectIDsInSubtree(n),t)}}if(e.ifc_guid){const n=e.ifc_guid,o=s.objects[n];if(o)return void t(o);if(A.updateCompositeObjects){if(i.metaScene.metaObjects[n])return void s.withObjects(i.metaScene.getObjectIDsInSubtree(n),t)}Object.keys(s.models).forEach((e=>{const o=g.globalizeObjectId(e,n),r=s.objects[o];if(r)t(r);else if(A.updateCompositeObjects){i.metaScene.metaObjects[o]&&s.withObjects(i.metaScene.getObjectIDsInSubtree(o),t)}}))}}destroy(){super.destroy()}}function cC(A){return{x:A[0],y:A[1],z:A[2]}}function aC(A,e){return(e=new Float64Array(3))[0]=A.x,e[1]=A.y,e[2]=A.z,e}function hC(A){return new Float64Array([A[0],-A[2],A[1]])}function BC(A){return new Float64Array([A[0],A[2],-A[1]])}const gC=g.vec3(),lC=g.vec3(),EC=g.vec3();g.vec4(),g.vec4(),g.vec4();class QC extends N{constructor(A,e={}){const t=A.viewer.scene;super(t,e),this.plugin=A;const i=e.container;if(!i)throw"config missing: container";this._color=e.color||A.defaultColor;const s=function(A,e){const t=[];let i=void 0!==A?Boolean(A):e;return{reg:A=>t.push(A),get:()=>i,set:A=>{i=void 0!==A?Boolean(A):e,t.forEach((A=>A(i)))}}};this._visible=s(e.visible,A.defaultVisible),this._originVisible=s(e.originVisible,A.defaultOriginVisible),this._targetVisible=s(e.targetVisible,A.defaultTargetVisible),this._axisVisible=s(e.axisVisible,A.defaultAxisVisible),this._xAxisVisible=s(e.xAxisVisible,A.defaultAxisVisible),this._yAxisVisible=s(e.yAxisVisible,A.defaultAxisVisible),this._zAxisVisible=s(e.zAxisVisible,A.defaultAxisVisible),this._axisEnabled=s(!0,A.defaultAxisVisible),this._wireVisible=s(e.wireVisible,A.defaultWireVisible),this._xLabelEnabled=s(e.xLabelEnabled,A.defaultXLabelEnabled),this._yLabelEnabled=s(e.yLabelEnabled,A.defaultYLabelEnabled),this._zLabelEnabled=s(e.zLabelEnabled,A.defaultZLabelEnabled),this._lengthLabelEnabled=s(e.lengthLabelEnabled,A.defaultLengthLabelEnabled),this._labelsVisible=s(e.labelsVisible,A.defaultLabelsVisible),this._clickable=s(!1,!1),this._labelsOnWires=s(e.labelsOnWires,A.defaultLabelsOnWires),this._useRotationAdjustment=s(e.useRotationAdjustment,A.useRotationAdjustment),this._axesBasis=g.identityMat4(),this.approximate=e.approximate;const n=t.canvas.canvas,o=e.onMouseOver?A=>{e.onMouseOver(A,this),n.dispatchEvent(new MouseEvent("mouseover",A))}:null,r=e.onMouseLeave?A=>{e.onMouseLeave(A,this),n.dispatchEvent(new MouseEvent("mouseleave",A))}:null,c=e.onContextMenu?A=>{e.onContextMenu(A,this)}:null,a=A=>n.dispatchEvent(new MouseEvent("mousedown",A)),h=A=>n.dispatchEvent(new MouseEvent("mouseup",A)),B=A=>n.dispatchEvent(new MouseEvent("mousemove",A)),l=A=>n.dispatchEvent(new WheelEvent("wheel",A));this._cleanups=[],["units","scale"].forEach((A=>{const e=t.metrics.on("units",(()=>this._update()));this._cleanups.push((()=>t.metrics.off(e)))})),this._drawables=[];const E=(A,e)=>{const t=()=>A.setVisible(e.every((A=>A.get())));e.forEach((A=>A.reg(t))),this._drawables.push(A),this._cleanups.push((()=>A.destroy()))},Q=(e,s,n)=>{const g=new Vd(t,i,{color:e,thickness:s,thicknessClickable:6,zIndex:void 0!==A.zIndex?A.zIndex+1:void 0,onMouseOver:o,onMouseLeave:r,onMouseWheel:l,onMouseDown:a,onMouseUp:h,onMouseMove:B,onContextMenu:c});return E(g,n),{setEnds:(A,e)=>g.setEnds(A,e),setColor:A=>g.setColor(A)}};this._lengthWire=Q(this._color,2,[this._visible,this._wireVisible]),this._xAxisWire=Q("red",1,[this._visible,this._axisEnabled,this._axisVisible,this._xAxisVisible]),this._yAxisWire=Q("green",1,[this._visible,this._axisEnabled,this._axisVisible,this._yAxisVisible]),this._zAxisWire=Q("blue",1,[this._visible,this._axisEnabled,this._axisVisible,this._zAxisVisible]);const M=(e,s,n)=>{const g=new Ld(t,i,{fillColor:e,zIndex:void 0!==A.zIndex?A.zIndex+s:void 0,onMouseOver:o,onMouseLeave:r,onMouseWheel:l,onMouseDown:a,onMouseUp:h,onMouseMove:B,onContextMenu:c});return E(g,n),{setFillColor:A=>g.setFillColor(A),setPosOnWire:(A,e,t,i)=>g.setPosOnWire(A,e,t,i),setPosBetween:(A,e,t)=>g.setPosBetween(A,e,t),setText:A=>g.setText(A.replace(/ /g," "))}};this._lengthLabel=M(this._color,4,[this._visible,this._wireVisible,this._labelsVisible,this._clickable,this._axisEnabled,this._lengthLabelEnabled]),this._xAxisLabel=M("red",3,[this._visible,this._axisEnabled,this._axisVisible,this._xAxisVisible,this._labelsVisible,this._clickable,this._xLabelEnabled]),this._yAxisLabel=M("green",3,[this._visible,this._axisEnabled,this._axisVisible,this._yAxisVisible,this._labelsVisible,this._clickable,this._yLabelEnabled]),this._zAxisLabel=M("blue",3,[this._visible,this._axisEnabled,this._axisVisible,this._zAxisVisible,this._labelsVisible,this._clickable,this._zLabelEnabled]);const u=(e,s)=>{const n=new Xd(t,e,i,{fillColor:this._color,zIndex:void 0!==A.zIndex?A.zIndex+2:void 0,onMouseOver:o,onMouseLeave:r,onMouseWheel:l,onMouseDown:a,onMouseUp:h,onMouseMove:B,onContextMenu:c});return n.on("worldPos",(()=>this._update())),E(n,s),n};this._originDot=u(e.origin,[this._visible,this._originVisible]),this._targetDot=u(e.target,[this._visible,this._targetVisible]),this._update()}_update(){if(!this._targetDot)return;const A=this._originDot.worldPos,e=this._targetDot.worldPos,t=this._axesBasis,i=g.subVec3(e,A,gC),s=g.transformVec3(t,i,i),n=this._useRotationAdjustment.get()&&Math.abs(i[1])>0,o=(t,i)=>{const s=this.plugin.viewer.scene.metrics,o=s.scale,r=s.unitsInfo[s.units].abbrev,c=(t,i,s,n)=>{this._labelsOnWires.get()?t.setPosOnWire(i,s,0,this.plugin.labelMinAxisLength):t.setPosOnWire(A,e,35*n,0)},a=A=>(this._approximate?" ~ ":" = ")+A.toFixed(2)+r;this._xAxisWire.setEnds(A,t),c(this._xAxisLabel,A,t,1),this._xAxisLabel.setText("X"+a(g.distVec3(A,t)*o)),this._yAxisWire.setEnds(t,i),c(this._yAxisLabel,t,i,2),this._yAxisLabel.setText("Y"+a(g.distVec3(t,i)*o)),this._zAxisWire.setEnds(i,e),c(this._zAxisLabel,i,e,3),this._zAxisLabel.setText((n?"":"Z")+a(g.distVec3(i,e)*o)),this._lengthWire.setEnds(A,e),c(this._lengthLabel,A,e,0),this._length=g.distVec3(A,e)*o,this._lengthLabel.setText(a(this._length))};n?(EC[0]=A[0],EC[1]=e[1],EC[2]=A[2],o(A,EC)):(lC[0]=A[0]+t[0]*s[0],lC[1]=A[1]+t[4]*s[0],lC[2]=A[2]+t[8]*s[0],EC[0]=lC[0]+t[1]*s[1],EC[1]=lC[1]+t[5]*s[1],EC[2]=lC[2]+t[9]*s[1],o(lC,EC))}set axesBasis(A){this._axesBasis.set(A),this._update()}get axesBasis(){return this._axesBasis}set approximate(A){A=!1!==A,this._approximate!==A&&(this._approximate=A,this._update())}get approximate(){return this._approximate}get origin(){return this._originDot}get target(){return this._targetDot}get length(){return this._length}get color(){return this._color}set color(A){this._color=A,this._originDot.setFillColor(A),this._targetDot.setFillColor(A),this._lengthWire.setColor(A),this._lengthLabel.setFillColor(A)}set visible(A){this._visible.set(A)}get visible(){return this._visible.get()}set originVisible(A){this._originVisible.set(A)}get originVisible(){return this._originVisible.get()}set targetVisible(A){this._targetVisible.set(A)}get targetVisible(){return this._targetVisible.get()}set useRotationAdjustment(A){this._useRotationAdjustment.set(A),this._update()}get useRotationAdjustment(){return this._useRotationAdjustment.get()}set axisEnabled(A){this._axisEnabled.set(A)}get axisEnabled(){return this._axisEnabled.get()}set axisVisible(A){this._axisVisible.set(A)}get axisVisible(){return this._axisVisible.get()}set xAxisVisible(A){this._xAxisVisible.set(A)}get xAxisVisible(){return this._xAxisVisible.get()}set yAxisVisible(A){this._yAxisVisible.set(A)}get yAxisVisible(){return this._yAxisVisible.get()}set zAxisVisible(A){this._zAxisVisible.set(A)}get zAxisVisible(){return this._zAxisVisible.get()}set wireVisible(A){this._wireVisible.set(A)}get wireVisible(){return this._wireVisible.get()}set labelsVisible(A){this._labelsVisible.set(A)}get labelsVisible(){return this._labelsVisible.get()}set xLabelEnabled(A){this._xLabelEnabled.set(A)}get xLabelEnabled(){return this._xLabelEnabled.get()}set yLabelEnabled(A){this._yLabelEnabled.set(A)}get yLabelEnabled(){return this._yLabelEnabled.get()}set zLabelEnabled(A){this._zLabelEnabled.set(A)}get zLabelEnabled(){return this._zLabelEnabled.get()}set lengthLabelEnabled(A){this._lengthLabelEnabled.set(A)}get lengthLabelEnabled(){return this._lengthLabelEnabled.get()}set labelsOnWires(A){this._labelsOnWires.set(A),this._update()}get labelsOnWires(){return this._labelsOnWires.get()}setHighlighted(A){this._drawables.forEach((e=>e.setHighlighted(A)))}set clickable(A){this._clickable.set(!!A),this._drawables.forEach((A=>A.setClickable(this._clickable.get())))}get clickable(){return this._clickable.get()}destroy(){this._cleanups.forEach((A=>A())),super.destroy()}}class MC extends N{get active(){}set snapping(A){}get snapping(){return!0}activate(){}deactivate(){}reset(){}get currentMeasurement(){return null}destroy(){}}class uC extends MC{constructor(A,e={}){super(A.viewer.scene),this._canvasToPagePos=e.canvasToPagePos,this.pointerLens=e.pointerLens,this._active=!1,this._currentDistanceMeasurement=null,this._currentDistanceMeasurementInitState={wireVisible:null,axisVisible:null,xAxisVisible:null,yaxisVisible:null,zAxisVisible:null,targetVisible:null},this._initMarkerDiv(),this._snapping=!1!==e.snapping,this._mouseState=0,this._attachPlugin(A,e)}_initMarkerDiv(){const A=document.createElement("div"),e=this.scene.canvas.canvas;e.parentNode.insertBefore(A,e),A.style.background="black",A.style.border="2px solid blue",A.style.borderRadius="10px",A.style.width="5px",A.style.height="5px",A.style.top="-200px",A.style.left="-200px",A.style.margin="0 0",A.style.zIndex="100",A.style.position="absolute",A.style.pointerEvents="none",this._markerDiv=A}_destroyMarkerDiv(){this._markerDiv&&(this._markerDiv.parentNode.removeChild(this._markerDiv),this._markerDiv=null)}_attachPlugin(A,e={}){this.distanceMeasurementsPlugin=A,this.plugin=A}get active(){return this._active}set snapping(A){this._snapping=A}get snapping(){return this._snapping}activate(){if(this._active)return;this._markerDiv||this._initMarkerDiv(),this.fire("activated",!0);const A=this.distanceMeasurementsPlugin,e=this.scene,t=A.viewer.cameraControl,i=e.canvas.canvas;e.input;let s=!1;const n=g.vec3(),o=g.vec2();let r,c;let a=null;this._mouseState=0;const h=g.vec2(),B=A=>{const e=A.snappedCanvasPos||A.canvasPos;if(s=!0,n.set(A.worldPos),o.set(A.canvasPos),0===this._mouseState){if(this._canvasToPagePos)this._canvasToPagePos(i,e,h),this._markerDiv.style.left=h[0]-5+"px",this._markerDiv.style.top=h[1]-5+"px";else{const A=g.vec2(e);jd(i,this._markerDiv.parentNode,A),this._markerDiv.style.left=A[0]-5+"px",this._markerDiv.style.top=A[1]-5+"px"}this._markerDiv.style.background="pink",A.snappedToVertex||A.snappedToEdge?(this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=A.canvasPos,this.pointerLens.snappedCanvasPos=A.snappedCanvasPos||A.canvasPos,this.pointerLens.snapped=!0),this._markerDiv.style.background="greenyellow",this._markerDiv.style.border="2px solid green"):(this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=A.canvasPos,this.pointerLens.snappedCanvasPos=A.canvasPos,this.pointerLens.snapped=!1),this._markerDiv.style.background="pink",this._markerDiv.style.border="2px solid red"),a=A.entity}else this._markerDiv.style.left="-10000px",this._markerDiv.style.top="-10000px";i.style.cursor="pointer",this._currentDistanceMeasurement&&(this._currentDistanceMeasurement.wireVisible=this._currentDistanceMeasurementInitState.wireVisible,this._currentDistanceMeasurement.axisVisible=this._currentDistanceMeasurementInitState.axisVisible&&this.distanceMeasurementsPlugin.defaultAxisVisible,this._currentDistanceMeasurement.xAxisVisible=this._currentDistanceMeasurementInitState.xAxisVisible&&this.distanceMeasurementsPlugin.defaultXAxisVisible,this._currentDistanceMeasurement.yAxisVisible=this._currentDistanceMeasurementInitState.yAxisVisible&&this.distanceMeasurementsPlugin.defaultYAxisVisible,this._currentDistanceMeasurement.zAxisVisible=this._currentDistanceMeasurementInitState.zAxisVisible&&this.distanceMeasurementsPlugin.defaultZAxisVisible,this._currentDistanceMeasurement.targetVisible=this._currentDistanceMeasurementInitState.targetVisible,this._currentDistanceMeasurement.target.worldPos=n.slice(),this._markerDiv.style.left="-10000px",this._markerDiv.style.top="-10000px")};this._onHoverSnapOrSurface=t.on("hoverSnapOrSurface",(A=>{this._snapping&&B(A)})),this._onHoverSurface=t.on("hoverSurface",(A=>{this._snapping||B(A)})),i.addEventListener("mousedown",this._onMouseDown=A=>{1===A.which&&(r=A.clientX,c=A.clientY)}),i.addEventListener("mouseup",this._onMouseUp=e=>{1===e.which&&(e.clientX>r+20||e.clientXc+20||e.clientY{this.pointerLens&&(this.pointerLens.visible=!0,this.pointerLens.canvasPos=A.canvasPos,this.pointerLens.snappedCanvasPos=A.snappedCanvasPos||A.canvasPos),s=!1,this._markerDiv.style.left="-100px",this._markerDiv.style.top="-100px",this._currentDistanceMeasurement&&(this._currentDistanceMeasurement.wireVisible=!1,this._currentDistanceMeasurement.targetVisible=!1,this._currentDistanceMeasurement.axisVisible=!1),i.style.cursor="default"};this._onHoverSnapOrSurfaceOff=t.on("hoverSnapOrSurfaceOff",(A=>{this._snapping&&l(A)})),this._onHoverOff=t.on("hoverOff",(A=>{this._snapping||l(A)})),this._active=!0}deactivate(){if(!this._active)return;this.fire("activated",!1),this.pointerLens&&(this.pointerLens.visible=!1),this.reset();const A=this.scene.canvas.canvas;A.removeEventListener("mousedown",this._onMouseDown),A.removeEventListener("mouseup",this._onMouseUp);const e=this.distanceMeasurementsPlugin.viewer.cameraControl;e.off(this._onHoverSnapOrSurface),e.off(this._onHoverSurface),e.off(this._onHoverSnapOrSurfaceOff),e.off(this._onHoverOff),this._active=!1}reset(){this._active&&(this._destroyMarkerDiv(),this._initMarkerDiv(),this._currentDistanceMeasurement&&(this.distanceMeasurementsPlugin.fire("measurementCancel",this._currentDistanceMeasurement),this._currentDistanceMeasurement.destroy(),this._currentDistanceMeasurement=null),this._mouseState=0)}get currentMeasurement(){return this._currentDistanceMeasurement}destroy(){this.deactivate(),super.destroy()}}class wC extends Ta{constructor(A,e={}){super("DistanceMeasurements",A),this._pointerLens=e.pointerLens,this._container=e.container||document.body,this._defaultControl=null,this._measurements={},this.labelMinAxisLength=e.labelMinAxisLength,this.defaultVisible=!1!==e.defaultVisible,this.defaultOriginVisible=!1!==e.defaultOriginVisible,this.defaultTargetVisible=!1!==e.defaultTargetVisible,this.defaultWireVisible=!1!==e.defaultWireVisible,this.defaultXLabelEnabled=!1!==e.defaultXLabelEnabled,this.defaultYLabelEnabled=!1!==e.defaultYLabelEnabled,this.defaultZLabelEnabled=!1!==e.defaultZLabelEnabled,this.defaultLengthLabelEnabled=!1!==e.defaultLengthLabelEnabled,this.defaultLabelsVisible=!1!==e.defaultLabelsVisible,this.defaultAxisVisible=!1!==e.defaultAxisVisible,this.defaultXAxisVisible=!1!==e.defaultXAxisVisible,this.defaultYAxisVisible=!1!==e.defaultYAxisVisible,this.defaultZAxisVisible=!1!==e.defaultZAxisVisible,this.defaultColor=void 0!==e.defaultColor?e.defaultColor:"#00BBFF",this.zIndex=e.zIndex||1e4,this.defaultLabelsOnWires=!1!==e.defaultLabelsOnWires,this.useRotationAdjustment=void 0!==e.useRotationAdjustment&&!1!==e.useRotationAdjustment,this._onMouseOver=(A,e)=>{this.fire("mouseOver",{plugin:this,distanceMeasurement:e,measurement:e,event:A})},this._onMouseLeave=(A,e)=>{this.fire("mouseLeave",{plugin:this,distanceMeasurement:e,measurement:e,event:A})},this._onContextMenu=(A,e)=>{this.fire("contextMenu",{plugin:this,distanceMeasurement:e,measurement:e,event:A})}}getContainerElement(){return this._container}send(A,e){}get pointerLens(){return this._pointerLens}get control(){return this._defaultControl||(this._defaultControl=new uC(this,{})),this._defaultControl}get measurements(){return this._measurements}set labelMinAxisLength(A){A<1&&(this.error("labelMinAxisLength must be >= 1; defaulting to 25"),A=25),this._labelMinAxisLength=A||25}get labelMinAxisLength(){return this._labelMinAxisLength}set useRotationAdjustment(A){A=void 0!==A&&Boolean(A),this._useRotationAdjustment=A}get useRotationAdjustment(){return this._useRotationAdjustment}createMeasurement(A={}){this.viewer.scene.components[A.id]&&(this.error("Viewer scene component with this ID already exists: "+A.id),delete A.id);const e=A.origin,t=A.target,i=new QC(this,{id:A.id,plugin:this,container:this._container,origin:{entity:e.entity,worldPos:e.worldPos},target:{entity:t.entity,worldPos:t.worldPos},visible:A.visible,wireVisible:A.wireVisible,axisVisible:!1!==A.axisVisible&&!1!==this.defaultAxisVisible,xAxisVisible:!1!==A.xAxisVisible&&!1!==this.defaultXAxisVisible,yAxisVisible:!1!==A.yAxisVisible&&!1!==this.defaultYAxisVisible,zAxisVisible:!1!==A.zAxisVisible&&!1!==this.defaultZAxisVisible,xLabelEnabled:!1!==A.xLabelEnabled&&!1!==this.defaultXLabelEnabled,yLabelEnabled:!1!==A.yLabelEnabled&&!1!==this.defaultYLabelEnabled,zLabelEnabled:!1!==A.zLabelEnabled&&!1!==this.defaultZLabelEnabled,lengthLabelEnabled:!1!==A.lengthLabelEnabled&&!1!==this.defaultLengthLabelEnabled,labelsVisible:!1!==A.labelsVisible&&!1!==this.defaultLabelsVisible,useRotationAdjustment:this.useRotationAdjustment,originVisible:A.originVisible,targetVisible:A.targetVisible,color:A.color,labelsOnWires:!1!==A.labelsOnWires&&!1!==this.defaultLabelsOnWires,onMouseOver:this._onMouseOver,onMouseLeave:this._onMouseLeave,onContextMenu:this._onContextMenu});return this._measurements[i.id]=i,i.clickable=!0,i.on("destroyed",(()=>{delete this._measurements[i.id]})),this.fire("measurementCreated",i),i}destroyMeasurement(A){const e=this._measurements[A];e?(e.destroy(),this.fire("measurementDestroyed",e)):this.log("DistanceMeasurement not found: "+A)}setLabelsShown(A){for(const[e,t]of Object.entries(this.measurements))t.labelShown=A}setAxisVisible(A){for(const[e,t]of Object.entries(this.measurements))t.axisVisible=A;this.defaultAxisVisible=A}getAxisVisible(){return this.defaultAxisVisible}clear(){const A=Object.keys(this._measurements);for(var e=0,t=A.length;e{A.scene.canvas.resolutionScale=this._defaultScaleCanvasResolutionFactor||this._originalCanvasResolutionScale||1,A.scene._renderer.setEdgesEnabled(!0),A.scene._renderer.setColorTextureEnabled(!0),A.scene._renderer.setPBREnabled(!0),A.scene._renderer.setSAOEnabled(!0),A.scene._renderer.setTransparentEnabled(!0),this._onStopped&&this._onStopped(),i=!1};this._onCameraMatrix=A.scene.camera.on("matrix",(()=>{t=1e3*this._delayBeforeRestoreSeconds,i||(A.scene._renderer.setColorTextureEnabled(!this._hideColorTexture),A.scene._renderer.setPBREnabled(!this._hidePBR),A.scene._renderer.setSAOEnabled(!this._hideSAO),A.scene._renderer.setTransparentEnabled(!this._hideTransparentObjects),A.scene._renderer.setEdgesEnabled(!this._hideEdges),this._originalCanvasResolutionScale=A.scene.canvas.resolutionScale,this._scaleCanvasResolution?A.scene.canvas.resolutionScale=this._scaleCanvasResolutionFactor:A.scene.canvas.resolutionScale=this._defaultScaleCanvasResolutionFactor,this._onMoved&&(this._onStopped=this._onMoved()),i=!0)})),this._onSceneTick=A.scene.on("tick",(A=>{i&&(t-=A.deltaTime,(!this._delayBeforeRestore||t<=0)&&s())}))}get hideColorTexture(){return this._hideColorTexture}set hideColorTexture(A){this._hideColorTexture=A}get hidePBR(){return this._hidePBR}set hidePBR(A){this._hidePBR=A}get hideSAO(){return this._hideSAO}set hideSAO(A){this._hideSAO=A}get hideEdges(){return this._hideEdges}set hideEdges(A){this._hideEdges=A}get hideTransparentObjects(){return this._hideTransparentObjects}set hideTransparentObjects(A){this._hideTransparentObjects=!1!==A}get scaleCanvasResolution(){return this._scaleCanvasResolution}set scaleCanvasResolution(A){this._scaleCanvasResolution=A}get defaultScaleCanvasResolutionFactor(){return this._defaultScaleCanvasResolutionFactor}set defaultScaleCanvasResolutionFactor(A){this._defaultScaleCanvasResolutionFactor=A}get scaleCanvasResolutionFactor(){return this._scaleCanvasResolutionFactor}set scaleCanvasResolutionFactor(A){this._scaleCanvasResolutionFactor=A||.6}get delayBeforeRestore(){return this._delayBeforeRestore}set delayBeforeRestore(A){this._delayBeforeRestore=A}get delayBeforeRestoreSeconds(){return this._delayBeforeRestoreSeconds}set delayBeforeRestoreSeconds(A){this._delayBeforeRestoreSeconds=null!=A?A:.5}send(A,e){}destroy(){this.viewer.scene.camera.off(this._onCameraMatrix),this.viewer.scene.canvas.off(this._onCanvasBoundary),this.viewer.scene.input.off(this._onSceneMouseDown),this.viewer.scene.input.off(this._onSceneMouseUp),this.viewer.scene.input.off(this._onSceneMouseMove),this.viewer.scene.off(this._onSceneTick),super.destroy()}}Boolean("object"!=typeof process||"[object process]"!==String(process)||process.browser);const CC="undefined"!=typeof process&&process.version&&/v([0-9]*)/.exec(process.version);CC&&parseFloat(CC[1]);const xC=globalThis,FC=globalThis.process||{};function pC(){return!("object"==typeof process&&"[object process]"===String(process)&&!process?.browser)||function(){if("undefined"!=typeof window&&"renderer"===window.process?.type)return!0;if("undefined"!=typeof process&&Boolean(process.versions?.electron))return!0;const A="undefined"!=typeof navigator&&navigator.userAgent;return Boolean(A&&A.indexOf("Electron")>=0)}()}const IC="4.1.0";class fC{constructor(A,e,t="sessionStorage"){this.storage=function(A){try{const e=window[A],t="__storage_test__";return e.setItem(t,t),e.removeItem(t),e}catch(A){return null}}(t),this.id=A,this.config=e,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(A){if(Object.assign(this.config,A),this.storage){const A=JSON.stringify(this.config);this.storage.setItem(this.id,A)}}_loadConfiguration(){let A={};if(this.storage){const e=this.storage.getItem(this.id);A=e?JSON.parse(e):{}}return Object.assign(this.config,A),this}}var YC;!function(A){A[A.BLACK=30]="BLACK",A[A.RED=31]="RED",A[A.GREEN=32]="GREEN",A[A.YELLOW=33]="YELLOW",A[A.BLUE=34]="BLUE",A[A.MAGENTA=35]="MAGENTA",A[A.CYAN=36]="CYAN",A[A.WHITE=37]="WHITE",A[A.BRIGHT_BLACK=90]="BRIGHT_BLACK",A[A.BRIGHT_RED=91]="BRIGHT_RED",A[A.BRIGHT_GREEN=92]="BRIGHT_GREEN",A[A.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",A[A.BRIGHT_BLUE=94]="BRIGHT_BLUE",A[A.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",A[A.BRIGHT_CYAN=96]="BRIGHT_CYAN",A[A.BRIGHT_WHITE=97]="BRIGHT_WHITE"}(YC||(YC={}));function DC(A){return"string"!=typeof A?A:(A=A.toUpperCase(),YC[A]||YC.WHITE)}function mC(A,e){if(!A)throw new Error("Assertion failed")}function JC(){let A;if(pC()&&xC.performance)A=xC?.performance?.now?.();else if("hrtime"in FC){const e=FC?.hrtime?.();A=1e3*e[0]+e[1]/1e6}else A=Date.now();return A}const NC={debug:pC()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},yC={enabled:!0,level:0};function zC(){}const TC={},UC={once:!0};class RC{constructor({id:A}={id:""}){this.VERSION=IC,this._startTs=JC(),this._deltaTs=JC(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=A,this.userData={},this._storage=new fC(`__probe-${this.id}__`,yC),this.timeStamp(`${this.id} started`),function(A,e=["constructor"]){const t=Object.getPrototypeOf(A),i=Object.getOwnPropertyNames(t),s=A;for(const t of i){const i=s[t];"function"==typeof i&&(e.find((A=>t===A))||(s[t]=i.bind(A)))}}(this),Object.seal(this)}set level(A){this.setLevel(A)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((JC()-this._startTs).toPrecision(10))}getDelta(){return Number((JC()-this._deltaTs).toPrecision(10))}set priority(A){this.level=A}get priority(){return this.level}getPriority(){return this.level}enable(A=!0){return this._storage.setConfiguration({enabled:A}),this}setLevel(A){return this._storage.setConfiguration({level:A}),this}get(A){return this._storage.config[A]}set(A,e){this._storage.setConfiguration({[A]:e})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(A,e){if(!A)throw new Error(e||"Assertion failed")}warn(A){return this._getLogFunction(0,A,NC.warn,arguments,UC)}error(A){return this._getLogFunction(0,A,NC.error,arguments)}deprecated(A,e){return this.warn(`\`${A}\` is deprecated and will be removed in a later version. Use \`${e}\` instead`)}removed(A,e){return this.error(`\`${A}\` has been removed. Use \`${e}\` instead`)}probe(A,e){return this._getLogFunction(A,e,NC.log,arguments,{time:!0,once:!0})}log(A,e){return this._getLogFunction(A,e,NC.debug,arguments)}info(A,e){return this._getLogFunction(A,e,console.info,arguments)}once(A,e){return this._getLogFunction(A,e,NC.debug||NC.info,arguments,UC)}table(A,e,t){return e?this._getLogFunction(A,e,console.table||zC,t&&[t],{tag:PC(e)}):zC}time(A,e){return this._getLogFunction(A,e,console.time?console.time:console.info)}timeEnd(A,e){return this._getLogFunction(A,e,console.timeEnd?console.timeEnd:console.info)}timeStamp(A,e){return this._getLogFunction(A,e,console.timeStamp||zC)}group(A,e,t={collapsed:!1}){const i=kC({logLevel:A,message:e,opts:t}),{collapsed:s}=t;return i.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(A,e,t={}){return this.group(A,e,Object.assign({},t,{collapsed:!0}))}groupEnd(A){return this._getLogFunction(A,"",console.groupEnd||zC)}withGroup(A,e,t){this.group(A,e)();try{t()}finally{this.groupEnd(A)()}}trace(){console.trace&&console.trace()}_shouldLog(A){return this.isEnabled()&&this.getLevel()>=bC(A)}_getLogFunction(A,e,t,i,s){if(this._shouldLog(A)){s=kC({logLevel:A,message:e,args:i,opts:s}),mC(t=t||s.method),s.total=this.getTotal(),s.delta=this.getDelta(),this._deltaTs=JC();const n=s.tag||s.message;if(s.once&&n){if(TC[n])return zC;TC[n]=JC()}return e=function(A,e,t){if("string"==typeof e){const i=t.time?function(A,e=8){const t=Math.max(e-A.length,0);return`${" ".repeat(t)}${A}`}(function(A){let e;return e=A<10?`${A.toFixed(2)}ms`:A<100?`${A.toFixed(1)}ms`:A<1e3?`${A.toFixed(0)}ms`:`${(A/1e3).toFixed(2)}s`,e}(t.total)):"";e=function(A,e,t){pC||"string"!=typeof A||(e&&(A=`[${DC(e)}m${A}`),t&&(A=`[${DC(t)+10}m${A}`));return A}(e=t.time?`${A}: ${i} ${e}`:`${A}: ${e}`,t.color,t.background)}return e}(this.id,s.message,s),t.bind(console,e,...s.args)}return zC}}function bC(A){if(!A)return 0;let e;switch(typeof A){case"number":e=A;break;case"object":e=A.logLevel||A.priority||0;break;default:return 0}return mC(Number.isFinite(e)&&e>=0),e}function kC(A){const{logLevel:e,message:t}=A;A.logLevel=bC(e);const i=A.args?Array.from(A.args):[];for(;i.length&&i.shift()!==t;);switch(typeof e){case"string":case"function":void 0!==t&&i.unshift(t),A.message=e;break;case"object":Object.assign(A,e)}"function"==typeof A.message&&(A.message=A.message());const s=typeof A.message;return mC("string"===s||"object"===s),Object.assign(A,{args:i},A.opts)}function PC(A){for(const e in A)for(const t in A[e])return t||"untitled";return"empty"}RC.VERSION=IC;const GC="4.3.2",vC=GC[0]>="0"&&GC[0]<="9"?`v${GC}`:"";!function(){const A=new RC({id:"loaders.gl"});globalThis.loaders=globalThis.loaders||{},globalThis.loaders.log=A,globalThis.loaders.version=vC,globalThis.probe=globalThis.probe||{},globalThis.probe.loaders=A}(),globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.3.2"),globalThis._loadersgl_.version,"object"!=typeof process||"[object process]"!==String(process)||process.browser;const HC="undefined"!=typeof process&&process.version&&/v([0-9]*)/.exec(process.version);HC&&parseFloat(HC[1]),new RC({id:"loaders.gl"}),globalThis.loaders;const SC=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]];new Map(SC);globalThis.mathgl=globalThis.mathgl||{config:{EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1}};const jC=globalThis.mathgl.config;function OC(A,{precision:e=jC.precision}={}){return A=function(A){return Math.round(A/jC.EPSILON)*jC.EPSILON}(A),`${parseFloat(A.toPrecision(e))}`}function _C(A){return Array.isArray(A)||ArrayBuffer.isView(A)&&!(A instanceof DataView)}function WC(A,e,t){const i=jC.EPSILON;try{if(A===e)return!0;if(_C(A)&&_C(e)){if(A.length!==e.length)return!1;for(let t=0;t0?", ":"")+OC(this[t],A);return`${A.printTypes?this.constructor.name:""}[${e}]`}equals(A){if(!A||this.length!==A.length)return!1;for(let e=0;e=0&&A=0&&A0?this.copy([A,...e]):this.identity()}copy(A){return this[0]=A[0],this[1]=A[1],this[2]=A[2],this[3]=A[3],this[4]=A[4],this[5]=A[5],this[6]=A[6],this[7]=A[7],this[8]=A[8],this.check()}identity(){return this.copy(rx)}fromObject(A){return this.check()}fromQuaternion(A){return function(A,e){const t=e[0],i=e[1],s=e[2],n=e[3],o=t+t,r=i+i,c=s+s,a=t*o,h=i*o,B=i*r,g=s*o,l=s*r,E=s*c,Q=n*o,M=n*r,u=n*c;A[0]=1-B-E,A[3]=h-u,A[6]=g+M,A[1]=h+u,A[4]=1-a-E,A[7]=l-Q,A[2]=g-M,A[5]=l+Q,A[8]=1-a-B}(this,A),this.check()}set(A,e,t,i,s,n,o,r,c){return this[0]=A,this[1]=e,this[2]=t,this[3]=i,this[4]=s,this[5]=n,this[6]=o,this[7]=r,this[8]=c,this.check()}setRowMajor(A,e,t,i,s,n,o,r,c){return this[0]=A,this[1]=i,this[2]=o,this[3]=e,this[4]=s,this[5]=r,this[6]=t,this[7]=n,this[8]=c,this.check()}determinant(){return function(A){const e=A[0],t=A[1],i=A[2],s=A[3],n=A[4],o=A[5],r=A[6],c=A[7],a=A[8];return e*(a*n-o*c)+t*(-a*s+o*r)+i*(c*s-n*r)}(this)}transpose(){return function(A,e){if(A===e){const t=e[1],i=e[2],s=e[5];A[1]=e[3],A[2]=e[6],A[3]=t,A[5]=e[7],A[6]=i,A[7]=s}else A[0]=e[0],A[1]=e[3],A[2]=e[6],A[3]=e[1],A[4]=e[4],A[5]=e[7],A[6]=e[2],A[7]=e[5],A[8]=e[8]}(this,this),this.check()}invert(){return function(A,e){const t=e[0],i=e[1],s=e[2],n=e[3],o=e[4],r=e[5],c=e[6],a=e[7],h=e[8],B=h*o-r*a,g=-h*n+r*c,l=a*n-o*c;let E=t*B+i*g+s*l;E&&(E=1/E,A[0]=B*E,A[1]=(-h*i+s*a)*E,A[2]=(r*i-s*o)*E,A[3]=g*E,A[4]=(h*t-s*c)*E,A[5]=(-r*t+s*n)*E,A[6]=l*E,A[7]=(-a*t+i*c)*E,A[8]=(o*t-i*n)*E)}(this,this),this.check()}multiplyLeft(A){return sx(this,A,this),this.check()}multiplyRight(A){return sx(this,this,A),this.check()}rotate(A){return function(A,e,t){const i=e[0],s=e[1],n=e[2],o=e[3],r=e[4],c=e[5],a=e[6],h=e[7],B=e[8],g=Math.sin(t),l=Math.cos(t);A[0]=l*i+g*o,A[1]=l*s+g*r,A[2]=l*n+g*c,A[3]=l*o-g*i,A[4]=l*r-g*s,A[5]=l*c-g*n,A[6]=a,A[7]=h,A[8]=B}(this,this,A),this.check()}scale(A){return Array.isArray(A)?nx(this,this,A):nx(this,this,[A,A]),this.check()}translate(A){return function(A,e,t){const i=e[0],s=e[1],n=e[2],o=e[3],r=e[4],c=e[5],a=e[6],h=e[7],B=e[8],g=t[0],l=t[1];A[0]=i,A[1]=s,A[2]=n,A[3]=o,A[4]=r,A[5]=c,A[6]=g*i+l*o+a,A[7]=g*s+l*r+h,A[8]=g*n+l*c+B}(this,this,A),this.check()}transform(A,e){let t;switch(A.length){case 2:t=function(A,e,t){const i=e[0],s=e[1];return A[0]=t[0]*i+t[3]*s+t[6],A[1]=t[1]*i+t[4]*s+t[7],A}(e||[-0,-0],A,this);break;case 3:t=$C(e||[-0,-0,-0],A,this);break;case 4:t=function(A,e,t){const i=e[0],s=e[1],n=e[2];return A[0]=t[0]*i+t[3]*s+t[6]*n,A[1]=t[1]*i+t[4]*s+t[7]*n,A[2]=t[2]*i+t[5]*s+t[8]*n,A[3]=e[3],A}(e||[-0,-0,-0,-0],A,this);break;default:throw new Error("Illegal vector")}return VC(t,A.length),t}transformVector(A,e){return this.transform(A,e)}transformVector2(A,e){return this.transform(A,e)}transformVector3(A,e){return this.transform(A,e)}}let ax,hx=null;new tx,new cx,new cx;const Bx={DEFAULT:{}};function gx(A,e,t={}){const i="lightgrey",s=t.hoverColor||"rgba(0,0,0,0.4)",n=t.textColor||"black",o=t.canvasElement||document.body,r=500,c=r+r/3,a=c/24,h=[{boundary:[6,6,6,6],color:t.frontColor||t.color||"#55FF55"},{boundary:[18,6,6,6],color:t.backColor||t.color||"#55FF55"},{boundary:[12,6,6,6],color:t.rightColor||t.color||"#FF5555"},{boundary:[0,6,6,6],color:t.leftColor||t.color||"#FF5555"},{boundary:[6,0,6,6],color:t.topColor||t.color||"#7777FF"},{boundary:[6,12,6,6],color:t.bottomColor||t.color||"#7777FF"}],B=[{label:"NavCube.front",boundaries:[[7,7,4,4]],dir:[0,1,0],up:[0,0,1]},{label:"NavCube.back",boundaries:[[19,7,4,4]],dir:[0,-1,0],up:[0,0,1]},{label:"NavCube.right",boundaries:[[13,7,4,4]],dir:[-1,0,0],up:[0,0,1]},{label:"NavCube.left",boundaries:[[1,7,4,4]],dir:[1,0,0],up:[0,0,1]},{label:"NavCube.top",boundaries:[[7,1,4,4]],dir:[0,0,-1],up:[0,1,0]},{label:"NavCube.bottom",boundaries:[[7,13,4,4]],dir:[0,0,1],up:[0,-1,0]},{boundaries:[[7,5,4,2]],dir:[0,1,-1],up:[0,1,1]},{boundaries:[[1,6,4,1],[6,1,1,4]],dir:[1,0,-1],up:[1,0,1]},{boundaries:[[7,0,4,1],[19,6,4,1]],dir:[0,-1,-1],up:[0,-1,1]},{boundaries:[[13,6,4,1],[11,1,1,4]],dir:[-1,0,-1],up:[-1,0,1]},{boundaries:[[7,11,4,2]],dir:[0,1,1],up:[0,-1,1]},{boundaries:[[1,11,4,1],[6,13,1,4]],dir:[1,0,1],up:[-1,0,1]},{boundaries:[[7,17,4,1],[19,11,4,1]],dir:[0,-1,1],up:[0,1,1]},{boundaries:[[13,11,4,1],[11,13,1,4]],dir:[-1,0,1],up:[1,0,1]},{boundaries:[[5,7,2,4]],dir:[1,1,0],up:[0,0,1]},{boundaries:[[11,7,2,4]],dir:[-1,1,0],up:[0,0,1]},{boundaries:[[17,7,2,4]],dir:[-1,-1,0],up:[0,0,1]},{boundaries:[[0,7,1,4],[23,7,1,4]],dir:[1,-1,0],up:[0,0,1]},{boundaries:[[5,11,2,2]],dir:[1,1,1],up:[-1,-1,1]},{boundaries:[[23,11,1,1],[6,17,1,1],[0,11,1,1]],dir:[1,-1,1],up:[-1,1,1]},{boundaries:[[5,5,2,2]],dir:[1,1,-1],up:[1,1,1]},{boundaries:[[11,17,1,1],[17,11,2,1]],dir:[-1,-1,1],up:[1,1,1]},{boundaries:[[17,6,2,1],[11,0,1,1]],dir:[-1,-1,-1],up:[-1,-1,1]},{boundaries:[[11,11,2,2]],dir:[-1,1,1],up:[1,-1,1]},{boundaries:[[0,6,1,1],[6,0,1,1],[23,6,1,1]],dir:[1,-1,-1],up:[1,-1,1]},{boundaries:[[11,5,2,2]],dir:[-1,1,-1],up:[-1,1,1]}];t.frontColor||t.color,t.backColor||t.color,t.rightColor||t.color,t.leftColor||t.color,t.topColor||t.color,t.bottomColor||t.color;const l=[{yUp:"",label:"NavCube.front",boundaries:[[7,7,4,4]],dir:[0,0,-1],up:[0,1,0]},{label:"NavCube.back",boundaries:[[19,7,4,4]],dir:[0,0,1],up:[0,1,0]},{label:"NavCube.right",boundaries:[[13,7,4,4]],dir:[-1,0,0],up:[0,1,0]},{label:"NavCube.left",boundaries:[[1,7,4,4]],dir:[1,0,0],up:[0,1,0]},{label:"NavCube.top",boundaries:[[7,1,4,4]],dir:[0,-1,0],up:[0,0,-1]},{label:"NavCube.bottom",boundaries:[[7,13,4,4]],dir:[0,1,0],up:[0,0,1]},{boundaries:[[7,5,4,2]],dir:[0,-.7071,-.7071],up:[0,.7071,-.7071]},{boundaries:[[1,6,4,1],[6,1,1,4]],dir:[1,-1,0],up:[1,1,0]},{boundaries:[[7,0,4,1],[19,6,4,1]],dir:[0,-.7071,.7071],up:[0,.7071,.7071]},{boundaries:[[13,6,4,1],[11,1,1,4]],dir:[-1,-1,0],up:[-1,1,0]},{boundaries:[[7,11,4,2]],dir:[0,1,-1],up:[0,1,1]},{boundaries:[[1,11,4,1],[6,13,1,4]],dir:[1,1,0],up:[-1,1,0]},{boundaries:[[7,17,4,1],[19,11,4,1]],dir:[0,1,1],up:[0,1,-1]},{boundaries:[[13,11,4,1],[11,13,1,4]],dir:[-1,1,0],up:[1,1,0]},{boundaries:[[5,7,2,4]],dir:[1,0,-1],up:[0,1,0]},{boundaries:[[11,7,2,4]],dir:[-1,0,-1],up:[0,1,0]},{boundaries:[[17,7,2,4]],dir:[-1,0,1],up:[0,1,0]},{boundaries:[[0,7,1,4],[23,7,1,4]],dir:[1,0,1],up:[0,1,0]},{boundaries:[[5,11,2,2]],dir:[.5,.7071,-.5],up:[-.5,.7071,.5]},{boundaries:[[23,11,1,1],[6,17,1,1],[0,11,1,1]],dir:[.5,.7071,.5],up:[-.5,.7071,-.5]},{boundaries:[[5,5,2,2]],dir:[.5,-.7071,-.5],up:[.5,.7071,-.5]},{boundaries:[[11,17,1,1],[17,11,2,1]],dir:[-.5,.7071,.5],up:[.5,.7071,-.5]},{boundaries:[[17,6,2,1],[11,0,1,1]],dir:[-.5,-.7071,.5],up:[-.5,.7071,.5]},{boundaries:[[11,11,2,2]],dir:[-.5,.7071,-.5],up:[.5,.7071,.5]},{boundaries:[[0,6,1,1],[6,0,1,1],[23,6,1,1]],dir:[.5,-.7071,.5],up:[.5,.7071,.5]},{boundaries:[[11,5,2,2]],dir:[-.5,-.7071,-.5],up:[-.5,.7071,-.5]}];for(let A=0,e=B.length;A=s[0]*a&&e<=(s[0]+s[2])*a&&t>=s[1]*a&&t<=(s[1]+s[3])*a)return i}}return-1},this.setAreaHighlighted=function(A,e){var t=E[A];if(!t)throw"Area not found: "+A;t.highlighted=!!e,u()},this.getAreaDir=function(A){var e=E[A];if(!e)throw"Unknown area: "+A;return e.dir},this.getAreaUp=function(A){var e=E[A];if(!e)throw"Unknown area: "+A;return e.up},this.getImage=function(){return this._textureCanvas},this.destroy=function(){this._textureCanvas&&(this._textureCanvas.parentNode.removeChild(this._textureCanvas),this._textureCanvas=null)}}const lx=g.vec3(),Ex=g.vec3();g.mat4();class Qx extends Ta{constructor(A,e={}){super("NavCube",A,e),A.navCube=this;try{this._navCubeScene=new lB(A,{canvasId:e.canvasId,canvasElement:e.canvasElement,transparent:!0}),this._navCubeCanvas=this._navCubeScene.canvas.canvas,this._navCubeScene.input.keyboardEnabled=!1}catch(A){return void this.error(A)}const t=this._navCubeScene;t.clearLights(),new wa(t,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new wa(t,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new wa(t,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._navCubeCamera=t.camera,this._navCubeCamera.ortho.scale=7,this._navCubeCamera.ortho.near=.1,this._navCubeCamera.ortho.far=2e3,t.edgeMaterial.edgeColor=[.2,.2,.2],t.edgeMaterial.edgeAlpha=.6,this._zUp=Boolean(A.camera.zUp);var i=this;this.setIsProjectNorth(e.isProjectNorth),this.setProjectNorthOffsetAngle(e.projectNorthOffsetAngle);const s=function(){const A=g.mat4();return function(e,t,s){return g.identityMat4(A),g.rotationMat4v(e*i._projectNorthOffsetAngle*g.DEGTORAD,[0,1,0],A),g.transformVec3(A,t,s)}}();this._synchCamera=function(){var e=g.rotationMat4c(-90*g.DEGTORAD,1,0,0),t=g.vec3(),n=g.vec3(),o=g.vec3();return function(){var r=A.camera.eye,c=A.camera.look,a=A.camera.up;t=g.mulVec3Scalar(g.normalizeVec3(g.subVec3(r,c,t)),5),i._isProjectNorth&&i._projectNorthOffsetAngle&&(t=s(-1,t,lx),a=s(-1,a,Ex)),i._zUp?(g.transformVec3(e,t,n),g.transformVec3(e,a,o),i._navCubeCamera.look=[0,0,0],i._navCubeCamera.eye=g.transformVec3(e,t,n),i._navCubeCamera.up=g.transformPoint3(e,a,o)):(i._navCubeCamera.look=[0,0,0],i._navCubeCamera.eye=t,i._navCubeCamera.up=a)}}(),this._cubeTextureCanvas=new gx(A,t,e),this._cubeSampler=new pt(t,{image:this._cubeTextureCanvas.getImage(),flipY:!0,wrapS:GA,wrapT:GA}),this._cubeMesh=new ct(t,{geometry:new aA(t,{primitive:"triangles",normals:[0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,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,0,-1,0,0,-1,0,0,-1,0,0,-1],positions:[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],uv:[.5,.6666,.25,.6666,.25,.3333,.5,.3333,.5,.6666,.5,.3333,.75,.3333,.75,.6666,.5,.6666,.5,1,.25,1,.25,.6666,.25,.6666,0,.6666,0,.3333,.25,.3333,.25,0,.5,0,.5,.3333,.25,.3333,.75,.3333,1,.3333,1,.6666,.75,.6666],indices:[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]}),material:new lt(t,{diffuse:[.4,.4,.4],specular:[.4,.4,.4],emissive:[.6,.6,.6],diffuseMap:this._cubeSampler,emissiveMap:this._cubeSampler}),visible:!0,edges:!0}),this._shadow=!1===e.shadowVisible?null:new ct(t,{geometry:new aA(t,QA({center:[0,0,0],radiusTop:.001,radiusBottom:1.4,height:.01,radialSegments:20,heightSegments:1,openEnded:!0})),material:new lt(t,{diffuse:[0,0,0],specular:[0,0,0],emissive:[0,0,0],alpha:.5}),position:[0,-1.5,0],visible:!0,pickable:!1,backfaces:!1}),this._onCameraMatrix=A.camera.on("matrix",this._synchCamera),this._onCameraWorldAxis=A.camera.on("worldAxis",(()=>{A.camera.zUp?(this._zUp=!0,this._cubeTextureCanvas.setZUp(),this._repaint(),this._synchCamera()):A.camera.yUp&&(this._zUp=!1,this._cubeTextureCanvas.setYUp(),this._repaint(),this._synchCamera())})),this._onCameraFOV=A.camera.perspective.on("fov",(A=>{this._synchProjection&&(this._navCubeCamera.perspective.fov=A)})),this._onCameraProjection=A.camera.on("projection",(A=>{this._synchProjection&&(this._navCubeCamera.projection="ortho"===A||"perspective"===A?A:"perspective")}));var n=-1;function o(A){var e=[0,0];if(A){for(var t=A.target,i=0,s=0;t.offsetParent;)i+=t.offsetLeft,s+=t.offsetTop,t=t.offsetParent;e[0]=A.pageX-i,e[1]=A.pageY-s}else A=window.event,e[0]=A.x,e[1]=A.y;return e}var r,c,a=null,h=null,B=!1,l=!1,E=.5;i._navCubeCanvas.addEventListener("mouseenter",i._onMouseEnter=function(A){l=!0}),i._navCubeCanvas.addEventListener("mouseleave",i._onMouseLeave=function(A){l=!1}),i._navCubeCanvas.addEventListener("mousedown",i._onMouseDown=function(A){if(1===A.which){a=A.x,h=A.y,r=A.clientX,c=A.clientY;var e=o(A),i=t.pick({canvasPos:e});B=!!i}}),i._navCubeCanvas.addEventListener("mouseup",i._onMouseUp=function(A){if(1===A.which&&(B=!1,null!==a)){var e=o(A),r=t.pick({canvasPos:e,pickSurface:!0});if(r&&r.uv){var c=i._cubeTextureCanvas.getArea(r.uv);if(c>=0&&(i._navCubeCanvas.style.cursor="pointer",n>=0&&(i._cubeTextureCanvas.setAreaHighlighted(n,!1),i._repaint(),n=-1),c>=0)){if(i._cubeTextureCanvas.setAreaHighlighted(c,!0),n=c,i._repaint(),A.xa+3||A.yh+3)return;var g=i._cubeTextureCanvas.getAreaDir(c);if(g){var l=i._cubeTextureCanvas.getAreaUp(c);i._isProjectNorth&&i._projectNorthOffsetAngle&&(g=s(1,g,lx),l=s(1,l,Ex)),Q(g,l,(function(){n>=0&&(i._cubeTextureCanvas.setAreaHighlighted(n,!1),i._repaint(),n=-1),i._navCubeCanvas.style.cursor="pointer",n>=0&&(i._cubeTextureCanvas.setAreaHighlighted(n,!1),i._repaint(),n=-1),c>=0&&(i._cubeTextureCanvas.setAreaHighlighted(c,!1),n=-1,i._repaint())}))}}}}}),i._navCubeCanvas.addEventListener("mousemove",i._onMouseMove=function(e){if(n>=0&&(i._cubeTextureCanvas.setAreaHighlighted(n,!1),i._repaint(),n=-1),1!==e.buttons||B){if(B){var s=e.clientX,a=e.clientY;return i._navCubeCanvas.style.cursor="move",void function(e,t){var i=(e-r)*-E,s=(t-c)*-E;A.camera.orbitYaw(i),A.camera.orbitPitch(-s),r=e,c=t}(s,a)}if(l){var h=o(e),g=t.pick({canvasPos:h,pickSurface:!0});if(g){if(g.uv){i._navCubeCanvas.style.cursor="pointer";var Q=i._cubeTextureCanvas.getArea(g.uv);if(Q===n)return;n>=0&&i._cubeTextureCanvas.setAreaHighlighted(n,!1),Q>=0&&(i._cubeTextureCanvas.setAreaHighlighted(Q,!0),i._repaint(),n=Q)}}else i._navCubeCanvas.style.cursor="default",n>=0&&(i._cubeTextureCanvas.setAreaHighlighted(n,!1),i._repaint(),n=-1)}}});var Q=function(){var e=g.vec3();return function(t,s,n){var o=i._fitVisible?A.scene.getAABB(A.scene.visibleObjectIds):A.scene.aabb,r=g.getAABB3Diag(o);g.getAABB3Center(o,e);var c=Math.abs(r/Math.tan(i._cameraFitFOV*g.DEGTORAD));A.cameraControl.pivotPos=e,i._cameraFly?A.cameraFlight.flyTo({look:e,eye:[e[0]-c*t[0],e[1]-c*t[1],e[2]-c*t[2]],up:s||[0,1,0],orthoScale:1.1*r,fitFOV:i._cameraFitFOV,duration:i._cameraFlyDuration},n):A.cameraFlight.jumpTo({look:e,eye:[e[0]-c*t[0],e[1]-c*t[1],e[2]-c*t[2]],up:s||[0,1,0],orthoScale:1.1*r,fitFOV:i._cameraFitFOV},n)}}();this._onUpdated=A.localeService.on("updated",(()=>{this._cubeTextureCanvas.clear(),this._repaint()})),this.setVisible(e.visible),this.setCameraFitFOV(e.cameraFitFOV),this.setCameraFly(e.cameraFly),this.setCameraFlyDuration(e.cameraFlyDuration),this.setFitVisible(e.fitVisible),this.setSynchProjection(e.synchProjection)}send(A,e){if("language"===A)this._cubeTextureCanvas.clear(),this._repaint()}_repaint(){const A=this._cubeTextureCanvas.getImage();this._cubeMesh.material.diffuseMap.image=A,this._cubeMesh.material.emissiveMap.image=A}setVisible(A=!0){this._navCubeCanvas&&(this._cubeMesh.visible=A,this._shadow&&(this._shadow.visible=A),this._navCubeCanvas.style.visibility=A?"visible":"hidden")}getVisible(){return!!this._navCubeCanvas&&this._cubeMesh.visible}setFitVisible(A=!1){this._fitVisible=A}getFitVisible(){return this._fitVisible}setCameraFly(A=!0){this._cameraFly=A}getCameraFly(){return this._cameraFly}setCameraFitFOV(A=45){this._cameraFitFOV=A}getCameraFitFOV(){return this._cameraFitFOV}setCameraFlyDuration(A=.5){this._cameraFlyDuration=A}getCameraFlyDuration(){return this._cameraFlyDuration}setSynchProjection(A=!1){this._synchProjection=A}getSynchProjection(){return this._synchProjection}setIsProjectNorth(A=!1){this._isProjectNorth=A}getIsProjectNorth(){return this._isProjectNorth}setProjectNorthOffsetAngle(A){this._projectNorthOffsetAngle=A}getProjectNorthOffsetAngle(){return this._projectNorthOffsetAngle}destroy(){this._navCubeCanvas&&(this.viewer.localeService.off(this._onUpdated),this.viewer.camera.off(this._onCameraMatrix),this.viewer.camera.off(this._onCameraWorldAxis),this.viewer.camera.perspective.off(this._onCameraFOV),this.viewer.camera.off(this._onCameraProjection),this._navCubeCanvas.removeEventListener("mouseenter",this._onMouseEnter),this._navCubeCanvas.removeEventListener("mouseleave",this._onMouseLeave),this._navCubeCanvas.removeEventListener("mousedown",this._onMouseDown),this._navCubeCanvas.removeEventListener("mousemove",this._onMouseMove),this._navCubeCanvas.removeEventListener("mouseup",this._onMouseUp),this._navCubeCanvas=null,this._cubeTextureCanvas.destroy(),this._cubeTextureCanvas=null,this._onMouseEnter=null,this._onMouseLeave=null,this._onMouseDown=null,this._onMouseMove=null,this._onMouseUp=null),this._navCubeScene.destroy(),this._navCubeScene=null,this._cubeMesh=null,this._shadow=null,super.destroy()}}g.vec3();class Mx{constructor(A){const e=A.cameraControl,t=A.scene,i=t.canvas.canvas,s=!1,n=.09,o=.01,r=new yA(t,{position:[0,0,0],scale:[5,5,5],isObject:!1}),c=g.vec3();this._setPosition=function(){const A=g.vec3(),e=g.vec3();return function(t){c.set(t),RA(t,A,e),r.origin=A,r.position=e}}(),this._setQuaternion=A=>{r.quaternion=A};const a=(A,e)=>new aA(r,QA({radiusTop:.001,radiusBottom:A,radialSegments:32,heightSegments:1,height:e,openEnded:!1})),h=(A,e,t)=>new aA(r,QA({radiusTop:A,radiusBottom:A,radialSegments:t,heightSegments:1,height:e,openEnded:!1})),B=(A,e,t)=>new aA(r,wA({radius:.8,tube:A,radialSegments:64,tubeSegments:t,arc:2*Math.PI*e})),l={curve:B(o,.25,14),curveHandle:B(n,.25,14),hoop:B(o,1,8),arrowHead:a(.07,.2),arrowHeadBig:a(.09,.25),arrowHeadHandle:h(n,.37,8),axis:h(o,1,20),axisHandle:h(n,1,20)},E=(A,e)=>new ft(r,{edges:!1,fill:!0,fillColor:A,fillAlpha:e}),Q=new lt(r,{diffuse:[1,1,0],alpha:0,alphaMode:"blend"}),M={},u=(A,e)=>{g.mulVec3Scalar(A,-1,g.vec3());const n=(A=>new lt(r,{diffuse:A,emissive:A,ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}))(A),o=g.quaternionToRotationMat4(e,g.identityMat4());g.mulMat4(g.rotationMat4v(Math.PI,[0,1,0],g.mat4()),o,o);const a=g.scaleMat4v([.6,.6,.6],g.identityMat4()),h=(A,e)=>{const t=g.translateMat4v(A,g.identityMat4()),i=g.identityMat4();return g.mulMat4(t,e,i),g.mulMat4(o,i,i),g.mulMat4(i,a,g.identityMat4())},B=r.addChild(new ct(r,{geometry:l.curve,material:n,matrix:o,pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1,isUI:!0,isObject:!1}),s),u=r.addChild(new ct(r,{geometry:l.curveHandle,material:Q,matrix:o,pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1,isUI:!0,isObject:!1}),s),w=r.addChild(new ct(r,{geometry:l.arrowHead,material:n,matrix:h([.8,.07,0],g.rotationMat4v(180*g.DEGTORAD,[0,0,1],g.identityMat4())),pickable:!0,collidable:!0,clippable:!1,visible:!1,isUI:!0,isObject:!1}),s),d=r.addChild(new ct(r,{geometry:l.arrowHead,material:n,matrix:h([.07,.8,0],g.rotationMat4v(90*g.DEGTORAD,[0,0,1],g.identityMat4())),pickable:!0,collidable:!0,clippable:!1,visible:!1,isUI:!0,isObject:!1}),s),C=r.addChild(new ct(r,{geometry:l.hoop,material:n,highlighted:!0,highlightMaterial:E(A,.6),matrix:o,pickable:!1,collidable:!0,clippable:!1,visible:!1,isUI:!0,isObject:!1}),s),x=g.quaternionToRotationMat4(g.vec3PairToQuaternion([0,1,0],A),g.identityMat4());g.mulMat4(g.rotationMat4v(Math.PI,[0,1,0],g.mat4()),x,x);const F=A=>g.mulMat4(x,g.translateMat4c(0,A,0,g.identityMat4()),g.identityMat4()),p=F(1.1),I=F(.5),f=r.addChild(new ct(r,{geometry:l.arrowHead,material:n,matrix:p,pickable:!1,collidable:!0,clippable:!1,visible:!1,isUI:!0,isObject:!1}),s),Y=r.addChild(new ct(r,{geometry:l.arrowHeadHandle,material:Q,matrix:p,pickable:!0,collidable:!0,clippable:!1,visible:!1,isUI:!0,isObject:!1}),s),D=r.addChild(new ct(r,{geometry:l.axis,material:n,matrix:I,pickable:!1,collidable:!0,clippable:!1,visible:!1,isUI:!0,isObject:!1}),s),m=r.addChild(new ct(r,{geometry:l.axisHandle,material:Q,matrix:I,pickable:!0,collidable:!0,clippable:!1,visible:!1,isUI:!0,isObject:!1}),s),J=r.addChild(new ct(r,{geometry:l.arrowHeadBig,material:n,matrix:p,pickable:!1,collidable:!0,clippable:!1,visible:!1,isUI:!0,isObject:!1}),s),N=(A,e)=>g.vec3ApplyQuaternion(r.quaternion,A,e),y=function(){const e=g.vec3(),s=g.vec3(),n=g.vec3();return(o,r)=>{N(A,e);const a=c,h=e;g.canvasPosToWorldRay(i,t.camera.viewMatrix,t.camera.projMatrix,t.camera.projection,o,s,n);const B=g.dotVec3(h,n),l=g.subVec3(s,a,r),E=g.dotVec3(l,h),Q=g.dotVec3(l,n),M=1-B*B;if(Math.abs(M)>1e-10){const A=(E-B*Q)/M;return g.addVec3(a,g.mulVec3Scalar(h,A,r),r),!0}return!1}}(),z=g.vec3(),T=g.vec3();M[Y.id]=M[m.id]={setActivated:A=>J.visible=A,initDragAction:A=>y(A,z)&&g.subVec3(z,c,z)&&(A=>{y(A,T)&&(g.subVec3(T,z,T),this._setPosition(T),this._handlers&&this._handlers.onPosition(T))})},M[u.id]={setActivated:A=>C.visible=A,initDragAction:e=>{const i=function(){const e=t.camera.projectWorldPos(c);N(A,T),g.transformVec3(t.camera.normalMatrix,T,T);const i=Math.sign(T[2]);return A=>{const t=A[0]-e[0],s=A[1]-e[1];return i*Math.atan2(-s,t)}}();let s=i(e);return e=>{const t=i(e);r.rotate(A,180*(t-s)/Math.PI),this._handlers&&this._handlers.onQuaternion(r.quaternion),s=t}}};let U=!1,R=!1,b=!1;const k=()=>{const A=b&&U;Y.visible=m.visible=f.visible=D.visible=!!A,A||(J.visible=!1)},P=()=>{const A=b&&R;u.visible=B.visible=w.visible=d.visible=!!A,A||(C.visible=!1)};return{setPositionActive:A=>{U=A,k()},setRotationActive:A=>{R=A,P()},set visible(A){b=A,k(),P()}}};this._displayMeshes={center:r.addChild(new ct(r,{geometry:new aA(r,uA({radius:.05})),material:new lt(r,{diffuse:[0,0,0],emissive:[0,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80}),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),s),x:u([1,0,0],g.vec3PairToQuaternion([1,0,0],[0,0,1])),y:u([0,1,0],g.eulerToQuaternion([90,0,0],"XYZ")),z:u([0,0,1],g.identityQuaternion())};const w=[];{let A=-1;const e=A=>{r.scale[0]!==A&&(r.scale=[A,A,A],this._handlers&&this._handlers.onScreenScale&&this._handlers.onScreenScale(r.scale))},i=t.on("tick",(()=>{const i=t.camera,s=Math.abs(g.distVec3(i.eye,c));"perspective"===i.projection?s!==A&&e(.07*s*Math.tan(i.perspective.fov*g.DEGTORAD)):"ortho"===i.projection&&e(i.ortho.scale/10),A=s}));w.push((()=>t.off(i)))}{let A=null,s=null;w.push((()=>{s&&s.cleanup()}));const n=g.vec2(),o=(A,e)=>{e[0]=A.pageX,e[1]=A.pageY,jd(i.ownerDocument.documentElement,i,e)},r=A=>{o(A,n);const e=t.pick({canvasPos:n}),i=e&&e.entity,s=i&&i.id;return s in M&&M[s]},c=(A,t)=>{const i=r(t(A));if(i){s&&s.cleanup();const A=i.initDragAction(n);return A&&(e.pointerEnabled=!1,i.setActivated(!0),s={onChange:e=>{const i=t(e);i&&(o(i,n),A(n))},cleanup:function(){s=null,e.pointerEnabled=!0,i.setActivated(!1)}}),!!A}return!1},a=(A,e)=>{i.addEventListener(A,e),w.push((()=>i.removeEventListener(A,e)))},h=A=>{A.preventDefault(),A.stopPropagation(),A.stopImmediatePropagation()};a("mousedown",(A=>{1===A.which&&c(A,(A=>1===A.which&&A))&&h(A)})),a("mousemove",(e=>{if(s)s.onChange(e),h(e);else{A&&A();const t=r(e);t?(t.setActivated(!0),A=()=>t.setActivated(!1)):A=null}})),a("mouseup",(A=>{s&&(s.onChange(A),s.cleanup())})),a("touchstart",(A=>{if(A.preventDefault(),1===A.touches.length){const e=A.touches[0].identifier;c(A,(A=>[...A.changedTouches].find((A=>A.identifier===e))))&&h(A)}})),a("touchmove",(A=>{s&&(s.onChange(A),h(A))})),a("touchend",(A=>{s&&(s.onChange(A),s.cleanup())}))}this.__destroy=()=>{w.forEach((A=>A())),r.destroy();for(let A in M)delete M[A]}}destroy(){this.__destroy()}setHandlers(A){Object.values(this._displayMeshes).forEach((e=>e.visible=!!A)),this._handlers=A,this._displayMeshes.x.setPositionActive(A&&A.onPosition),this._displayMeshes.y.setPositionActive(A&&A.onPosition),this._displayMeshes.z.setPositionActive(A&&A.onPosition),this._displayMeshes.x.setRotationActive(A&&A.onQuaternion),this._displayMeshes.y.setRotationActive(A&&A.onQuaternion),this._displayMeshes.z.setRotationActive(A&&A.onQuaternion)}setPosition(A){this._setPosition(A)}setQuaternion(A){this._setQuaternion(A)}}class ux{constructor(A,e,t){this.id=t.id,this._sectionPlane=t,this._mesh=new ct(e,{id:t.id,geometry:new aA(e,EA({xSize:.5,ySize:.5,zSize:.001})),material:new lt(e,{emissive:[1,1,1],diffuse:[0,0,0],backfaces:!1}),edgeMaterial:new Dt(e,{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),highlightMaterial:new ft(e,{fill:!0,fillColor:[.5,1,.5],fillAlpha:.7,edges:!0,edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),selectedMaterial:new ft(e,{fill:!0,fillColor:[0,0,1],fillAlpha:.7,edges:!0,edgeColor:[1,0,0],edgeAlpha:1,edgeWidth:1}),highlighted:!0,scale:[3,3,3],position:[0,0,0],rotation:[0,0,0],opacity:.3,edges:!0});{const A=g.vec3([0,0,0]),e=g.vec3(),t=g.vec3([0,0,1]),i=g.vec4(4),s=g.vec3(),n=()=>{const n=this._sectionPlane.scene.center,o=[-this._sectionPlane.dir[0],-this._sectionPlane.dir[1],-this._sectionPlane.dir[2]];g.subVec3(n,this._sectionPlane.pos,A);const r=-g.dotVec3(o,A);g.normalizeVec3(o),g.mulVec3Scalar(o,r,e);const c=g.vec3PairToQuaternion(t,this._sectionPlane.dir,i);s[0]=.1*e[0],s[1]=.1*e[1],s[2]=.1*e[2],this._mesh.quaternion=c,this._mesh.position=s};this._onSectionPlanePos=this._sectionPlane.on("pos",n),this._onSectionPlaneDir=this._sectionPlane.on("dir",n)}this._highlighted=!1,this._selected=!1}setHighlighted(A){this._highlighted=!!A,this._mesh.highlighted=this._highlighted,this._mesh.highlightMaterial.fillColor=A?[0,.7,0]:[0,0,0]}getHighlighted(){return this._highlighted}setSelected(A){this._selected=!!A,this._mesh.edgeMaterial.edgeWidth=A?3:1,this._mesh.highlightMaterial.edgeWidth=A?3:1}getSelected(){return this._selected}destroy(){this._sectionPlane.off(this._onSectionPlanePos),this._sectionPlane.off(this._onSectionPlaneDir),this._mesh.destroy()}}class wx{constructor(A,e){if(!(e.onHoverEnterPlane&&e.onHoverLeavePlane&&e.onClickedNothing&&e.onClickedPlane))throw"Missing config(s): onHoverEnterPlane, onHoverLeavePlane, onClickedNothing || onClickedPlane";this.plugin=A,this._viewer=A.viewer,this._onHoverEnterPlane=e.onHoverEnterPlane,this._onHoverLeavePlane=e.onHoverLeavePlane,this._onClickedNothing=e.onClickedNothing,this._onClickedPlane=e.onClickedPlane,this._visible=!0,this._planes={},this._canvas=e.overviewCanvas,this._scene=new lB(this._viewer,{canvasId:this._canvas.id,transparent:!0}),this._scene.clearLights(),new wa(this._scene,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new wa(this._scene,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new wa(this._scene,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._scene.camera,this._scene.camera.perspective.fov=70,this._zUp=!1;{const A=this._scene.camera,e=g.rotationMat4c(-90*g.DEGTORAD,1,0,0),t=g.vec3(),i=g.vec3(),s=g.vec3();this._synchCamera=()=>{const n=this._viewer.camera.eye,o=this._viewer.camera.look,r=this._viewer.camera.up;g.mulVec3Scalar(g.normalizeVec3(g.subVec3(n,o,t)),7),this._zUp?(g.transformVec3(e,t,i),g.transformVec3(e,r,s),A.look=[0,0,0],A.eye=g.transformVec3(e,t,i),A.up=g.transformPoint3(e,r,s)):(A.look=[0,0,0],A.eye=t,A.up=r)}}this._onViewerCameraMatrix=this._viewer.camera.on("matrix",this._synchCamera),this._onViewerCameraWorldAxis=this._viewer.camera.on("worldAxis",this._synchCamera),this._onViewerCameraFOV=this._viewer.camera.perspective.on("fov",(A=>{this._scene.camera.perspective.fov=A}));var t=null;this._onInputMouseMove=this._scene.input.on("mousemove",(A=>{const e=this._scene.pick({canvasPos:A});if(e){if(!t||e.entity.id!==t.id){if(t){this._planes[t.id]&&this._onHoverLeavePlane(t.id)}t=e.entity;this._planes[t.id]&&this._onHoverEnterPlane(t.id)}}else t&&(this._onHoverLeavePlane(t.id),t=null)})),this._scene.canvas.canvas.addEventListener("mouseup",this._onCanvasMouseUp=()=>{if(t){this._planes[t.id]&&this._onClickedPlane(t.id)}else this._onClickedNothing()}),this._scene.canvas.canvas.addEventListener("mouseout",this._onCanvasMouseOut=()=>{t&&(this._onHoverLeavePlane(t.id),t=null)}),this.setVisible(e.overviewVisible)}addSectionPlane(A){this._planes[A.id]=new ux(this,this._scene,A)}setPlaneHighlighted(A,e){const t=this._planes[A];t&&t.setHighlighted(e)}setPlaneSelected(A,e){const t=this._planes[A];t&&t.setSelected(e)}removeSectionPlane(A){const e=this._planes[A.id];e&&(e.destroy(),delete this._planes[A.id])}setVisible(A=!0){this._visible=A,this._canvas.style.visibility=A?"visible":"hidden"}getVisible(){return this._visible}destroy(){this._viewer.camera.off(this._onViewerCameraMatrix),this._viewer.camera.off(this._onViewerCameraWorldAxis),this._viewer.camera.perspective.off(this._onViewerCameraFOV),this._scene.input.off(this._onInputMouseMove),this._scene.canvas.canvas.removeEventListener("mouseup",this._onCanvasMouseUp),this._scene.canvas.canvas.removeEventListener("mouseout",this._onCanvasMouseOut),this._scene.destroy()}}const dx=g.AABB3(),Cx=g.vec3();class xx extends Ta{constructor(A,e={}){if(super("SectionPlanes",A),this._freeControls=[],this._sectionPlanes=A.scene.sectionPlanes,this._controls={},this._shownControlId=null,null!==e.overviewCanvasId&&void 0!==e.overviewCanvasId){const A=document.getElementById(e.overviewCanvasId);A?this._overview=new wx(this,{overviewCanvas:A,visible:e.overviewVisible,onHoverEnterPlane:A=>{this._overview.setPlaneHighlighted(A,!0)},onHoverLeavePlane:A=>{this._overview.setPlaneHighlighted(A,!1)},onClickedPlane:A=>{if(this.getShownControl()===A)return void this.hideControl();this.showControl(A);const e=this.sectionPlanes[A].pos;dx.set(this.viewer.scene.aabb),g.getAABB3Center(dx,Cx),dx[0]+=e[0]-Cx[0],dx[1]+=e[1]-Cx[1],dx[2]+=e[2]-Cx[2],dx[3]+=e[0]-Cx[0],dx[4]+=e[1]-Cx[1],dx[5]+=e[2]-Cx[2],this.viewer.cameraFlight.flyTo({aabb:dx,fitFOV:65})},onClickedNothing:()=>{this.hideControl()}}):this.warn("Can't find overview canvas: '"+e.overviewCanvasId+"' - will create plugin without overview")}this._onSceneSectionPlaneCreated=A.scene.on("sectionPlaneCreated",(A=>{this._sectionPlaneCreated(A)}))}setOverviewVisible(A){this._overview&&this._overview.setVisible(A)}getOverviewVisible(){if(this._overview)return this._overview.getVisible()}get sectionPlanes(){return this._sectionPlanes}createSectionPlane(A={}){void 0!==A.id&&null!==A.id&&this.viewer.scene.components[A.id]&&(this.error("Viewer component with this ID already exists: "+A.id),delete A.id);return new Na(this.viewer.scene,{id:A.id,pos:A.pos,dir:A.dir,active:!0})}_sectionPlaneCreated(A){const e=this._freeControls.length>0?this._freeControls.pop():(()=>{const A=this.viewer.scene,e=function(){const e=new yA(A,{isObject:!1});return e.addChild(new ct(e,{geometry:new aA(e,{primitive:"triangles",positions:[.5,.5,0,.5,-.5,0,-.5,-.5,0,-.5,.5,0,.5,.5,-0,.5,-.5,-0,-.5,-.5,-0,-.5,.5,-0],indices:[0,1,2,2,3,0]}),material:new lt(e,{emissive:[0,0,0],diffuse:[0,0,0],backfaces:!0}),opacity:.6,ghosted:!0,ghostMaterial:new ft(e,{edges:!1,filled:!0,fillColor:[1,1,0],edgeColor:[0,0,0],fillAlpha:.1,backfaces:!0}),pickable:!1,collidable:!0,clippable:!1,visible:!1,scale:[2.4,2.4,1],isObject:!1})),e.addChild(new ct(e,{geometry:new aA(e,wA({center:[0,0,0],radius:1.7,tube:.02,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new lt(e,{emissive:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],shininess:0}),highlightMaterial:new ft(e,{edges:!1,edgeColor:[0,0,0],filled:!0,fillColor:[.8,.8,.8],fillAlpha:1}),pickable:!1,collidable:!1,clippable:!1,visible:!1,scale:[1,1,.1],rotation:[0,0,45],isObject:!1})),{setPosition:function(){const A=g.vec3(),t=g.vec3();return function(i){RA(i,A,t),e.origin=A,e.position=t}}(),setQuaternion:A=>{e.quaternion=A},setScale:A=>{e.scale=A},setVisible:A=>{e.visible=A}}}();let t=()=>{};const i=new Mx(this.viewer);let s=!1,n=!1,o=null;const r=()=>{const A=n&&!s;e.setVisible(A),i.setHandlers(A&&o)};return{_destroy:()=>{t(),i.destroy()},setCulled:A=>{s=A,r()},setVisible:A=>{n=A,r()},_setSectionPlane:A=>{if(t(),A){let s=!1;o={onPosition:t=>{e.setPosition(t),A.pos=t},onQuaternion:t=>{e.setQuaternion(t),s=!0,A.quaternion=t},onScreenScale:A=>{e.setScale(A)}};const n=()=>{e.setPosition(A.pos),i.setPosition(A.pos)},r=()=>{e.setQuaternion(A.quaternion),i.setQuaternion(A.quaternion)};n(),r();const c=A.on("pos",n),a=A.on("dir",(()=>{s?s=!1:r()}));t=()=>{A.off(c),A.off(a),t=()=>{}}}}}})();e._setSectionPlane(A),e.setVisible(!1),this._controls[A.id]=e,this._overview&&this._overview.addSectionPlane(A),A.once("destroyed",(()=>{this._sectionPlaneDestroyed(A)}))}flipSectionPlanes(){const A=this.viewer.scene.sectionPlanes;for(let e in A){A[e].flipDir()}}showControl(A){const e=this._controls[A];e?(this.hideControl(),e.setVisible(!0),this._overview&&this._overview.setPlaneSelected(A,!0),this._shownControlId=A):this.error("Control not found: "+A)}getShownControl(){return this._shownControlId}hideControl(){for(var A in this._controls)this._controls.hasOwnProperty(A)&&(this._controls[A].setVisible(!1),this._overview&&this._overview.setPlaneSelected(A,!1));this._shownControlId=null}destroySectionPlane(A){var e=this.viewer.scene.sectionPlanes[A];e?(this._sectionPlaneDestroyed(e),e.destroy(),A===this._shownControlId&&(this._shownControlId=null)):this.error("SectionPlane not found: "+A)}_sectionPlaneDestroyed(A){this._overview&&this._overview.removeSectionPlane(A);const e=this._controls[A.id];e&&(e.setVisible(!1),e._setSectionPlane(null),delete this._controls[A.id],this._freeControls.push(e))}clear(){const A=Object.keys(this._sectionPlanes);for(var e=0,t=A.length;e0){const t=document.createElement("a");t.href="#",t.id=`switch-${A.nodeId}`,t.textContent="+",t.classList.add("plus"),e&&t.addEventListener("click",e),n.appendChild(t)}const o=document.createElement("input");o.id=`checkbox-${A.nodeId}`,o.type="checkbox",o.checked=A.checked,o.style["pointer-events"]="all",t&&o.addEventListener("change",t),n.appendChild(o);const r=document.createElement("span");return r.textContent=A.title,n.appendChild(r),i&&md(r,i),s&&(r.onclick=s),n}createDisabledNodeElement(A){const e=document.createElement("li"),t=document.createElement("a");t.href="#",t.textContent="!",t.classList.add("warn"),t.classList.add("warning"),e.appendChild(t);const i=document.createElement("span");return i.textContent=A,e.appendChild(i),e}addChildren(A,e){const t=document.createElement("ul");e.forEach((A=>{t.appendChild(A)})),A.parentElement.appendChild(t)}expand(A,e,t){A.classList.remove("plus"),A.classList.add("minus"),A.textContent="-",A.removeEventListener("click",e),A.addEventListener("click",t)}collapse(A,e,t){if(!A)return;const i=A.parentElement;if(!i)return;const s=i.querySelector("ul");s&&(i.removeChild(s),A.classList.remove("minus"),A.classList.add("plus"),A.textContent="+",A.removeEventListener("click",t),A.addEventListener("click",e))}isExpanded(A){return void 0!==A.parentElement.getElementsByTagName("li")[0]}getId(A){return A.parentElement.id}getIdFromCheckbox(A){return A.id.replace("checkbox-","")}getSwitchElement(A){return this._treeViewContainer.querySelector(`[id="switch-${A}"]`)}isChecked(A){return A.checked}setCheckbox(A,e,t=!1){const i=this._treeViewContainer.querySelector(`[id="checkbox-${A}"]`);i&&(e!==i.checked&&(i.checked=e),t!==i.indeterminate&&(i.indeterminate=t,t&&(i.checked=!1)))}setXRayed(A,e){const t=this._treeViewContainer.querySelector(`[id="${A}"]`);t&&(e?t.classList.add("xrayed-node"):t.classList.remove("xrayed-node"))}setHighlighted(A,e){const t=this._treeViewContainer.querySelector(`[id="${A}"]`);t&&(e?(t.scrollIntoView({block:"center"}),t.classList.add("highlighted-node")):t.classList.remove("highlighted-node"))}}const px=[];class Ix extends Ta{constructor(A,e={}){super("TreeViewPlugin",A),this.errors=[],this.valid=!0;const t=e.containerElement||document.getElementById(e.containerElementId);if(t instanceof HTMLElement){for(let A=0;;A++)if(!px[A]){px[A]=this,this._index=A,this._id=`tree-${A}`;break}if(this._containerElement=t,this._metaModels={},this._autoAddModels=!1!==e.autoAddModels,this._autoExpandDepth=e.autoExpandDepth||0,this._sortNodes=!1!==e.sortNodes,this._viewer=A,this._rootElement=null,this._muteSceneEvents=!1,this._muteTreeEvents=!1,this._rootNodes=[],this._objectNodes={},this._nodeNodes={},this._rootNames={},this._sortNodes=e.sortNodes,this._pruneEmptyNodes=e.pruneEmptyNodes,this._showListItemElementId=null,this._renderService=e.renderService||new Fx(this._containerElement),this._showIndeterminate=e.showIndeterminate??!1,this._showProjectNode=e.showProjectNode??!1,this._elevationSortFunction=e.elevationSortFunction??void 0,this._defaultSortFunction=e.defaultSortFunction??void 0,!this._renderService)throw new Error("TreeViewPlugin: no render service set");if(this._containerElement.oncontextmenu=A=>{A.preventDefault()},this._onObjectVisibility=this._viewer.scene.on("objectVisibility",(A=>{if(this._muteSceneEvents)return;const e=A.id,t=this._objectNodes[e];if(!t)return;const i=A.visible;if(!(i!==t.checked))return;this._muteTreeEvents=!0,t.checked=i,i?t.numVisibleEntities++:t.numVisibleEntities--,this._renderService.setCheckbox(t.nodeId,i);let s=t.parent;for(;s;){s.checked=i,i?s.numVisibleEntities++:s.numVisibleEntities--;const A=this._showIndeterminate&&s.numVisibleEntities>0&&s.numVisibleEntities0,this._renderService.setCheckbox(s.nodeId,s.checked,A),s=s.parent}this._muteTreeEvents=!1})),this._onObjectXrayed=this._viewer.scene.on("objectXRayed",(A=>{if(this._muteSceneEvents)return;const e=A.id,t=this._objectNodes[e];if(!t)return;this._muteTreeEvents=!0;const i=A.xrayed;i!==t.xrayed&&(t.xrayed=i,this._renderService.setXRayed(t.nodeId,i),this._muteTreeEvents=!1)})),this._switchExpandHandler=A=>{A.preventDefault(),A.stopPropagation();const e=A.target;this._expandSwitchElement(e)},this._switchCollapseHandler=A=>{A.preventDefault(),A.stopPropagation();const e=A.target;this._collapseSwitchElement(e)},this._checkboxChangeHandler=A=>{if(this._muteTreeEvents)return;this._muteSceneEvents=!0;const e=A.target,t=this._renderService.isChecked(e),i=this._renderService.getIdFromCheckbox(e),s=this._nodeNodes[i],n=this._viewer.scene.objects;let o=0;this._withNodeTree(s,(A=>{const e=A.objectId,i=n[e],s=0===A.children.length;A.numVisibleEntities=t?A.numEntities:0,s&&t!==A.checked&&o++,A.checked=t,this._renderService.setCheckbox(A.nodeId,t),i&&(i.visible=t)}));let r=s.parent;for(;r;){t?r.numVisibleEntities+=o:r.numVisibleEntities-=o;const A=this._showIndeterminate&&r.numVisibleEntities>0&&r.numVisibleEntities0,this._renderService.setCheckbox(r.nodeId,r.checked,A),r=r.parent}this._muteSceneEvents=!1},this._hierarchy=e.hierarchy||"containment",this._autoExpandDepth=e.autoExpandDepth||0,this._autoAddModels){const A=Object.keys(this.viewer.metaScene.metaModels);for(let e=0,t=A.length;e{this.viewer.metaScene.metaModels[A]&&this.addModel(A)}))}this.hierarchy=e.hierarchy}else this.error("Mandatory config expected: valid containerElementId or containerElement")}set hierarchy(A){"containment"!==(A=A||"containment")&&"storeys"!==A&&"types"!==A&&(this.error("Unsupported value for `hierarchy' - defaulting to 'containment'"),A="containment"),this._hierarchy!==A&&(this._hierarchy=A,this._createNodes())}get hierarchy(){return this._hierarchy}addModel(A,e={}){if(!this._containerElement)return;const t=this.viewer.scene.models[A];if(!t)throw"Model not found: "+A;const i=this.viewer.metaScene.metaModels[A];i?this._metaModels[A]?this.warn("Model already added: "+A):(this._metaModels[A]=i,e&&e.rootName&&(this._rootNames[A]=e.rootName),t.on("destroyed",(()=>{this.removeModel(t.id)})),this._createNodes()):this.error("MetaModel not found: "+A)}removeModel(A){if(!this._containerElement)return;this._metaModels[A]&&(this._rootNames[A]&&delete this._rootNames[A],delete this._metaModels[A],this._createNodes())}showNode(A){this.unShowNode();const e=this._objectNodes[A];if(!e)return;this.collapse();const t=e.nodeId,i=this._renderService.getSwitchElement(t);if(i)return this._expandSwitchElement(i),i.scrollIntoView(),!0;const s=[];s.unshift(e);let n=e.parent;for(;n;)s.unshift(n),n=n.parent;for(let A=0,e=s.length;A{if(i===A)return;const s=this._renderService.getSwitchElement(t.nodeId);if(s){this._expandSwitchElement(s);const A=t.children;for(var n=0,o=A.length;n0;return this.valid}_validateMetaModelForStoreysHierarchy(A=0,e,t){return!0}_createEnabledNodes(){switch(this._pruneEmptyNodes&&this._findEmptyNodes(),this._hierarchy){case"storeys":this._createStoreysNodes(),0===this._rootNodes.length&&this.error("Failed to build storeys hierarchy");break;case"types":this._createTypesNodes();break;default:this._createContainmentNodes()}this._sortNodes&&this._doSortNodes(),this._synchNodesToEntities(),this._createTrees(),this.expandToDepth(this._autoExpandDepth)}_createDisabledNodes(){const A=this._renderService.createRootNode();this._rootElement=A,this._containerElement.appendChild(A);const e=this._viewer.metaScene.rootMetaObjects;for(let t in e){const i=e[t],s=i.type,n=i.name,o=n&&""!==n&&"Undefined"!==n&&"Default"!==n?n:s,r=this._renderService.createDisabledNodeElement(o);A.appendChild(r)}}_findEmptyNodes(){const A=this._viewer.metaScene.rootMetaObjects;for(let e in A)this._findEmptyNodes2(A[e])}_findEmptyNodes2(A,e=0){const t=this.viewer.scene,i=A.children,s=A.id,n=t.objects[s];if(A._countEntities=0,n&&A._countEntities++,i)for(let e=0,t=i.length;e{A.xUp||A.yUp;const i=this.viewer.metaScene,s=i.metaObjects[e.objectId],n=i.metaObjects[t.objectId];if(s&&s.attributes&&void 0!==s.attributes.elevation&&n&&n.attributes&&void 0!==n.attributes.elevation){const A=Number.parseFloat(s.attributes.elevation),e=Number.parseFloat(n.attributes.elevation);return A>e?-1:Ai?1:0}_synchNodesToEntities(){const A=Object.keys(this.viewer.metaScene.metaObjects),e=this._viewer.metaScene.metaObjects,t=this._viewer.scene.objects;for(let i=0,s=A.length;ithis._createNodeElement(A))),e=this._renderService.createRootNode();A.forEach((A=>{e.appendChild(A)})),this._containerElement.appendChild(e),this._rootElement=e}_createNodeElement(A){return this._renderService.createNodeElement(A,this._switchExpandHandler,this._checkboxChangeHandler,(e=>{this.fire("contextmenu",{event:e,viewer:this._viewer,treeViewPlugin:this,treeViewNode:A}),e.preventDefault()}),(e=>{this.fire("nodeTitleClicked",{event:e,viewer:this._viewer,treeViewPlugin:this,treeViewNode:A}),e.preventDefault()}))}_expandSwitchElement(A){if(this._renderService.isExpanded(A))return;const e=this._renderService.getId(A),t=this._nodeNodes[e].children.map((A=>this._createNodeElement(A)));this._renderService.addChildren(A,t),this._renderService.expand(A,this._switchExpandHandler,this._switchCollapseHandler)}_collapseNode(A){const e=this._renderService.getSwitchElement(A);this._collapseSwitchElement(e)}_collapseSwitchElement(A){this._renderService.collapse(A,this._switchExpandHandler,this._switchCollapseHandler)}}class fx{constructor(A={}){this.cacheBuster=!1!==A.cacheBuster}_cacheBusterURL(A){if(!this.cacheBuster)return A;const e=(new Date).getTime();return A.indexOf("?")>-1?A+"&_="+e:A+"?_="+e}getManifest(A,e,t){u.loadJSON(this._cacheBusterURL(A),(A=>{e(A)}),(function(A){t(A)}))}getMetaModel(A,e,t){u.loadJSON(this._cacheBusterURL(A),(A=>{e(A)}),(function(A){t(A)}))}getXKT(A,e,t){var i=()=>{};e=e||i,t=t||i;const s=A.match(/^data:(.*?)(;base64)?,(.*)$/);if(s){const A=!!s[2];var n=s[3];n=window.decodeURIComponent(n),A&&(n=window.atob(n));try{const A=new ArrayBuffer(n.length),t=new Uint8Array(A);for(var o=0;o=0;)A[e]=0}const t=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),i=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),s=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),n=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),o=new Array(576);e(o);const r=new Array(60);e(r);const c=new Array(512);e(c);const a=new Array(256);e(a);const h=new Array(29);e(h);const B=new Array(30);function g(A,e,t,i,s){this.static_tree=A,this.extra_bits=e,this.extra_base=t,this.elems=i,this.max_length=s,this.has_stree=A&&A.length}let l,E,Q;function M(A,e){this.dyn_tree=A,this.max_code=0,this.stat_desc=e}e(B);const u=A=>A<256?c[A]:c[256+(A>>>7)],w=(A,e)=>{A.pending_buf[A.pending++]=255&e,A.pending_buf[A.pending++]=e>>>8&255},d=(A,e,t)=>{A.bi_valid>16-t?(A.bi_buf|=e<>16-A.bi_valid,A.bi_valid+=t-16):(A.bi_buf|=e<{d(A,t[2*e],t[2*e+1])},x=(A,e)=>{let t=0;do{t|=1&A,A>>>=1,t<<=1}while(--e>0);return t>>>1},F=(A,e,t)=>{const i=new Array(16);let s,n,o=0;for(s=1;s<=15;s++)o=o+t[s-1]<<1,i[s]=o;for(n=0;n<=e;n++){let e=A[2*n+1];0!==e&&(A[2*n]=x(i[e]++,e))}},p=A=>{let e;for(e=0;e<286;e++)A.dyn_ltree[2*e]=0;for(e=0;e<30;e++)A.dyn_dtree[2*e]=0;for(e=0;e<19;e++)A.bl_tree[2*e]=0;A.dyn_ltree[512]=1,A.opt_len=A.static_len=0,A.sym_next=A.matches=0},I=A=>{A.bi_valid>8?w(A,A.bi_buf):A.bi_valid>0&&(A.pending_buf[A.pending++]=A.bi_buf),A.bi_buf=0,A.bi_valid=0},f=(A,e,t,i)=>{const s=2*e,n=2*t;return A[s]{const i=A.heap[t];let s=t<<1;for(;s<=A.heap_len&&(s{let n,o,r,c,g=0;if(0!==A.sym_next)do{n=255&A.pending_buf[A.sym_buf+g++],n+=(255&A.pending_buf[A.sym_buf+g++])<<8,o=A.pending_buf[A.sym_buf+g++],0===n?C(A,o,e):(r=a[o],C(A,r+256+1,e),c=t[r],0!==c&&(o-=h[r],d(A,o,c)),n--,r=u(n),C(A,r,s),c=i[r],0!==c&&(n-=B[r],d(A,n,c)))}while(g{const t=e.dyn_tree,i=e.stat_desc.static_tree,s=e.stat_desc.has_stree,n=e.stat_desc.elems;let o,r,c,a=-1;for(A.heap_len=0,A.heap_max=573,o=0;o>1;o>=1;o--)Y(A,t,o);c=n;do{o=A.heap[1],A.heap[1]=A.heap[A.heap_len--],Y(A,t,1),r=A.heap[1],A.heap[--A.heap_max]=o,A.heap[--A.heap_max]=r,t[2*c]=t[2*o]+t[2*r],A.depth[c]=(A.depth[o]>=A.depth[r]?A.depth[o]:A.depth[r])+1,t[2*o+1]=t[2*r+1]=c,A.heap[1]=c++,Y(A,t,1)}while(A.heap_len>=2);A.heap[--A.heap_max]=A.heap[1],((A,e)=>{const t=e.dyn_tree,i=e.max_code,s=e.stat_desc.static_tree,n=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,r=e.stat_desc.extra_base,c=e.stat_desc.max_length;let a,h,B,g,l,E,Q=0;for(g=0;g<=15;g++)A.bl_count[g]=0;for(t[2*A.heap[A.heap_max]+1]=0,a=A.heap_max+1;a<573;a++)h=A.heap[a],g=t[2*t[2*h+1]+1]+1,g>c&&(g=c,Q++),t[2*h+1]=g,h>i||(A.bl_count[g]++,l=0,h>=r&&(l=o[h-r]),E=t[2*h],A.opt_len+=E*(g+l),n&&(A.static_len+=E*(s[2*h+1]+l)));if(0!==Q){do{for(g=c-1;0===A.bl_count[g];)g--;A.bl_count[g]--,A.bl_count[g+1]+=2,A.bl_count[c]--,Q-=2}while(Q>0);for(g=c;0!==g;g--)for(h=A.bl_count[g];0!==h;)B=A.heap[--a],B>i||(t[2*B+1]!==g&&(A.opt_len+=(g-t[2*B+1])*t[2*B],t[2*B+1]=g),h--)}})(A,e),F(t,a,A.bl_count)},J=(A,e,t)=>{let i,s,n=-1,o=e[1],r=0,c=7,a=4;for(0===o&&(c=138,a=3),e[2*(t+1)+1]=65535,i=0;i<=t;i++)s=o,o=e[2*(i+1)+1],++r{let i,s,n=-1,o=e[1],r=0,c=7,a=4;for(0===o&&(c=138,a=3),i=0;i<=t;i++)if(s=o,o=e[2*(i+1)+1],!(++r{d(A,0+(i?1:0),3),I(A),w(A,t),w(A,~t),t&&A.pending_buf.set(A.window.subarray(e,e+t),A.pending),A.pending+=t};var T={_tr_init:A=>{y||((()=>{let A,e,n,M,u;const w=new Array(16);for(n=0,M=0;M<28;M++)for(h[M]=n,A=0;A<1<>=7;M<30;M++)for(B[M]=u<<7,A=0;A<1<{let s,c,a=0;A.level>0?(2===A.strm.data_type&&(A.strm.data_type=(A=>{let e,t=4093624447;for(e=0;e<=31;e++,t>>>=1)if(1&t&&0!==A.dyn_ltree[2*e])return 0;if(0!==A.dyn_ltree[18]||0!==A.dyn_ltree[20]||0!==A.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==A.dyn_ltree[2*e])return 1;return 0})(A)),m(A,A.l_desc),m(A,A.d_desc),a=(A=>{let e;for(J(A,A.dyn_ltree,A.l_desc.max_code),J(A,A.dyn_dtree,A.d_desc.max_code),m(A,A.bl_desc),e=18;e>=3&&0===A.bl_tree[2*n[e]+1];e--);return A.opt_len+=3*(e+1)+5+5+4,e})(A),s=A.opt_len+3+7>>>3,c=A.static_len+3+7>>>3,c<=s&&(s=c)):s=c=t+5,t+4<=s&&-1!==e?z(A,e,t,i):4===A.strategy||c===s?(d(A,2+(i?1:0),3),D(A,o,r)):(d(A,4+(i?1:0),3),((A,e,t,i)=>{let s;for(d(A,e-257,5),d(A,t-1,5),d(A,i-4,4),s=0;s(A.pending_buf[A.sym_buf+A.sym_next++]=e,A.pending_buf[A.sym_buf+A.sym_next++]=e>>8,A.pending_buf[A.sym_buf+A.sym_next++]=t,0===e?A.dyn_ltree[2*t]++:(A.matches++,e--,A.dyn_ltree[2*(a[t]+256+1)]++,A.dyn_dtree[2*u(e)]++),A.sym_next===A.sym_end),_tr_align:A=>{d(A,2,3),C(A,256,o),(A=>{16===A.bi_valid?(w(A,A.bi_buf),A.bi_buf=0,A.bi_valid=0):A.bi_valid>=8&&(A.pending_buf[A.pending++]=255&A.bi_buf,A.bi_buf>>=8,A.bi_valid-=8)})(A)}},U=(A,e,t,i)=>{let s=65535&A,n=A>>>16&65535,o=0;for(;0!==t;){o=t>2e3?2e3:t,t-=o;do{s=s+e[i++]|0,n=n+s|0}while(--o);s%=65521,n%=65521}return s|n<<16};const R=new Uint32Array((()=>{let A,e=[];for(var t=0;t<256;t++){A=t;for(var i=0;i<8;i++)A=1&A?3988292384^A>>>1:A>>>1;e[t]=A}return e})());var b=(A,e,t,i)=>{const s=R,n=i+t;A^=-1;for(let t=i;t>>8^s[255&(A^e[t])];return~A},k={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},P={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:G,_tr_stored_block:v,_tr_flush_block:H,_tr_tally:S,_tr_align:j}=T,{Z_NO_FLUSH:O,Z_PARTIAL_FLUSH:_,Z_FULL_FLUSH:W,Z_FINISH:X,Z_BLOCK:L,Z_OK:V,Z_STREAM_END:K,Z_STREAM_ERROR:Z,Z_DATA_ERROR:q,Z_BUF_ERROR:$,Z_DEFAULT_COMPRESSION:AA,Z_FILTERED:eA,Z_HUFFMAN_ONLY:tA,Z_RLE:iA,Z_FIXED:sA,Z_DEFAULT_STRATEGY:nA,Z_UNKNOWN:oA,Z_DEFLATED:rA}=P,cA=258,aA=262,hA=42,BA=113,gA=666,lA=(A,e)=>(A.msg=k[e],e),EA=A=>2*A-(A>4?9:0),QA=A=>{let e=A.length;for(;--e>=0;)A[e]=0},MA=A=>{let e,t,i,s=A.w_size;e=A.hash_size,i=e;do{t=A.head[--i],A.head[i]=t>=s?t-s:0}while(--e);e=s,i=e;do{t=A.prev[--i],A.prev[i]=t>=s?t-s:0}while(--e)};let uA=(A,e,t)=>(e<{const e=A.state;let t=e.pending;t>A.avail_out&&(t=A.avail_out),0!==t&&(A.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),A.next_out),A.next_out+=t,e.pending_out+=t,A.total_out+=t,A.avail_out-=t,e.pending-=t,0===e.pending&&(e.pending_out=0))},dA=(A,e)=>{H(A,A.block_start>=0?A.block_start:-1,A.strstart-A.block_start,e),A.block_start=A.strstart,wA(A.strm)},CA=(A,e)=>{A.pending_buf[A.pending++]=e},xA=(A,e)=>{A.pending_buf[A.pending++]=e>>>8&255,A.pending_buf[A.pending++]=255&e},FA=(A,e,t,i)=>{let s=A.avail_in;return s>i&&(s=i),0===s?0:(A.avail_in-=s,e.set(A.input.subarray(A.next_in,A.next_in+s),t),1===A.state.wrap?A.adler=U(A.adler,e,s,t):2===A.state.wrap&&(A.adler=b(A.adler,e,s,t)),A.next_in+=s,A.total_in+=s,s)},pA=(A,e)=>{let t,i,s=A.max_chain_length,n=A.strstart,o=A.prev_length,r=A.nice_match;const c=A.strstart>A.w_size-aA?A.strstart-(A.w_size-aA):0,a=A.window,h=A.w_mask,B=A.prev,g=A.strstart+cA;let l=a[n+o-1],E=a[n+o];A.prev_length>=A.good_match&&(s>>=2),r>A.lookahead&&(r=A.lookahead);do{if(t=e,a[t+o]===E&&a[t+o-1]===l&&a[t]===a[n]&&a[++t]===a[n+1]){n+=2,t++;do{}while(a[++n]===a[++t]&&a[++n]===a[++t]&&a[++n]===a[++t]&&a[++n]===a[++t]&&a[++n]===a[++t]&&a[++n]===a[++t]&&a[++n]===a[++t]&&a[++n]===a[++t]&&no){if(A.match_start=e,o=i,i>=r)break;l=a[n+o-1],E=a[n+o]}}}while((e=B[e&h])>c&&0!=--s);return o<=A.lookahead?o:A.lookahead},IA=A=>{const e=A.w_size;let t,i,s;do{if(i=A.window_size-A.lookahead-A.strstart,A.strstart>=e+(e-aA)&&(A.window.set(A.window.subarray(e,e+e-i),0),A.match_start-=e,A.strstart-=e,A.block_start-=e,A.insert>A.strstart&&(A.insert=A.strstart),MA(A),i+=e),0===A.strm.avail_in)break;if(t=FA(A.strm,A.window,A.strstart+A.lookahead,i),A.lookahead+=t,A.lookahead+A.insert>=3)for(s=A.strstart-A.insert,A.ins_h=A.window[s],A.ins_h=uA(A,A.ins_h,A.window[s+1]);A.insert&&(A.ins_h=uA(A,A.ins_h,A.window[s+3-1]),A.prev[s&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=s,s++,A.insert--,!(A.lookahead+A.insert<3)););}while(A.lookahead{let t,i,s,n=A.pending_buf_size-5>A.w_size?A.w_size:A.pending_buf_size-5,o=0,r=A.strm.avail_in;do{if(t=65535,s=A.bi_valid+42>>3,A.strm.avail_outi+A.strm.avail_in&&(t=i+A.strm.avail_in),t>s&&(t=s),t>8,A.pending_buf[A.pending-2]=~t,A.pending_buf[A.pending-1]=~t>>8,wA(A.strm),i&&(i>t&&(i=t),A.strm.output.set(A.window.subarray(A.block_start,A.block_start+i),A.strm.next_out),A.strm.next_out+=i,A.strm.avail_out-=i,A.strm.total_out+=i,A.block_start+=i,t-=i),t&&(FA(A.strm,A.strm.output,A.strm.next_out,t),A.strm.next_out+=t,A.strm.avail_out-=t,A.strm.total_out+=t)}while(0===o);return r-=A.strm.avail_in,r&&(r>=A.w_size?(A.matches=2,A.window.set(A.strm.input.subarray(A.strm.next_in-A.w_size,A.strm.next_in),0),A.strstart=A.w_size,A.insert=A.strstart):(A.window_size-A.strstart<=r&&(A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,A.insert>A.strstart&&(A.insert=A.strstart)),A.window.set(A.strm.input.subarray(A.strm.next_in-r,A.strm.next_in),A.strstart),A.strstart+=r,A.insert+=r>A.w_size-A.insert?A.w_size-A.insert:r),A.block_start=A.strstart),A.high_waters&&A.block_start>=A.w_size&&(A.block_start-=A.w_size,A.strstart-=A.w_size,A.window.set(A.window.subarray(A.w_size,A.w_size+A.strstart),0),A.matches<2&&A.matches++,s+=A.w_size,A.insert>A.strstart&&(A.insert=A.strstart)),s>A.strm.avail_in&&(s=A.strm.avail_in),s&&(FA(A.strm,A.window,A.strstart,s),A.strstart+=s,A.insert+=s>A.w_size-A.insert?A.w_size-A.insert:s),A.high_water>3,s=A.pending_buf_size-s>65535?65535:A.pending_buf_size-s,n=s>A.w_size?A.w_size:s,i=A.strstart-A.block_start,(i>=n||(i||e===X)&&e!==O&&0===A.strm.avail_in&&i<=s)&&(t=i>s?s:i,o=e===X&&0===A.strm.avail_in&&t===i?1:0,v(A,A.block_start,t,o),A.block_start+=t,wA(A.strm)),o?3:1)},YA=(A,e)=>{let t,i;for(;;){if(A.lookahead=3&&(A.ins_h=uA(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),0!==t&&A.strstart-t<=A.w_size-aA&&(A.match_length=pA(A,t)),A.match_length>=3)if(i=S(A,A.strstart-A.match_start,A.match_length-3),A.lookahead-=A.match_length,A.match_length<=A.max_lazy_match&&A.lookahead>=3){A.match_length--;do{A.strstart++,A.ins_h=uA(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart}while(0!=--A.match_length);A.strstart++}else A.strstart+=A.match_length,A.match_length=0,A.ins_h=A.window[A.strstart],A.ins_h=uA(A,A.ins_h,A.window[A.strstart+1]);else i=S(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++;if(i&&(dA(A,!1),0===A.strm.avail_out))return 1}return A.insert=A.strstart<2?A.strstart:2,e===X?(dA(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(dA(A,!1),0===A.strm.avail_out)?1:2},DA=(A,e)=>{let t,i,s;for(;;){if(A.lookahead=3&&(A.ins_h=uA(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart),A.prev_length=A.match_length,A.prev_match=A.match_start,A.match_length=2,0!==t&&A.prev_length4096)&&(A.match_length=2)),A.prev_length>=3&&A.match_length<=A.prev_length){s=A.strstart+A.lookahead-3,i=S(A,A.strstart-1-A.prev_match,A.prev_length-3),A.lookahead-=A.prev_length-1,A.prev_length-=2;do{++A.strstart<=s&&(A.ins_h=uA(A,A.ins_h,A.window[A.strstart+3-1]),t=A.prev[A.strstart&A.w_mask]=A.head[A.ins_h],A.head[A.ins_h]=A.strstart)}while(0!=--A.prev_length);if(A.match_available=0,A.match_length=2,A.strstart++,i&&(dA(A,!1),0===A.strm.avail_out))return 1}else if(A.match_available){if(i=S(A,0,A.window[A.strstart-1]),i&&dA(A,!1),A.strstart++,A.lookahead--,0===A.strm.avail_out)return 1}else A.match_available=1,A.strstart++,A.lookahead--}return A.match_available&&(i=S(A,0,A.window[A.strstart-1]),A.match_available=0),A.insert=A.strstart<2?A.strstart:2,e===X?(dA(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(dA(A,!1),0===A.strm.avail_out)?1:2};function mA(A,e,t,i,s){this.good_length=A,this.max_lazy=e,this.nice_length=t,this.max_chain=i,this.func=s}const JA=[new mA(0,0,0,0,fA),new mA(4,4,8,4,YA),new mA(4,5,16,8,YA),new mA(4,6,32,32,YA),new mA(4,4,16,16,DA),new mA(8,16,32,32,DA),new mA(8,16,128,128,DA),new mA(8,32,128,256,DA),new mA(32,128,258,1024,DA),new mA(32,258,258,4096,DA)];function NA(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=rA,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),QA(this.dyn_ltree),QA(this.dyn_dtree),QA(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),QA(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),QA(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const yA=A=>{if(!A)return 1;const e=A.state;return!e||e.strm!==A||e.status!==hA&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==BA&&e.status!==gA?1:0},zA=A=>{if(yA(A))return lA(A,Z);A.total_in=A.total_out=0,A.data_type=oA;const e=A.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?hA:BA,A.adler=2===e.wrap?0:1,e.last_flush=-2,G(e),V},TA=A=>{const e=zA(A);var t;return e===V&&((t=A.state).window_size=2*t.w_size,QA(t.head),t.max_lazy_match=JA[t.level].max_lazy,t.good_match=JA[t.level].good_length,t.nice_match=JA[t.level].nice_length,t.max_chain_length=JA[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=2,t.match_available=0,t.ins_h=0),e},UA=(A,e,t,i,s,n)=>{if(!A)return Z;let o=1;if(e===AA&&(e=6),i<0?(o=0,i=-i):i>15&&(o=2,i-=16),s<1||s>9||t!==rA||i<8||i>15||e<0||e>9||n<0||n>sA||8===i&&1!==o)return lA(A,Z);8===i&&(i=9);const r=new NA;return A.state=r,r.strm=A,r.status=hA,r.wrap=o,r.gzhead=null,r.w_bits=i,r.w_size=1<yA(A)||2!==A.state.wrap?Z:(A.state.gzhead=e,V),kA=(A,e)=>{if(yA(A)||e>L||e<0)return A?lA(A,Z):Z;const t=A.state;if(!A.output||0!==A.avail_in&&!A.input||t.status===gA&&e!==X)return lA(A,0===A.avail_out?$:Z);const i=t.last_flush;if(t.last_flush=e,0!==t.pending){if(wA(A),0===A.avail_out)return t.last_flush=-1,V}else if(0===A.avail_in&&EA(e)<=EA(i)&&e!==X)return lA(A,$);if(t.status===gA&&0!==A.avail_in)return lA(A,$);if(t.status===hA&&0===t.wrap&&(t.status=BA),t.status===hA){let e=rA+(t.w_bits-8<<4)<<8,i=-1;if(i=t.strategy>=tA||t.level<2?0:t.level<6?1:6===t.level?2:3,e|=i<<6,0!==t.strstart&&(e|=32),e+=31-e%31,xA(t,e),0!==t.strstart&&(xA(t,A.adler>>>16),xA(t,65535&A.adler)),A.adler=1,t.status=BA,wA(A),0!==t.pending)return t.last_flush=-1,V}if(57===t.status)if(A.adler=0,CA(t,31),CA(t,139),CA(t,8),t.gzhead)CA(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),CA(t,255&t.gzhead.time),CA(t,t.gzhead.time>>8&255),CA(t,t.gzhead.time>>16&255),CA(t,t.gzhead.time>>24&255),CA(t,9===t.level?2:t.strategy>=tA||t.level<2?4:0),CA(t,255&t.gzhead.os),t.gzhead.extra&&t.gzhead.extra.length&&(CA(t,255&t.gzhead.extra.length),CA(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(A.adler=b(A.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=69;else if(CA(t,0),CA(t,0),CA(t,0),CA(t,0),CA(t,0),CA(t,9===t.level?2:t.strategy>=tA||t.level<2?4:0),CA(t,3),t.status=BA,wA(A),0!==t.pending)return t.last_flush=-1,V;if(69===t.status){if(t.gzhead.extra){let e=t.pending,i=(65535&t.gzhead.extra.length)-t.gzindex;for(;t.pending+i>t.pending_buf_size;){let s=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+s),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>e&&(A.adler=b(A.adler,t.pending_buf,t.pending-e,e)),t.gzindex+=s,wA(A),0!==t.pending)return t.last_flush=-1,V;e=0,i-=s}let s=new Uint8Array(t.gzhead.extra);t.pending_buf.set(s.subarray(t.gzindex,t.gzindex+i),t.pending),t.pending+=i,t.gzhead.hcrc&&t.pending>e&&(A.adler=b(A.adler,t.pending_buf,t.pending-e,e)),t.gzindex=0}t.status=73}if(73===t.status){if(t.gzhead.name){let e,i=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(A.adler=b(A.adler,t.pending_buf,t.pending-i,i)),wA(A),0!==t.pending)return t.last_flush=-1,V;i=0}e=t.gzindexi&&(A.adler=b(A.adler,t.pending_buf,t.pending-i,i)),t.gzindex=0}t.status=91}if(91===t.status){if(t.gzhead.comment){let e,i=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(A.adler=b(A.adler,t.pending_buf,t.pending-i,i)),wA(A),0!==t.pending)return t.last_flush=-1,V;i=0}e=t.gzindexi&&(A.adler=b(A.adler,t.pending_buf,t.pending-i,i))}t.status=103}if(103===t.status){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(wA(A),0!==t.pending))return t.last_flush=-1,V;CA(t,255&A.adler),CA(t,A.adler>>8&255),A.adler=0}if(t.status=BA,wA(A),0!==t.pending)return t.last_flush=-1,V}if(0!==A.avail_in||0!==t.lookahead||e!==O&&t.status!==gA){let i=0===t.level?fA(t,e):t.strategy===tA?((A,e)=>{let t;for(;;){if(0===A.lookahead&&(IA(A),0===A.lookahead)){if(e===O)return 1;break}if(A.match_length=0,t=S(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++,t&&(dA(A,!1),0===A.strm.avail_out))return 1}return A.insert=0,e===X?(dA(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(dA(A,!1),0===A.strm.avail_out)?1:2})(t,e):t.strategy===iA?((A,e)=>{let t,i,s,n;const o=A.window;for(;;){if(A.lookahead<=cA){if(IA(A),A.lookahead<=cA&&e===O)return 1;if(0===A.lookahead)break}if(A.match_length=0,A.lookahead>=3&&A.strstart>0&&(s=A.strstart-1,i=o[s],i===o[++s]&&i===o[++s]&&i===o[++s])){n=A.strstart+cA;do{}while(i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&sA.lookahead&&(A.match_length=A.lookahead)}if(A.match_length>=3?(t=S(A,1,A.match_length-3),A.lookahead-=A.match_length,A.strstart+=A.match_length,A.match_length=0):(t=S(A,0,A.window[A.strstart]),A.lookahead--,A.strstart++),t&&(dA(A,!1),0===A.strm.avail_out))return 1}return A.insert=0,e===X?(dA(A,!0),0===A.strm.avail_out?3:4):A.sym_next&&(dA(A,!1),0===A.strm.avail_out)?1:2})(t,e):JA[t.level].func(t,e);if(3!==i&&4!==i||(t.status=gA),1===i||3===i)return 0===A.avail_out&&(t.last_flush=-1),V;if(2===i&&(e===_?j(t):e!==L&&(v(t,0,0,!1),e===W&&(QA(t.head),0===t.lookahead&&(t.strstart=0,t.block_start=0,t.insert=0))),wA(A),0===A.avail_out))return t.last_flush=-1,V}return e!==X?V:t.wrap<=0?K:(2===t.wrap?(CA(t,255&A.adler),CA(t,A.adler>>8&255),CA(t,A.adler>>16&255),CA(t,A.adler>>24&255),CA(t,255&A.total_in),CA(t,A.total_in>>8&255),CA(t,A.total_in>>16&255),CA(t,A.total_in>>24&255)):(xA(t,A.adler>>>16),xA(t,65535&A.adler)),wA(A),t.wrap>0&&(t.wrap=-t.wrap),0!==t.pending?V:K)},PA=A=>{if(yA(A))return Z;const e=A.state.status;return A.state=null,e===BA?lA(A,q):V},GA=(A,e)=>{let t=e.length;if(yA(A))return Z;const i=A.state,s=i.wrap;if(2===s||1===s&&i.status!==hA||i.lookahead)return Z;if(1===s&&(A.adler=U(A.adler,e,t,0)),i.wrap=0,t>=i.w_size){0===s&&(QA(i.head),i.strstart=0,i.block_start=0,i.insert=0);let A=new Uint8Array(i.w_size);A.set(e.subarray(t-i.w_size,t),0),e=A,t=i.w_size}const n=A.avail_in,o=A.next_in,r=A.input;for(A.avail_in=t,A.next_in=0,A.input=e,IA(i);i.lookahead>=3;){let A=i.strstart,e=i.lookahead-2;do{i.ins_h=uA(i,i.ins_h,i.window[A+3-1]),i.prev[A&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=A,A++}while(--e);i.strstart=A,i.lookahead=2,IA(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,A.next_in=o,A.input=r,A.avail_in=n,i.wrap=s,V};const vA=(A,e)=>Object.prototype.hasOwnProperty.call(A,e);var HA=function(A){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const t=e.shift();if(t){if("object"!=typeof t)throw new TypeError(t+"must be non-object");for(const e in t)vA(t,e)&&(A[e]=t[e])}}return A},SA=A=>{let e=0;for(let t=0,i=A.length;t=252?6:A>=248?5:A>=240?4:A>=224?3:A>=192?2:1;OA[254]=OA[254]=1;var _A=A=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);let e,t,i,s,n,o=A.length,r=0;for(s=0;s>>6,e[n++]=128|63&t):t<65536?(e[n++]=224|t>>>12,e[n++]=128|t>>>6&63,e[n++]=128|63&t):(e[n++]=240|t>>>18,e[n++]=128|t>>>12&63,e[n++]=128|t>>>6&63,e[n++]=128|63&t);return e},WA=(A,e)=>{const t=e||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,e));let i,s;const n=new Array(2*t);for(s=0,i=0;i4)n[s++]=65533,i+=o-1;else{for(e&=2===o?31:3===o?15:7;o>1&&i1?n[s++]=65533:e<65536?n[s++]=e:(e-=65536,n[s++]=55296|e>>10&1023,n[s++]=56320|1023&e)}}return((A,e)=>{if(e<65534&&A.subarray&&jA)return String.fromCharCode.apply(null,A.length===e?A:A.subarray(0,e));let t="";for(let i=0;i{(e=e||A.length)>A.length&&(e=A.length);let t=e-1;for(;t>=0&&128==(192&A[t]);)t--;return t<0||0===t?e:t+OA[A[t]]>e?t:e},LA=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const VA=Object.prototype.toString,{Z_NO_FLUSH:KA,Z_SYNC_FLUSH:ZA,Z_FULL_FLUSH:qA,Z_FINISH:$A,Z_OK:Ae,Z_STREAM_END:ee,Z_DEFAULT_COMPRESSION:te,Z_DEFAULT_STRATEGY:ie,Z_DEFLATED:se}=P;function ne(A){this.options=HA({level:te,method:se,chunkSize:16384,windowBits:15,memLevel:8,strategy:ie},A||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new LA,this.strm.avail_out=0;let t=RA(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==Ae)throw new Error(k[t]);if(e.header&&bA(this.strm,e.header),e.dictionary){let A;if(A="string"==typeof e.dictionary?_A(e.dictionary):"[object ArrayBuffer]"===VA.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,t=GA(this.strm,A),t!==Ae)throw new Error(k[t]);this._dict_set=!0}}function oe(A,e){const t=new ne(e);if(t.push(A,!0),t.err)throw t.msg||k[t.err];return t.result}ne.prototype.push=function(A,e){const t=this.strm,i=this.options.chunkSize;let s,n;if(this.ended)return!1;for(n=e===~~e?e:!0===e?$A:KA,"string"==typeof A?t.input=_A(A):"[object ArrayBuffer]"===VA.call(A)?t.input=new Uint8Array(A):t.input=A,t.next_in=0,t.avail_in=t.input.length;;)if(0===t.avail_out&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),(n===ZA||n===qA)&&t.avail_out<=6)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else{if(s=kA(t,n),s===ee)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),s=PA(this.strm),this.onEnd(s),this.ended=!0,s===Ae;if(0!==t.avail_out){if(n>0&&t.next_out>0)this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;else if(0===t.avail_in)break}else this.onData(t.output)}return!0},ne.prototype.onData=function(A){this.chunks.push(A)},ne.prototype.onEnd=function(A){A===Ae&&(this.result=SA(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var re={Deflate:ne,deflate:oe,deflateRaw:function(A,e){return(e=e||{}).raw=!0,oe(A,e)},gzip:function(A,e){return(e=e||{}).gzip=!0,oe(A,e)}};const ce=16209;var ae=function(A,e){let t,i,s,n,o,r,c,a,h,B,g,l,E,Q,M,u,w,d,C,x,F,p,I,f;const Y=A.state;t=A.next_in,I=A.input,i=t+(A.avail_in-5),s=A.next_out,f=A.output,n=s-(e-A.avail_out),o=s+(A.avail_out-257),r=Y.dmax,c=Y.wsize,a=Y.whave,h=Y.wnext,B=Y.window,g=Y.hold,l=Y.bits,E=Y.lencode,Q=Y.distcode,M=(1<>>24,g>>>=d,l-=d,d=w>>>16&255,0===d)f[s++]=65535&w;else{if(!(16&d)){if(!(64&d)){w=E[(65535&w)+(g&(1<>>=d,l-=d),l<15&&(g+=I[t++]<>>24,g>>>=d,l-=d,d=w>>>16&255,!(16&d)){if(!(64&d)){w=Q[(65535&w)+(g&(1<r){A.msg="invalid distance too far back",Y.mode=ce;break A}if(g>>>=d,l-=d,d=s-n,x>d){if(d=x-d,d>a&&Y.sane){A.msg="invalid distance too far back",Y.mode=ce;break A}if(F=0,p=B,0===h){if(F+=c-d,d2;)f[s++]=p[F++],f[s++]=p[F++],f[s++]=p[F++],C-=3;C&&(f[s++]=p[F++],C>1&&(f[s++]=p[F++]))}else{F=s-x;do{f[s++]=f[F++],f[s++]=f[F++],f[s++]=f[F++],C-=3}while(C>2);C&&(f[s++]=f[F++],C>1&&(f[s++]=f[F++]))}break}}break}}while(t>3,t-=C,l-=C<<3,g&=(1<{const c=r.bits;let a,h,B,g,l,E,Q=0,M=0,u=0,w=0,d=0,C=0,x=0,F=0,p=0,I=0,f=null;const Y=new Uint16Array(16),D=new Uint16Array(16);let m,J,N,y=null;for(Q=0;Q<=15;Q++)Y[Q]=0;for(M=0;M=1&&0===Y[w];w--);if(d>w&&(d=w),0===w)return s[n++]=20971520,s[n++]=20971520,r.bits=1,0;for(u=1;u0&&(0===A||1!==w))return-1;for(D[1]=0,Q=1;Q<15;Q++)D[Q+1]=D[Q]+Y[Q];for(M=0;M852||2===A&&p>592)return 1;for(;;){m=Q-x,o[M]+1=E?(J=y[o[M]-E],N=f[o[M]-E]):(J=96,N=0),a=1<>x)+h]=m<<24|J<<16|N}while(0!==h);for(a=1<>=1;if(0!==a?(I&=a-1,I+=a):I=0,M++,0==--Y[Q]){if(Q===w)break;Q=e[t+o[M]]}if(Q>d&&(I&g)!==B){for(0===x&&(x=d),l+=u,C=Q-x,F=1<852||2===A&&p>592)return 1;B=I&g,s[B]=d<<24|C<<16|l-n}}return 0!==I&&(s[l+I]=Q-x<<24|64<<16),r.bits=d,0};const{Z_FINISH:Qe,Z_BLOCK:Me,Z_TREES:ue,Z_OK:we,Z_STREAM_END:de,Z_NEED_DICT:Ce,Z_STREAM_ERROR:xe,Z_DATA_ERROR:Fe,Z_MEM_ERROR:pe,Z_BUF_ERROR:Ie,Z_DEFLATED:fe}=P,Ye=16180,De=16190,me=16191,Je=16192,Ne=16194,ye=16199,ze=16200,Te=16206,Ue=16209,Re=A=>(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24);function be(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const ke=A=>{if(!A)return 1;const e=A.state;return!e||e.strm!==A||e.mode16211?1:0},Pe=A=>{if(ke(A))return xe;const e=A.state;return A.total_in=A.total_out=e.total=0,A.msg="",e.wrap&&(A.adler=1&e.wrap),e.mode=Ye,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,we},Ge=A=>{if(ke(A))return xe;const e=A.state;return e.wsize=0,e.whave=0,e.wnext=0,Pe(A)},ve=(A,e)=>{let t;if(ke(A))return xe;const i=A.state;return e<0?(t=0,e=-e):(t=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?xe:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,Ge(A))},He=(A,e)=>{if(!A)return xe;const t=new be;A.state=t,t.strm=A,t.window=null,t.mode=Ye;const i=ve(A,e);return i!==we&&(A.state=null),i};let Se,je,Oe=!0;const _e=A=>{if(Oe){Se=new Int32Array(512),je=new Int32Array(32);let e=0;for(;e<144;)A.lens[e++]=8;for(;e<256;)A.lens[e++]=9;for(;e<280;)A.lens[e++]=7;for(;e<288;)A.lens[e++]=8;for(Ee(1,A.lens,0,288,Se,0,A.work,{bits:9}),e=0;e<32;)A.lens[e++]=5;Ee(2,A.lens,0,32,je,0,A.work,{bits:5}),Oe=!1}A.lencode=Se,A.lenbits=9,A.distcode=je,A.distbits=5},We=(A,e,t,i)=>{let s;const n=A.state;return null===n.window&&(n.wsize=1<=n.wsize?(n.window.set(e.subarray(t-n.wsize,t),0),n.wnext=0,n.whave=n.wsize):(s=n.wsize-n.wnext,s>i&&(s=i),n.window.set(e.subarray(t-i,t-i+s),n.wnext),(i-=s)?(n.window.set(e.subarray(t-i,t),0),n.wnext=i,n.whave=n.wsize):(n.wnext+=s,n.wnext===n.wsize&&(n.wnext=0),n.whave{let t,i,s,n,o,r,c,a,h,B,g,l,E,Q,M,u,w,d,C,x,F,p,I=0;const f=new Uint8Array(4);let Y,D;const m=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ke(A)||!A.output||!A.input&&0!==A.avail_in)return xe;t=A.state,t.mode===me&&(t.mode=Je),o=A.next_out,s=A.output,c=A.avail_out,n=A.next_in,i=A.input,r=A.avail_in,a=t.hold,h=t.bits,B=r,g=c,p=we;A:for(;;)switch(t.mode){case Ye:if(0===t.wrap){t.mode=Je;break}for(;h<16;){if(0===r)break A;r--,a+=i[n++]<>>8&255,t.check=b(t.check,f,2,0),a=0,h=0,t.mode=16181;break}if(t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&a)<<8)+(a>>8))%31){A.msg="incorrect header check",t.mode=Ue;break}if((15&a)!==fe){A.msg="unknown compression method",t.mode=Ue;break}if(a>>>=4,h-=4,F=8+(15&a),0===t.wbits&&(t.wbits=F),F>15||F>t.wbits){A.msg="invalid window size",t.mode=Ue;break}t.dmax=1<>8&1),512&t.flags&&4&t.wrap&&(f[0]=255&a,f[1]=a>>>8&255,t.check=b(t.check,f,2,0)),a=0,h=0,t.mode=16182;case 16182:for(;h<32;){if(0===r)break A;r--,a+=i[n++]<>>8&255,f[2]=a>>>16&255,f[3]=a>>>24&255,t.check=b(t.check,f,4,0)),a=0,h=0,t.mode=16183;case 16183:for(;h<16;){if(0===r)break A;r--,a+=i[n++]<>8),512&t.flags&&4&t.wrap&&(f[0]=255&a,f[1]=a>>>8&255,t.check=b(t.check,f,2,0)),a=0,h=0,t.mode=16184;case 16184:if(1024&t.flags){for(;h<16;){if(0===r)break A;r--,a+=i[n++]<>>8&255,t.check=b(t.check,f,2,0)),a=0,h=0}else t.head&&(t.head.extra=null);t.mode=16185;case 16185:if(1024&t.flags&&(l=t.length,l>r&&(l=r),l&&(t.head&&(F=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(n,n+l),F)),512&t.flags&&4&t.wrap&&(t.check=b(t.check,i,l,n)),r-=l,n+=l,t.length-=l),t.length))break A;t.length=0,t.mode=16186;case 16186:if(2048&t.flags){if(0===r)break A;l=0;do{F=i[n+l++],t.head&&F&&t.length<65536&&(t.head.name+=String.fromCharCode(F))}while(F&&l>9&1,t.head.done=!0),A.adler=t.check=0,t.mode=me;break;case 16189:for(;h<32;){if(0===r)break A;r--,a+=i[n++]<>>=7&h,h-=7&h,t.mode=Te;break}for(;h<3;){if(0===r)break A;r--,a+=i[n++]<>>=1,h-=1,3&a){case 0:t.mode=16193;break;case 1:if(_e(t),t.mode=ye,e===ue){a>>>=2,h-=2;break A}break;case 2:t.mode=16196;break;case 3:A.msg="invalid block type",t.mode=Ue}a>>>=2,h-=2;break;case 16193:for(a>>>=7&h,h-=7&h;h<32;){if(0===r)break A;r--,a+=i[n++]<>>16^65535)){A.msg="invalid stored block lengths",t.mode=Ue;break}if(t.length=65535&a,a=0,h=0,t.mode=Ne,e===ue)break A;case Ne:t.mode=16195;case 16195:if(l=t.length,l){if(l>r&&(l=r),l>c&&(l=c),0===l)break A;s.set(i.subarray(n,n+l),o),r-=l,n+=l,c-=l,o+=l,t.length-=l;break}t.mode=me;break;case 16196:for(;h<14;){if(0===r)break A;r--,a+=i[n++]<>>=5,h-=5,t.ndist=1+(31&a),a>>>=5,h-=5,t.ncode=4+(15&a),a>>>=4,h-=4,t.nlen>286||t.ndist>30){A.msg="too many length or distance symbols",t.mode=Ue;break}t.have=0,t.mode=16197;case 16197:for(;t.have>>=3,h-=3}for(;t.have<19;)t.lens[m[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,Y={bits:t.lenbits},p=Ee(0,t.lens,0,19,t.lencode,0,t.work,Y),t.lenbits=Y.bits,p){A.msg="invalid code lengths set",t.mode=Ue;break}t.have=0,t.mode=16198;case 16198:for(;t.have>>24,u=I>>>16&255,w=65535&I,!(M<=h);){if(0===r)break A;r--,a+=i[n++]<>>=M,h-=M,t.lens[t.have++]=w;else{if(16===w){for(D=M+2;h>>=M,h-=M,0===t.have){A.msg="invalid bit length repeat",t.mode=Ue;break}F=t.lens[t.have-1],l=3+(3&a),a>>>=2,h-=2}else if(17===w){for(D=M+3;h>>=M,h-=M,F=0,l=3+(7&a),a>>>=3,h-=3}else{for(D=M+7;h>>=M,h-=M,F=0,l=11+(127&a),a>>>=7,h-=7}if(t.have+l>t.nlen+t.ndist){A.msg="invalid bit length repeat",t.mode=Ue;break}for(;l--;)t.lens[t.have++]=F}}if(t.mode===Ue)break;if(0===t.lens[256]){A.msg="invalid code -- missing end-of-block",t.mode=Ue;break}if(t.lenbits=9,Y={bits:t.lenbits},p=Ee(1,t.lens,0,t.nlen,t.lencode,0,t.work,Y),t.lenbits=Y.bits,p){A.msg="invalid literal/lengths set",t.mode=Ue;break}if(t.distbits=6,t.distcode=t.distdyn,Y={bits:t.distbits},p=Ee(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,Y),t.distbits=Y.bits,p){A.msg="invalid distances set",t.mode=Ue;break}if(t.mode=ye,e===ue)break A;case ye:t.mode=ze;case ze:if(r>=6&&c>=258){A.next_out=o,A.avail_out=c,A.next_in=n,A.avail_in=r,t.hold=a,t.bits=h,ae(A,g),o=A.next_out,s=A.output,c=A.avail_out,n=A.next_in,i=A.input,r=A.avail_in,a=t.hold,h=t.bits,t.mode===me&&(t.back=-1);break}for(t.back=0;I=t.lencode[a&(1<>>24,u=I>>>16&255,w=65535&I,!(M<=h);){if(0===r)break A;r--,a+=i[n++]<>d)],M=I>>>24,u=I>>>16&255,w=65535&I,!(d+M<=h);){if(0===r)break A;r--,a+=i[n++]<>>=d,h-=d,t.back+=d}if(a>>>=M,h-=M,t.back+=M,t.length=w,0===u){t.mode=16205;break}if(32&u){t.back=-1,t.mode=me;break}if(64&u){A.msg="invalid literal/length code",t.mode=Ue;break}t.extra=15&u,t.mode=16201;case 16201:if(t.extra){for(D=t.extra;h>>=t.extra,h-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=16202;case 16202:for(;I=t.distcode[a&(1<>>24,u=I>>>16&255,w=65535&I,!(M<=h);){if(0===r)break A;r--,a+=i[n++]<>d)],M=I>>>24,u=I>>>16&255,w=65535&I,!(d+M<=h);){if(0===r)break A;r--,a+=i[n++]<>>=d,h-=d,t.back+=d}if(a>>>=M,h-=M,t.back+=M,64&u){A.msg="invalid distance code",t.mode=Ue;break}t.offset=w,t.extra=15&u,t.mode=16203;case 16203:if(t.extra){for(D=t.extra;h>>=t.extra,h-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){A.msg="invalid distance too far back",t.mode=Ue;break}t.mode=16204;case 16204:if(0===c)break A;if(l=g-c,t.offset>l){if(l=t.offset-l,l>t.whave&&t.sane){A.msg="invalid distance too far back",t.mode=Ue;break}l>t.wnext?(l-=t.wnext,E=t.wsize-l):E=t.wnext-l,l>t.length&&(l=t.length),Q=t.window}else Q=s,E=o-t.offset,l=t.length;l>c&&(l=c),c-=l,t.length-=l;do{s[o++]=Q[E++]}while(--l);0===t.length&&(t.mode=ze);break;case 16205:if(0===c)break A;s[o++]=t.length,c--,t.mode=ze;break;case Te:if(t.wrap){for(;h<32;){if(0===r)break A;r--,a|=i[n++]<{if(ke(A))return xe;let e=A.state;return e.window&&(e.window=null),A.state=null,we},Ze=(A,e)=>{if(ke(A))return xe;const t=A.state;return 2&t.wrap?(t.head=e,e.done=!1,we):xe},qe=(A,e)=>{const t=e.length;let i,s,n;return ke(A)?xe:(i=A.state,0!==i.wrap&&i.mode!==De?xe:i.mode===De&&(s=1,s=U(s,e,t,0),s!==i.check)?Fe:(n=We(A,e,t,t),n?(i.mode=16210,pe):(i.havedict=1,we)))},$e=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const At=Object.prototype.toString,{Z_NO_FLUSH:et,Z_FINISH:tt,Z_OK:it,Z_STREAM_END:st,Z_NEED_DICT:nt,Z_STREAM_ERROR:ot,Z_DATA_ERROR:rt,Z_MEM_ERROR:ct}=P;function at(A){this.options=HA({chunkSize:65536,windowBits:15,to:""},A||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||A&&A.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&!(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new LA,this.strm.avail_out=0;let t=Le(this.strm,e.windowBits);if(t!==it)throw new Error(k[t]);if(this.header=new $e,Ze(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=_A(e.dictionary):"[object ArrayBuffer]"===At.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=qe(this.strm,e.dictionary),t!==it)))throw new Error(k[t])}function ht(A,e){const t=new at(e);if(t.push(A),t.err)throw t.msg||k[t.err];return t.result}at.prototype.push=function(A,e){const t=this.strm,i=this.options.chunkSize,s=this.options.dictionary;let n,o,r;if(this.ended)return!1;for(o=e===~~e?e:!0===e?tt:et,"[object ArrayBuffer]"===At.call(A)?t.input=new Uint8Array(A):t.input=A,t.next_in=0,t.avail_in=t.input.length;;){for(0===t.avail_out&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),n=Ve(t,o),n===nt&&s&&(n=qe(t,s),n===it?n=Ve(t,o):n===rt&&(n=nt));t.avail_in>0&&n===st&&t.state.wrap>0&&0!==A[t.next_in];)Xe(t),n=Ve(t,o);switch(n){case ot:case rt:case nt:case ct:return this.onEnd(n),this.ended=!0,!1}if(r=t.avail_out,t.next_out&&(0===t.avail_out||n===st))if("string"===this.options.to){let A=XA(t.output,t.next_out),e=t.next_out-A,s=WA(t.output,A);t.next_out=e,t.avail_out=i-e,e&&t.output.set(t.output.subarray(A,A+e),0),this.onData(s)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(n!==it||0!==r){if(n===st)return n=Ke(this.strm),this.onEnd(n),this.ended=!0,!0;if(0===t.avail_in)break}}return!0},at.prototype.onData=function(A){this.chunks.push(A)},at.prototype.onEnd=function(A){A===it&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=SA(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var Bt={Inflate:at,inflate:ht,inflateRaw:function(A,e){return(e=e||{}).raw=!0,ht(A,e)},ungzip:ht};const{Deflate:gt,deflate:lt,deflateRaw:Et,gzip:Qt}=re,{Inflate:Mt,inflate:ut,inflateRaw:wt,ungzip:dt}=Bt;var Ct=gt,xt=lt,Ft=Et,pt=Qt,It=Mt,ft=ut,Yt=wt,Dt=dt,mt=P,Jt={Deflate:Ct,deflate:xt,deflateRaw:Ft,gzip:pt,Inflate:It,inflate:ft,inflateRaw:Yt,ungzip:Dt,constants:mt};A.Deflate=Ct,A.Inflate=It,A.constants=mt,A.default=Jt,A.deflate=xt,A.deflateRaw=Ft,A.gzip=pt,A.inflate=ft,A.inflateRaw=Yt,A.ungzip=Dt,Object.defineProperty(A,"__esModule",{value:!0})}));var Yx=Object.freeze({__proto__:null});let Dx=window.pako||Yx;Dx.inflate||(Dx=Dx.default);const mx=function(){const A=new Float32Array(3);return function(e){return A[0]=e[0]/255,A[1]=e[1]/255,A[2]=e[2]/255,A}}();const Jx={version:1,parse:function(A,e,t,i,s,n){const o=function(A){return{positions:A[0],normals:A[1],indices:A[2],edgeIndices:A[3],meshPositions:A[4],meshIndices:A[5],meshEdgesIndices:A[6],meshColors:A[7],entityIDs:A[8],entityMeshes:A[9],entityIsObjects:A[10],positionsDecodeMatrix:A[11]}}(t),r=function(A){return{positions:new Uint16Array(Dx.inflate(A.positions).buffer),normals:new Int8Array(Dx.inflate(A.normals).buffer),indices:new Uint32Array(Dx.inflate(A.indices).buffer),edgeIndices:new Uint32Array(Dx.inflate(A.edgeIndices).buffer),meshPositions:new Uint32Array(Dx.inflate(A.meshPositions).buffer),meshIndices:new Uint32Array(Dx.inflate(A.meshIndices).buffer),meshEdgesIndices:new Uint32Array(Dx.inflate(A.meshEdgesIndices).buffer),meshColors:new Uint8Array(Dx.inflate(A.meshColors).buffer),entityIDs:Dx.inflate(A.entityIDs,{to:"string"}),entityMeshes:new Uint32Array(Dx.inflate(A.entityMeshes).buffer),entityIsObjects:new Uint8Array(Dx.inflate(A.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(Dx.inflate(A.positionsDecodeMatrix).buffer)}}(o);!function(A,e,t,i,s,n){n.getNextId(),i.positionsCompression="precompressed",i.normalsCompression="precompressed";const o=t.positions,r=t.normals,c=t.indices,a=t.edgeIndices,h=t.meshPositions,B=t.meshIndices,l=t.meshEdgesIndices,E=t.meshColors,Q=JSON.parse(t.entityIDs),M=t.entityMeshes,w=t.entityIsObjects,d=h.length,C=M.length;for(let s=0;sM[A]M[e]?1:0));for(let A=0;A1||(m[t]=A)}}for(let A=0;A1,n=kx(w.subarray(4*e,4*e+3)),g=w[4*e+3]/255,d=r.subarray(l[e],t?r.length:l[e+1]),x=c.subarray(l[e],t?c.length:l[e+1]),F=a.subarray(E[e],t?a.length:E[e+1]),I=h.subarray(Q[e],t?h.length:Q[e+1]),D=B.subarray(M[e],M[e]+16);if(s){const A=`${o}-geometry.${e}`;i.createGeometry({id:A,primitive:"triangles",positionsCompressed:d,normalsCompressed:x,indices:F,edgeIndices:I,positionsDecodeMatrix:D})}else{const A=`${o}-${e}`;C[m[e]];const t={};i.createMesh(u.apply(t,{id:A,primitive:"triangles",positionsCompressed:d,normalsCompressed:x,indices:F,edgeIndices:I,positionsDecodeMatrix:D,color:n,opacity:g}))}}let J=0;for(let A=0;A1){const e={},s=`${o}-instance.${J++}`,n=`${o}-geometry.${t}`,r=16*F[A],a=g.subarray(r,r+16);i.createMesh(u.apply(e,{id:s,geometryId:n,matrix:a})),c.push(s)}else c.push(t)}if(c.length>0){const A={};i.createEntity(u.apply(A,{id:s,isObject:!0,meshIds:c}))}}}(0,0,r,i,0,n)}};let Gx=window.pako||Yx;Gx.inflate||(Gx=Gx.default);const vx=function(){const A=new Float32Array(3);return function(e){return A[0]=e[0]/255,A[1]=e[1]/255,A[2]=e[2]/255,A}}();const Hx={version:5,parse:function(A,e,t,i,s,n){const o=function(A){return{positions:A[0],normals:A[1],indices:A[2],edgeIndices:A[3],matrices:A[4],eachPrimitivePositionsAndNormalsPortion:A[5],eachPrimitiveIndicesPortion:A[6],eachPrimitiveEdgeIndicesPortion:A[7],eachPrimitiveColor:A[8],primitiveInstances:A[9],eachEntityId:A[10],eachEntityPrimitiveInstancesPortion:A[11],eachEntityMatricesPortion:A[12]}}(t),r=function(A){return{positions:new Float32Array(Gx.inflate(A.positions).buffer),normals:new Int8Array(Gx.inflate(A.normals).buffer),indices:new Uint32Array(Gx.inflate(A.indices).buffer),edgeIndices:new Uint32Array(Gx.inflate(A.edgeIndices).buffer),matrices:new Float32Array(Gx.inflate(A.matrices).buffer),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(Gx.inflate(A.eachPrimitivePositionsAndNormalsPortion).buffer),eachPrimitiveIndicesPortion:new Uint32Array(Gx.inflate(A.eachPrimitiveIndicesPortion).buffer),eachPrimitiveEdgeIndicesPortion:new Uint32Array(Gx.inflate(A.eachPrimitiveEdgeIndicesPortion).buffer),eachPrimitiveColor:new Uint8Array(Gx.inflate(A.eachPrimitiveColor).buffer),primitiveInstances:new Uint32Array(Gx.inflate(A.primitiveInstances).buffer),eachEntityId:Gx.inflate(A.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(Gx.inflate(A.eachEntityPrimitiveInstancesPortion).buffer),eachEntityMatricesPortion:new Uint32Array(Gx.inflate(A.eachEntityMatricesPortion).buffer)}}(o);!function(A,e,t,i,s,n){const o=n.getNextId();i.positionsCompression="disabled",i.normalsCompression="precompressed";const r=t.positions,c=t.normals,a=t.indices,h=t.edgeIndices,B=t.matrices,g=t.eachPrimitivePositionsAndNormalsPortion,l=t.eachPrimitiveIndicesPortion,E=t.eachPrimitiveEdgeIndicesPortion,Q=t.eachPrimitiveColor,M=t.primitiveInstances,w=JSON.parse(t.eachEntityId),d=t.eachEntityPrimitiveInstancesPortion,C=t.eachEntityMatricesPortion,x=g.length,F=M.length,p=new Uint8Array(x),I=w.length;for(let A=0;A1||(f[t]=A)}}for(let A=0;A1,s=vx(Q.subarray(4*A,4*A+3)),n=Q[4*A+3]/255,B=r.subarray(g[A],e?r.length:g[A+1]),M=c.subarray(g[A],e?c.length:g[A+1]),d=a.subarray(l[A],e?a.length:l[A+1]),C=h.subarray(E[A],e?h.length:E[A+1]);if(t){const e=`${o}-geometry.${A}`;i.createGeometry({id:e,primitive:"triangles",positionsCompressed:B,normalsCompressed:M,indices:d,edgeIndices:C})}else{const e=A;w[f[A]];const t={};i.createMesh(u.apply(t,{id:e,primitive:"triangles",positionsCompressed:B,normalsCompressed:M,indices:d,edgeIndices:C,color:s,opacity:n}))}}let Y=0;for(let A=0;A1){const e={},s="instance."+Y++,n="geometry"+t,o=16*C[A],c=B.subarray(o,o+16);i.createMesh(u.apply(e,{id:s,geometryId:n,matrix:c})),r.push(s)}else r.push(t)}if(r.length>0){const A={};i.createEntity(u.apply(A,{id:s,isObject:!0,meshIds:r}))}}}(0,0,r,i,0,n)}};let Sx=window.pako||Yx;Sx.inflate||(Sx=Sx.default);const jx=function(){const A=new Float32Array(3);return function(e){return A[0]=e[0]/255,A[1]=e[1]/255,A[2]=e[2]/255,A}}();const Ox={version:6,parse:function(A,e,t,i,s,n){const o=function(A){return{positions:A[0],normals:A[1],indices:A[2],edgeIndices:A[3],matrices:A[4],reusedPrimitivesDecodeMatrix:A[5],eachPrimitivePositionsAndNormalsPortion:A[6],eachPrimitiveIndicesPortion:A[7],eachPrimitiveEdgeIndicesPortion:A[8],eachPrimitiveColorAndOpacity:A[9],primitiveInstances:A[10],eachEntityId:A[11],eachEntityPrimitiveInstancesPortion:A[12],eachEntityMatricesPortion:A[13],eachTileAABB:A[14],eachTileEntitiesPortion:A[15]}}(t),r=function(A){function e(A,e){return 0===A.length?[]:Sx.inflate(A,e).buffer}return{positions:new Uint16Array(e(A.positions)),normals:new Int8Array(e(A.normals)),indices:new Uint32Array(e(A.indices)),edgeIndices:new Uint32Array(e(A.edgeIndices)),matrices:new Float32Array(e(A.matrices)),reusedPrimitivesDecodeMatrix:new Float32Array(e(A.reusedPrimitivesDecodeMatrix)),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(e(A.eachPrimitivePositionsAndNormalsPortion)),eachPrimitiveIndicesPortion:new Uint32Array(e(A.eachPrimitiveIndicesPortion)),eachPrimitiveEdgeIndicesPortion:new Uint32Array(e(A.eachPrimitiveEdgeIndicesPortion)),eachPrimitiveColorAndOpacity:new Uint8Array(e(A.eachPrimitiveColorAndOpacity)),primitiveInstances:new Uint32Array(e(A.primitiveInstances)),eachEntityId:Sx.inflate(A.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(e(A.eachEntityPrimitiveInstancesPortion)),eachEntityMatricesPortion:new Uint32Array(e(A.eachEntityMatricesPortion)),eachTileAABB:new Float64Array(e(A.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(e(A.eachTileEntitiesPortion))}}(o);!function(A,e,t,i,s,n){const o=n.getNextId(),r=t.positions,c=t.normals,a=t.indices,h=t.edgeIndices,B=t.matrices,l=t.reusedPrimitivesDecodeMatrix,E=t.eachPrimitivePositionsAndNormalsPortion,Q=t.eachPrimitiveIndicesPortion,M=t.eachPrimitiveEdgeIndicesPortion,w=t.eachPrimitiveColorAndOpacity,d=t.primitiveInstances,C=JSON.parse(t.eachEntityId),x=t.eachEntityPrimitiveInstancesPortion,F=t.eachEntityMatricesPortion,p=t.eachTileAABB,I=t.eachTileEntitiesPortion,f=E.length,Y=d.length,D=C.length,m=I.length,J=new Uint32Array(f);for(let A=0;A1,B=e===f-1,g=r.subarray(E[e],B?r.length:E[e+1]),C=c.subarray(E[e],B?c.length:E[e+1]),x=a.subarray(Q[e],B?a.length:Q[e+1]),F=h.subarray(M[e],B?h.length:M[e+1]),p=jx(w.subarray(4*e,4*e+3)),I=w[4*e+3]/255,Y=n.getNextId();if(s){const A=`${o}-geometry.${t}.${e}`;b[A]||(i.createGeometry({id:A,primitive:"triangles",positionsCompressed:g,indices:x,edgeIndices:F,positionsDecodeMatrix:l}),b[A]=!0),i.createMesh(u.apply(G,{id:Y,geometryId:A,origin:N,matrix:m,color:p,opacity:I})),U.push(Y)}else i.createMesh(u.apply(G,{id:Y,origin:N,primitive:"triangles",positionsCompressed:g,normalsCompressed:C,indices:x,edgeIndices:F,positionsDecodeMatrix:R,color:p,opacity:I})),U.push(Y)}U.length>0&&i.createEntity(u.apply(P,{id:I,isObject:!0,meshIds:U}))}}}(A,e,r,i,0,n)}};let _x=window.pako||Yx;_x.inflate||(_x=_x.default);const Wx=function(){const A=new Float32Array(3);return function(e){return A[0]=e[0]/255,A[1]=e[1]/255,A[2]=e[2]/255,A}}();function Xx(A){const e=[];for(let t=0,i=A.length;t1,g=e===J-1,f=Wx(I.subarray(6*A,6*A+3)),Y=I[6*A+3]/255,D=I[6*A+4]/255,m=I[6*A+5]/255,N=n.getNextId();if(s){const s=p[A],n=l.slice(s,s+16),F=`${o}-geometry.${t}.${e}`;if(!v[F]){let A,t,s,n,o,l;switch(Q[e]){case 0:A="solid",t=r.subarray(M[e],g?r.length:M[e+1]),s=c.subarray(w[e],g?c.length:w[e+1]),o=h.subarray(C[e],g?h.length:C[e+1]),l=B.subarray(x[e],g?B.length:x[e+1]);break;case 1:A="surface",t=r.subarray(M[e],g?r.length:M[e+1]),s=c.subarray(w[e],g?c.length:w[e+1]),o=h.subarray(C[e],g?h.length:C[e+1]),l=B.subarray(x[e],g?B.length:x[e+1]);break;case 2:A="points",t=r.subarray(M[e],g?r.length:M[e+1]),n=Xx(a.subarray(d[e],g?a.length:d[e+1]));break;case 3:A="lines",t=r.subarray(M[e],g?r.length:M[e+1]),o=h.subarray(C[e],g?h.length:C[e+1]);break;default:continue}i.createGeometry({id:F,primitive:A,positionsCompressed:t,normalsCompressed:s,colors:n,indices:o,edgeIndices:l,positionsDecodeMatrix:E}),v[F]=!0}i.createMesh(u.apply(H,{id:N,geometryId:F,origin:U,matrix:n,color:f,metallic:D,roughness:m,opacity:Y})),b.push(N)}else{let A,t,s,n,o,l;switch(Q[e]){case 0:A="solid",t=r.subarray(M[e],g?r.length:M[e+1]),s=c.subarray(w[e],g?c.length:w[e+1]),o=h.subarray(C[e],g?h.length:C[e+1]),l=B.subarray(x[e],g?B.length:x[e+1]);break;case 1:A="surface",t=r.subarray(M[e],g?r.length:M[e+1]),s=c.subarray(w[e],g?c.length:w[e+1]),o=h.subarray(C[e],g?h.length:C[e+1]),l=B.subarray(x[e],g?B.length:x[e+1]);break;case 2:A="points",t=r.subarray(M[e],g?r.length:M[e+1]),n=Xx(a.subarray(d[e],g?a.length:d[e+1]));break;case 3:A="lines",t=r.subarray(M[e],g?r.length:M[e+1]),o=h.subarray(C[e],g?h.length:C[e+1]);break;default:continue}i.createMesh(u.apply(H,{id:N,origin:U,primitive:A,positionsCompressed:t,normalsCompressed:s,colors:n,indices:o,edgeIndices:l,positionsDecodeMatrix:G,color:f,metallic:D,roughness:m,opacity:Y})),b.push(N)}}b.length>0&&i.createEntity(u.apply(P,{id:m,isObject:!0,meshIds:b}))}}}(A,e,r,i,0,n)}};let Vx=window.pako||Yx;Vx.inflate||(Vx=Vx.default);const Kx=g.vec4(),Zx=g.vec4();const qx=function(){const A=new Float32Array(3);return function(e){return A[0]=e[0]/255,A[1]=e[1]/255,A[2]=e[2]/255,A}}();function $x(A){const e=[];for(let t=0,i=A.length;t1,c=s===R-1,a=qx(J.subarray(6*A,6*A+3)),h=J[6*A+3]/255,B=J[6*A+4]/255,N=J[6*A+5]/255,y=n.getNextId();if(r){const n=m[A],r=d.slice(n,n+16),D=`${o}-geometry.${t}.${s}`;let J=S[D];if(!J){J={batchThisMesh:!e.reuseGeometries};let A=!1;switch(x[s]){case 0:J.primitiveName="solid",J.geometryPositions=l.subarray(F[s],c?l.length:F[s+1]),J.geometryNormals=E.subarray(p[s],c?E.length:p[s+1]),J.geometryIndices=M.subarray(f[s],c?M.length:f[s+1]),J.geometryEdgeIndices=w.subarray(Y[s],c?w.length:Y[s+1]),A=J.geometryPositions.length>0&&J.geometryIndices.length>0;break;case 1:J.primitiveName="surface",J.geometryPositions=l.subarray(F[s],c?l.length:F[s+1]),J.geometryNormals=E.subarray(p[s],c?E.length:p[s+1]),J.geometryIndices=M.subarray(f[s],c?M.length:f[s+1]),J.geometryEdgeIndices=w.subarray(Y[s],c?w.length:Y[s+1]),A=J.geometryPositions.length>0&&J.geometryIndices.length>0;break;case 2:J.primitiveName="points",J.geometryPositions=l.subarray(F[s],c?l.length:F[s+1]),J.geometryColors=$x(Q.subarray(I[s],c?Q.length:I[s+1])),A=J.geometryPositions.length>0;break;case 3:J.primitiveName="lines",J.geometryPositions=l.subarray(F[s],c?l.length:F[s+1]),J.geometryIndices=M.subarray(f[s],c?M.length:f[s+1]),A=J.geometryPositions.length>0&&J.geometryIndices.length>0;break;default:continue}if(A||(J=null),J&&(J.geometryPositions.length,J.batchThisMesh)){J.decompressedPositions=new Float32Array(J.geometryPositions.length);const A=J.geometryPositions,e=J.decompressedPositions;for(let t=0,i=A.length;t0&&o.length>0;break;case 1:A="surface",e=l.subarray(F[s],c?l.length:F[s+1]),t=E.subarray(p[s],c?E.length:p[s+1]),o=M.subarray(f[s],c?M.length:f[s+1]),r=w.subarray(Y[s],c?w.length:Y[s+1]),g=e.length>0&&o.length>0;break;case 2:A="points",e=l.subarray(F[s],c?l.length:F[s+1]),n=$x(Q.subarray(I[s],c?Q.length:I[s+1])),g=e.length>0;break;case 3:A="lines",e=l.subarray(F[s],c?l.length:F[s+1]),o=M.subarray(f[s],c?M.length:f[s+1]),g=e.length>0&&o.length>0;break;default:continue}g&&(i.createMesh(u.apply(O,{id:y,origin:v,primitive:A,positionsCompressed:e,normalsCompressed:t,colorsCompressed:n,indices:o,edgeIndices:r,positionsDecodeMatrix:U,color:a,metallic:B,roughness:N,opacity:h})),T.push(y))}}T.length>0&&i.createEntity(u.apply(j,{id:a,isObject:!0,meshIds:T}))}}}(A,e,r,i,s,n)}};let eF=window.pako||Yx;eF.inflate||(eF=eF.default);const tF=g.vec4(),iF=g.vec4();const sF=function(){const A=new Float32Array(3);return function(e){return A[0]=e[0]/255,A[1]=e[1]/255,A[2]=e[2]/255,A}}();const nF={version:9,parse:function(A,e,t,i,s,n){const o=function(A){return{metadata:A[0],positions:A[1],normals:A[2],colors:A[3],indices:A[4],edgeIndices:A[5],matrices:A[6],reusedGeometriesDecodeMatrix:A[7],eachGeometryPrimitiveType:A[8],eachGeometryPositionsPortion:A[9],eachGeometryNormalsPortion:A[10],eachGeometryColorsPortion:A[11],eachGeometryIndicesPortion:A[12],eachGeometryEdgeIndicesPortion:A[13],eachMeshGeometriesPortion:A[14],eachMeshMatricesPortion:A[15],eachMeshMaterial:A[16],eachEntityId:A[17],eachEntityMeshesPortion:A[18],eachTileAABB:A[19],eachTileEntitiesPortion:A[20]}}(t),r=function(A){function e(A,e){return 0===A.length?[]:eF.inflate(A,e).buffer}return{metadata:JSON.parse(eF.inflate(A.metadata,{to:"string"})),positions:new Uint16Array(e(A.positions)),normals:new Int8Array(e(A.normals)),colors:new Uint8Array(e(A.colors)),indices:new Uint32Array(e(A.indices)),edgeIndices:new Uint32Array(e(A.edgeIndices)),matrices:new Float32Array(e(A.matrices)),reusedGeometriesDecodeMatrix:new Float32Array(e(A.reusedGeometriesDecodeMatrix)),eachGeometryPrimitiveType:new Uint8Array(e(A.eachGeometryPrimitiveType)),eachGeometryPositionsPortion:new Uint32Array(e(A.eachGeometryPositionsPortion)),eachGeometryNormalsPortion:new Uint32Array(e(A.eachGeometryNormalsPortion)),eachGeometryColorsPortion:new Uint32Array(e(A.eachGeometryColorsPortion)),eachGeometryIndicesPortion:new Uint32Array(e(A.eachGeometryIndicesPortion)),eachGeometryEdgeIndicesPortion:new Uint32Array(e(A.eachGeometryEdgeIndicesPortion)),eachMeshGeometriesPortion:new Uint32Array(e(A.eachMeshGeometriesPortion)),eachMeshMatricesPortion:new Uint32Array(e(A.eachMeshMatricesPortion)),eachMeshMaterial:new Uint8Array(e(A.eachMeshMaterial)),eachEntityId:JSON.parse(eF.inflate(A.eachEntityId,{to:"string"})),eachEntityMeshesPortion:new Uint32Array(e(A.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(e(A.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(e(A.eachTileEntitiesPortion))}}(o);!function(A,e,t,i,s,n){const o=n.getNextId(),r=t.metadata,c=t.positions,a=t.normals,h=t.colors,B=t.indices,l=t.edgeIndices,E=t.matrices,Q=t.reusedGeometriesDecodeMatrix,M=t.eachGeometryPrimitiveType,w=t.eachGeometryPositionsPortion,d=t.eachGeometryNormalsPortion,C=t.eachGeometryColorsPortion,x=t.eachGeometryIndicesPortion,F=t.eachGeometryEdgeIndicesPortion,p=t.eachMeshGeometriesPortion,I=t.eachMeshMatricesPortion,f=t.eachMeshMaterial,Y=t.eachEntityId,D=t.eachEntityMeshesPortion,m=t.eachTileAABB,J=t.eachTileEntitiesPortion,N=w.length,y=p.length,z=D.length,T=J.length;s&&s.loadData(r,{includeTypes:e.includeTypes,excludeTypes:e.excludeTypes,globalizeObjectIds:e.globalizeObjectIds});const U=new Uint32Array(N);for(let A=0;A1,Y=s===N-1,D=sF(f.subarray(6*A,6*A+3)),m=f[6*A+3]/255,J=f[6*A+4]/255,y=f[6*A+5]/255,z=n.getNextId();if(r){const n=I[A],r=E.slice(n,n+16),p=`${o}-geometry.${t}.${s}`;let f=k[p];if(!f){f={batchThisMesh:!e.reuseGeometries};let A=!1;switch(M[s]){case 0:f.primitiveName="solid",f.geometryPositions=c.subarray(w[s],Y?c.length:w[s+1]),f.geometryNormals=a.subarray(d[s],Y?a.length:d[s+1]),f.geometryIndices=B.subarray(x[s],Y?B.length:x[s+1]),f.geometryEdgeIndices=l.subarray(F[s],Y?l.length:F[s+1]),A=f.geometryPositions.length>0&&f.geometryIndices.length>0;break;case 1:f.primitiveName="surface",f.geometryPositions=c.subarray(w[s],Y?c.length:w[s+1]),f.geometryNormals=a.subarray(d[s],Y?a.length:d[s+1]),f.geometryIndices=B.subarray(x[s],Y?B.length:x[s+1]),f.geometryEdgeIndices=l.subarray(F[s],Y?l.length:F[s+1]),A=f.geometryPositions.length>0&&f.geometryIndices.length>0;break;case 2:f.primitiveName="points",f.geometryPositions=c.subarray(w[s],Y?c.length:w[s+1]),f.geometryColors=h.subarray(C[s],Y?h.length:C[s+1]),A=f.geometryPositions.length>0;break;case 3:f.primitiveName="lines",f.geometryPositions=c.subarray(w[s],Y?c.length:w[s+1]),f.geometryIndices=B.subarray(x[s],Y?B.length:x[s+1]),A=f.geometryPositions.length>0&&f.geometryIndices.length>0;break;default:continue}if(A||(f=null),f&&(f.geometryPositions.length,f.batchThisMesh)){f.decompressedPositions=new Float32Array(f.geometryPositions.length),f.transformedAndRecompressedPositions=new Uint16Array(f.geometryPositions.length);const A=f.geometryPositions,e=f.decompressedPositions;for(let t=0,i=A.length;t0&&o.length>0;break;case 1:A="surface",e=c.subarray(w[s],Y?c.length:w[s+1]),t=a.subarray(d[s],Y?a.length:d[s+1]),o=B.subarray(x[s],Y?B.length:x[s+1]),r=l.subarray(F[s],Y?l.length:F[s+1]),g=e.length>0&&o.length>0;break;case 2:A="points",e=c.subarray(w[s],Y?c.length:w[s+1]),n=h.subarray(C[s],Y?h.length:C[s+1]),g=e.length>0;break;case 3:A="lines",e=c.subarray(w[s],Y?c.length:w[s+1]),o=B.subarray(x[s],Y?B.length:x[s+1]),g=e.length>0&&o.length>0;break;default:continue}g&&(i.createMesh(u.apply(j,{id:z,origin:R,primitive:A,positionsCompressed:e,normalsCompressed:t,colorsCompressed:n,indices:o,edgeIndices:r,positionsDecodeMatrix:v,color:D,metallic:J,roughness:y,opacity:m})),P.push(z))}}P.length>0&&i.createEntity(u.apply(S,{id:m,isObject:!0,meshIds:P}))}}}(A,e,r,i,s,n)}};let oF=window.pako||Yx;oF.inflate||(oF=oF.default);const rF=g.vec4(),cF=g.vec4();const aF=function(){const A=new Float32Array(3);return function(e){return A[0]=e[0]/255,A[1]=e[1]/255,A[2]=e[2]/255,A}}();function hF(A,e){const t=[];if(e.length>1)for(let A=0,i=e.length-1;A1)for(let e=0,i=A.length/3-1;e0,r=9*A,B=1===h[r+0],g=h[r+1];h[r+2],h[r+3];const l=h[r+4],E=h[r+5],Q=h[r+6],M=h[r+7],u=h[r+8];if(n){const e=new Uint8Array(c.subarray(t,s)).buffer,n=`${o}-texture-${A}`;if(B)i.createTexture({id:n,buffers:[e],minFilter:l,magFilter:E,wrapS:Q,wrapT:M,wrapR:u});else{const A=new Blob([e],{type:g===re?"image/jpeg":g===ce?"image/png":"image/gif"}),t=(window.URL||window.webkitURL).createObjectURL(A),s=document.createElement("img");s.src=t,i.createTexture({id:n,image:s,minFilter:l,magFilter:E,wrapS:Q,wrapT:M,wrapR:u})}}}for(let A=0;A=0?`${o}-texture-${s}`:null,normalsTextureId:r>=0?`${o}-texture-${r}`:null,metallicRoughnessTextureId:n>=0?`${o}-texture-${n}`:null,emissiveTextureId:c>=0?`${o}-texture-${c}`:null,occlusionTextureId:a>=0?`${o}-texture-${a}`:null})}const j=new Uint32Array(G);for(let A=0;A1,c=s===G-1,a=y[A],h=a>=0?`${o}-textureSet-${a}`:null,T=aF(z.subarray(6*A,6*A+3)),U=z[6*A+3]/255,R=z[6*A+4]/255,P=z[6*A+5]/255,v=n.getNextId();if(r){const n=N[A],r=C.slice(n,n+16),a=`${o}-geometry.${t}.${s}`;let J=W[a];if(!J){J={batchThisMesh:!e.reuseGeometries};let A=!1;switch(F[s]){case 0:J.primitiveName="solid",J.geometryPositions=B.subarray(p[s],c?B.length:p[s+1]),J.geometryNormals=l.subarray(I[s],c?l.length:I[s+1]),J.geometryUVs=Q.subarray(Y[s],c?Q.length:Y[s+1]),J.geometryIndices=M.subarray(D[s],c?M.length:D[s+1]),J.geometryEdgeIndices=w.subarray(m[s],c?w.length:m[s+1]),A=J.geometryPositions.length>0&&J.geometryIndices.length>0;break;case 1:J.primitiveName="surface",J.geometryPositions=B.subarray(p[s],c?B.length:p[s+1]),J.geometryNormals=l.subarray(I[s],c?l.length:I[s+1]),J.geometryUVs=Q.subarray(Y[s],c?Q.length:Y[s+1]),J.geometryIndices=M.subarray(D[s],c?M.length:D[s+1]),J.geometryEdgeIndices=w.subarray(m[s],c?w.length:m[s+1]),A=J.geometryPositions.length>0&&J.geometryIndices.length>0;break;case 2:J.primitiveName="points",J.geometryPositions=B.subarray(p[s],c?B.length:p[s+1]),J.geometryColors=E.subarray(f[s],c?E.length:f[s+1]),A=J.geometryPositions.length>0;break;case 3:J.primitiveName="lines",J.geometryPositions=B.subarray(p[s],c?B.length:p[s+1]),J.geometryIndices=M.subarray(D[s],c?M.length:D[s+1]),A=J.geometryPositions.length>0&&J.geometryIndices.length>0;break;case 4:J.primitiveName="lines",J.geometryPositions=B.subarray(p[s],c?B.length:p[s+1]),J.geometryIndices=hF(J.geometryPositions,M.subarray(D[s],c?M.length:D[s+1])),A=J.geometryPositions.length>0&&J.geometryIndices.length>0;break;default:continue}if(A||(J=null),J&&(J.geometryPositions.length,J.batchThisMesh)){J.decompressedPositions=new Float32Array(J.geometryPositions.length),J.transformedAndRecompressedPositions=new Uint16Array(J.geometryPositions.length);const A=J.geometryPositions,e=J.decompressedPositions;for(let t=0,i=A.length;t0&&r.length>0;break;case 1:A="surface",e=B.subarray(p[s],c?B.length:p[s+1]),t=l.subarray(I[s],c?l.length:I[s+1]),n=Q.subarray(Y[s],c?Q.length:Y[s+1]),r=M.subarray(D[s],c?M.length:D[s+1]),a=w.subarray(m[s],c?w.length:m[s+1]),g=e.length>0&&r.length>0;break;case 2:A="points",e=B.subarray(p[s],c?B.length:p[s+1]),o=E.subarray(f[s],c?E.length:f[s+1]),g=e.length>0;break;case 3:A="lines",e=B.subarray(p[s],c?B.length:p[s+1]),r=M.subarray(D[s],c?M.length:D[s+1]),g=e.length>0&&r.length>0;break;case 4:A="lines",e=B.subarray(p[s],c?B.length:p[s+1]),r=hF(e,M.subarray(D[s],c?M.length:D[s+1])),g=e.length>0&&r.length>0;break;default:continue}g&&(i.createMesh(u.apply(S,{id:v,textureSetId:h,origin:O,primitive:A,positionsCompressed:e,normalsCompressed:t,uv:n&&n.length>0?n:null,colorsCompressed:o,indices:r,edgeIndices:a,positionsDecodeMatrix:d,color:T,metallic:R,roughness:P,opacity:U})),b.push(v))}}b.length>0&&i.createEntity(u.apply(v,{id:c,isObject:!0,meshIds:b}))}}}(A,e,r,i,s,n)}},gF=g.vec4(),lF=g.vec4();const EF=function(){const A=new Float32Array(3);return function(e){return A[0]=e[0]/255,A[1]=e[1]/255,A[2]=e[2]/255,A}}();function QF(A,e){const t=[];if(e.length>1)for(let A=0,i=e.length-1;A1)for(let e=0,i=A.length/3-1;e1){const e=new Uint8Array(A,o,r),t=c/2,i=e.length/c;for(let A=0;AJSON.parse(A.decode(t(Uint8Array)))}();return{metadata:i(),textureData:t(Uint8Array),eachTextureDataPortion:t(Uint32Array),eachTextureAttributes:t(Uint16Array),positions:t(Uint16Array),normals:t(Int8Array),colors:t(Uint8Array),uvs:t(Float32Array),indices:t(Uint32Array),edgeIndices:t(Uint32Array),eachTextureSetTextures:t(Int32Array),matrices:t(Float32Array),reusedGeometriesDecodeMatrix:t(Float32Array),eachGeometryPrimitiveType:t(Uint8Array),eachGeometryPositionsPortion:t(Uint32Array),eachGeometryNormalsPortion:t(Uint32Array),eachGeometryColorsPortion:t(Uint32Array),eachGeometryUVsPortion:t(Uint32Array),eachGeometryIndicesPortion:t(Uint32Array),eachGeometryEdgeIndicesPortion:t(Uint32Array),eachMeshGeometriesPortion:t(Uint32Array),eachMeshMatricesPortion:t(Uint32Array),eachMeshTextureSet:t(Int32Array),eachMeshMaterialAttributes:t(Uint8Array),eachEntityId:i(),eachEntityMeshesPortion:t(Uint32Array),eachTileAABB:t(Float64Array),eachTileEntitiesPortion:t(Uint32Array)}}(t);!function(A,e,t,i,s,n){const o=n.getNextId(),r=t.metadata,c=t.textureData,a=t.eachTextureDataPortion,h=t.eachTextureAttributes,B=t.positions,l=t.normals,E=t.colors,Q=t.uvs,M=t.indices,w=t.edgeIndices,d=t.eachTextureSetTextures,C=t.matrices,x=t.reusedGeometriesDecodeMatrix,F=t.eachGeometryPrimitiveType,p=t.eachGeometryPositionsPortion,I=t.eachGeometryNormalsPortion,f=t.eachGeometryColorsPortion,Y=t.eachGeometryUVsPortion,D=t.eachGeometryIndicesPortion,m=t.eachGeometryEdgeIndicesPortion,J=t.eachMeshGeometriesPortion,N=t.eachMeshMatricesPortion,y=t.eachMeshTextureSet,z=t.eachMeshMaterialAttributes,T=t.eachEntityId,U=t.eachEntityMeshesPortion,R=t.eachTileAABB,b=t.eachTileEntitiesPortion,k=a.length,P=d.length/5,G=p.length,v=J.length,H=U.length,S=b.length;s&&s.loadData(r,{includeTypes:e.includeTypes,excludeTypes:e.excludeTypes,globalizeObjectIds:e.globalizeObjectIds});for(let A=0;A0,r=9*A,B=1===h[r+0],g=h[r+1];h[r+2],h[r+3];const l=h[r+4],E=h[r+5],Q=h[r+6],M=h[r+7],u=h[r+8];if(n){const e=new Uint8Array(c.subarray(t,s)).buffer,n=`${o}-texture-${A}`;if(B)i.createTexture({id:n,buffers:[e],minFilter:l,magFilter:E,wrapS:Q,wrapT:M,wrapR:u});else{const A=new Blob([e],{type:g===re?"image/jpeg":g===ce?"image/png":"image/gif"}),t=(window.URL||window.webkitURL).createObjectURL(A),s=document.createElement("img");s.src=t,i.createTexture({id:n,image:s,minFilter:l,magFilter:E,wrapS:Q,wrapT:M,wrapR:u})}}}for(let A=0;A=0?`${o}-texture-${s}`:null,normalsTextureId:r>=0?`${o}-texture-${r}`:null,metallicRoughnessTextureId:n>=0?`${o}-texture-${n}`:null,emissiveTextureId:c>=0?`${o}-texture-${c}`:null,occlusionTextureId:a>=0?`${o}-texture-${a}`:null})}const j=new Uint32Array(G);for(let A=0;A1,c=s===G-1,a=y[A],h=a>=0?`${o}-textureSet-${a}`:null,T=EF(z.subarray(6*A,6*A+3)),U=z[6*A+3]/255,R=z[6*A+4]/255,P=z[6*A+5]/255,v=n.getNextId();if(r){const n=N[A],r=C.slice(n,n+16),a=`${o}-geometry.${t}.${s}`;let J=W[a];if(!J){J={batchThisMesh:!e.reuseGeometries};let A=!1;switch(F[s]){case 0:J.primitiveName="solid",J.geometryPositions=B.subarray(p[s],c?B.length:p[s+1]),J.geometryNormals=l.subarray(I[s],c?l.length:I[s+1]),J.geometryUVs=Q.subarray(Y[s],c?Q.length:Y[s+1]),J.geometryIndices=M.subarray(D[s],c?M.length:D[s+1]),J.geometryEdgeIndices=w.subarray(m[s],c?w.length:m[s+1]),A=J.geometryPositions.length>0&&J.geometryIndices.length>0;break;case 1:J.primitiveName="surface",J.geometryPositions=B.subarray(p[s],c?B.length:p[s+1]),J.geometryNormals=l.subarray(I[s],c?l.length:I[s+1]),J.geometryUVs=Q.subarray(Y[s],c?Q.length:Y[s+1]),J.geometryIndices=M.subarray(D[s],c?M.length:D[s+1]),J.geometryEdgeIndices=w.subarray(m[s],c?w.length:m[s+1]),A=J.geometryPositions.length>0&&J.geometryIndices.length>0;break;case 2:J.primitiveName="points",J.geometryPositions=B.subarray(p[s],c?B.length:p[s+1]),J.geometryColors=E.subarray(f[s],c?E.length:f[s+1]),A=J.geometryPositions.length>0;break;case 3:J.primitiveName="lines",J.geometryPositions=B.subarray(p[s],c?B.length:p[s+1]),J.geometryIndices=M.subarray(D[s],c?M.length:D[s+1]),A=J.geometryPositions.length>0&&J.geometryIndices.length>0;break;case 4:J.primitiveName="lines",J.geometryPositions=B.subarray(p[s],c?B.length:p[s+1]),J.geometryIndices=QF(J.geometryPositions,M.subarray(D[s],c?M.length:D[s+1])),A=J.geometryPositions.length>0&&J.geometryIndices.length>0;break;default:continue}if(A||(J=null),J&&(J.geometryPositions.length,J.batchThisMesh)){J.decompressedPositions=new Float32Array(J.geometryPositions.length),J.transformedAndRecompressedPositions=new Uint16Array(J.geometryPositions.length);const A=J.geometryPositions,e=J.decompressedPositions;for(let t=0,i=A.length;t0&&r.length>0;break;case 1:A="surface",e=B.subarray(p[s],c?B.length:p[s+1]),t=l.subarray(I[s],c?l.length:I[s+1]),n=Q.subarray(Y[s],c?Q.length:Y[s+1]),r=M.subarray(D[s],c?M.length:D[s+1]),a=w.subarray(m[s],c?w.length:m[s+1]),g=e.length>0&&r.length>0;break;case 2:A="points",e=B.subarray(p[s],c?B.length:p[s+1]),o=E.subarray(f[s],c?E.length:f[s+1]),g=e.length>0;break;case 3:A="lines",e=B.subarray(p[s],c?B.length:p[s+1]),r=M.subarray(D[s],c?M.length:D[s+1]),g=e.length>0&&r.length>0;break;case 4:A="lines",e=B.subarray(p[s],c?B.length:p[s+1]),r=QF(e,M.subarray(D[s],c?M.length:D[s+1])),g=e.length>0&&r.length>0;break;default:continue}g&&(i.createMesh(u.apply(S,{id:v,textureSetId:h,origin:O,primitive:A,positionsCompressed:e,normalsCompressed:t,uv:n&&n.length>0?n:null,colorsCompressed:o,indices:r,edgeIndices:a,positionsDecodeMatrix:d,color:T,metallic:R,roughness:P,opacity:U})),b.push(v))}}b.length>0&&i.createEntity(u.apply(v,{id:c,isObject:!0,meshIds:b}))}}}(A,e,o,i,s,n)}};let uF=window.pako||Yx;uF.inflate||(uF=uF.default);const wF=g.vec4(),dF=g.vec4();const CF=function(){const A=new Float32Array(3);return function(e){return A[0]=e[0]/255,A[1]=e[1]/255,A[2]=e[2]/255,A}}();function xF(A,e,t,i,s,n){const o=n.getNextId(),r=t.metadata,c=t.textureData,a=t.eachTextureDataPortion,h=t.eachTextureAttributes,B=t.positions,l=t.normals,E=t.colors,Q=t.uvs,M=t.indices,w=t.edgeIndices,d=t.eachTextureSetTextures,C=t.matrices,x=t.reusedGeometriesDecodeMatrix,F=t.eachGeometryPrimitiveType,p=t.eachGeometryAxisLabel,I=t.eachGeometryPositionsPortion,f=t.eachGeometryNormalsPortion,Y=t.eachGeometryColorsPortion,D=t.eachGeometryUVsPortion,m=t.eachGeometryIndicesPortion,J=t.eachGeometryEdgeIndicesPortion,N=t.eachMeshGeometriesPortion,y=t.eachMeshMatricesPortion,z=t.eachMeshTextureSet,T=t.eachMeshMaterialAttributes,U=t.eachEntityId,R=t.eachEntityMeshesPortion,b=t.eachTileAABB,k=t.eachTileEntitiesPortion,P=a.length,G=d.length/5,v=I.length,H=N.length,S=R.length,j=k.length;s&&s.loadData(r,{includeTypes:e.includeTypes,excludeTypes:e.excludeTypes,globalizeObjectIds:e.globalizeObjectIds});for(let A=0;A0,r=9*A,B=1===h[r+0],g=h[r+1];h[r+2],h[r+3];const l=h[r+4],E=h[r+5],Q=h[r+6],M=h[r+7],u=h[r+8];if(n){const e=new Uint8Array(c.subarray(t,s)).buffer,n=`${o}-texture-${A}`;if(B)i.createTexture({id:n,buffers:[e],minFilter:l,magFilter:E,wrapS:Q,wrapT:M,wrapR:u});else{const A=new Blob([e],{type:g===re?"image/jpeg":g===ce?"image/png":"image/gif"}),t=(window.URL||window.webkitURL).createObjectURL(A),s=document.createElement("img");s.src=t,i.createTexture({id:n,image:s,minFilter:l,magFilter:E,wrapS:Q,wrapT:M,wrapR:u})}}}for(let A=0;A=0?`${o}-texture-${s}`:null,normalsTextureId:r>=0?`${o}-texture-${r}`:null,metallicRoughnessTextureId:n>=0?`${o}-texture-${n}`:null,emissiveTextureId:c>=0?`${o}-texture-${c}`:null,occlusionTextureId:a>=0?`${o}-texture-${a}`:null})}const O=new Uint32Array(v);for(let A=0;A1,c=s===v-1,a=z[A],h=a>=0?`${o}-textureSet-${a}`:null,U=CF(T.subarray(6*A,6*A+3)),R=T[6*A+3]/255,b=T[6*A+4]/255,G=T[6*A+5]/255,H=n.getNextId();if(r){const n=y[A],r=C.slice(n,n+16),a=`${o}-geometry.${t}.${s}`;let N=X[a];if(!N){N={batchThisMesh:!e.reuseGeometries};const A=F[s],t=p[s];let i,n=!1;switch(A){case 0:N.primitiveName="solid",N.geometryPositions=B.subarray(I[s],c?B.length:I[s+1]),N.geometryNormals=l.subarray(f[s],c?l.length:f[s+1]),N.geometryUVs=Q.subarray(D[s],c?Q.length:D[s+1]),N.geometryIndices=M.subarray(m[s],c?M.length:m[s+1]),N.geometryEdgeIndices=w.subarray(J[s],c?w.length:J[s+1]),n=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;case 1:N.primitiveName="surface",N.geometryPositions=B.subarray(I[s],c?B.length:I[s+1]),N.geometryNormals=l.subarray(f[s],c?l.length:f[s+1]),N.geometryUVs=Q.subarray(D[s],c?Q.length:D[s+1]),N.geometryIndices=M.subarray(m[s],c?M.length:m[s+1]),N.geometryEdgeIndices=w.subarray(J[s],c?w.length:J[s+1]),n=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;case 2:N.primitiveName="points",N.geometryPositions=B.subarray(I[s],c?B.length:I[s+1]),N.geometryColors=E.subarray(Y[s],c?E.length:Y[s+1]),n=N.geometryPositions.length>0;break;case 3:N.primitiveName="lines",N.geometryPositions=B.subarray(I[s],c?B.length:I[s+1]),N.geometryIndices=M.subarray(m[s],c?M.length:m[s+1]),n=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;case 4:N.primitiveName="lines",N.geometryPositions=B.subarray(I[s],c?B.length:I[s+1]),N.geometryIndices=FF(N.geometryPositions,M.subarray(m[s],c?M.length:m[s+1])),n=N.geometryPositions.length>0&&N.geometryIndices.length>0;break;case 7:N.primitiveName="lines",N.geometryPositions=B.subarray(I[s],c?B.length:I[s+1]),N.decompressedPositions=oA.decompressPositions(N.geometryPositions,x),i=CA({origin:N.decompressedPositions,text:t,size:2}),N.decompressedPositions=i.positions,N.geometryIndices=i.indices,N.geometryPositions=null,n=N.decompressedPositions.length>0&&N.geometryIndices.length>0;break;default:continue}if(n||(N=null),N&&(N.geometryPositions&&N.geometryPositions.length,N.batchThisMesh)){if(7===A)N.transformedAndRecompressedPositions=new Uint16Array(N.decompressedPositions.length);else{N.decompressedPositions=new Float32Array(N.geometryPositions.length),N.transformedAndRecompressedPositions=new Uint16Array(N.geometryPositions.length);const A=N.geometryPositions,e=N.decompressedPositions;for(let t=0,i=A.length;t0&&g.length>0;break;case 1:t="surface",n=B.subarray(I[s],c?B.length:I[s+1]),o=l.subarray(f[s],c?l.length:f[s+1]),r=Q.subarray(D[s],c?Q.length:D[s+1]),g=M.subarray(m[s],c?M.length:m[s+1]),C=w.subarray(J[s],c?w.length:J[s+1]),N=n.length>0&&g.length>0;break;case 2:t="points",n=B.subarray(I[s],c?B.length:I[s+1]),a=E.subarray(Y[s],c?E.length:Y[s+1]),N=n.length>0;break;case 3:t="lines",n=B.subarray(I[s],c?B.length:I[s+1]),g=M.subarray(m[s],c?M.length:m[s+1]),N=n.length>0&&g.length>0;break;case 4:t="lines",n=B.subarray(I[s],c?B.length:I[s+1]),g=FF(n,M.subarray(m[s],c?M.length:m[s+1])),N=n.length>0&&g.length>0;break;case 7:t="lines",n=B.subarray(I[s],c?B.length:I[s+1]),n=oA.decompressPositions(n,d),x=CA({origin:n,text:e,size:2}),n=x.positions,g=x.indices,N=n.length>0&&g.length>0;break;default:continue}if(N){let e=u.apply(j,{id:H,textureSetId:h,origin:_,primitive:t,normalsCompressed:o,uv:r&&r.length>0?r:null,colorsCompressed:a,indices:g,edgeIndices:C,color:U,metallic:b,roughness:G,opacity:R});e=7!==A?{...e,positionsCompressed:n,positionsDecodeMatrix:d}:{...e,positions:n},i.createMesh(e),k.push(H)}}}k.length>0&&i.createEntity(u.apply(H,{id:c,isObject:!0,meshIds:k}))}}}function FF(A,e){const t=[];if(e.length>1)for(let A=0,i=e.length-1;A1)for(let e=0,i=A.length/3-1;e1){const e=new Uint8Array(A,o,r),t=c/2,i=e.length/c;for(let A=0;AJSON.parse(A.decode(t(Uint8Array)))}();return{metadata:i(),textureData:t(Uint8Array),eachTextureDataPortion:t(Uint32Array),eachTextureAttributes:t(Uint16Array),positions:t(Uint16Array),normals:t(Int8Array),colors:t(Uint8Array),uvs:t(Float32Array),indices:t(Uint32Array),edgeIndices:t(Uint32Array),eachTextureSetTextures:t(Int32Array),matrices:t(Float32Array),reusedGeometriesDecodeMatrix:t(Float32Array),eachGeometryPrimitiveType:t(Uint8Array),eachGeometryAxisLabel:i(),eachGeometryPositionsPortion:t(Uint32Array),eachGeometryNormalsPortion:t(Uint32Array),eachGeometryColorsPortion:t(Uint32Array),eachGeometryUVsPortion:t(Uint32Array),eachGeometryIndicesPortion:t(Uint32Array),eachGeometryEdgeIndicesPortion:t(Uint32Array),eachMeshGeometriesPortion:t(Uint32Array),eachMeshMatricesPortion:t(Uint32Array),eachMeshTextureSet:t(Int32Array),eachMeshMaterialAttributes:t(Uint8Array),eachEntityId:i(),eachEntityMeshesPortion:t(Uint32Array),eachTileAABB:t(Float64Array),eachTileEntitiesPortion:t(Uint32Array)}}(t);xF(A,e,o,i,s,n)},parse:function(A,e,t,i,s,n){const o=function(A){let e=0;return{metadata:A[e++],textureData:A[e++],eachTextureDataPortion:A[e++],eachTextureAttributes:A[e++],positions:A[e++],normals:A[e++],colors:A[e++],uvs:A[e++],indices:A[e++],edgeIndices:A[e++],eachTextureSetTextures:A[e++],matrices:A[e++],reusedGeometriesDecodeMatrix:A[e++],eachGeometryPrimitiveType:A[e++],eachGeometryAxisLabel:A[e++],eachGeometryPositionsPortion:A[e++],eachGeometryNormalsPortion:A[e++],eachGeometryColorsPortion:A[e++],eachGeometryUVsPortion:A[e++],eachGeometryIndicesPortion:A[e++],eachGeometryEdgeIndicesPortion:A[e++],eachMeshGeometriesPortion:A[e++],eachMeshMatricesPortion:A[e++],eachMeshTextureSet:A[e++],eachMeshMaterialAttributes:A[e++],eachEntityId:A[e++],eachEntityMeshesPortion:A[e++],eachTileAABB:A[e++],eachTileEntitiesPortion:A[e++]}}(t),r=function(A){function e(A,e){return 0===A.length?[]:uF.inflate(A,e).buffer}return{metadata:JSON.parse(uF.inflate(A.metadata,{to:"string"})),textureData:new Uint8Array(e(A.textureData)),eachTextureDataPortion:new Uint32Array(e(A.eachTextureDataPortion)),eachTextureAttributes:new Uint16Array(e(A.eachTextureAttributes)),positions:new Uint16Array(e(A.positions)),normals:new Int8Array(e(A.normals)),colors:new Uint8Array(e(A.colors)),uvs:new Float32Array(e(A.uvs)),indices:new Uint32Array(e(A.indices)),edgeIndices:new Uint32Array(e(A.edgeIndices)),eachTextureSetTextures:new Int32Array(e(A.eachTextureSetTextures)),matrices:new Float32Array(e(A.matrices)),reusedGeometriesDecodeMatrix:new Float32Array(e(A.reusedGeometriesDecodeMatrix)),eachGeometryPrimitiveType:new Uint8Array(e(A.eachGeometryPrimitiveType)),eachGeometryAxisLabel:JSON.parse(uF.inflate(A.eachGeometryAxisLabel,{to:"string"})),eachGeometryPositionsPortion:new Uint32Array(e(A.eachGeometryPositionsPortion)),eachGeometryNormalsPortion:new Uint32Array(e(A.eachGeometryNormalsPortion)),eachGeometryColorsPortion:new Uint32Array(e(A.eachGeometryColorsPortion)),eachGeometryUVsPortion:new Uint32Array(e(A.eachGeometryUVsPortion)),eachGeometryIndicesPortion:new Uint32Array(e(A.eachGeometryIndicesPortion)),eachGeometryEdgeIndicesPortion:new Uint32Array(e(A.eachGeometryEdgeIndicesPortion)),eachMeshGeometriesPortion:new Uint32Array(e(A.eachMeshGeometriesPortion)),eachMeshMatricesPortion:new Uint32Array(e(A.eachMeshMatricesPortion)),eachMeshTextureSet:new Int32Array(e(A.eachMeshTextureSet)),eachMeshMaterialAttributes:new Uint8Array(e(A.eachMeshMaterialAttributes)),eachEntityId:JSON.parse(uF.inflate(A.eachEntityId,{to:"string"})),eachEntityMeshesPortion:new Uint32Array(e(A.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(e(A.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(e(A.eachTileEntitiesPortion))}}(o);xF(A,e,r,i,s,n)}},IF={};IF[Jx.version]=Jx,IF[zx.version]=zx,IF[Rx.version]=Rx,IF[Px.version]=Px,IF[Hx.version]=Hx,IF[Ox.version]=Ox,IF[Lx.version]=Lx,IF[AF.version]=AF,IF[nF.version]=nF,IF[BF.version]=BF,IF[MF.version]=MF,IF[pF.version]=pF;class fF extends Ta{constructor(A,e={}){super("XKTLoader",A,e),this._maxGeometryBatchSize=e.maxGeometryBatchSize,this.textureTranscoder=e.textureTranscoder,this.dataSource=e.dataSource,this.objectDefaults=e.objectDefaults,this.includeTypes=e.includeTypes,this.excludeTypes=e.excludeTypes,this.excludeUnclassifiedObjects=e.excludeUnclassifiedObjects,this.reuseGeometries=e.reuseGeometries}get supportedVersions(){return Object.keys(IF)}get textureTranscoder(){return this._textureTranscoder}set textureTranscoder(A){this._textureTranscoder=A}get dataSource(){return this._dataSource}set dataSource(A){this._dataSource=A||new fx}get objectDefaults(){return this._objectDefaults}set objectDefaults(A){this._objectDefaults=A||Bx}get includeTypes(){return this._includeTypes}set includeTypes(A){this._includeTypes=A}get excludeTypes(){return this._excludeTypes}set excludeTypes(A){this._excludeTypes=A}get includeIds(){return this._includeIds}set includeIds(A){this._includeIds=A}get excludeUnclassifiedObjects(){return this._excludeUnclassifiedObjects}set excludeUnclassifiedObjects(A){this._excludeUnclassifiedObjects=!!A}get globalizeObjectIds(){return this._globalizeObjectIds}set globalizeObjectIds(A){this._globalizeObjectIds=!!A}get reuseGeometries(){return this._reuseGeometries}set reuseGeometries(A){this._reuseGeometries=!1!==A}load(A={}){if(A.id&&this.viewer.scene.components[A.id]&&(this.error("Component with this ID already exists in viewer: "+A.id+" - will autogenerate this ID"),delete A.id),!(A.src||A.xkt||A.manifestSrc||A.manifest))throw new Error("XKTLoaderPlugin: load() param expected: src, xkt, manifestSrc or manifestData");const e={},t=A.includeTypes||this._includeTypes,i=A.excludeTypes||this._excludeTypes,s=A.includeIds||this._includeIds,n=A.objectDefaults||this._objectDefaults;if(e.reuseGeometries=null!==A.reuseGeometries&&void 0!==A.reuseGeometries?A.reuseGeometries:!1!==this._reuseGeometries,t){e.includeTypesMap={};for(let A=0,i=t.length;A{o.destroyed||(o.finalize(),c.finalize(),this.viewer.scene.canvas.spinner.processes--,o.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(c.id)})),this.scheduleTask((()=>{o.destroyed||(o.scene.fire("modelLoaded",o.id),o.fire("loaded",!0,!1))})))},h=A=>{this.viewer.scene.canvas.spinner.processes--,this.error(A),o.fire("error",A)};let B=0;const g={getNextId:()=>`${r}.${B++}`};if(A.metaModelSrc||A.metaModelData)if(A.metaModelSrc){const s=A.metaModelSrc;this._dataSource.getMetaModel(s,(s=>{o.destroyed||(c.loadData(s,{includeTypes:t,excludeTypes:i,globalizeObjectIds:e.globalizeObjectIds}),A.src?this._loadModel(A.src,e,o,null,g,a,h):(this._parseModel(A.xkt,e,o,null,g),a()))}),(A=>{h(`load(): Failed to load model metadata for model '${r} from '${s}' - ${A}`)}))}else A.metaModelData&&(c.loadData(A.metaModelData,{includeTypes:t,excludeTypes:i,globalizeObjectIds:e.globalizeObjectIds}),A.src?this._loadModel(A.src,e,o,null,g,a,h):(this._parseModel(A.xkt,e,o,null,g),a()));else if(A.src)this._loadModel(A.src,e,o,c,g,a,h);else if(A.xkt)this._parseModel(A.xkt,e,o,c,g),a();else if(A.manifestSrc||A.manifest){const s=A.manifestSrc?function(A){A.indexOf("?")>-1&&(A=A.split("?")[0]);const e=A.split("/");return e.pop(),e.join("/")+"/"}(A.manifestSrc):"",n=(A,n,r)=>{let a=0;const h=()=>{o.destroyed||a>=A.length?n():this._dataSource.getMetaModel(`${s}${A[a]}`,(A=>{c.loadData(A,{includeTypes:t,excludeTypes:i,globalizeObjectIds:e.globalizeObjectIds}),a++,this.scheduleTask(h,200)}),r)};h()},r=(A,t,i)=>{let n=0;const r=()=>{o.destroyed||n>=A.length?t():this._dataSource.getXKT(`${s}${A[n]}`,(A=>{this._parseModel(A,e,o,null,g),o.preFinalize(),n++,this.scheduleTask(r,200)}),i)};r()},B=(A,t,i)=>{let n=0;const r=()=>{o.destroyed||n>=A.length?t():this._dataSource.getXKT(`${s}${A[n]}`,(A=>{this._parseModel(A,e,o,c,g),o.preFinalize(),n++,this.scheduleTask(r,200)}),i)};r()};if(A.manifest){const e=A.manifest,t=e.xktFiles;if(!t||0===t.length)return void h("load(): Failed to load model manifest - manifest not valid");const i=e.metaModelFiles;i?n(i,(()=>{r(t,a,h)}),h):B(t,a,h)}else this._dataSource.getManifest(A.manifestSrc,(A=>{if(o.destroyed)return;const e=A.xktFiles;if(!e||0===e.length)return void h("load(): Failed to load model manifest - manifest not valid");const t=A.metaModelFiles;t?n(t,(()=>{r(e,a,h)}),h):B(e,a,h)}),h)}return o}_loadModel(A,e,t,i,s,n,o){this._dataSource.getXKT(A,(A=>{this._parseModel(A,e,t,i,s),t.preFinalize(),n()}),o)}async _parseModel(A,e,t,i,s){if(t.destroyed)return;const n=new DataView(A),o=new Uint8Array(A),r=n.getUint32(0,!0),c=2147483647&r,a=c<11||c>=12&&r>>>31,h=IF[c];if(!h)return void this.error("Unsupported .XKT file version: "+c+" - this XKTLoaderPlugin supports versions "+Object.keys(IF));if(!a)return void h.parseArrayBuffer(this.viewer,e,A,t,i,s);const B=n.getUint32(4,!0),g=[];let l=4*(B+2);for(let A=0;AA.size)throw new RangeError("offset:"+e+", length:"+t+", size:"+A.size);return A.slice?A.slice(e,e+t):A.webkitSlice?A.webkitSlice(e,e+t):A.mozSlice?A.mozSlice(e,e+t):A.msSlice?A.msSlice(e,e+t):void 0}(A,e,t))}catch(A){s(A)}}}function E(){}function Q(A){var t,i=this;i.init=function(A){t=new Blob([],{type:o}),A()},i.writeUint8Array=function(A,i){t=new Blob([t,e?A:A.buffer],{type:o}),i()},i.getData=function(e,i){var s=new FileReader;s.onload=function(A){e(A.target.result)},s.onerror=i,s.readAsText(t,A)}}function M(e){var t=this,i="",s="";t.init=function(A){i+="data:"+(e||"")+";base64,",A()},t.writeUint8Array=function(e,t){var n,o=s.length,r=s;for(s="",n=0;n<3*Math.floor((o+e.length)/3)-o;n++)r+=String.fromCharCode(e[n]);for(;n2?i+=A.btoa(r):s=r,t()},t.getData=function(e){e(i+A.btoa(s))}}function u(A){var t,i=this;i.init=function(e){t=new Blob([],{type:A}),e()},i.writeUint8Array=function(i,s){t=new Blob([t,e?i:i.buffer],{type:A}),s()},i.getData=function(A){A(t)}}function w(A,e,t,i,s,o,r,c,a,h){var B,g,l,E=0,Q=e.sn;function M(){A.removeEventListener("message",u,!1),c(g,l)}function u(e){var t=e.data,s=t.data,n=t.error;if(n)return n.toString=function(){return"Error: "+this.message},void a(n);if(t.sn===Q)switch("number"==typeof t.codecTime&&(A.codecTime+=t.codecTime),"number"==typeof t.crcTime&&(A.crcTime+=t.crcTime),t.type){case"append":s?(g+=s.length,i.writeUint8Array(s,(function(){w()}),h)):w();break;case"flush":l=t.crc,s?(g+=s.length,i.writeUint8Array(s,(function(){M()}),h)):M();break;case"progress":r&&r(B+t.loaded,o);break;case"importScripts":case"newTask":case"echo":break;default:console.warn("zip.js:launchWorkerProcess: unknown message: ",t)}}function w(){(B=E*n)<=o?t.readUint8Array(s+B,Math.min(n,o-B),(function(t){r&&r(B,o);var i=0===B?e:{sn:Q};i.type="append",i.data=t;try{A.postMessage(i,[t.buffer])}catch(e){A.postMessage(i)}E++}),a):A.postMessage({sn:Q,type:"flush"})}g=0,A.addEventListener("message",u,!1),w()}function d(A,e,t,i,s,o,c,a,h,B){var g,l=0,E=0,Q="input"===o,M="output"===o,u=new r;!function o(){var r;if((g=l*n)127?s[t-128]:String.fromCharCode(t);return i}function F(A){return decodeURIComponent(escape(A))}function p(A){var e,t="";for(e=0;e>16,t=65535&A;try{return new Date(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&t)>>11,(2016&t)>>5,2*(31&t),0)}catch(A){}}(A.lastModDateRaw),1&~A.bitFlag?((i||8&~A.bitFlag)&&(A.crc32=e.view.getUint32(t+10,!0),A.compressedSize=e.view.getUint32(t+14,!0),A.uncompressedSize=e.view.getUint32(t+18,!0)),4294967295!==A.compressedSize&&4294967295!==A.uncompressedSize?(A.filenameLength=e.view.getUint16(t+22,!0),A.extraFieldLength=e.view.getUint16(t+24,!0)):s("File is using Zip64 (4gb+ file size).")):s("File contains encrypted entry.")}function f(e,n,o){var r=0;function c(){}c.prototype.getData=function(i,n,c,h){var B=this;function g(A,e){h&&!function(A){var e=a(4);return e.view.setUint32(0,A),B.crc32==e.view.getUint32(0)}(e)?o("CRC failed."):i.getData((function(A){n(A)}))}function l(A){o(A||s)}function E(A){o(A||"Error while writing file data.")}e.readUint8Array(B.offset,30,(function(s){var n,Q=a(s.length,s);1347093252==Q.view.getUint32(0)?(I(B,Q,4,!1,o),n=B.offset+30+B.filenameLength+B.extraFieldLength,i.init((function(){0===B.compressionMethod?C(B._worker,r++,e,i,n,B.compressedSize,h,g,c,l,E):function(e,t,i,s,n,o,r,c,a,h,B){var g=r?"output":"none";A.zip.useWebWorkers?w(e,{sn:t,codecClass:"Inflater",crcType:g},i,s,n,o,a,c,h,B):d(new A.zip.Inflater,i,s,n,o,g,a,c,h,B)}(B._worker,r++,e,i,n,B.compressedSize,h,g,c,l,E)}),E)):o(t)}),l)};var h={getEntries:function(A){var s=this._worker;!function(A){e.size<22?o(t):s(22,(function(){s(Math.min(65558,e.size),(function(){o(t)}))}));function s(t,s){e.readUint8Array(e.size-t,t,(function(e){for(var t=e.length-22;t>=0;t--)if(80===e[t]&&75===e[t+1]&&5===e[t+2]&&6===e[t+3])return void A(new DataView(e.buffer,t,22));s()}),(function(){o(i)}))}}((function(n){var r,h;r=n.getUint32(16,!0),h=n.getUint16(8,!0),r<0||r>=e.size?o(t):e.readUint8Array(r,e.size-r,(function(e){var i,n,r,B,g=0,l=[],E=a(e.length,e);for(i=0;i>>8^t[255&(e^A[i])];this.crc=e},r.prototype.get=function(){return~this.crc},r.prototype.table=function(){var A,e,t,i=[];for(A=0;A<256;A++){for(t=A,e=0;e<8;e++)1&t?t=t>>>1^3988292384:t>>>=1;i[A]=t}return i}(),c.prototype.append=function(A,e){return A},c.prototype.flush=function(){},B.prototype=new h,B.prototype.constructor=B,g.prototype=new h,g.prototype.constructor=g,l.prototype=new h,l.prototype.constructor=l,E.prototype.getData=function(A){A(this.data)},Q.prototype=new E,Q.prototype.constructor=Q,M.prototype=new E,M.prototype.constructor=M,u.prototype=new E,u.prototype.constructor=u;var J={deflater:["z-worker.js","deflate.js"],inflater:["z-worker.js","inflate.js"]};function N(e,t,i){if(null===A.zip.workerScripts||null===A.zip.workerScriptsPath){var s;if(A.zip.workerScripts){if(s=A.zip.workerScripts[e],!Array.isArray(s))return void i(new Error("zip.workerScripts."+e+" is not an array!"));s=function(A){var e=document.createElement("a");return A.map((function(A){return e.href=A,e.href}))}(s)}else(s=J[e].slice(0))[0]=(A.zip.workerScriptsPath||"")+s[0];var n=new Worker(s[0]);n.codecTime=n.crcTime=0,n.postMessage({type:"importScripts",scripts:s.slice(1)}),n.addEventListener("message",(function A(e){var s=e.data;if(s.error)return n.terminate(),void i(s.error);"importScripts"===s.type&&(n.removeEventListener("message",A),n.removeEventListener("error",o),t(n))})),n.addEventListener("error",o)}else i(new Error("Either zip.workerScripts or zip.workerScriptsPath may be set, not both."));function o(A){n.terminate(),i(A)}}function y(A){console.error(A)}A.zip={Reader:h,Writer:E,BlobReader:l,Data64URIReader:g,TextReader:B,BlobWriter:u,Data64URIWriter:M,TextWriter:Q,createReader:function(A,e,t){t=t||y,A.init((function(){f(A,e,t)}),t)},createWriter:function(A,e,t,i){t=t||y,i=!!i,A.init((function(){m(A,e,t,i)}),t)},useWebWorkers:!0,workerScriptsPath:null,workerScripts:null}}(YF);!function(A){var e,t,i=A.Reader,s=A.Writer;try{t=0===new Blob([new DataView(new ArrayBuffer(0))]).size}catch(A){}function n(A){var e=this;function t(t,i){var s;e.data?t():((s=new XMLHttpRequest).addEventListener("load",(function(){e.size||(e.size=Number(s.getResponseHeader("Content-Length"))||Number(s.response.byteLength)),e.data=new Uint8Array(s.response),t()}),!1),s.addEventListener("error",i,!1),s.open("GET",A),s.responseType="arraybuffer",s.send())}e.size=0,e.init=function(i,s){if(function(A){var e=document.createElement("a");return e.href=A,"http:"===e.protocol||"https:"===e.protocol}(A)){var n=new XMLHttpRequest;n.addEventListener("load",(function(){e.size=Number(n.getResponseHeader("Content-Length")),e.size?i():t(i,s)}),!1),n.addEventListener("error",s,!1),n.open("HEAD",A),n.send()}else t(i,s)},e.readUint8Array=function(A,i,s,n){t((function(){s(new Uint8Array(e.data.subarray(A,A+i)))}),n)}}function o(A){var e=this;e.size=0,e.init=function(t,i){var s=new XMLHttpRequest;s.addEventListener("load",(function(){e.size=Number(s.getResponseHeader("Content-Length")),"bytes"==s.getResponseHeader("Accept-Ranges")?t():i("HTTP Range not supported.")}),!1),s.addEventListener("error",i,!1),s.open("HEAD",A),s.send()},e.readUint8Array=function(e,t,i,s){!function(e,t,i,s){var n=new XMLHttpRequest;n.open("GET",A),n.responseType="arraybuffer",n.setRequestHeader("Range","bytes="+e+"-"+(e+t-1)),n.addEventListener("load",(function(){i(n.response)}),!1),n.addEventListener("error",s,!1),n.send()}(e,t,(function(A){i(new Uint8Array(A))}),s)}}function r(A){var e=this;e.size=0,e.init=function(t,i){e.size=A.byteLength,t()},e.readUint8Array=function(e,t,i,s){i(new Uint8Array(A.slice(e,e+t)))}}function c(){var A,e=this;e.init=function(e,t){A=new Uint8Array,e()},e.writeUint8Array=function(e,t,i){var s=new Uint8Array(A.length+e.length);s.set(A),s.set(e,A.length),A=s,t()},e.getData=function(e){e(A.buffer)}}function a(A,e){var i,s=this;s.init=function(e,t){A.createWriter((function(A){i=A,e()}),t)},s.writeUint8Array=function(A,s,n){var o=new Blob([t?A:A.buffer],{type:e});i.onwrite=function(){i.onwrite=null,s()},i.onerror=n,i.write(o)},s.getData=function(e){A.file(e)}}n.prototype=new i,n.prototype.constructor=n,o.prototype=new i,o.prototype.constructor=o,r.prototype=new i,r.prototype.constructor=r,c.prototype=new s,c.prototype.constructor=c,a.prototype=new s,a.prototype.constructor=a,A.FileWriter=a,A.HttpReader=n,A.HttpRangeReader=o,A.ArrayBufferReader=r,A.ArrayBufferWriter=c,A.fs&&((e=A.fs.ZipDirectoryEntry).prototype.addHttpContent=function(t,i,s){return function(t,i,s,n){if(t.directory)return n?new e(t.fs,i,s,t):new A.fs.ZipFileEntry(t.fs,i,s,t);throw"Parent entry is not a directory."}(this,t,{data:i,Reader:s?o:n})},e.prototype.importHttpContent=function(A,e,t,i){this.importZip(e?new o(A):new n(A),t,i)},A.fs.FS.prototype.importHttpContent=function(A,t,i,s){this.entries=[],this.root=new e(this),this.root.importHttpContent(A,t,i,s)})}(YF.zip);const DF="0.0.3-alpha";var mF=Object.defineProperty,JF=(A,e,t)=>(((A,e,t)=>{e in A?mF(A,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):A[e]=t})(A,"symbol"!=typeof e?e+"":e,t),t),NF=(()=>async function(A={}){var e,t,i,s=A,n=new Promise(((A,i)=>{e=A,t=i})),o=[],r="./this.program",c=(A,e)=>{throw e},a=import.meta.url,h="";try{h=new URL(".",a).href}catch{}i=async A=>{var e=await fetch(A,{credentials:"same-origin"});if(e.ok)return e.arrayBuffer();throw new Error(e.status+" : "+e.url)};var B,g,l,E,Q,M,u,w,d,C,x,F,p,I=console.log.bind(console),f=console.error.bind(console),Y=!1;function D(){var A=g.buffer;E=new Int8Array(A),M=new Int16Array(A),Q=new Uint8Array(A),u=new Uint16Array(A),w=new Int32Array(A),d=new Uint32Array(A),C=new Float32Array(A),p=new Float64Array(A),x=new BigInt64Array(A),F=new BigUint64Array(A)}var m,J=0,N=null;function y(A){J++,s.monitorRunDependencies?.(J)}function z(A){if(J--,s.monitorRunDependencies?.(J),0==J&&N){var e=N;N=null,e()}}function T(A){s.onAbort?.(A),f(A="Aborted("+A+")"),Y=!0,A+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(A);throw t(e),e}function U(){return s.locateFile?(A="ifcdb.wasm",s.locateFile?s.locateFile(A,h):h+A):new URL("ifcdb.wasm",import.meta.url).href;var A}async function R(A){if(!B)try{var e=await i(A);return new Uint8Array(e)}catch{}return function(A){if(A==m&&B)return new Uint8Array(B);throw"both async and sync fetching of the wasm failed"}(A)}async function b(A,e,t){if(!A&&"function"==typeof WebAssembly.instantiateStreaming)try{var i=fetch(e,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(i,t)}catch(A){f(`wasm streaming compile failed: ${A}`),f("falling back to ArrayBuffer instantiation")}return async function(A,e){try{var t=await R(A);return await WebAssembly.instantiate(t,e)}catch(A){f(`failed to asynchronously prepare wasm: ${A}`),T(A)}}(e,t)}class k{constructor(A){JF(this,"name","ExitStatus"),this.message=`Program terminated with exit(${A})`,this.status=A}}var P=A=>{for(;A.length>0;)A.shift()(s)},G=[],v=A=>G.push(A),H=[],S=A=>H.push(A),j=(A,e,t=[],i=!1)=>{var n=((A,e,t)=>(A=A.replace(/p/g,"i"),(0,s["dynCall_"+A])(e,...t)))(A,e,t);return n},O=!0;class _{constructor(A){this.excPtr=A,this.ptr=A-24}set_type(A){d[this.ptr+4>>2]=A}get_type(){return d[this.ptr+4>>2]}set_destructor(A){d[this.ptr+8>>2]=A}get_destructor(){return d[this.ptr+8>>2]}set_caught(A){A=A?1:0,E[this.ptr+12]=A}get_caught(){return 0!=E[this.ptr+12]}set_rethrown(A){A=A?1:0,E[this.ptr+13]=A}get_rethrown(){return 0!=E[this.ptr+13]}init(A,e){this.set_adjusted_ptr(0),this.set_type(A),this.set_destructor(e)}set_adjusted_ptr(A){d[this.ptr+16>>2]=A}get_adjusted_ptr(){return d[this.ptr+16>>2]}}var W=()=>{var A=w[+BA.varargs>>2];return BA.varargs+=4,A},X=W,L={isAbs:A=>"/"===A.charAt(0),splitPath:A=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(A).slice(1),normalizeArray:(A,e)=>{for(var t=0,i=A.length-1;i>=0;i--){var s=A[i];"."===s?A.splice(i,1):".."===s?(A.splice(i,1),t++):t&&(A.splice(i,1),t--)}if(e)for(;t;t--)A.unshift("..");return A},normalize:A=>{var e=L.isAbs(A),t="/"===A.slice(-1);return A=L.normalizeArray(A.split("/").filter((A=>!!A)),!e).join("/"),A||e||(A="."),A&&t&&(A+="/"),(e?"/":"")+A},dirname:A=>{var e=L.splitPath(A),t=e[0],i=e[1];return t||i?(i&&(i=i.slice(0,-1)),t+i):"."},basename:A=>A&&A.match(/([^\/]+|\/)\/*$/)[1],join:(...A)=>L.normalize(A.join("/")),join2:(A,e)=>L.normalize(A+"/"+e)},V=A=>{(V=A=>crypto.getRandomValues(A))(A)},K={resolve:(...A)=>{for(var e="",t=!1,i=A.length-1;i>=-1&&!t;i--){var s=i>=0?A[i]:aA.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");if(!s)return"";e=s+"/"+e,t=L.isAbs(s)}return e=L.normalizeArray(e.split("/").filter((A=>!!A)),!t).join("/"),(t?"/":"")+e||"."},relative:(A,e)=>{function t(A){for(var e=0;e=0&&""===A[t];t--);return e>t?[]:A.slice(e,t-e+1)}A=K.resolve(A).slice(1),e=K.resolve(e).slice(1);for(var i=t(A.split("/")),s=t(e.split("/")),n=Math.min(i.length,s.length),o=n,r=0;r{for(var i=e+t,s=e;A[s]&&!(s>=i);)++s;if(s-e>16&&A.buffer&&Z)return Z.decode(A.subarray(e,s));for(var n="";e>10,56320|1023&a)}}else n+=String.fromCharCode((31&o)<<6|r)}else n+=String.fromCharCode(o)}return n},$=[],AA=A=>{for(var e=0,t=0;t=55296&&i<=57343?(e+=4,++t):e+=3}return e},eA=(A,e,t,i)=>{if(!(i>0))return 0;for(var s=t,n=t+i-1,o=0;o=55296&&r<=57343)r=65536+((1023&r)<<10)|1023&A.charCodeAt(++o);if(r<=127){if(t>=n)break;e[t++]=r}else if(r<=2047){if(t+1>=n)break;e[t++]=192|r>>6,e[t++]=128|63&r}else if(r<=65535){if(t+2>=n)break;e[t++]=224|r>>12,e[t++]=128|r>>6&63,e[t++]=128|63&r}else{if(t+3>=n)break;e[t++]=240|r>>18,e[t++]=128|r>>12&63,e[t++]=128|r>>6&63,e[t++]=128|63&r}}return e[t]=0,t-s},tA=(A,e,t)=>{var i=AA(A)+1,s=new Array(i),n=eA(A,s,0,s.length);return s.length=n,s},iA={ttys:[],init(){},shutdown(){},register(A,e){iA.ttys[A]={input:[],output:[],ops:e},aA.registerDevice(A,iA.stream_ops)},stream_ops:{open(A){var e=iA.ttys[A.node.rdev];if(!e)throw new aA.ErrnoError(43);A.tty=e,A.seekable=!1},close(A){A.tty.ops.fsync(A.tty)},fsync(A){A.tty.ops.fsync(A.tty)},read(A,e,t,i,s){if(!A.tty||!A.tty.ops.get_char)throw new aA.ErrnoError(60);for(var n=0,o=0;o(()=>{if(!$.length){var A=null;if("undefined"!=typeof window&&"function"==typeof window.prompt&&null!==(A=window.prompt("Input: "))&&(A+="\n"),!A)return null;$=tA(A)}return $.shift()})(),put_char(A,e){null===e||10===e?(I(q(A.output)),A.output=[]):0!=e&&A.output.push(e)},fsync(A){A.output?.length>0&&(I(q(A.output)),A.output=[])},ioctl_tcgets:A=>({c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}),ioctl_tcsets:(A,e,t)=>0,ioctl_tiocgwinsz:A=>[24,80]},default_tty1_ops:{put_char(A,e){null===e||10===e?(f(q(A.output)),A.output=[]):0!=e&&A.output.push(e)},fsync(A){A.output?.length>0&&(f(q(A.output)),A.output=[])}}},sA=A=>{T()},nA={ops_table:null,mount:A=>nA.createNode(null,"/",16895,0),createNode(A,e,t,i){if(aA.isBlkdev(t)||aA.isFIFO(t))throw new aA.ErrnoError(63);nA.ops_table||(nA.ops_table={dir:{node:{getattr:nA.node_ops.getattr,setattr:nA.node_ops.setattr,lookup:nA.node_ops.lookup,mknod:nA.node_ops.mknod,rename:nA.node_ops.rename,unlink:nA.node_ops.unlink,rmdir:nA.node_ops.rmdir,readdir:nA.node_ops.readdir,symlink:nA.node_ops.symlink},stream:{llseek:nA.stream_ops.llseek}},file:{node:{getattr:nA.node_ops.getattr,setattr:nA.node_ops.setattr},stream:{llseek:nA.stream_ops.llseek,read:nA.stream_ops.read,write:nA.stream_ops.write,mmap:nA.stream_ops.mmap,msync:nA.stream_ops.msync}},link:{node:{getattr:nA.node_ops.getattr,setattr:nA.node_ops.setattr,readlink:nA.node_ops.readlink},stream:{}},chrdev:{node:{getattr:nA.node_ops.getattr,setattr:nA.node_ops.setattr},stream:aA.chrdev_stream_ops}});var s=aA.createNode(A,e,t,i);return aA.isDir(s.mode)?(s.node_ops=nA.ops_table.dir.node,s.stream_ops=nA.ops_table.dir.stream,s.contents={}):aA.isFile(s.mode)?(s.node_ops=nA.ops_table.file.node,s.stream_ops=nA.ops_table.file.stream,s.usedBytes=0,s.contents=null):aA.isLink(s.mode)?(s.node_ops=nA.ops_table.link.node,s.stream_ops=nA.ops_table.link.stream):aA.isChrdev(s.mode)&&(s.node_ops=nA.ops_table.chrdev.node,s.stream_ops=nA.ops_table.chrdev.stream),s.atime=s.mtime=s.ctime=Date.now(),A&&(A.contents[e]=s,A.atime=A.mtime=A.ctime=s.atime),s},getFileDataAsTypedArray:A=>A.contents?A.contents.subarray?A.contents.subarray(0,A.usedBytes):new Uint8Array(A.contents):new Uint8Array(0),expandFileStorage(A,e){var t=A.contents?A.contents.length:0;if(!(t>=e)){e=Math.max(e,t*(t<1048576?2:1.125)>>>0),0!=t&&(e=Math.max(e,256));var i=A.contents;A.contents=new Uint8Array(e),A.usedBytes>0&&A.contents.set(i.subarray(0,A.usedBytes),0)}},resizeFileStorage(A,e){if(A.usedBytes!=e)if(0==e)A.contents=null,A.usedBytes=0;else{var t=A.contents;A.contents=new Uint8Array(e),t&&A.contents.set(t.subarray(0,Math.min(e,A.usedBytes))),A.usedBytes=e}},node_ops:{getattr(A){var e={};return e.dev=aA.isChrdev(A.mode)?A.id:1,e.ino=A.id,e.mode=A.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=A.rdev,aA.isDir(A.mode)?e.size=4096:aA.isFile(A.mode)?e.size=A.usedBytes:aA.isLink(A.mode)?e.size=A.link.length:e.size=0,e.atime=new Date(A.atime),e.mtime=new Date(A.mtime),e.ctime=new Date(A.ctime),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr(A,e){for(const t of["mode","atime","mtime","ctime"])null!=e[t]&&(A[t]=e[t]);void 0!==e.size&&nA.resizeFileStorage(A,e.size)},lookup(A,e){throw nA.doesNotExistError},mknod:(A,e,t,i)=>nA.createNode(A,e,t,i),rename(A,e,t){var i;try{i=aA.lookupNode(e,t)}catch(A){}if(i){if(aA.isDir(A.mode))for(var s in i.contents)throw new aA.ErrnoError(55);aA.hashRemoveNode(i)}delete A.parent.contents[A.name],e.contents[t]=A,A.name=t,e.ctime=e.mtime=A.parent.ctime=A.parent.mtime=Date.now()},unlink(A,e){delete A.contents[e],A.ctime=A.mtime=Date.now()},rmdir(A,e){var t=aA.lookupNode(A,e);for(var i in t.contents)throw new aA.ErrnoError(55);delete A.contents[e],A.ctime=A.mtime=Date.now()},readdir:A=>[".","..",...Object.keys(A.contents)],symlink(A,e,t){var i=nA.createNode(A,e,41471,0);return i.link=t,i},readlink(A){if(!aA.isLink(A.mode))throw new aA.ErrnoError(28);return A.link}},stream_ops:{read(A,e,t,i,s){var n=A.node.contents;if(s>=A.node.usedBytes)return 0;var o=Math.min(A.node.usedBytes-s,i);if(o>8&&n.subarray)e.set(n.subarray(s,s+o),t);else for(var r=0;r0||t+e(nA.stream_ops.write(A,e,0,i,t,!1),0)}},oA=async A=>{var e=await i(A);return new Uint8Array(e)};oA.isAsync=!0;var rA=[],cA=(A,e)=>{var t=0;return A&&(t|=365),e&&(t|=146),t},aA={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,filesystems:null,syncFSRequests:0,readFiles:{},ErrnoError:class{constructor(A){JF(this,"name","ErrnoError"),this.errno=A}},FSStream:class{constructor(){JF(this,"shared",{})}get object(){return this.node}set object(A){this.node=A}get isRead(){return 1!=(2097155&this.flags)}get isWrite(){return!!(2097155&this.flags)}get isAppend(){return 1024&this.flags}get flags(){return this.shared.flags}set flags(A){this.shared.flags=A}get position(){return this.shared.position}set position(A){this.shared.position=A}},FSNode:class{constructor(A,e,t,i){JF(this,"node_ops",{}),JF(this,"stream_ops",{}),JF(this,"readMode",365),JF(this,"writeMode",146),JF(this,"mounted",null),A||(A=this),this.parent=A,this.mount=A.mount,this.id=aA.nextInode++,this.name=e,this.mode=t,this.rdev=i,this.atime=this.mtime=this.ctime=Date.now()}get read(){return(this.mode&this.readMode)===this.readMode}set read(A){A?this.mode|=this.readMode:this.mode&=~this.readMode}get write(){return(this.mode&this.writeMode)===this.writeMode}set write(A){A?this.mode|=this.writeMode:this.mode&=~this.writeMode}get isFolder(){return aA.isDir(this.mode)}get isDevice(){return aA.isChrdev(this.mode)}},lookupPath(A,e={}){if(!A)throw new aA.ErrnoError(44);e.follow_mount??(e.follow_mount=!0),L.isAbs(A)||(A=aA.cwd()+"/"+A);A:for(var t=0;t<40;t++){for(var i=A.split("/").filter((A=>!!A)),s=aA.root,n="/",o=0;o>>0)%aA.nameTable.length},hashAddNode(A){var e=aA.hashName(A.parent.id,A.name);A.name_next=aA.nameTable[e],aA.nameTable[e]=A},hashRemoveNode(A){var e=aA.hashName(A.parent.id,A.name);if(aA.nameTable[e]===A)aA.nameTable[e]=A.name_next;else for(var t=aA.nameTable[e];t;){if(t.name_next===A){t.name_next=A.name_next;break}t=t.name_next}},lookupNode(A,e){var t=aA.mayLookup(A);if(t)throw new aA.ErrnoError(t);for(var i=aA.hashName(A.id,e),s=aA.nameTable[i];s;s=s.name_next){var n=s.name;if(s.parent.id===A.id&&n===e)return s}return aA.lookup(A,e)},createNode(A,e,t,i){var s=new aA.FSNode(A,e,t,i);return aA.hashAddNode(s),s},destroyNode(A){aA.hashRemoveNode(A)},isRoot:A=>A===A.parent,isMountpoint:A=>!!A.mounted,isFile:A=>32768==(61440&A),isDir:A=>16384==(61440&A),isLink:A=>40960==(61440&A),isChrdev:A=>8192==(61440&A),isBlkdev:A=>24576==(61440&A),isFIFO:A=>4096==(61440&A),isSocket:A=>!(49152&~A),flagsToPermissionString(A){var e=["r","w","rw"][3&A];return 512&A&&(e+="w"),e},nodePermissions:(A,e)=>aA.ignorePermissions||(!e.includes("r")||292&A.mode)&&(!e.includes("w")||146&A.mode)&&(!e.includes("x")||73&A.mode)?0:2,mayLookup(A){if(!aA.isDir(A.mode))return 54;var e=aA.nodePermissions(A,"x");return e||(A.node_ops.lookup?0:2)},mayCreate(A,e){if(!aA.isDir(A.mode))return 54;try{aA.lookupNode(A,e);return 20}catch(A){}return aA.nodePermissions(A,"wx")},mayDelete(A,e,t){var i;try{i=aA.lookupNode(A,e)}catch(A){return A.errno}var s=aA.nodePermissions(A,"wx");if(s)return s;if(t){if(!aA.isDir(i.mode))return 54;if(aA.isRoot(i)||aA.getPath(i)===aA.cwd())return 10}else if(aA.isDir(i.mode))return 31;return 0},mayOpen:(A,e)=>A?aA.isLink(A.mode)?32:aA.isDir(A.mode)&&("r"!==aA.flagsToPermissionString(e)||576&e)?31:aA.nodePermissions(A,aA.flagsToPermissionString(e)):44,checkOpExists(A,e){if(!A)throw new aA.ErrnoError(e);return A},MAX_OPEN_FDS:4096,nextfd(){for(var A=0;A<=aA.MAX_OPEN_FDS;A++)if(!aA.streams[A])return A;throw new aA.ErrnoError(33)},getStreamChecked(A){var e=aA.getStream(A);if(!e)throw new aA.ErrnoError(8);return e},getStream:A=>aA.streams[A],createStream:(A,e=-1)=>(A=Object.assign(new aA.FSStream,A),-1==e&&(e=aA.nextfd()),A.fd=e,aA.streams[e]=A,A),closeStream(A){aA.streams[A]=null},dupStream(A,e=-1){var t=aA.createStream(A,e);return t.stream_ops?.dup?.(t),t},doSetAttr(A,e,t){var i=A?.stream_ops.setattr,s=i?A:e;i??(i=e.node_ops.setattr),aA.checkOpExists(i,63),i(s,t)},chrdev_stream_ops:{open(A){var e=aA.getDevice(A.node.rdev);A.stream_ops=e.stream_ops,A.stream_ops.open?.(A)},llseek(){throw new aA.ErrnoError(70)}},major:A=>A>>8,minor:A=>255&A,makedev:(A,e)=>A<<8|e,registerDevice(A,e){aA.devices[A]={stream_ops:e}},getDevice:A=>aA.devices[A],getMounts(A){for(var e=[],t=[A];t.length;){var i=t.pop();e.push(i),t.push(...i.mounts)}return e},syncfs(A,e){"function"==typeof A&&(e=A,A=!1),aA.syncFSRequests++,aA.syncFSRequests>1&&f(`warning: ${aA.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var t=aA.getMounts(aA.root.mount),i=0;function s(A){return aA.syncFSRequests--,e(A)}function n(A){if(A)return n.errored?void 0:(n.errored=!0,s(A));++i>=t.length&&s(null)}t.forEach((e=>{if(!e.type.syncfs)return n(null);e.type.syncfs(e,A,n)}))},mount(A,e,t){var i,s="/"===t,n=!t;if(s&&aA.root)throw new aA.ErrnoError(10);if(!s&&!n){var o=aA.lookupPath(t,{follow_mount:!1});if(t=o.path,i=o.node,aA.isMountpoint(i))throw new aA.ErrnoError(10);if(!aA.isDir(i.mode))throw new aA.ErrnoError(54)}var r={type:A,opts:e,mountpoint:t,mounts:[]},c=A.mount(r);return c.mount=r,r.root=c,s?aA.root=c:i&&(i.mounted=r,i.mount&&i.mount.mounts.push(r)),c},unmount(A){var e=aA.lookupPath(A,{follow_mount:!1});if(!aA.isMountpoint(e.node))throw new aA.ErrnoError(28);var t=e.node,i=t.mounted,s=aA.getMounts(i);Object.keys(aA.nameTable).forEach((A=>{for(var e=aA.nameTable[A];e;){var t=e.name_next;s.includes(e.mount)&&aA.destroyNode(e),e=t}})),t.mounted=null;var n=t.mount.mounts.indexOf(i);t.mount.mounts.splice(n,1)},lookup:(A,e)=>A.node_ops.lookup(A,e),mknod(A,e,t){var i=aA.lookupPath(A,{parent:!0}).node,s=L.basename(A);if(!s)throw new aA.ErrnoError(28);if("."===s||".."===s)throw new aA.ErrnoError(20);var n=aA.mayCreate(i,s);if(n)throw new aA.ErrnoError(n);if(!i.node_ops.mknod)throw new aA.ErrnoError(63);return i.node_ops.mknod(i,s,e,t)},statfs:A=>aA.statfsNode(aA.lookupPath(A,{follow:!0}).node),statfsStream:A=>aA.statfsNode(A.node),statfsNode(A){var e={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:aA.nextInode,ffree:aA.nextInode-1,fsid:42,flags:2,namelen:255};return A.node_ops.statfs&&Object.assign(e,A.node_ops.statfs(A.mount.opts.root)),e},create:(A,e=438)=>(e&=4095,e|=32768,aA.mknod(A,e,0)),mkdir:(A,e=511)=>(e&=1023,e|=16384,aA.mknod(A,e,0)),mkdirTree(A,e){var t=A.split("/"),i="";for(var s of t)if(s){(i||L.isAbs(A))&&(i+="/"),i+=s;try{aA.mkdir(i,e)}catch(A){if(20!=A.errno)throw A}}},mkdev:(A,e,t)=>(void 0===t&&(t=e,e=438),e|=8192,aA.mknod(A,e,t)),symlink(A,e){if(!K.resolve(A))throw new aA.ErrnoError(44);var t=aA.lookupPath(e,{parent:!0}).node;if(!t)throw new aA.ErrnoError(44);var i=L.basename(e),s=aA.mayCreate(t,i);if(s)throw new aA.ErrnoError(s);if(!t.node_ops.symlink)throw new aA.ErrnoError(63);return t.node_ops.symlink(t,i,A)},rename(A,e){var t,i,s=L.dirname(A),n=L.dirname(e),o=L.basename(A),r=L.basename(e);if(t=aA.lookupPath(A,{parent:!0}).node,i=aA.lookupPath(e,{parent:!0}).node,!t||!i)throw new aA.ErrnoError(44);if(t.mount!==i.mount)throw new aA.ErrnoError(75);var c,a=aA.lookupNode(t,o),h=K.relative(A,n);if("."!==h.charAt(0))throw new aA.ErrnoError(28);if("."!==(h=K.relative(e,s)).charAt(0))throw new aA.ErrnoError(55);try{c=aA.lookupNode(i,r)}catch(A){}if(a!==c){var B=aA.isDir(a.mode),g=aA.mayDelete(t,o,B);if(g)throw new aA.ErrnoError(g);if(g=c?aA.mayDelete(i,r,B):aA.mayCreate(i,r))throw new aA.ErrnoError(g);if(!t.node_ops.rename)throw new aA.ErrnoError(63);if(aA.isMountpoint(a)||c&&aA.isMountpoint(c))throw new aA.ErrnoError(10);if(i!==t&&(g=aA.nodePermissions(t,"w")))throw new aA.ErrnoError(g);aA.hashRemoveNode(a);try{t.node_ops.rename(a,i,r),a.parent=i}catch(A){throw A}finally{aA.hashAddNode(a)}}},rmdir(A){var e=aA.lookupPath(A,{parent:!0}).node,t=L.basename(A),i=aA.lookupNode(e,t),s=aA.mayDelete(e,t,!0);if(s)throw new aA.ErrnoError(s);if(!e.node_ops.rmdir)throw new aA.ErrnoError(63);if(aA.isMountpoint(i))throw new aA.ErrnoError(10);e.node_ops.rmdir(e,t),aA.destroyNode(i)},readdir(A){var e=aA.lookupPath(A,{follow:!0}).node;return aA.checkOpExists(e.node_ops.readdir,54)(e)},unlink(A){var e=aA.lookupPath(A,{parent:!0}).node;if(!e)throw new aA.ErrnoError(44);var t=L.basename(A),i=aA.lookupNode(e,t),s=aA.mayDelete(e,t,!1);if(s)throw new aA.ErrnoError(s);if(!e.node_ops.unlink)throw new aA.ErrnoError(63);if(aA.isMountpoint(i))throw new aA.ErrnoError(10);e.node_ops.unlink(e,t),aA.destroyNode(i)},readlink(A){var e=aA.lookupPath(A).node;if(!e)throw new aA.ErrnoError(44);if(!e.node_ops.readlink)throw new aA.ErrnoError(28);return e.node_ops.readlink(e)},stat(A,e){var t=aA.lookupPath(A,{follow:!e}).node;return aA.checkOpExists(t.node_ops.getattr,63)(t)},fstat(A){var e=aA.getStreamChecked(A),t=e.node,i=e.stream_ops.getattr,s=i?e:t;return i??(i=t.node_ops.getattr),aA.checkOpExists(i,63),i(s)},lstat:A=>aA.stat(A,!0),doChmod(A,e,t,i){aA.doSetAttr(A,e,{mode:4095&t|-4096&e.mode,ctime:Date.now(),dontFollow:i})},chmod(A,e,t){var i;"string"==typeof A?i=aA.lookupPath(A,{follow:!t}).node:i=A;aA.doChmod(null,i,e,t)},lchmod(A,e){aA.chmod(A,e,!0)},fchmod(A,e){var t=aA.getStreamChecked(A);aA.doChmod(t,t.node,e,!1)},doChown(A,e,t){aA.doSetAttr(A,e,{timestamp:Date.now(),dontFollow:t})},chown(A,e,t,i){var s;"string"==typeof A?s=aA.lookupPath(A,{follow:!i}).node:s=A;aA.doChown(null,s,i)},lchown(A,e,t){aA.chown(A,e,t,!0)},fchown(A,e,t){var i=aA.getStreamChecked(A);aA.doChown(i,i.node,!1)},doTruncate(A,e,t){if(aA.isDir(e.mode))throw new aA.ErrnoError(31);if(!aA.isFile(e.mode))throw new aA.ErrnoError(28);var i=aA.nodePermissions(e,"w");if(i)throw new aA.ErrnoError(i);aA.doSetAttr(A,e,{size:t,timestamp:Date.now()})},truncate(A,e){if(e<0)throw new aA.ErrnoError(28);var t;"string"==typeof A?t=aA.lookupPath(A,{follow:!0}).node:t=A;aA.doTruncate(null,t,e)},ftruncate(A,e){var t=aA.getStreamChecked(A);if(e<0||!(2097155&t.flags))throw new aA.ErrnoError(28);aA.doTruncate(t,t.node,e)},utime(A,e,t){var i=aA.lookupPath(A,{follow:!0}).node;aA.checkOpExists(i.node_ops.setattr,63)(i,{atime:e,mtime:t})},open(A,e,t=438){if(""===A)throw new aA.ErrnoError(44);var i,n;if(t=64&(e="string"==typeof e?(A=>{var e={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[A];if(void 0===e)throw new Error(`Unknown file open mode: ${A}`);return e})(e):e)?4095&t|32768:0,"object"==typeof A)i=A;else{n=A.endsWith("/");var o=aA.lookupPath(A,{follow:!(131072&e),noent_okay:!0});i=o.node,A=o.path}var r=!1;if(64&e)if(i){if(128&e)throw new aA.ErrnoError(20)}else{if(n)throw new aA.ErrnoError(31);i=aA.mknod(A,511|t,0),r=!0}if(!i)throw new aA.ErrnoError(44);if(aA.isChrdev(i.mode)&&(e&=-513),65536&e&&!aA.isDir(i.mode))throw new aA.ErrnoError(54);if(!r){var c=aA.mayOpen(i,e);if(c)throw new aA.ErrnoError(c)}512&e&&!r&&aA.truncate(i,0),e&=-131713;var a=aA.createStream({node:i,path:aA.getPath(i),flags:e,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1});return a.stream_ops.open&&a.stream_ops.open(a),r&&aA.chmod(i,511&t),!s.logReadFiles||1&e||A in aA.readFiles||(aA.readFiles[A]=1),a},close(A){if(aA.isClosed(A))throw new aA.ErrnoError(8);A.getdents&&(A.getdents=null);try{A.stream_ops.close&&A.stream_ops.close(A)}catch(A){throw A}finally{aA.closeStream(A.fd)}A.fd=null},isClosed:A=>null===A.fd,llseek(A,e,t){if(aA.isClosed(A))throw new aA.ErrnoError(8);if(!A.seekable||!A.stream_ops.llseek)throw new aA.ErrnoError(70);if(0!=t&&1!=t&&2!=t)throw new aA.ErrnoError(28);return A.position=A.stream_ops.llseek(A,e,t),A.ungotten=[],A.position},read(A,e,t,i,s){if(i<0||s<0)throw new aA.ErrnoError(28);if(aA.isClosed(A))throw new aA.ErrnoError(8);if(1==(2097155&A.flags))throw new aA.ErrnoError(8);if(aA.isDir(A.node.mode))throw new aA.ErrnoError(31);if(!A.stream_ops.read)throw new aA.ErrnoError(28);var n=void 0!==s;if(n){if(!A.seekable)throw new aA.ErrnoError(70)}else s=A.position;var o=A.stream_ops.read(A,e,t,i,s);return n||(A.position+=o),o},write(A,e,t,i,s,n){if(i<0||s<0)throw new aA.ErrnoError(28);if(aA.isClosed(A))throw new aA.ErrnoError(8);if(!(2097155&A.flags))throw new aA.ErrnoError(8);if(aA.isDir(A.node.mode))throw new aA.ErrnoError(31);if(!A.stream_ops.write)throw new aA.ErrnoError(28);A.seekable&&1024&A.flags&&aA.llseek(A,0,2);var o=void 0!==s;if(o){if(!A.seekable)throw new aA.ErrnoError(70)}else s=A.position;var r=A.stream_ops.write(A,e,t,i,s,n);return o||(A.position+=r),r},mmap(A,e,t,i,s){if(2&i&&!(2&s)&&2!=(2097155&A.flags))throw new aA.ErrnoError(2);if(1==(2097155&A.flags))throw new aA.ErrnoError(2);if(!A.stream_ops.mmap)throw new aA.ErrnoError(43);if(!e)throw new aA.ErrnoError(28);return A.stream_ops.mmap(A,e,t,i,s)},msync:(A,e,t,i,s)=>A.stream_ops.msync?A.stream_ops.msync(A,e,t,i,s):0,ioctl(A,e,t){if(!A.stream_ops.ioctl)throw new aA.ErrnoError(59);return A.stream_ops.ioctl(A,e,t)},readFile(A,e={}){if(e.flags=e.flags||0,e.encoding=e.encoding||"binary","utf8"!==e.encoding&&"binary"!==e.encoding)throw new Error(`Invalid encoding type "${e.encoding}"`);var t,i=aA.open(A,e.flags),s=aA.stat(A).size,n=new Uint8Array(s);return aA.read(i,n,0,s,0),"utf8"===e.encoding?t=q(n):"binary"===e.encoding&&(t=n),aA.close(i),t},writeFile(A,e,t={}){t.flags=t.flags||577;var i=aA.open(A,t.flags,t.mode);if("string"==typeof e){var s=new Uint8Array(AA(e)+1),n=eA(e,s,0,s.length);aA.write(i,s,0,n,void 0,t.canOwn)}else{if(!ArrayBuffer.isView(e))throw new Error("Unsupported data type");aA.write(i,e,0,e.byteLength,void 0,t.canOwn)}aA.close(i)},cwd:()=>aA.currentPath,chdir(A){var e=aA.lookupPath(A,{follow:!0});if(null===e.node)throw new aA.ErrnoError(44);if(!aA.isDir(e.node.mode))throw new aA.ErrnoError(54);var t=aA.nodePermissions(e.node,"x");if(t)throw new aA.ErrnoError(t);aA.currentPath=e.path},createDefaultDirectories(){aA.mkdir("/tmp"),aA.mkdir("/home"),aA.mkdir("/home/web_user")},createDefaultDevices(){aA.mkdir("/dev"),aA.registerDevice(aA.makedev(1,3),{read:()=>0,write:(A,e,t,i,s)=>i,llseek:()=>0}),aA.mkdev("/dev/null",aA.makedev(1,3)),iA.register(aA.makedev(5,0),iA.default_tty_ops),iA.register(aA.makedev(6,0),iA.default_tty1_ops),aA.mkdev("/dev/tty",aA.makedev(5,0)),aA.mkdev("/dev/tty1",aA.makedev(6,0));var A=new Uint8Array(1024),e=0,t=()=>(0===e&&(V(A),e=A.byteLength),A[--e]);aA.createDevice("/dev","random",t),aA.createDevice("/dev","urandom",t),aA.mkdir("/dev/shm"),aA.mkdir("/dev/shm/tmp")},createSpecialDirectories(){aA.mkdir("/proc");var A=aA.mkdir("/proc/self");aA.mkdir("/proc/self/fd"),aA.mount({mount(){var e=aA.createNode(A,"fd",16895,73);return e.stream_ops={llseek:nA.stream_ops.llseek},e.node_ops={lookup(A,e){var t=+e,i=aA.getStreamChecked(t),s={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>i.path},id:t+1};return s.parent=s,s},readdir:()=>Array.from(aA.streams.entries()).filter((([A,e])=>e)).map((([A,e])=>A.toString()))},e}},{},"/proc/self/fd")},createStandardStreams(A,e,t){A?aA.createDevice("/dev","stdin",A):aA.symlink("/dev/tty","/dev/stdin"),e?aA.createDevice("/dev","stdout",null,e):aA.symlink("/dev/tty","/dev/stdout"),t?aA.createDevice("/dev","stderr",null,t):aA.symlink("/dev/tty1","/dev/stderr"),aA.open("/dev/stdin",0),aA.open("/dev/stdout",1),aA.open("/dev/stderr",1)},staticInit(){aA.nameTable=new Array(4096),aA.mount(nA,{},"/"),aA.createDefaultDirectories(),aA.createDefaultDevices(),aA.createSpecialDirectories(),aA.filesystems={MEMFS:nA}},init(A,e,t){aA.initialized=!0,A??(A=s.stdin),e??(e=s.stdout),t??(t=s.stderr),aA.createStandardStreams(A,e,t)},quit(){for(var A of(aA.initialized=!1,aA.streams))A&&aA.close(A)},findObject(A,e){var t=aA.analyzePath(A,e);return t.exists?t.object:null},analyzePath(A,e){try{A=(i=aA.lookupPath(A,{follow:!e})).path}catch(A){}var t={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var i=aA.lookupPath(A,{parent:!0});t.parentExists=!0,t.parentPath=i.path,t.parentObject=i.node,t.name=L.basename(A),i=aA.lookupPath(A,{follow:!e}),t.exists=!0,t.path=i.path,t.object=i.node,t.name=i.node.name,t.isRoot="/"===i.path}catch(A){t.error=A.errno}return t},createPath(A,e,t,i){A="string"==typeof A?A:aA.getPath(A);for(var s=e.split("/").reverse();s.length;){var n=s.pop();if(n){var o=L.join2(A,n);try{aA.mkdir(o)}catch(A){if(20!=A.errno)throw A}A=o}}return o},createFile(A,e,t,i,s){var n=L.join2("string"==typeof A?A:aA.getPath(A),e),o=cA(i,s);return aA.create(n,o)},createDataFile(A,e,t,i,s,n){var o=e;A&&(A="string"==typeof A?A:aA.getPath(A),o=e?L.join2(A,e):A);var r=cA(i,s),c=aA.create(o,r);if(t){if("string"==typeof t){for(var a=new Array(t.length),h=0,B=t.length;h=n.length)return 0;var o=Math.min(n.length-s,i);if(n.slice)for(var r=0;r{var e=o.stream_ops[A];r[A]=(...A)=>(aA.forceLoadFile(o),e(...A))})),r.read=(A,e,t,i,s)=>(aA.forceLoadFile(o),c(A,e,t,i,s)),r.mmap=(A,e,t,i,s)=>{aA.forceLoadFile(o);var n=sA();if(!n)throw new aA.ErrnoError(48);return c(A,E,n,e,t),{ptr:n,allocated:!0}},o.stream_ops=r,o}},hA=(A,e)=>A?q(Q,A,e):"",BA={DEFAULT_POLLMASK:5,calculateAt(A,e,t){if(L.isAbs(e))return e;var i;-100===A?i=aA.cwd():i=BA.getStreamFromFD(A).path;if(0==e.length){if(!t)throw new aA.ErrnoError(44);return i}return i+"/"+e},writeStat(A,e){w[A>>2]=e.dev,w[A+4>>2]=e.mode,d[A+8>>2]=e.nlink,w[A+12>>2]=e.uid,w[A+16>>2]=e.gid,w[A+20>>2]=e.rdev,x[A+24>>3]=BigInt(e.size),w[A+32>>2]=4096,w[A+36>>2]=e.blocks;var t=e.atime.getTime(),i=e.mtime.getTime(),s=e.ctime.getTime();return x[A+40>>3]=BigInt(Math.floor(t/1e3)),d[A+48>>2]=t%1e3*1e3*1e3,x[A+56>>3]=BigInt(Math.floor(i/1e3)),d[A+64>>2]=i%1e3*1e3*1e3,x[A+72>>3]=BigInt(Math.floor(s/1e3)),d[A+80>>2]=s%1e3*1e3*1e3,x[A+88>>3]=BigInt(e.ino),0},writeStatFs(A,e){w[A+4>>2]=e.bsize,w[A+40>>2]=e.bsize,w[A+8>>2]=e.blocks,w[A+12>>2]=e.bfree,w[A+16>>2]=e.bavail,w[A+20>>2]=e.files,w[A+24>>2]=e.ffree,w[A+28>>2]=e.fsid,w[A+44>>2]=e.flags,w[A+36>>2]=e.namelen},doMsync(A,e,t,i,s){if(!aA.isFile(e.node.mode))throw new aA.ErrnoError(43);if(2&i)return 0;var n=Q.slice(A,A+t);aA.msync(e,n,s,t,i)},getStreamFromFD:A=>aA.getStreamChecked(A),varargs:void 0,getStr:A=>hA(A)};var gA={},lA=A=>{for(;A.length;){var e=A.pop();A.pop()(e)}};function EA(A){return this.fromWireType(d[A>>2])}var QA,MA={},uA={},wA={},dA=class extends Error{constructor(A){super(A),this.name="InternalError"}},CA=A=>{throw new dA(A)},xA=(A,e,t)=>{function i(e){var i=t(e);i.length!==A.length&&CA("Mismatched type converter count");for(var s=0;swA[A]=e));var s=new Array(e.length),n=[],o=0;e.forEach(((A,e)=>{uA.hasOwnProperty(A)?s[e]=uA[A]:(n.push(A),MA.hasOwnProperty(A)||(MA[A]=[]),MA[A].push((()=>{s[e]=uA[A],++o===n.length&&i(s)})))})),0===n.length&&i(s)},FA=A=>{for(var e="",t=A;Q[t];)e+=QA[Q[t++]];return e},pA=class extends Error{constructor(A){super(A),this.name="BindingError"}},IA=A=>{throw new pA(A)};function fA(A,e,t={}){return function(A,e,t={}){var i=e.name;if(A||IA(`type "${i}" must have a positive integer typeid pointer`),uA.hasOwnProperty(A)){if(t.ignoreDuplicateRegistrations)return;IA(`Cannot register type '${i}' twice`)}if(uA[A]=e,delete wA[A],MA.hasOwnProperty(A)){var s=MA[A];delete MA[A],s.forEach((A=>A()))}}(A,e,t)}var YA=(A,e,t)=>{switch(e){case 1:return t?A=>E[A]:A=>Q[A];case 2:return t?A=>M[A>>1]:A=>u[A>>1];case 4:return t?A=>w[A>>2]:A=>d[A>>2];case 8:return t?A=>x[A>>3]:A=>F[A>>3];default:throw new TypeError(`invalid integer width (${e}): ${A}`)}},DA=8,mA=[],JA=[0,1,,1,null,1,!0,1,!1,1],NA=A=>{A>9&&0==--JA[A+1]&&(JA[A]=void 0,mA.push(A))},yA=A=>(A||IA(`Cannot use deleted val. handle = ${A}`),JA[A]),zA=A=>{switch(A){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{const e=mA.pop()||JA.length;return JA[e]=A,JA[e+1]=1,e}}},TA={name:"emscripten::val",fromWireType:A=>{var e=yA(A);return NA(A),e},toWireType:(A,e)=>zA(e),argPackAdvance:DA,readValueFromPointer:EA,destructorFunction:null},UA=(A,e)=>{switch(e){case 4:return function(A){return this.fromWireType(C[A>>2])};case 8:return function(A){return this.fromWireType(p[A>>3])};default:throw new TypeError(`invalid float width (${e}): ${A}`)}},RA=(A,e)=>Object.defineProperty(e,"name",{value:A});function bA(A){for(var e=1;e{try{return A()}catch(A){T(A)}},PA=A=>{if(A instanceof k||"unwind"==A)return l;c(0,A)},GA=()=>O||!1,vA=(A,e)=>{var t;l=A,l=t=A,GA()||(s.onExit?.(t),Y=!0),c(0,new k(t))},HA=A=>{if(!Y)try{A(),(()=>{if(!GA())try{vA(l)}catch(A){PA(A)}})()}catch(A){PA(A)}},SA={instrumentWasmImports(A){var e=/^(invoke_.*|__asyncjs__.*)$/;for(let[t,i]of Object.entries(A))"function"==typeof i&&(i.isAsync||e.test(t))},instrumentWasmExports(A){var e={};for(let[t,i]of Object.entries(A))e[t]="function"==typeof i?(...A)=>{SA.exportCallStack.push(t);try{return i(...A)}finally{Y||(SA.exportCallStack.pop(),SA.maybeStopUnwind())}}:i;return e},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId(A){var e=SA.callStackNameToId[A];return void 0===e&&(e=SA.callStackId++,SA.callStackNameToId[A]=e,SA.callStackIdToName[e]=A),e},maybeStopUnwind(){SA.currData&&SA.state===SA.State.Unwinding&&0===SA.exportCallStack.length&&(SA.state=SA.State.Normal,kA(Ie),"undefined"!=typeof Fibers&&Fibers.trampoline())},whenDone:()=>new Promise(((A,e)=>{SA.asyncPromiseHandlers={resolve:A,reject:e}})),allocateData(){var A=xe(12+SA.StackSize);return SA.setDataHeader(A,A+12,SA.StackSize),SA.setDataRewindFunc(A),A},setDataHeader(A,e,t){d[A>>2]=e,d[A+4>>2]=e+t},setDataRewindFunc(A){var e=SA.exportCallStack[0],t=SA.getCallStackId(e);w[A+8>>2]=t},getDataRewindFuncName(A){var e=w[A+8>>2];return SA.callStackIdToName[e]},getDataRewindFunc:A=>de[A],doRewind(A){var e=SA.getDataRewindFuncName(A);return SA.getDataRewindFunc(e)()},handleSleep(A){if(!Y){if(SA.state===SA.State.Normal){var e=!1,t=!1;A(((A=0)=>{if(!Y&&(SA.handleSleepReturnValue=A,e=!0,t)){SA.state=SA.State.Rewinding,kA((()=>fe(SA.currData))),"undefined"!=typeof MainLoop&&MainLoop.func&&MainLoop.resume();var i,s=!1;try{i=SA.doRewind(SA.currData)}catch(A){i=A,s=!0}var n=!1;if(!SA.currData){var o=SA.asyncPromiseHandlers;o&&(SA.asyncPromiseHandlers=null,(s?o.reject:o.resolve)(i),n=!0)}if(s&&!n)throw i}})),t=!0,e||(SA.state=SA.State.Unwinding,SA.currData=SA.allocateData(),"undefined"!=typeof MainLoop&&MainLoop.func&&MainLoop.pause(),kA((()=>pe(SA.currData))))}else SA.state===SA.State.Rewinding?(SA.state=SA.State.Normal,kA(Ye),Fe(SA.currData),SA.currData=null,SA.sleepCallbacks.forEach(HA)):T(`invalid state: ${SA.state}`);return SA.handleSleepReturnValue}},handleAsync:A=>SA.handleSleep((e=>{A().then(e)}))};function jA(A,e,t,i,s,n){var o=e.length;o<2&&IA("argTypes array size mismatch! Must at least get return value and 'this' types!");e[1];for(var r=bA(e),c="void"!==e[0].name,a=[A,IA,i,s,lA,e[0],e[1]],h=0;h{if(void 0===A[e].overloadTable){var i=A[e];A[e]=function(...i){return A[e].overloadTable.hasOwnProperty(i.length)||IA(`Function '${t}' called with an invalid number of arguments (${i.length}) - expects one of (${A[e].overloadTable})!`),A[e].overloadTable[i.length].apply(this,i)},A[e].overloadTable=[],A[e].overloadTable[i.argCount]=i}},_A=(A,e,t=!1)=>{var i=((A,e,t=!1)=>(...i)=>j(A,e,i,t))(A=FA(A),e);return"function"!=typeof i&&IA(`unknown function pointer with signature ${A}: ${e}`),i};class WA extends Error{}var XA=A=>{var e=Ce(A),t=FA(e);return Fe(e),t},LA=(A,e,t)=>eA(A,Q,e,t),VA="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,KA=(A,e)=>{for(var t=A>>1,i=t+e/2,s=t;!(s>=i)&&u[s];)++s;if(s-t>16&&VA)return VA.decode(u.subarray(t,s));for(var n="",o=t;!(o>=i);++o){var r=u[o];if(0==r)break;n+=String.fromCharCode(r)}return n},ZA=(A,e,t)=>{if(t??(t=2147483647),t<2)return 0;for(var i=e,s=(t-=2)<2*A.length?t/2:A.length,n=0;n>1]=o,e+=2}return M[e>>1]=0,e-i},qA=A=>2*A.length,$A=(A,e)=>{for(var t=0,i="";!(t>=e/4);){var s=w[A+4*t>>2];if(0==s)break;if(++t,s>=65536){var n=s-65536;i+=String.fromCharCode(55296|n>>10,56320|1023&n)}else i+=String.fromCharCode(s)}return i},Ae=(A,e,t)=>{if(t??(t=2147483647),t<4)return 0;for(var i=e,s=i+t-4,n=0;n=55296&&o<=57343)o=65536+((1023&o)<<10)|1023&A.charCodeAt(++n);if(w[e>>2]=o,(e+=4)+4>s)break}return w[e>>2]=0,e-i},ee=A=>{for(var e=0,t=0;t=55296&&i<=57343&&++t,e+=4}return e},te=(A,e)=>{var t=uA[A];return void 0===t&&IA(`${e} has unknown type ${XA(A)}`),t},ie=(A,e,t)=>{var i=[],s=A.toWireType(i,t);return i.length&&(d[e>>2]=zA(i)),s},se=[],ne={},oe=()=>"object"==typeof globalThis?globalThis:function(){return Function}()("return this")(),re=A=>A<-9007199254740992||A>9007199254740992?NaN:Number(A);var ce=[0,31,60,91,121,152,182,213,244,274,305,335],ae=[0,31,59,90,120,151,181,212,243,273,304,334];var he=()=>Date.now();var Be=[],ge=(A,e,t)=>{var i=((A,e)=>{var t;for(Be.length=0;t=Q[A++];){var i=105!=t;e+=(i&=112!=t)&&e%8?4:0,Be.push(112==t?d[e>>2]:106==t?x[e>>3]:105==t?w[e>>2]:p[e>>3]),e+=i?8:4}return Be})(e,t);return ue[A](...i)},le=A=>{var e=(A-g.buffer.byteLength+65535)/65536|0;try{return g.grow(e),D(),1}catch(A){}},Ee=A=>SA.handleSleep((e=>((A,e)=>setTimeout((()=>{HA(A)}),e))(e,A)));Ee.isAsync=!0;var Qe={},Me=()=>{if(!Me.strings){var A={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:r||"./this.program"};for(var e in Qe)void 0===Qe[e]?delete A[e]:A[e]=Qe[e];var t=[];for(var e in A)t.push(`${e}=${A[e]}`);Me.strings=t}return Me.strings};aA.createPreloadedFile=(A,e,t,i,s,n,o,r,c,a)=>{var h=e?K.resolve(L.join2(A,e)):A;function B(t){function B(t){a?.(),r||((...A)=>{aA.createDataFile(...A)})(A,e,t,i,s,c),n?.(),z()}((A,e,t,i)=>{"undefined"!=typeof Browser&&Browser.init();var s=!1;return rA.forEach((n=>{s||n.canHandle(e)&&(n.handle(A,e,t,i),s=!0)})),s})(t,h,B,(()=>{o?.(),z()}))||B(t)}y(),"string"==typeof t?oA(t).then(B,o):B(t)},aA.staticInit(),nA.doesNotExistError=new aA.ErrnoError(44),nA.doesNotExistError.stack="",(()=>{for(var A=new Array(256),e=0;e<256;++e)A[e]=String.fromCharCode(e);QA=A})(),s.noExitRuntime&&(O=s.noExitRuntime),s.preloadPlugins&&(rA=s.preloadPlugins),s.print&&(I=s.print),s.printErr&&(f=s.printErr),s.wasmBinary&&(B=s.wasmBinary),s.arguments&&(o=s.arguments),s.thisProgram&&(r=s.thisProgram);var ue={1473352:()=>{console.error("progress callback is not set.")}},we={a:(A,e,t)=>{throw new _(A).init(e,t),A},j:function(A,e,t){BA.varargs=t;try{var i=BA.getStreamFromFD(A);switch(e){case 0:if((s=W())<0)return-28;for(;aA.streams[s];)s++;return aA.dupStream(i,s).fd;case 1:case 2:case 13:case 14:return 0;case 3:return i.flags;case 4:var s=W();return i.flags|=s,0;case 12:s=X();return M[s+0>>1]=2,0}return-28}catch(A){if(void 0===aA||"ErrnoError"!==A.name)throw A;return-A.errno}},G:function(A,e,t){BA.varargs=t;try{var i=BA.getStreamFromFD(A);switch(e){case 21509:case 21510:case 21511:case 21512:case 21524:case 21515:return i.tty?0:-59;case 21505:if(!i.tty)return-59;if(i.tty.ops.ioctl_tcgets){var s=i.tty.ops.ioctl_tcgets(i),n=X();w[n>>2]=s.c_iflag||0,w[n+4>>2]=s.c_oflag||0,w[n+8>>2]=s.c_cflag||0,w[n+12>>2]=s.c_lflag||0;for(var o=0;o<32;o++)E[n+o+17]=s.c_cc[o]||0;return 0}return 0;case 21506:case 21507:case 21508:if(!i.tty)return-59;if(i.tty.ops.ioctl_tcsets){n=X();var r=w[n>>2],c=w[n+4>>2],a=w[n+8>>2],h=w[n+12>>2],B=[];for(o=0;o<32;o++)B.push(E[n+o+17]);return i.tty.ops.ioctl_tcsets(i.tty,e,{c_iflag:r,c_oflag:c,c_cflag:a,c_lflag:h,c_cc:B})}return 0;case 21519:if(!i.tty)return-59;n=X();return w[n>>2]=0,0;case 21520:return i.tty?-28:-59;case 21531:n=X();return aA.ioctl(i,e,n);case 21523:if(!i.tty)return-59;if(i.tty.ops.ioctl_tiocgwinsz){var g=i.tty.ops.ioctl_tiocgwinsz(i.tty);n=X();M[n>>1]=g[0],M[n+2>>1]=g[1]}return 0;default:return-28}}catch(A){if(void 0===aA||"ErrnoError"!==A.name)throw A;return-A.errno}},H:function(A,e,t,i){BA.varargs=i;try{e=BA.getStr(e),e=BA.calculateAt(A,e);var s=i?W():0;return aA.open(e,t,s).fd}catch(A){if(void 0===aA||"ErrnoError"!==A.name)throw A;return-A.errno}},r:function(A,e,t,i){try{return e=BA.getStr(e),i=BA.getStr(i),e=BA.calculateAt(A,e),i=BA.calculateAt(t,i),aA.rename(e,i),0}catch(A){if(void 0===aA||"ErrnoError"!==A.name)throw A;return-A.errno}},s:function(A){try{return A=BA.getStr(A),aA.rmdir(A),0}catch(A){if(void 0===aA||"ErrnoError"!==A.name)throw A;return-A.errno}},w:function(A,e){try{return A=BA.getStr(A),BA.writeStat(e,aA.stat(A))}catch(A){if(void 0===aA||"ErrnoError"!==A.name)throw A;return-A.errno}},t:function(A,e,t){try{if(e=BA.getStr(e),e=BA.calculateAt(A,e),t){if(512!==t)return-28;aA.rmdir(e)}else aA.unlink(e);return 0}catch(A){if(void 0===aA||"ErrnoError"!==A.name)throw A;return-A.errno}},u:()=>T(""),L:A=>{var e=gA[A];delete gA[A];var t=e.rawConstructor,i=e.rawDestructor,s=e.fields,n=s.map((A=>A.getterReturnType)).concat(s.map((A=>A.setterArgumentType)));xA([A],n,(A=>{var n={};return s.forEach(((e,t)=>{var i=e.fieldName,o=A[t],r=A[t].optional,c=e.getter,a=e.getterContext,h=A[t+s.length],B=e.setter,g=e.setterContext;n[i]={read:A=>o.fromWireType(c(a,A)),write:(A,e)=>{var t=[];B(g,A,h.toWireType(t,e)),lA(t)},optional:r}})),[{name:e.name,fromWireType:A=>{var e={};for(var t in n)e[t]=n[t].read(A);return i(A),e},toWireType:(A,e)=>{for(var s in n)if(!(s in e)&&!n[s].optional)throw new TypeError(`Missing field: "${s}"`);var o=t();for(s in n)n[s].write(o,e[s]);return null!==A&&A.push(i,o),o},argPackAdvance:DA,readValueFromPointer:EA,destructorFunction:i}]}))},m:(A,e,t,i,s)=>{e=FA(e);const n=0n===i;let o=A=>A;if(n){const A=8*t;o=e=>BigInt.asUintN(A,e),s=o(s)}fA(A,{name:e,fromWireType:o,toWireType:(A,e)=>("number"==typeof e&&(e=BigInt(e)),e),argPackAdvance:DA,readValueFromPointer:YA(e,t,!n),destructorFunction:null})},R:(A,e,t,i)=>{fA(A,{name:e=FA(e),fromWireType:function(A){return!!A},toWireType:function(A,e){return e?t:i},argPackAdvance:DA,readValueFromPointer:function(A){return this.fromWireType(Q[A])},destructorFunction:null})},P:A=>fA(A,TA),l:(A,e,t)=>{fA(A,{name:e=FA(e),fromWireType:A=>A,toWireType:(A,e)=>e,argPackAdvance:DA,readValueFromPointer:UA(e,t),destructorFunction:null})},f:(A,e,t,i,n,o,r,c)=>{var a=((A,e)=>{for(var t=[],i=0;i>2]);return t})(e,t);A=(A=>{const e=(A=A.trim()).indexOf("(");return-1===e?A:A.slice(0,e)})(A=FA(A)),n=_A(i,n,r),((A,e,t)=>{s.hasOwnProperty(A)?((void 0===t||void 0!==s[A].overloadTable&&void 0!==s[A].overloadTable[t])&&IA(`Cannot register public name '${A}' twice`),OA(s,A,A),s[A].overloadTable.hasOwnProperty(t)&&IA(`Cannot register multiple overloads of a function with the same number of arguments (${t})!`),s[A].overloadTable[t]=e):(s[A]=e,s[A].argCount=t)})(A,(function(){((A,e)=>{var t=[],i={};throw e.forEach((function A(e){i[e]||uA[e]||(wA[e]?wA[e].forEach(A):(t.push(e),i[e]=!0))})),new WA(`${A}: `+t.map(XA).join([", "]))})(`Cannot call ${A} due to unbound types`,a)}),e-1),xA([],a,(t=>{var i=[t[0],null].concat(t.slice(1));return((A,e,t)=>{s.hasOwnProperty(A)||CA("Replacing nonexistent public symbol"),void 0!==s[A].overloadTable&&void 0!==t?s[A].overloadTable[t]=e:(s[A]=e,s[A].argCount=t)})(A,jA(A,i,null,n,o,r),e-1),[]}))},c:(A,e,t,i,s)=>{e=FA(e);let n=A=>A;if(0===i){var o=32-8*t;n=A=>A<>>o,s=n(s)}fA(A,{name:e,fromWireType:n,toWireType:(A,e)=>e,argPackAdvance:DA,readValueFromPointer:YA(e,t,0!==i),destructorFunction:null})},b:(A,e,t)=>{var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][e];function s(A){var e=d[A>>2],t=d[A+4>>2];return new i(E.buffer,t,e)}fA(A,{name:t=FA(t),fromWireType:s,argPackAdvance:DA,readValueFromPointer:s},{ignoreDuplicateRegistrations:!0})},Q:(A,e)=>{fA(A,{name:e=FA(e),fromWireType(A){for(var e,t=d[A>>2],i=A+4,s=i,n=0;n<=t;++n){var o=i+n;if(n==t||0==Q[o]){var r=hA(s,o-s);void 0===e?e=r:(e+=String.fromCharCode(0),e+=r),s=o+1}}return Fe(A),e},toWireType(A,e){var t;e instanceof ArrayBuffer&&(e=new Uint8Array(e));var i="string"==typeof e;i||ArrayBuffer.isView(e)&&1==e.BYTES_PER_ELEMENT||IA("Cannot pass non-string to std::string"),t=i?AA(e):e.length;var s=xe(4+t+1),n=s+4;return d[s>>2]=t,i?LA(e,n,t+1):Q.set(e,n),null!==A&&A.push(Fe,s),s},argPackAdvance:DA,readValueFromPointer:EA,destructorFunction(A){Fe(A)}})},g:(A,e,t)=>{var i,s,n,o;t=FA(t),2===e?(i=KA,s=ZA,o=qA,n=A=>u[A>>1]):4===e&&(i=$A,s=Ae,o=ee,n=A=>d[A>>2]),fA(A,{name:t,fromWireType:A=>{for(var t,s=d[A>>2],o=A+4,r=0;r<=s;++r){var c=A+4+r*e;if(r==s||0==n(c)){var a=i(o,c-o);void 0===t?t=a:(t+=String.fromCharCode(0),t+=a),o=c+e}}return Fe(A),t},toWireType:(A,i)=>{"string"!=typeof i&&IA(`Cannot pass non-string to C++ string type ${t}`);var n=o(i),r=xe(4+n+e);return d[r>>2]=n/e,s(i,r+4,n+e),null!==A&&A.push(Fe,r),r},argPackAdvance:DA,readValueFromPointer:EA,destructorFunction(A){Fe(A)}})},O:(A,e,t,i,s,n)=>{gA[A]={name:FA(e),rawConstructor:_A(t,i),rawDestructor:_A(s,n),fields:[]}},M:(A,e,t,i,s,n,o,r,c,a)=>{gA[A].fields.push({fieldName:FA(e),getterReturnType:t,getter:_A(i,s),getterContext:n,setterArgumentType:o,setter:_A(r,c),setterContext:a})},S:(A,e)=>{fA(A,{isVoid:!0,name:e=FA(e),argPackAdvance:0,fromWireType:()=>{},toWireType:(A,e)=>{}})},N:(A,e,t)=>(A=yA(A),e=te(e,"emval::as"),ie(e,t,A)),d:(A,e,t,i)=>(A=se[A])(null,e=yA(e),t,i),q:NA,F:A=>{return 0===A?zA(oe()):(A=void 0===(t=ne[e=A])?FA(e):t,zA(oe()[A]));var e,t},e:(A,e,t)=>{var i=((A,e)=>{for(var t=new Array(A),i=0;i>2],`parameter ${i}`);return t})(A,e),s=i.shift();A--;var n="return function (obj, func, destructorsRef, args) {\n",o=0,r=[];0===t&&r.push("obj");for(var c=["retType"],a=[s],h=0;hA.name)).join(", ")}) => ${s.name}>`;return B=RA(E,l),g=se.length,se.push(B),g},o:A=>{A>9&&(JA[A+1]+=1)},T:A=>"string"==typeof(A=yA(A)),n:A=>{var e=yA(A);lA(e),NA(A)},p:(A,e)=>{var t=(A=te(A,"_emval_take_value")).readValueFromPointer(e);return zA(t)},x:function(A,e){A=re(A);var t=new Date(1e3*A);w[e>>2]=t.getUTCSeconds(),w[e+4>>2]=t.getUTCMinutes(),w[e+8>>2]=t.getUTCHours(),w[e+12>>2]=t.getUTCDate(),w[e+16>>2]=t.getUTCMonth(),w[e+20>>2]=t.getUTCFullYear()-1900,w[e+24>>2]=t.getUTCDay();var i=Date.UTC(t.getUTCFullYear(),0,1,0,0,0,0),s=(t.getTime()-i)/864e5|0;w[e+28>>2]=s},y:function(A,e){A=re(A);var t=new Date(1e3*A);w[e>>2]=t.getSeconds(),w[e+4>>2]=t.getMinutes(),w[e+8>>2]=t.getHours(),w[e+12>>2]=t.getDate(),w[e+16>>2]=t.getMonth(),w[e+20>>2]=t.getFullYear()-1900,w[e+24>>2]=t.getDay();var i=0|(A=>{var e;return((e=A.getFullYear())%4!=0||e%100==0&&e%400!=0?ae:ce)[A.getMonth()]+A.getDate()-1})(t);w[e+28>>2]=i,w[e+36>>2]=-60*t.getTimezoneOffset();var s=new Date(t.getFullYear(),0,1),n=new Date(t.getFullYear(),6,1).getTimezoneOffset(),o=s.getTimezoneOffset(),r=0|(n!=o&&t.getTimezoneOffset()==Math.min(o,n));w[e+32>>2]=r},z:(A,e,t,i)=>{var s=(new Date).getFullYear(),n=new Date(s,0,1),o=new Date(s,6,1),r=n.getTimezoneOffset(),c=o.getTimezoneOffset(),a=Math.max(r,c);d[A>>2]=60*a,w[e>>2]=Number(r!=c);var h=A=>{var e=A>=0?"-":"+",t=Math.abs(A);return`UTC${e}${String(Math.floor(t/60)).padStart(2,"0")}${String(t%60).padStart(2,"0")}`},B=h(r),g=h(c);c=0&&i<=3))return 28;var i,s;s=0===A?he():performance.now();var n=Math.round(1e3*s*1e3);return x[t>>3]=BigInt(n),0},K:(A,e,t)=>ge(A,e,t),I:he,v:A=>{var e,t,i=Q.length,s=2147483648;if((A>>>=0)>s)return!1;for(var n=1;n<=4;n*=2){var o=i*(1+.2/n);o=Math.min(o,A+100663296);var r=Math.min(s,(e=Math.max(A,o),t=65536,Math.ceil(e/t)*t));if(le(r))return!0}return!1},k:Ee,C:(A,e)=>{var t=0,i=0;for(var s of Me()){var n=e+t;d[A+i>>2]=n,t+=LA(s,n,1/0)+1,i+=4}return 0},D:(A,e)=>{var t=Me();d[A>>2]=t.length;var i=0;for(var s of t)i+=AA(s)+1;return d[e>>2]=i,0},h:function(A){try{var e=BA.getStreamFromFD(A);return aA.close(e),0}catch(A){if(void 0===aA||"ErrnoError"!==A.name)throw A;return A.errno}},B:function(A,e){try{var t=BA.getStreamFromFD(A),i=t.tty?2:aA.isDir(t.mode)?3:aA.isLink(t.mode)?7:4;return E[e]=i,M[e+2>>1]=0,x[e+8>>3]=BigInt(0),x[e+16>>3]=BigInt(0),0}catch(A){if(void 0===aA||"ErrnoError"!==A.name)throw A;return A.errno}},E:function(A,e,t,i){try{var s=((A,e,t,i)=>{for(var s=0,n=0;n>2],r=d[e+4>>2];e+=8;var c=aA.read(A,E,o,r,i);if(c<0)return-1;if(s+=c,c>2]=s,0}catch(A){if(void 0===aA||"ErrnoError"!==A.name)throw A;return A.errno}},A:function(A,e,t,i){e=re(e);try{if(isNaN(e))return 61;var s=BA.getStreamFromFD(A);return aA.llseek(s,e,t),x[i>>3]=BigInt(s.position),s.getdents&&0===e&&0===t&&(s.getdents=null),0}catch(A){if(void 0===aA||"ErrnoError"!==A.name)throw A;return A.errno}},i:function(A,e,t,i){try{var s=((A,e,t,i)=>{for(var s=0,n=0;n>2],r=d[e+4>>2];e+=8;var c=aA.write(A,E,o,r,i);if(c<0)return-1;if(s+=c,c>2]=s,0}catch(A){if(void 0===aA||"ErrnoError"!==A.name)throw A;return A.errno}}},de=await async function(){function A(A,e){return de=A.exports,de=SA.instrumentWasmExports(de),g=de.U,D(),z(),de}y();var e={a:we};if(s.instantiateWasm)return new Promise(((t,i)=>{s.instantiateWasm(e,((e,i)=>{t(A(e))}))}));m??(m=U());try{var i=await b(B,m,e);return A(i.instance)}catch(A){return t(A),Promise.reject(A)}}();de.V;var Ce=de.W,xe=de.X,Fe=de.Y;s._main=de.Z,de._,s.dynCall_ii=de.$,s.dynCall_vi=de.aa,s.dynCall_vii=de.ba,s.dynCall_iii=de.ca,s.dynCall_viii=de.da,s.dynCall_v=de.ea,s.dynCall_diiii=de.fa,s.dynCall_viif=de.ga,s.dynCall_iiiii=de.ha,s.dynCall_iiii=de.ia,s.dynCall_ddd=de.ja,s.dynCall_i=de.ka,s.dynCall_fii=de.la,s.dynCall_viiii=de.ma,s.dynCall_iiiiii=de.na,s.dynCall_idd=de.oa,s.dynCall_jiji=de.pa,s.dynCall_iidiiii=de.qa,s.dynCall_viijii=de.ra,s.dynCall_iiiiiiiii=de.sa,s.dynCall_iiiiiii=de.ta,s.dynCall_iiiiij=de.ua,s.dynCall_iiiiid=de.va,s.dynCall_iiiiijj=de.wa,s.dynCall_iiiiiiii=de.xa,s.dynCall_iiiiiijj=de.ya,s.dynCall_viiiiii=de.za,s.dynCall_viiiii=de.Aa;var pe=de.Ba,Ie=de.Ca,fe=de.Da,Ye=de.Ea;return function(){if(s.preInit)for("function"==typeof s.preInit&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.shift()()}(),function A(t=o){function i(){s.calledRun=!0,Y||(s.noFSInit||aA.initialized||aA.init(),de.V(),aA.ignorePermissions=!1,e(s),s.onRuntimeInitialized?.(),s.noInitialRun,function(){if(s.postRun)for("function"==typeof s.postRun&&(s.postRun=[s.postRun]);s.postRun.length;)v(s.postRun.shift());P(G)}())}J>0?N=A:(!function(){if(s.preRun)for("function"==typeof s.preRun&&(s.preRun=[s.preRun]);s.preRun.length;)S(s.preRun.shift());P(H)}(),J>0?N=A:s.setStatus?(s.setStatus("Running..."),setTimeout((()=>{setTimeout((()=>s.setStatus("")),1),i()}),1)):i())}(),n})(),yF=Object.defineProperty,zF=(A,e,t)=>(((A,e,t)=>{e in A?yF(A,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):A[e]=t})(A,"symbol"!=typeof e?e+"":e,t),t);const TF=`https://cdn.jsdelivr.net/npm/@creooxag/cxconverter@${DF}/dist/`;zF(class A{constructor(){zF(this,"module")}static async getInstance(e="remote"){let t="./";if(e&&(t="remote"==e?TF:e),!A.instance){A.instance=new A;const e={locateFile:function(A){const e=t+A;return A.endsWith(".wasm")?(console.log(`Loading wasm file from ${e}`),e):A}};try{A.instance.module=await NF(e)}catch(A){console.error("Error on wasm import:",A)}}return A.instance}static async getModule(e){return(await A.getInstance(e)).module}},"instance"),g.vec2(),g.vec3(),g.vec3(),g.vec3();class UF{constructor(A={}){this._dataDir=A.dataDir||""}getProjects(A,e){const t=this._dataDir+"/projects/index.json";u.loadJSON(t,A,e)}getProject(A,e,t){const i=this._dataDir+"/projects/"+A+"/index.json";u.loadJSON(i,e,t)}getMetadata(A,e,t,i){const s=this._dataDir+"/projects/"+A+"/models/"+e+"/metadata.json";u.loadJSON(s,t,i)}getGeometry(A,e,t,i){const s=this._dataDir+"/projects/"+A+"/models/"+e+"/geometry.xkt";u.loadArraybuffer(s,t,i)}getObjectInfo(A,e,t,i,s){const n=this._dataDir+"/projects/"+A+"/models/"+e+"/props/"+t+".json";u.loadJSON(n,i,s)}getIssues(A,e,t,i){const s=this._dataDir+"/projects/"+A+"/models/"+e+"/issues.json";u.loadJSON(s,t,i)}getSplitModelManifest(A,e,t,i,s){const n=this._dataDir+"/projects/"+A+"/models/"+e+"/"+t;u.loadJSON(n,i,s)}getSplitModelMetadata(A,e,t,i,s){const n=this._dataDir+"/projects/"+A+"/models/"+e+"/"+t;u.loadJSON(n,i,s)}getSplitModelGeometry(A,e,t,i,s){const n=this._dataDir+"/projects/"+A+"/models/"+e+"/"+t;u.loadArraybuffer(n,i,s)}}let RF=class{constructor(A,e){this.items=A||[],this._lastUniqueId=(e||0)+1}addItem(){let A;if(2===arguments.length){const e=arguments[0];if(A=arguments[1],this.items[e])throw"ID clash: '"+e+"'";return this.items[e]=A,e}for(A=arguments[0]||{};;){const e=this._lastUniqueId++;if(!this.items[e])return this.items[e]=A,e}}removeItem(A){const e=this.items[A];return delete this.items[A],e}};class bF{constructor(A,e,t,i){this.bimViewer=A?A.bimViewer||A:this,this.server=A?A.server:t,this.viewer=A?A.viewer:i,this._children=[],A&&A._children.push(this),this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._events=null,this._eventCallDepth=0,this._enabled=null,this._active=null}fire(A,e,t){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==t&&(this._events[A]=e||!0);const i=this._eventSubs[A];let s;if(i)for(const t in i)i.hasOwnProperty(t)&&(s=i[t],this._eventCallDepth++,this._eventCallDepth<300?s.callback.call(s.scope,e):this.error("fire: potential stack overflow from recursive event '"+A+"' - dropping this event"),this._eventCallDepth--)}on(A,e,t){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new RF),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={});let i=this._eventSubs[A];i||(i={},this._eventSubs[A]=i);const s=this._subIdMap.addItem();i[s]={callback:e,scope:t||this},this._subIdEvents[s]=A;const n=this._events[A];return void 0!==n&&e.call(t||this,n),s}off(A){if(null==A)return;if(!this._subIdEvents)return;const e=this._subIdEvents[A];if(e){delete this._subIdEvents[A];const t=this._eventSubs[e];t&&delete t[A],this._subIdMap.removeItem(A)}}once(A,e,t){const i=this,s=this.on(A,(function(A){i.off(s),e.call(t||this,A)}),t)}log(A){A="[LOG] "+A,window.console.log(A)}warn(A){A="[WARN] "+A,window.console.warn(A)}error(A){A="[ERROR] "+A,window.console.error(A)}_mutexActivation(A){const e=A.length;for(let t=0;t
    Default text
    ',i.appendChild(this._modal),this._modalVisible=!1,this._modal.style.display="hidden"}show(A){this._modalVisible=!0,this._modal.querySelector(".xeokit-busy-modal-message").innerText=A,this._modal.style.display="block"}hide(){this._modalVisible=!1,this._modal.style.display="none"}destroy(){super.destroy(),this._modal&&(this._modal.parentNode.removeChild(this._modal),this._modal=null)}}const PF=g.vec3();class GF extends bF{constructor(A,e={}){if(super(A,e),!e.buttonElement)throw"Missing config: buttonElement";const t=e.buttonElement,i=this.viewer.camera;this._modelMementos={},i.eye=[.577,.577,.577],i.look=[0,0,0],i.up=[-1,1,-1],this.bimViewer._modelsExplorer.on("modelLoaded",(A=>{this._saveModelMemento(A)})),this.bimViewer._modelsExplorer.on("modelUnloaded",(A=>{this._destroyModelMemento(A)})),this.on("enabled",(A=>{A?t.classList.remove("disabled"):t.classList.add("disabled")})),this.on("active",(A=>{A?t.classList.add("active"):t.classList.remove("active")})),t.addEventListener("click",(A=>{this.getEnabled()&&this.reset(),A.preventDefault()}))}_saveModelMemento(A){const e=this.viewer.metaScene.metaModels[A];if(!e)return;const t=new pa;t.saveObjects(this.viewer.scene,e,{visible:!0,edges:!0,xrayed:!0,highlighted:!0,selected:!0,clippable:!0,pickable:!0,colorize:!1,opacity:!1}),this._modelMementos[A]=t}_restoreModelMemento(A){const e=this.viewer.metaScene.metaModels[A];if(!e)return;this._modelMementos[A].restoreObjects(this.viewer.scene,e)}_destroyModelMemento(A){delete this._modelMementos[A]}reset(){const A=this.viewer.scene.modelIds;for(var e=0,t=A.length;e{A?t.classList.remove("disabled"):t.classList.add("disabled")})),this.on("active",(A=>{A?t.classList.add("active"):t.classList.remove("active")})),t.addEventListener("click",(A=>{this.getEnabled()&&this.fit(),A.preventDefault()}))}fit(){const A=this.viewer.scene,e=A.getAABB(A.visibleObjectIds);this.viewer.cameraFlight.flyTo({aabb:e}),this.viewer.cameraControl.pivotPos=g.getAABB3Center(e,vF)}set fov(A){this.viewer.scene.cameraFlight.fitFOV=A}get fov(){return this.viewer.scene.cameraFlight.fitFOV}set duration(A){this.viewer.scene.cameraFlight.duration=A}get duration(){return this.viewer.scene.cameraFlight.duration}}class SF extends bF{constructor(A,e){if(super(A,e),!e.buttonElement)throw"Missing config: buttonElement";const t=e.buttonElement,i=this.viewer.cameraControl,s=e.cameraControlNavModeMediator;i.navMode="orbit",i.followPointer=!0,this.on("enabled",(A=>{A?t.classList.remove("disabled"):t.classList.add("disabled")})),this.on("active",(A=>{A?t.classList.add("active"):t.classList.remove("active")})),this.on("active",(A=>{s.setFirstPersonModeActive(A),A?(i.followPointer=!0,i.pivoting=!1):i.pivoting=!0})),t.addEventListener("click",(A=>{if(this.getEnabled()){const A=this.getActive();this.setActive(!A)}A.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class jF extends bF{constructor(A,e){if(super(A,e),!e.buttonElement)throw"Missing config: buttonElement";const t=e.buttonElement;this.on("enabled",(A=>{A?t.classList.remove("disabled"):t.classList.add("disabled")})),this.on("active",(A=>{A?(t.classList.add("active"),this.viewer.cameraControl.doublePickFlyTo=!1,this._onPick=this.viewer.cameraControl.on("picked",(A=>{A.entity&&(A.entity.visible=!1)}))):(t.classList.remove("active"),this.viewer.cameraControl.doublePickFlyTo=!1,void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),t.addEventListener("click",(A=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const A=this.getActive();this.setActive(!A)}A.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class OF extends bF{constructor(A,e){if(super(A),!e.buttonElement)throw"Missing config: buttonElement";const t=e.buttonElement;this.on("enabled",(A=>{A?t.classList.remove("disabled"):t.classList.add("disabled")})),this.on("active",(A=>{A?(t.classList.add("active"),this._onPick=this.viewer.cameraControl.on("picked",(A=>{A.entity&&(A.entity.selected=!A.entity.selected)}))):(t.classList.remove("active"),void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),t.addEventListener("click",(A=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const A=this.getActive();this.setActive(!A)}A.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class _F extends bF{constructor(A,e){if(super(A,e),!e.buttonElement)throw"Missing config: buttonElement";this._buttonElement=e.buttonElement,this.on("enabled",(A=>{A?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(A=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),A.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.scene.on("modelLoaded",(A=>{if(!this._active){const A=this.viewer.metaScene.getObjectIDsByType("IfcSpace");this.viewer.scene.setObjectsCulled(A,!0)}})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(A){this._active!==A&&(this._active=A,A?(this._buttonElement.classList.add("active"),this._enterShowSpacesMode(),this.fire("active",this._active)):(this._buttonElement.classList.remove("active"),this._exitShowSpacesMode(),this.fire("active",this._active)))}_enterShowSpacesMode(){const A=this.viewer,e=A.scene,t=A.metaScene.getObjectIDsByType("IfcSpace");e.setObjectsCulled(t,!1)}_exitShowSpacesMode(){const A=this.viewer,e=A.scene,t=A.metaScene.getObjectIDsByType("IfcSpace");e.setObjectsCulled(t,!0)}}class WF extends bF{constructor(A,e){super(A)}}const XF=g.AABB3(),LF=g.vec3();class VF extends n{constructor(A={}){if(!A.sectionPlanesPlugin)throw"Missing config: sectionPlanesPlugin";super(u.apply({},A)),this._sectionPlanesPlugin=A.sectionPlanesPlugin,this._viewer=this._sectionPlanesPlugin.viewer,this._onSceneSectionPlaneCreated=this._viewer.scene.on("sectionPlaneCreated",(()=>{this._buildMenu()})),this._onSceneSectionPlaneDestroyed=this._viewer.scene.on("sectionPlaneDestroyed",(()=>{this._buildMenu()})),this._buildMenu()}_buildMenu(){const A=this._sectionPlanesPlugin,e=Object.values(A.sectionPlanes),t=[];for(let i=0,s=e.length;i`${A.viewer.localeService.translate("sectionToolContextMenu.slice")||"Slice"} #`+(i+1),doHoverEnter(e){A.hideControl(),A.showControl(s.id)},doHoverLeave(e){A.hideControl()},items:[[{getTitle:A=>s.active?A.viewer.localeService.translate("sectionToolContextMenu.deactivate")||"Disable":A.viewer.localeService.translate("sectionToolContextMenu.activate")||"Enable",doAction:A=>{s.active=!s.active}},{getTitle:A=>A.viewer.localeService.translate("sectionToolContextMenu.edit")||"Edit",getEnabled:()=>s.active,doAction:e=>{A.hideControl(),A.showControl(s.id);const t=s.pos;XF.set(this._viewer.scene.aabb),g.getAABB3Center(XF,LF),XF[0]+=t[0]-LF[0],XF[1]+=t[1]-LF[1],XF[2]+=t[2]-LF[2],XF[3]+=t[0]-LF[0],XF[4]+=t[1]-LF[1],XF[5]+=t[2]-LF[2],this._viewer.cameraFlight.flyTo({aabb:XF,fitFOV:65})}},{getTitle:A=>A.viewer.localeService.translate("sectionToolContextMenu.flip")||"Flip",getEnabled:()=>s.active,doAction:A=>{s.flipDir()}},{getTitle:A=>A.viewer.localeService.translate("sectionToolContextMenu.delete")||"Delete",doAction:A=>{s.destroy()}}]]})}this.items=[[{getTitle:A=>A.viewer.localeService.translate("sectionToolContextMenu.clearSlices")||"Clear Slices",getEnabled:A=>A.bimViewer.getNumSections()>0,doAction:A=>{A.bimViewer.clearSections()}},{getTitle:A=>A.viewer.localeService.translate("sectionToolContextMenu.flipSlices")||"Flip Slices",getEnabled:A=>A.bimViewer.getNumSections()>0,doAction:A=>{A.bimViewer.flipSections()}}],[{getTitle:A=>A.viewer.localeService.translate("sectionToolContextMenu.disableAllSlices")||"Disable all Slices",getEnabled:A=>A.bimViewer.getNumSections()>0,doAction:A=>{A.bimViewer.disableSections()}},{getTitle:A=>A.viewer.localeService.translate("sectionToolContextMenu.enableAllSlices")||"Enable all Slices",getEnabled:A=>A.bimViewer.getNumSections()>0,doAction:A=>{A.bimViewer.enableSections()}}],t]}destroy(){super.destroy();const A=this._viewer.scene;A.off(this._onSceneSectionPlaneCreated),A.off(this._onSceneSectionPlaneDestroyed)}}class KF extends bF{constructor(A,e){if(super(A,e),!e.buttonElement)throw"Missing config: buttonElement";if(!e.menuButtonElement)throw"Missing config: menuButtonElement";this._buttonElement=e.buttonElement,this._counterElement=e.counterElement,this._containerElement=e.containerElement,this._menuButtonElement=e.menuButtonElement,this._menuButtonArrowElement=e.menuButtonArrowElement,this._sectionPlanesPlugin=new xx(this.viewer,{}),this._sectionToolContextMenu=new VF({sectionPlanesPlugin:this._sectionPlanesPlugin,hideOnMouseDown:!1,hideOnAction:!1,parentNode:this._containerElement}),this._sectionPlanesPlugin.setOverviewVisible(!1),this.on("enabled",(A=>{A?(this._buttonElement.classList.remove("disabled"),this._counterElement&&this._counterElement.classList.remove("disabled"),this._menuButtonElement.classList.remove("disabled"),this._menuButtonArrowElement.classList.remove("disabled")):(this._buttonElement.classList.add("disabled"),this._counterElement&&this._counterElement.classList.add("disabled"),this._menuButtonElement.classList.add("disabled"),this._menuButtonArrowElement.classList.add("disabled"))})),this.on("active",(A=>{A?(this._buttonElement.classList.add("active"),this._counterElement&&this._counterElement.classList.add("active"),this._menuButtonElement.classList.add("active"),this._menuButtonArrowElement.classList.add("active")):(this._buttonElement.classList.remove("active"),this._counterElement&&this._counterElement.classList.remove("active"),this._menuButtonElement.classList.remove("active"),this._menuButtonArrowElement.classList.remove("active"))})),this.on("active",(A=>{A||this._sectionPlanesPlugin.hideControl()})),this._buttonElement.addEventListener("click",(A=>{if(!this.getEnabled())return;if(A.target===this._menuButtonElement||A.target.parentNode===this._menuButtonElement){if(this._sectionToolContextMenu.shown)this._sectionToolContextMenu.hide();else{this._sectionToolContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,sectionTool:this};const A=this._menuButtonElement.getBoundingClientRect();this._sectionToolContextMenu.show(A.left+scrollX,A.bottom+window.scrollY+5)}return}const e=this.getActive();this.setActive(!e),A.preventDefault()})),this._sectionToolContextMenu.on("shown",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-down"),this._menuButtonArrowElement.classList.add("xeokit-arrow-up")})),this._sectionToolContextMenu.on("hidden",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-up"),this._menuButtonArrowElement.classList.add("xeokit-arrow-down")})),this.bimViewer.on("reset",(()=>{this.clear(),this.setActive(!1)})),this.viewer.scene.on("sectionPlaneCreated",(()=>{this._updateSectionPlanesCount()})),this.viewer.scene.on("sectionPlaneDestroyed",(()=>{this._updateSectionPlanesCount()})),this._initSectionMode()}_initSectionMode(){this._containerElement.addEventListener("mouseup",(A=>{if(1===A.which){const e=function(A){if(A){let e=A.target,t=0,i=0;for(;e.offsetParent;)t+=e.offsetLeft,i+=e.offsetTop,e=e.offsetParent;return[A.pageX-t,A.pageY-i]}A=window.event,this.mouseCanvasPos[0]=A.x,this.mouseCanvasPos[1]=A.y}(A);if(!this.getActive()||!this.getEnabled())return;const t=this.viewer.scene.pick({canvasPos:e,pickSurface:!0});if(t&&t.entity&&t.entity.isObject){const A=this._sectionPlanesPlugin.createSectionPlane({pos:t.worldPos,dir:g.mulVec3Scalar(t.worldNormal,-1)});this._sectionPlanesPlugin.showControl(A.id)}}})),this._updateSectionPlanesCount()}_updateSectionPlanesCount(){this._counterElement&&(this._counterElement.innerText=""+this.getNumSections())}getNumSections(){return Object.keys(this.viewer.scene.sectionPlanes).length}clear(){this._sectionPlanesPlugin.clear(),this._updateSectionPlanesCount()}flipSections(){this._sectionPlanesPlugin.flipSectionPlanes()}enableSections(){const A=this.viewer.scene.sectionPlanes;for(let e in A){A[e].active=!0}}disableSections(){const A=this.viewer.scene.sectionPlanes;for(let e in A){A[e].active=!1}}hideControl(){this._sectionPlanesPlugin.hideControl()}destroy(){this._sectionPlanesPlugin.destroy(),this._sectionToolContextMenu.destroy(),super.destroy()}}class ZF extends bF{constructor(A,e){if(super(A,e),!e.navCubeCanvasElement)throw"Missing config: navCubeCanvasElement";const t=e.navCubeCanvasElement;this._navCube=new Qx(this.viewer,{canvasElement:t,fitVisible:!0,color:"#CFCFCF"}),this._navCube.setVisible(this._active),this.on("active",(A=>{this._navCube.setVisible(A)}))}destroy(){this._navCube.destroy(),super.destroy()}}class qF extends n{constructor(A={}){const e=!!A.enableEditModels,t=!!A.enableMeasurements,i=[[{getTitle:A=>A.viewer.localeService.translate("modelsContextMenu.loadModel")||"Load",getEnabled:A=>!A.bimViewer.isModelLoaded(A.modelId),doAction:A=>{A.bimViewer.loadModel(A.modelId)}},{getTitle:A=>A.viewer.localeService.translate("modelsContextMenu.unloadModel")||"Unload",getEnabled:A=>A.bimViewer.isModelLoaded(A.modelId),doAction:A=>{A.bimViewer.unloadModel(A.modelId)}}]];e&&i.push([{getTitle:A=>A.viewer.localeService.translate("modelsContextMenu.editModel")||"Edit",getEnabled:A=>!0,doAction:A=>{A.bimViewer.editModel(A.modelId)}},{getTitle:A=>A.viewer.localeService.translate("modelsContextMenu.deleteModel")||"Delete",getEnabled:A=>!0,doAction:A=>{A.bimViewer.deleteModel(A.modelId)}}]),i.push([{getTitle:A=>A.viewer.localeService.translate("modelsContextMenu.loadAllModels")||"Load All",getEnabled:A=>{const e=A.bimViewer,t=e.getModelIds();return e.getLoadedModelIds().length{A.bimViewer.loadAllModels()}},{getTitle:A=>A.viewer.localeService.translate("modelsContextMenu.unloadAllModels")||"Unload All",getEnabled:A=>A.bimViewer.getLoadedModelIds().length>0,doAction:A=>{A.bimViewer.unloadAllModels()}}]),i.push([{getTitle:A=>A.viewer.localeService.translate("modelsContextMenu.clearSlices")||"Clear Slices",getEnabled:A=>A.bimViewer.getNumSections()>0,doAction:A=>{A.bimViewer.clearSections()}}]),t&&i.push([{getTitle:A=>A.viewer.localeService.translate("modelsContextMenu.measurements")||"Measurements",doAction:function(A){},items:[[{getTitle:A=>A.viewer.localeService.translate("modelsContextMenu.clearMeasurements")||"Clear",getEnabled:A=>A.bimViewer.getNumMeasurements()>0,doAction:A=>{A.bimViewer.clearMeasurements()}},{getTitle:A=>A.bimViewer.getMeasurementsAxisVisible()?A.viewer.localeService.translate("modelsContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":A.viewer.localeService.translate("modelsContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:A=>A.bimViewer.getNumMeasurements()>0,doAction:A=>{A.bimViewer.setMeasurementsAxisVisible(!A.bimViewer.getMeasurementsAxisVisible())}},{getTitle:A=>A.bimViewer.getMeasurementsSnappingEnabled()?A.viewer.localeService.translate("modelsContextMenu.disableMeasurementSnapping")||"Disable Snapping":A.viewer.localeService.translate("modelsContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:A=>A.bimViewer.getNumMeasurements()>0,doAction:A=>{A.bimViewer.setMeasurementsSnappingEnabled(!A.bimViewer.getMeasurementsSnappingEnabled())}}]]}]),super({hideOnAction:A.hideOnAction,context:A.context,items:i,parentNode:A.parentNode})}}const $F=g.vec3();class Ap{constructor(A){this._server=A}setProjectId(A){this._projectId=A}setModelId(A){this._modelId=A}getManifest(A,e,t){this._server.getSplitModelManifest(this._projectId,this._modelId,A,e,t)}getMetaModel(A,e,t){this._server.getSplitModelMetadata(this._projectId,this._modelId,A,e,t)}getXKT(A,e,t){this._server.getSplitModelGeometry(this._projectId,this._modelId,A,e,t)}}class ep extends bF{constructor(A,e){if(super(A,e),!e.modelsTabElement)throw"Missing config: modelsTabElement";if(!e.unloadModelsButtonElement)throw"Missing config: unloadModelsButtonElement";if(!e.modelsElement)throw"Missing config: modelsElement";if(this._containerElement=e.containerElement,this._enableAddModels=!!e.enableEditModels,this._modelsTabElement=e.modelsTabElement,this._loadModelsButtonElement=e.loadModelsButtonElement,this._unloadModelsButtonElement=e.unloadModelsButtonElement,this._addModelButtonElement=e.addModelButtonElement,this._modelsElement=e.modelsElement,this._modelsTabButtonElement=this._modelsTabElement.querySelector(".xeokit-tab-btn"),!this._modelsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._dataSource=new Ap(this.server),this._xktLoader=new fF(this.viewer,{dataSource:this._dataSource}),this._modelsContextMenu=new qF({enableEditModels:e.enableEditModels,enableMeasurements:e.enableMeasurements,hideOnAction:!0,parentNode:this._containerElement}),this._modelsInfo={},this._numModels=0,this._numModelsLoaded=0,this._projectId=null}setObjectColors(A){this._xktLoader.objectDefaults=A}loadProject(A,e,t){this.server.getProject(A,(t=>{this.unloadProject(),this._projectId=A,this._modelsInfo={},this._numModels=0,this._parseProject(t,e),this._numModelsLoaded0&&this._unloadModelsButtonElement.classList.remove("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.remove("disabled")}),(A=>{this.error(A),t&&t(A)}))}_parseProject(A,e){this._buildModelsMenu(A),this._parseViewerConfigs(A),this._parseViewerContent(A,(()=>{this._parseViewerState(A,(()=>{e()}))}))}_buildModelsMenu(A){var e="";const t=A.models||[];this._modelsInfo={},this._numModels=t.length;for(let A=0,i=t.length;A",e+=""+i.name+"",e+=""}this._modelsElement.innerHTML=e;for(let A=0,e=t.length;A{s.checked?this.loadModel(i):this.unloadModel(e.id)})),n.addEventListener("click",(()=>{!!this.viewer.scene.models[i]?this.unloadModel(e.id):this.loadModel(i)})),n.oncontextmenu=A=>{this._modelsContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,modelId:i},this._modelsContextMenu.show(A.pageX,A.pageY),A.preventDefault()}}}_parseViewerConfigs(A){const e=A.viewerConfigs;e&&this.bimViewer.setConfigs(e)}_parseViewerContent(A,e){const t=A.viewerContent;t?this._parseModelsLoaded(t,(()=>{e()})):e()}_parseModelsLoaded(A,e){const t=A.modelsLoaded;t&&0!==t.length?this._loadNextModel(t.slice(0),e):e()}_loadNextModel(A,e){if(0===A.length)return void e();const t=A.pop();this.loadModel(t,(()=>{this._loadNextModel(A,e)}),(()=>{this._loadNextModel(A,e)}))}_parseViewerState(A,e){const t=A.viewerState;t?this.bimViewer.setViewerState(t,e):e()}unloadProject(){if(!this._projectId)return;const A=this.viewer.scene.models;for(var e in A)if(A.hasOwnProperty(e)){A[e].destroy()}this._modelsElement.innerHTML="",this._numModelsLoaded=0,this._loadModelsButtonElement.classList.add("disabled"),this._unloadModelsButtonElement.classList.add("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.add("disabled");const t=this._projectId;this._projectId=null,this.fire("projectUnloaded",{projectId:t})}getLoadedProjectId(){return this._projectId}getModelIds(){return Object.keys(this._modelsInfo)}loadModel(A,e,t){if(!this._projectId){const A="No project currently loaded";return this.error(A),void(t&&t(A))}const i=this._modelsInfo[A];if(!i){const A="Model not in currently loaded project";return this.error(A),void(t&&t(A))}this.bimViewer._busyModal.show(`${this.viewer.localeService.translate("busyModal.loading")||"Loading"} ${i.name}`);this.bimViewer.getConfig("externalMetadata")&&!i.manifest?this.server.getMetadata(this._projectId,A,(s=>{this._loadGeometry(A,i,s,e,t)}),(A=>{this.bimViewer._busyModal.hide(),this.error(A),t&&t(A)})):this._loadGeometry(A,i,null,e,t)}_loadGeometry(A,e,t,i,s){const n=()=>{this._containerElement.querySelector("#input-"+A).checked=!0,this._numModelsLoaded++,this._unloadModelsButtonElement.classList.remove("disabled"),this._numModelsLoaded{this.bimViewer._busyModal.hide(),this.error(A),s&&s(A)};if(e.manifest){this._dataSource.setProjectId(this._projectId),this._dataSource.setModelId(A);const t=this._xktLoader.load({id:A,manifestSrc:e.manifest,excludeUnclassifiedObjects:!0,origin:e.origin||e.position,scale:e.scale,rotation:e.rotation,matrix:e.matrix,edges:!1!==e.edges,saoEnabled:e.saoEnabled,pbrEnabled:e.pbrEnabled,backfaces:e.backfaces,globalizeObjectIds:e.globalizeObjectIds,reuseGeometries:!1!==e.reuseGeometries});t.on("loaded",n),t.on("error",o)}else this.server.getGeometry(this._projectId,A,(i=>{const s=this._xktLoader.load({id:A,metaModelData:t,xkt:i,excludeUnclassifiedObjects:!0,origin:e.origin||e.position,scale:e.scale,rotation:e.rotation,matrix:e.matrix,edges:!1!==e.edges,saoEnabled:e.saoEnabled,pbrEnabled:e.pbrEnabled,backfaces:e.backfaces,globalizeObjectIds:e.globalizeObjectIds,reuseGeometries:!1!==e.reuseGeometries});s.on("loaded",n),s.on("error",o)}),o)}_jumpToInitialCamera(){const A=this.viewer,e=A.scene,t=e.getAABB(e.visibleObjectIds),i=g.getAABB3Diag(t),s=g.getAABB3Center(t,$F),n=e.camera;n.perspective.fov;const o=Math.abs(i/Math.tan(45*g.DEGTORAD)),r=g.normalizeVec3(n.yUp?[-.5,-.7071,-.5]:[-1,1,-1]),c=g.normalizeVec3(n.yUp?[-.5,.7071,-.5]:[-1,1,1]);A.cameraControl.pivotPos=s,A.cameraControl.planView=!1,A.cameraFlight.jumpTo({look:s,eye:[s[0]-o*r[0],s[1]-o*r[1],s[2]-o*r[2]],up:c,orthoScale:1.1*i})}unloadModel(A){const e=this.viewer.scene.models[A];if(!e)return void this.error("Model not loaded: "+A);e.destroy();this._containerElement.querySelector("#input-"+A).checked=!1,this._containerElement.querySelector("#span-"+A),this._numModelsLoaded--,this._numModelsLoaded>0?this._unloadModelsButtonElement.classList.remove("disabled"):this._unloadModelsButtonElement.classList.add("disabled"),this._numModelsLoadedA.viewer.localeService.translate("treeViewContextMenu.inspectProperties")||"Inspect Properties",getShown:A=>!!A.viewer.metaScene.metaObjects[A.treeViewNode.objectId],doAction:A=>{const e=A.treeViewNode.objectId;A.bimViewer.showObjectProperties(e)}}),t.push({getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.viewFit")||"View Fit",doAction:function(A){const e=A.viewer,t=e.scene,i=[];A.treeViewPlugin.withNodeTree(A.treeViewNode,(A=>{A.objectId&&i.push(A.objectId)})),t.setObjectsVisible(i,!0),t.setObjectsHighlighted(i,!0);const s=t.getAABB(i);e.cameraFlight.flyTo({aabb:s,duration:.5},(()=>{setTimeout((function(){t.setObjectsHighlighted(t.highlightedObjectIds,!1)}),500)})),e.cameraControl.pivotPos=g.getAABB3Center(s)}},{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:A=>A.viewer.scene.numSelectedObjects>0,doAction:A=>{const e=A.viewer,t=e.scene,i=t.getAABB(t.selectedObjectIds);e.cameraFlight.flyTo({aabb:i,duration:.5}),e.cameraControl.pivotPos=g.getAABB3Center(i)}},{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.viewFitAll")||"View Fit All",doAction:function(A){const e=A.viewer,t=e.scene,i=t.getAABB(t.visibleObjectIds);e.cameraFlight.flyTo({aabb:i,duration:.5}),e.cameraControl.pivotPos=g.getAABB3Center(i)}}),s&&i.push({getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.measurements")||"Measurements",doAction:function(A){},items:[[{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.clearMeasurements")||"Clear",getEnabled:A=>A.bimViewer.getNumMeasurements()>0,doAction:A=>{A.bimViewer.clearMeasurements()}},{getTitle:A=>A.bimViewer.getMeasurementsAxisVisible()?A.viewer.localeService.translate("treeViewContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":A.viewer.localeService.translate("treeViewContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:A=>A.bimViewer.getNumMeasurements()>0,doAction:A=>{A.bimViewer.setMeasurementsAxisVisible(!A.bimViewer.getMeasurementsAxisVisible())}},{getTitle:A=>A.bimViewer.getMeasurementsSnappingEnabled()?A.viewer.localeService.translate("treeViewContextMenu.disableMeasurementSnapping")||"Disable Snapping":A.viewer.localeService.translate("treeViewContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:A=>A.bimViewer.getNumMeasurements()>0,doAction:A=>{A.bimViewer.setMeasurementsSnappingEnabled(!A.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[e,t,[{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.isolate")||"Isolate",doAction:function(A){const e=A.viewer,t=e.scene,i=[];A.treeViewPlugin.withNodeTree(A.treeViewNode,(A=>{A.objectId&&i.push(A.objectId)}));const s=t.getAABB(i);e.cameraControl.pivotPos=g.getAABB3Center(s,tp),t.setObjectsXRayed(t.xrayedObjectIds,!1),t.setObjectsVisible(t.visibleObjectIds,!1),t.setObjectsSelected(t.selectedObjectIds,!1),t.setObjectsVisible(i,!0),e.cameraFlight.flyTo({aabb:s},(()=>{}))}}],[{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.hide")||"Hide",doAction:function(A){A.treeViewPlugin.withNodeTree(A.treeViewNode,(e=>{if(e.objectId){const t=A.viewer.scene.objects[e.objectId];t&&(t.visible=!1)}}))}},{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.hideOthers")||"Hide Others",doAction:function(A){const e=A.viewer.scene;e.setObjectsVisible(e.visibleObjectIds,!1),e.setObjectsPickable(e.xrayedObjectIds,!0),e.setObjectsXRayed(e.xrayedObjectIds,!1),A.treeViewPlugin.withNodeTree(A.treeViewNode,(A=>{if(A.objectId){const t=e.objects[A.objectId];t&&(t.visible=!0)}}))}},{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.hideAll")||"Hide All",getEnabled:function(A){return A.viewer.scene.visibleObjectIds.length>0},doAction:function(A){A.viewer.scene.setObjectsVisible(A.viewer.scene.visibleObjectIds,!1)}}],[{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.show")||"Show",doAction:function(A){A.treeViewPlugin.withNodeTree(A.treeViewNode,(e=>{if(e.objectId){const t=A.viewer.scene.objects[e.objectId];t&&(t.visible=!0,t.xrayed&&(t.pickable=!0),t.xrayed=!1,t.selected=!1)}}))}},{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.showOthers")||"Shows Others",doAction:function(A){const e=A.viewer.scene;e.setObjectsVisible(e.objectIds,!0),e.setObjectsPickable(e.xrayedObjectIds,!0),e.setObjectsXRayed(e.xrayedObjectIds,!1),A.treeViewPlugin.withNodeTree(A.treeViewNode,(A=>{if(A.objectId){const t=e.objects[A.objectId];t&&(t.visible=!1)}}))}},{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.showAll")||"Show All",getEnabled:function(A){const e=A.viewer.scene;return e.numVisibleObjects0},doAction:function(A){const e=A.viewer.scene;e.setObjectsVisible(e.objectIds,!0),e.setObjectsPickable(e.xrayedObjectIds,!0),e.setObjectsXRayed(e.xrayedObjectIds,!1)}}],[{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.xray")||"X-Ray",doAction:function(A){A.treeViewPlugin.withNodeTree(A.treeViewNode,(e=>{if(e.objectId){const t=A.viewer.scene.objects[e.objectId];t&&(t.selected=!1,t.xrayed=!0,t.visible=!0,t.pickable=A.bimViewer.getConfig("xrayPickable"))}}))}},{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.undoXray")||"Undo X-Ray",doAction:function(A){A.treeViewPlugin.withNodeTree(A.treeViewNode,(e=>{if(e.objectId){const t=A.viewer.scene.objects[e.objectId];t&&(t.xrayed=!1,t.pickable=!0)}}))}},{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.xrayOthers")||"X-Ray Others",doAction:function(A){const e=A.viewer.scene;e.setObjectsVisible(e.objectIds,!0),A.bimViewer.getConfig("xrayPickable")||e.setObjectsPickable(e.objectIds,!1),e.setObjectsXRayed(e.objectIds,!0),e.setObjectsSelected(e.selectedObjectIds,!1),A.treeViewPlugin.withNodeTree(A.treeViewNode,(A=>{if(A.objectId){const t=e.objects[A.objectId];t&&(t.xrayed=!1,t.pickable=!0)}}))}},{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.xrayAll")||"X-Ray All",doAction:function(A){const e=A.viewer.scene;e.setObjectsVisible(e.objectIds,!0),e.setObjectsXRayed(e.objectIds,!0),e.setObjectsSelected(e.selectedObjectIds,!1),e.setObjectsPickable(e.objectIds,!1)}},{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.xrayNone")||"X-Ray None",getEnabled:function(A){return A.viewer.scene.numXRayedObjects>0},doAction:function(A){const e=A.viewer.scene,t=e.xrayedObjectIds;e.setObjectsPickable(t,!0),e.setObjectsXRayed(t,!1)}}],[{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.select")||"Select",doAction:function(A){A.treeViewPlugin.withNodeTree(A.treeViewNode,(e=>{if(e.objectId){const t=A.viewer.scene.objects[e.objectId];t&&(t.selected=!0,t.visible=!0)}}))}},{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.undoSelect")||"Undo Select",doAction:function(A){A.treeViewPlugin.withNodeTree(A.treeViewNode,(e=>{if(e.objectId){const t=A.viewer.scene.objects[e.objectId];t&&(t.selected=!1)}}))}},{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.selectNone")||"Select None",getEnabled:function(A){return A.viewer.scene.numSelectedObjects>0},doAction:function(A){A.viewer.scene.setObjectsSelected(A.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:A=>A.viewer.localeService.translate("treeViewContextMenu.clearSlices")||"Clear Slices",getEnabled:function(A){return A.bimViewer.getNumSections()>0},doAction:function(A){A.bimViewer.clearSections()}}],i]}}const sp=g.vec3();function np(A,e,t){if(!A||!e||!t)return;const i=A.viewer,s=i.scene,n=function(A,e){const t=[];return A&&e?(A.withNodeTree(e,(A=>{A.objectId&&t.push(A.objectId)})),t):t}(e,t);if(0===n.length)return void console.log("[treeViewFocusHelper] empty objectIds for node",t);const o=s.getAABB(n);if(!o||!Array.isArray(o)||6!==o.length)return void console.log("[treeViewFocusHelper] no AABB for objectIds",n);console.log("[treeViewFocusHelper] flyTo",{nodeId:t.nodeId||t.id,objectIds:n.slice(0,10),count:n.length,aabb:o}),s.setObjectsVisible(n,!0),s.setObjectsPickable(n,!0);const r=g.getAABB3Center(o,sp);i.cameraControl.pivotPos=r,i.cameraFlight.flyTo({aabb:o,duration:A.getConfig("viewFitDuration"),fitFOV:A.getConfig("viewFitFOV")},(()=>{const e=t.objectId||n[0];e&&(A.showObjectInExplorers(e),A.showObjectProperties(e))}))}class op extends bF{constructor(A,e={}){if(super(A),!e.objectsTabElement)throw"Missing config: objectsTabElement";if(!e.showAllObjectsButtonElement)throw"Missing config: showAllObjectsButtonElement";if(!e.hideAllObjectsButtonElement)throw"Missing config: hideAllObjectsButtonElement";if(!e.objectsElement)throw"Missing config: objectsElement";if(this._containerElement=e.containerElement,this._objectsTabElement=e.objectsTabElement,this._showAllObjectsButtonElement=e.showAllObjectsButtonElement,this._hideAllObjectsButtonElement=e.hideAllObjectsButtonElement,this._objectsTabButtonElement=this._objectsTabElement.querySelector(".xeokit-tab-btn"),!this._objectsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";const t=e.objectsElement;this._treeView=new Ix(this.viewer,{containerElement:t,hierarchy:"containment",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new ip(this.bimViewer,{hideOnAction:!0,enableMeasurements:e.enableMeasurements,parentNode:e.containerElement}),this._lastNodeClickTime=0,this._lastNodeClickId=null,this._doubleClickThreshold=this.viewer.doubleClickTimeFrame||300,this._treeView.on("contextmenu",(A=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:A.viewer,treeViewPlugin:A.treeViewPlugin,treeViewNode:A.treeViewNode},this._treeViewContextMenu.show(A.event.pageX,A.event.pageY)})),this._treeView.on("nodeTitleClicked",(A=>{const e="undefined"!=typeof performance&&performance.now?performance.now():Date.now(),t=A.treeViewNode.nodeId||A.treeViewNode.id,i=A.event&&A.event.detail?A.event.detail:1,s=this._lastNodeClickId===t&&e-this._lastNodeClickTime<=this._doubleClickThreshold,n=i>=2||s;if(this._lastNodeClickTime=e,this._lastNodeClickId=t,n)return console.log("[ObjectsExplorer] double click",{nodeId:t,title:A.treeViewNode.title||A.treeViewNode.name}),void this._onTreeNodeTitleDoubleClicked(A);this._onTreeNodeTitleSingleClicked(A)})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(A=>{if(this.viewer.metaScene.metaModels[A]){const e=this.bimViewer._modelsExplorer.getModelInfo(A);if(!e)return;this._treeView.addModel(A,{rootName:e.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(A=>{this.viewer.metaScene.metaModels[A]&&this._treeView.removeModel(A)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(A){A?(this._objectsTabButtonElement.classList.remove("disabled"),this._showAllObjectsButtonElement.classList.remove("disabled"),this._hideAllObjectsButtonElement.classList.remove("disabled")):(this._objectsTabButtonElement.classList.add("disabled"),this._showAllObjectsButtonElement.classList.add("disabled"),this._hideAllObjectsButtonElement.classList.add("disabled"))}expandTreeViewToDepth(A){this._treeView.expandToDepth(A)}showNodeInTreeView(A){this._treeView.collapse(),this._treeView.showNode(A)}unShowNodeInTreeView(){this._treeView.unShowNode()}_onTreeNodeTitleSingleClicked(A){const e=this.viewer.scene,t=[];A.treeViewPlugin.withNodeTree(A.treeViewNode,(A=>{A.objectId&&t.push(A.objectId)}));A.treeViewNode.checked?(e.setObjectsXRayed(t,!1),e.setObjectsVisible(t,!1),e.setObjectsPickable(t,!0)):(e.setObjectsXRayed(t,!1),e.setObjectsVisible(t,!0),e.setObjectsPickable(t,!0))}_onTreeNodeTitleDoubleClicked(A){this._focusTreeNodeInViewer(A)}_focusTreeNodeInViewer(A){np(this.bimViewer,A.treeViewPlugin,A.treeViewNode)}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}class rp extends bF{constructor(A,e={}){if(super(A),!e.classesTabElement)throw"Missing config: classesTabElement";if(!e.showAllClassesButtonElement)throw"Missing config: showAllClassesButtonElement";if(!e.hideAllClassesButtonElement)throw"Missing config: hideAllClassesButtonElement";if(!e.classesElement)throw"Missing config: classesElement";if(this._containerElement=e.containerElement,this._classesTabElement=e.classesTabElement,this._showAllClassesButtonElement=e.showAllClassesButtonElement,this._hideAllClassesButtonElement=e.hideAllClassesButtonElement,this._classesTabButtonElement=this._classesTabElement.querySelector(".xeokit-tab-btn"),!this._classesTabButtonElement)throw"Missing DOM element: xeokit-tab-btn";const t=e.classesElement;this._treeView=new Ix(this.viewer,{containerElement:t,hierarchy:"types",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new ip(this.bimViewer,{hideOnAction:!0,enableMeasurements:e.enableMeasurements,parentNode:e.containerElement}),this._lastNodeClickTime=0,this._lastNodeClickId=null,this._doubleClickThreshold=this.viewer.doubleClickTimeFrame||300,this._treeView.on("contextmenu",(A=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:A.viewer,treeViewPlugin:A.treeViewPlugin,treeViewNode:A.treeViewNode},this._treeViewContextMenu.show(A.event.pageX,A.event.pageY)})),this._treeView.on("nodeTitleClicked",(A=>{const e="undefined"!=typeof performance&&performance.now?performance.now():Date.now(),t=A.treeViewNode.nodeId||A.treeViewNode.id,i=A.event&&A.event.detail?A.event.detail:1,s=this._lastNodeClickId===t&&e-this._lastNodeClickTime<=this._doubleClickThreshold,n=i>=2||s;if(this._lastNodeClickTime=e,this._lastNodeClickId=t,n)return console.log("[ClassesExplorer] double click",{nodeId:t,title:A.treeViewNode.title||A.treeViewNode.name}),void this._onTreeNodeTitleDoubleClicked(A);this._onTreeNodeTitleSingleClicked(A)})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(A=>{if(this.viewer.metaScene.metaModels[A]){const e=this.bimViewer._modelsExplorer.getModelInfo(A);if(!e)return;this._treeView.addModel(A,{rootName:e.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(A=>{this.viewer.metaScene.metaModels[A]&&this._treeView.removeModel(A)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(A){A?(this._classesTabButtonElement.classList.remove("disabled"),this._showAllClassesButtonElement.classList.remove("disabled"),this._hideAllClassesButtonElement.classList.remove("disabled")):(this._classesTabButtonElement.classList.add("disabled"),this._showAllClassesButtonElement.classList.add("disabled"),this._hideAllClassesButtonElement.classList.add("disabled"))}expandTreeViewToDepth(A){this._treeView.expandToDepth(A)}showNodeInTreeView(A){this._treeView.collapse(),this._treeView.showNode(A)}unShowNodeInTreeView(){this._treeView.unShowNode()}_onTreeNodeTitleSingleClicked(A){const e=this.viewer.scene,t=[];A.treeViewPlugin.withNodeTree(A.treeViewNode,(A=>{A.objectId&&t.push(A.objectId)}));A.treeViewNode.checked?(e.setObjectsXRayed(t,!1),e.setObjectsVisible(t,!1),e.setObjectsPickable(t,!0)):(e.setObjectsXRayed(t,!1),e.setObjectsVisible(t,!0),e.setObjectsPickable(t,!0))}_onTreeNodeTitleDoubleClicked(A){this._focusTreeNodeInViewer(A)}_focusTreeNodeInViewer(A){np(this.bimViewer,A.treeViewPlugin,A.treeViewNode)}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const cp=g.vec3();class ap extends bF{constructor(A,e={}){if(super(A),!e.storeysTabElement)throw"Missing config: storeysTabElement";if(!e.showAllStoreysButtonElement)throw"Missing config: showAllStoreysButtonElement";if(!e.hideAllStoreysButtonElement)throw"Missing config: hideAllStoreysButtonElement";if(!e.storeysElement)throw"Missing config: storeysElement";if(this._containerElement=e.containerElement,this._storeysTabElement=e.storeysTabElement,this._showAllStoreysButtonElement=e.showAllStoreysButtonElement,this._hideAllStoreysButtonElement=e.hideAllStoreysButtonElement,this._storeysTabButtonElement=this._storeysTabElement.querySelector(".xeokit-tab-btn"),!this._storeysTabButtonElement)throw"Missing DOM element: .xeokit-tab-btn";const t=e.storeysElement;this._treeView=new Ix(this.viewer,{containerElement:t,autoAddModels:!1,hierarchy:"storeys",autoExpandDepth:1}),this._treeViewContextMenu=new ip(this.bimViewer,{hideOnAction:!0,enableMeasurements:e.enableMeasurements,parentNode:e.containerElement}),this._lastNodeClickTime=0,this._lastNodeClickId=null,this._doubleClickThreshold=this.viewer.doubleClickTimeFrame||300,this._treeView.on("contextmenu",(A=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:A.viewer,treeViewPlugin:A.treeViewPlugin,treeViewNode:A.treeViewNode,pruneEmptyNodes:!0},this._treeViewContextMenu.show(A.event.pageX,A.event.pageY)})),this._treeView.on("nodeTitleClicked",(A=>{const e="undefined"!=typeof performance&&performance.now?performance.now():Date.now(),t=A.treeViewNode.nodeId||A.treeViewNode.id,i=A.event&&A.event.detail?A.event.detail:1,s=this._lastNodeClickId===t&&e-this._lastNodeClickTime<=this._doubleClickThreshold,n=i>=2||s;if(this._lastNodeClickTime=e,this._lastNodeClickId=t,n)return console.log("[StoreysExplorer] double click",{nodeId:t,title:A.treeViewNode.title||A.treeViewNode.name}),void this._onTreeNodeTitleDoubleClicked(A);this._onTreeNodeTitleSingleClicked(A)})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(A=>{const e=this.bimViewer._modelsExplorer.getModelInfo(A);e&&this._treeView.addModel(A,{rootName:e.name})})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(A=>{this.viewer.metaScene.metaModels[A]&&this._treeView.removeModel(A)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse(),this._treeView.expandToDepth(1)}))}setEnabled(A){A?(this._storeysTabButtonElement.classList.remove("disabled"),this._showAllStoreysButtonElement.classList.remove("disabled"),this._hideAllStoreysButtonElement.classList.remove("disabled")):(this._storeysTabButtonElement.classList.add("disabled"),this._showAllStoreysButtonElement.classList.add("disabled"),this._hideAllStoreysButtonElement.classList.add("disabled"))}expandTreeViewToDepth(A){this._treeView.expandToDepth(A)}showNodeInTreeView(A){this._treeView.collapse(),this._treeView.showNode(A)}unShowNodeInTreeView(){this._treeView.unShowNode()}_onTreeNodeTitleSingleClicked(A){const e=this.viewer.scene,t=[];A.treeViewPlugin.withNodeTree(A.treeViewNode,(A=>{A.objectId&&t.push(A.objectId)}));A.treeViewNode.checked?(e.setObjectsXRayed(t,!1),e.setObjectsVisible(t,!1),e.setObjectsPickable(t,!0)):(e.setObjectsXRayed(t,!1),e.setObjectsVisible(t,!0),e.setObjectsPickable(t,!0))}_onTreeNodeTitleDoubleClicked(A){this._focusTreeNodeInViewer(A)}_focusTreeNodeInViewer(A){np(this.bimViewer,A.treeViewPlugin,A.treeViewNode)}selectStorey(A,e){const t=this.viewer.metaScene.metaObjects[A];if(!t)return void this.error("selectStorey() - object is not found: '"+A+"'");if("IfcBuildingStorey"!==t.type)return void this.error("selectStorey() - object is not found: '"+A+"'");const i=t.getObjectIDsInSubtree();this._selectObjects(i,e)}_selectObjects(A,e){const t=this.viewer.scene,i=t.getAABB(A);this.viewer.cameraControl.pivotPos=g.getAABB3Center(i,cp),e?(t.setObjectsXRayed(t.objectIds,!0),t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.objectIds,!1),t.setObjectsSelected(t.selectedObjectIds,!1),t.setObjectsXRayed(A,!1),t.setObjectsVisible(A,!0),t.setObjectsPickable(A,!0),this.viewer.cameraFlight.flyTo({aabb:i},(()=>{setTimeout((function(){t.setObjectsVisible(t.xrayedObjectIds,!1),t.setObjectsXRayed(t.xrayedObjectIds,!1)}),500),e()}))):(t.setObjectsVisible(t.objectIds,!1),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),t.setObjectsSelected(t.selectedObjectIds,!1),t.setObjectsVisible(A,!0),this.viewer.cameraFlight.jumpTo({aabb:i}))}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const hp=g.vec3();class Bp extends bF{constructor(A,e){if(super(A,e),!e.buttonElement)throw"Missing config: buttonElement";this._saveOrthoActive=null,this._buttonElement=e.buttonElement,this._cameraControlNavModeMediator=e.cameraControlNavModeMediator,this._active=!1,this.on("enabled",(A=>{A?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(A=>{this.getEnabled()&&(this.bimViewer._sectionTool.hideControl(),this.setActive(!this.getActive(),(()=>{}))),A.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!0,(()=>{}))}))}setEnabled(A){super.setEnabled(A),this._saveOrthoActive=this.bimViewer._orthoMode.getActive()}setActive(A,e){this._active!==A?(this._active=A,A?(this._buttonElement.classList.add("active"),e?this._enterThreeDMode((()=>{this.fire("active",this._active),e()})):(this._enterThreeDMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),e?this._exitThreeDMode((()=>{this.fire("active",this._active),e()})):(this._exitThreeDMode(),this.fire("active",this._active)))):e&&e()}_enterThreeDMode(A){const e=this.viewer,t=e.scene,i=t.getAABB(t.visibleObjectIds),s=g.getAABB3Diag(i),n=g.getAABB3Center(i,hp),o=Math.abs(s/Math.tan(32.5)),r=t.camera,c=r.yUp?[-1,-1,-1]:[1,1,1],a=r.yUp?[-1,1,-1]:[-1,1,1];e.cameraControl.pivotPos=n,this.bimViewer._navCubeMode.setActive(!0),this.bimViewer._firstPersonMode.setEnabled(!0),this._cameraControlNavModeMediator.setThreeDModeActive(!0),this.bimViewer._sectionTool.setEnabled(!0),this.bimViewer._orthoMode.setEnabled(!0),A?e.cameraFlight.flyTo({look:n,eye:[n[0]-o*c[0],n[1]-o*c[1],n[2]-o*c[2]],up:a,orthoScale:1.3*s,duration:1,projection:this._saveOrthoActive?"ortho":"perspective"},(()=>{A()})):e.cameraFlight.jumpTo({look:n,eye:[n[0]-o*c[0],n[1]-o*c[1],n[2]-o*c[2]],up:a,orthoScale:1.3*s,projection:this._saveOrthoActive?"ortho":"perspective"})}_exitThreeDMode(A){const e=this.viewer,t=e.scene,i=t.camera,s=t.getAABB(t.visibleObjectIds),n=g.getAABB3Center(s),o=g.getAABB3Diag(s),r=Math.abs(o/Math.tan(45*g.DEGTORAD)),c=1.3*o,a=hp;a[0]=n[0]+i.worldUp[0]*r,a[1]=n[1]+i.worldUp[1]*r,a[2]=n[2]+i.worldUp[2]*r;const h=g.mulVec3Scalar(i.worldForward,-1,[]);this.bimViewer._sectionTool.setActive(!1),this.bimViewer._firstPersonMode.setEnabled(!1),this._saveOrthoActive=this.bimViewer._orthoMode.getActive(),this.bimViewer._orthoMode.setEnabled(!1),this._cameraControlNavModeMediator.setThreeDModeActive(!1),A?e.cameraFlight.flyTo({eye:a,look:n,up:h,orthoScale:c,projection:"ortho"},(()=>{this.bimViewer._navCubeMode.setActive(!1)})):(e.cameraFlight.jumpTo({eye:a,look:n,up:h,orthoScale:c,projection:"ortho"}),this.bimViewer._navCubeMode.setActive(!1))}}class gp extends n{constructor(A,e={}){super(e),this._bimViewer=A,this._buildMenu(e)}_buildMenu(A){const e=[],t=[],i=[],s=!!A.enableMeasurements;this._bimViewer._enablePropertiesInspector&&e.push({getTitle:A=>A.viewer.localeService.translate("objectContextMenu.inspectProperties")||"Inspect Properties",doAction:A=>{const e=A.entity.id;A.bimViewer.showObjectProperties(e)}}),e.push({getTitle:A=>A.viewer.localeService.translate("objectContextMenu.showInTree")||"Show in Explorer",doAction:A=>{const e=A.entity.id;A.showObjectInExplorers(e)}}),t.push({getTitle:A=>A.viewer.localeService.translate("objectContextMenu.viewFit")||"View Fit",doAction:A=>{const e=A.viewer,t=e.scene,i=A.entity;e.cameraFlight.flyTo({aabb:i.aabb,duration:.5},(()=>{setTimeout((function(){t.setObjectsHighlighted(t.highlightedObjectIds,!1)}),500)})),e.cameraControl.pivotPos=g.getAABB3Center(i.aabb)}},{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:A=>A.viewer.scene.numSelectedObjects>0,doAction:A=>{const e=A.viewer,t=e.scene,i=t.getAABB(t.selectedObjectIds);e.cameraFlight.flyTo({aabb:i,duration:.5}),e.cameraControl.pivotPos=g.getAABB3Center(i)}},{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.viewFitAll")||"View Fit All",doAction:A=>{const e=A.viewer,t=e.scene,i=t.getAABB(t.visibleObjectIds);e.cameraFlight.flyTo({aabb:i,duration:.5}),e.cameraControl.pivotPos=g.getAABB3Center(i)}}),s&&i.push({getTitle:A=>A.viewer.localeService.translate("objectContextMenu.measurements")||"Measurements",doAction:function(A){},items:[[{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.clearMeasurements")||"Clear",getEnabled:A=>A.bimViewer.getNumMeasurements()>0,doAction:A=>{A.bimViewer.clearMeasurements()}},{getTitle:A=>A.bimViewer.getMeasurementsAxisVisible()?A.viewer.localeService.translate("objectContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":A.viewer.localeService.translate("objectContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:A=>A.bimViewer.getNumMeasurements()>0,doAction:A=>{A.bimViewer.setMeasurementsAxisVisible(!A.bimViewer.getMeasurementsAxisVisible())}},{getTitle:A=>A.bimViewer.getMeasurementsSnappingEnabled()?A.viewer.localeService.translate("objectContextMenu.disableMeasurementSnapping")||"Disable Snapping":A.viewer.localeService.translate("objectContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:A=>A.bimViewer.getNumMeasurements()>0,doAction:A=>{A.bimViewer.setMeasurementsSnappingEnabled(!A.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[e,t,[{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.hide")||"Hide",getEnabled:A=>A.entity.visible,doAction:A=>{A.entity.visible=!1}},{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.hideOthers")||"Hide Others",doAction:A=>{const e=A.viewer,t=e.scene,i=A.entity,s=e.metaScene.metaObjects[i.id];s&&(t.setObjectsVisible(t.visibleObjectIds,!1),s.withMetaObjectsInSubtree((A=>{const e=t.objects[A.id];e&&(e.visible=!0)})))}},{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.hideAll")||"Hide All",getEnabled:A=>A.viewer.scene.numVisibleObjects>0,doAction:A=>{A.viewer.scene.setObjectsVisible(A.viewer.scene.visibleObjectIds,!1)}},{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.showAll")||"Show All",getEnabled:A=>{const e=A.viewer.scene;return e.numVisibleObjects0},doAction:A=>{const e=A.viewer.scene;e.setObjectsVisible(e.objectIds,!0),e.setObjectsPickable(e.xrayedObjectIds,!0),e.setObjectsXRayed(e.xrayedObjectIds,!1)}}],[{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.xray")||"X-Ray",getEnabled:A=>!A.entity.xrayed,doAction:A=>{const e=A.entity;e.xrayed=!0,e.pickable=A.bimViewer.getConfig("xrayPickable")}},{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.xrayOthers")||"X-Ray Others",doAction:A=>{const e=A.viewer,t=e.scene,i=A.entity,s=e.metaScene.metaObjects[i.id];s&&(t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),A.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),s.withMetaObjectsInSubtree((A=>{const e=t.objects[A.id];e&&(e.xrayed=!1,e.pickable=!0)})))}},{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.xrayAll")||"X-Ray All",getEnabled:A=>{const e=A.viewer.scene;return e.numXRayedObjects{const e=A.viewer.scene;e.setObjectsVisible(e.objectIds,!0),A.bimViewer.getConfig("xrayPickable")||e.setObjectsPickable(e.objectIds,!1),e.setObjectsXRayed(e.objectIds,!0)}},{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.xrayNone")||"X-Ray None",getEnabled:A=>A.viewer.scene.numXRayedObjects>0,doAction:A=>{const e=A.viewer.scene,t=e.xrayedObjectIds;e.setObjectsPickable(t,!0),e.setObjectsXRayed(t,!1)}}],[{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.select")||"Select",getEnabled:A=>!A.entity.selected,doAction:A=>{A.entity.selected=!0}},{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.undoSelect")||"Undo Select",getEnabled:A=>A.entity.selected,doAction:A=>{A.entity.selected=!1}},{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.selectNone")||"Select None",getEnabled:A=>A.viewer.scene.numSelectedObjects>0,doAction:A=>{A.viewer.scene.setObjectsSelected(A.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:A=>A.viewer.localeService.translate("objectContextMenu.clearSlices")||"Clear Slices",getEnabled:A=>A.bimViewer.getNumSections()>0,doAction:A=>{A.bimViewer.clearSections()}}],i]}}class lp extends n{constructor(A,e={}){super({hideOnAction:e.hideOnAction,context:e.context,items:[[{getTitle:A=>A.viewer.localeService.translate("canvasContextMenu.viewFitAll")||"View Fit All",doAction:A=>{const e=A.viewer,t=e.scene,i=t.getAABB(t.visibleObjectIds);e.cameraFlight.flyTo({aabb:i,duration:.5}),e.cameraControl.pivotPos=g.getAABB3Center(i)}},{getTitle:A=>A.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:A=>A.viewer.scene.numSelectedObjects>0,doAction:A=>{const e=A.viewer,t=e.scene,i=t.getAABB(t.selectedObjectIds);e.cameraFlight.flyTo({aabb:i,duration:.5}),e.cameraControl.pivotPos=g.getAABB3Center(i)}}],[{getTitle:A=>A.viewer.localeService.translate("canvasContextMenu.hideAll")||"Hide All",getEnabled:A=>A.viewer.scene.numVisibleObjects>0,doAction:A=>{A.viewer.scene.setObjectsVisible(A.viewer.scene.visibleObjectIds,!1)}},{getTitle:A=>A.viewer.localeService.translate("canvasContextMenu.showAll")||"Show All",getEnabled:A=>{const e=A.viewer.scene;return e.numVisibleObjects0},doAction:A=>{const e=A.viewer.scene;e.setObjectsVisible(e.objectIds,!0),e.setObjectsXRayed(e.xrayedObjectIds,!1)}}],[{getTitle:A=>A.viewer.localeService.translate("canvasContextMenu.xRayAll")||"X-Ray All",getEnabled:A=>{const e=A.viewer.scene;return e.numXRayedObjects{const e=A.viewer.scene;e.setObjectsVisible(e.objectIds,!0),e.setObjectsXRayed(e.objectIds,!0),A.bimViewer.getConfig("xrayPickable")||e.setObjectsPickable(e.objectIds,!1)}},{getTitle:A=>A.viewer.localeService.translate("canvasContextMenu.xRayNone")||"X-Ray None",getEnabled:A=>A.viewer.scene.numXRayedObjects>0,doAction:A=>{const e=A.viewer.scene.xrayedObjectIds;A.viewer.scene.setObjectsPickable(e,!0),A.viewer.scene.setObjectsXRayed(e,!1)}}],[{getTitle:A=>A.viewer.localeService.translate("canvasContextMenu.selectNone")||"Select None",getEnabled:A=>A.viewer.scene.numSelectedObjects>0,doAction:A=>{A.viewer.scene.setObjectsSelected(A.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:A=>A.viewer.localeService.translate("canvasContextMenu.resetView")||"Reset View",doAction:A=>{A.bimViewer.resetView()}}],[{getTitle:A=>A.viewer.localeService.translate("canvasContextMenu.clearSlices")||"Clear Slices",getEnabled:A=>A.bimViewer.getNumSections()>0,doAction:A=>{A.bimViewer.clearSections()}}],e.enableMeasurements?[{getTitle:A=>A.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(A){},items:[[{getTitle:A=>A.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:A=>A.bimViewer.getNumMeasurements()>0,doAction:A=>{A.bimViewer.clearMeasurements()}},{getTitle:A=>A.bimViewer.getMeasurementsAxisVisible()?A.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":A.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:A=>A.bimViewer.getNumMeasurements()>0,doAction:A=>{A.bimViewer.setMeasurementsAxisVisible(!A.bimViewer.getMeasurementsAxisVisible())}},{getTitle:A=>A.bimViewer.getMeasurementsSnappingEnabled()?A.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":A.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:A=>A.bimViewer.getNumMeasurements()>0,doAction:A=>{A.bimViewer.setMeasurementsSnappingEnabled(!A.bimViewer.getMeasurementsSnappingEnabled())}}]]}]:[]],parentNode:e.parentNode})}}class Ep extends bF{constructor(A,e){if(super(A,e),!e.buttonElement)throw"Missing config: buttonElement";this._buttonElement=e.buttonElement,this.on("enabled",(A=>{A?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(A=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),A.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.camera.on("projection",(()=>{const A="ortho"===this.viewer.camera.projection;this._active=A,this._active?this._buttonElement.classList.add("active"):this._buttonElement.classList.remove("active")})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(A,e){this._active!==A?(this._active=A,A?(this._buttonElement.classList.add("active"),e?this._enterOrthoMode((()=>{this.fire("active",this._active),e()})):(this._enterOrthoMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),e?this._exitOrthoMode((()=>{this.fire("active",this._active),e()})):(this._exitOrthoMode(),this.fire("active",this._active)))):e&&e()}_enterOrthoMode(A){A?this.viewer.cameraFlight.flyTo({projection:"ortho",duration:.5},A):this.viewer.cameraFlight.jumpTo({projection:"ortho"})}_exitOrthoMode(A){A?this.viewer.cameraFlight.flyTo({projection:"perspective",duration:.5},A):this.viewer.cameraFlight.jumpTo({projection:"perspective"})}}class Qp extends bF{constructor(A,e={}){if(super(A),!e.propertiesTabElement)throw"Missing config: propertiesTabElement";if(!e.propertiesElement)throw"Missing config: propertiesElement";if(this._metaObject=null,this._propertiesTabElement=e.propertiesTabElement,this._propertiesElement=e.propertiesElement,this._propertiesTabButtonElement=this._propertiesTabElement.querySelector(".xeokit-tab-btn"),!this._propertiesTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(A=>{if(this._metaObject){const e=this._metaObject.metaModels;for(let t=0,i=e.length;t{this.clear()})),document.addEventListener("click",this._clickListener=A=>{if(A.target.matches(".xeokit-accordion .xeokit-accordion-button")){const e=A.target.parentElement,t=e.querySelector(".xeokit-accordion-panel");if(e.classList.contains("active"))t.style.height=t.scrollHeight+"px",t.offsetHeight,t.style.height="0px",t.addEventListener("transitionend",(function A(){e.classList.remove("active"),t.removeEventListener("transitionend",A)}),{once:!0});else{e.classList.add("active");const A=t.scrollHeight;t.style.height=A+"px"}}}),window.addEventListener("resize",(()=>{document.querySelectorAll(".xeokit-accordion-container.active").forEach((A=>{const e=A.querySelector(".xeokit-accordion-panel");e.style.height,e.style.height="auto";const t=e.scrollHeight;e.style.height=t+"px"}))})),this.clear()}showObjectPropertySets(A){const e=this.viewer.metaScene.metaObjects[A];if(!e)return;const t=e.propertySets;t&&t.length>0?this._setPropertySets(e,t):this._setPropertySets(e),this._metaObject=e}clear(){const A=[],e=this.viewer.localeService.translate("propertiesInspector.noObjectSelectedWarning")||"No object inspected. Right-click or long-tab an object and select 'Inspect Properties' to view its properties here.";A.push('
    '),A.push(`

    ${e}

    `),A.push("
    ");const t=A.join("");this._propertiesElement.innerHTML=t}_setPropertySets(A,e){const t=[];if(t.push('
    '),A){t.push(''),t.push(``),A.type&&t.push(``),t.push(``),t.push(``);const i=A.attributes;if(i)for(let A in i)t.push(``);if(t.push("
    Name:${A.name}
    Class:${A.type}
    UUID:${A.originalSystemId}
    Viewer ID:${A.id}
    ${Mp(A)}:${i[A]}
    "),e&&0!==e.length){t.push("
    "),t.push('
    ');for(let A=0,i=e.length;A0){t.push(`
    \n

    ${i.name}

    \n
    \n `);for(let A=0,e=s.length;A`)}t.push("
    ${e.name||e.label}:${e.value}
    \n
    \n
    ")}}t.push("
    ")}else{const A=this.viewer.localeService.translate("propertiesInspector.noPropSetWarning")||"No properties sets found for this object";t.push(`

    ${A}

    `),t.push("")}}else t.push('

    No object selected

    ');this._propertiesElement.innerHTML=t.join("")}setEnabled(A){A?this._propertiesTabButtonElement.classList.remove("disabled"):this._propertiesTabButtonElement.classList.add("disabled")}destroy(){super.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded),document.removeEventListener("click",this._clickListener)}}function Mp(A){return A?A.charAt(0).toUpperCase()+A.slice(1):A}const up=new Float32Array(3);class wp{constructor(A){if(!A)throw"Parameter expected: cfg";if(!A.viewer)throw"Parameter expected: cfg.viewer";this.viewer=A.viewer,this._maxTreeDepth=A.maxTreeDepth||15,this._root=null,this._needsRebuild=!0,this._onModelLoaded=this.viewer.scene.on("modelLoaded",(A=>{this._needsRebuild=!0})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(A=>{this._needsRebuild=!0}))}get root(){return this._needsRebuild&&this._rebuild(),this._root}_rebuild(){const A=this.viewer.scene;this._root={aabb:A.getAABB()};for(let e in A.objects){const t=A.objects[e];this._insertEntity(this._root,t,1)}this._needsRebuild=!1}_insertEntity(A,e,t){const i=e.aabb;if(t>=this._maxTreeDepth)return A.entities=A.entities||[],void A.entities.push(e);if(A.left&&g.containsAABB3(A.left.aabb,i))return void this._insertEntity(A.left,e,t+1);if(A.right&&g.containsAABB3(A.right.aabb,i))return void this._insertEntity(A.right,e,t+1);const s=A.aabb;up[0]=s[3]-s[0],up[1]=s[4]-s[1],up[2]=s[5]-s[2];let n=0;if(up[1]>up[n]&&(n=1),up[2]>up[n]&&(n=2),!A.left){const o=s.slice();if(o[n+3]=(s[n]+s[n+3])/2,A.left={aabb:o},g.containsAABB3(o,i))return void this._insertEntity(A.left,e,t+1)}if(!A.right){const o=s.slice();if(o[n]=(s[n]+s[n+3])/2,A.right={aabb:o},g.containsAABB3(o,i))return void this._insertEntity(A.right,e,t+1)}A.entities=A.entities||[],A.entities.push(e)}destroy(){const A=this.viewer.scene;A.off(this._onModelLoaded),A.off(this._onModelUnloaded),this._root=null,this._needsRebuild=!0}}class dp extends bF{constructor(A,e){if(super(A),!e.buttonElement)throw"Missing config: buttonElement";this._objectsKdTree3=e.objectsKdTree3,this._marquee=g.AABB2(),this._marqueeFrustum=new R,this._marqueeFrustumProjMat=g.mat4(),this._marqueeDir=!1;const t=e.buttonElement;this.on("enabled",(A=>{A?t.classList.remove("disabled"):t.classList.add("disabled")})),this.on("active",(A=>{A?(t.classList.add("active"),this._objectsKdTree3.root):t.classList.remove("active")})),t.addEventListener("click",(A=>{if(this.getEnabled()){const A=this.getActive();this.setActive(!A)}A.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}));const i=this.viewer.scene,s=i.canvas.canvas;this._marqueeElement=document.createElement("div"),document.body.appendChild(this._marqueeElement);const n=this._marqueeElement.style;let o,r,c,a,h,B,l,E;n.position="absolute",n["z-index"]="40000005",n.width="8px",n.height="8px",n.visibility="hidden",n.top="0px",n.left="0px",n["box-shadow"]="0 2px 5px 0 #182A3D;",n.opacity=1,n["pointer-events"]="none";let Q=!1,M=!1;s.addEventListener("mousedown",(A=>{if(!this.getActive()||!this.getEnabled())return;if(0!==A.button)return;const e=this.bimViewer.viewer.scene.input;e.keyDown[e.KEY_CTRL]||i.setObjectsSelected(i.selectedObjectIds,!1),o=A.pageX,r=A.pageY,n.visibility="visible",n.left=`${o}px`,n.top=`${r}px`,n.width="0px",n.height="0px",n.display="block",h=A.offsetX,B=A.offsetY,Q=!0,this.viewer.cameraControl.pointerEnabled=!1})),s.addEventListener("mouseup",(A=>{if(!this.getActive()||!this.getEnabled())return;if(!Q&&!M)return;if(0!==A.button)return;c=A.pageX,a=A.pageY;const e=Math.abs(c-o),t=Math.abs(a-r);n.width=`${e}px`,n.height=`${t}px`,n.visibility="hidden",Q=!1,this.viewer.cameraControl.pointerEnabled=!0,M&&(M=!1),(e>3||t>3)&&this._marqueePick()})),document.addEventListener("mouseup",(A=>{this.getActive()&&this.getEnabled()&&0===A.button&&Q&&(n.visibility="hidden",Q=!1,M=!0,this.viewer.cameraControl.pointerEnabled=!0)}),!0),s.addEventListener("mousemove",(A=>{if(!this.getActive()||!this.getEnabled())return;if(0!==A.button)return;if(!Q)return;const e=A.pageX,t=A.pageY,i=e-o,s=t-r;n.width=`${Math.abs(i)}px`,n.height=`${Math.abs(s)}px`,n.left=`${Math.min(o,e)}px`,n.top=`${Math.min(r,t)}px`,l=A.offsetX,E=A.offsetY;const c=h{if(i===R.INTERSECT&&(i=k(this._marqueeFrustum,t.aabb)),i!==R.OUTSIDE){if(t.entities){const e=t.entities;for(let t=0,i=e.length;tA.measurement.axisVisible?this.viewer.localeService.translate("measureContextMenu.hideMeasurementAxisWires")||"Hide Measurement Axis":this.viewer.localeService.translate("measureContextMenu.showMeasurementAxisWires")||"Show Measurement Axis",doAction:function(A){A.measurement.axisVisible=!A.measurement.axisVisible}},{getTitle:A=>A.measurement.labelsVisible?this.viewer.localeService.translate("measureContextMenu.hideMeasurementLabels")||"Hide Measurement Labels":this.viewer.localeService.translate("measureContextMenu.showMeasurementLabels")||"Show Measurement Labels",doAction:function(A){A.measurement.labelsVisible=!A.measurement.labelsVisible}}],[{getTitle:A=>this.viewer.localeService.translate("measureContextMenu.clearMeasurements")||"Clear Measurements",doAction:function(A){A.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin=new wC(this.viewer,{defaultAxisVisible:!1,defaultLabelsOnWires:!1}),this._distanceMeasurementsPlugin.on("mouseOver",(A=>{A.measurement.setHighlighted(!0)})),this._distanceMeasurementsPlugin.on("mouseLeave",(A=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===A.measurement.id||A.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin.on("contextMenu",(A=>{this._contextMenu.context={distanceMeasurementsPlugin:this._distanceMeasurementsPlugin,measurement:A.measurement},this._contextMenu.show(A.event.clientX,A.event.clientY),A.event.preventDefault()})),this._distanceMeasurementsMouseControl=new uC(this._distanceMeasurementsPlugin,{}),this._distanceMeasurementsMouseControl.snapping=!0,this.on("enabled",(A=>{A?t.classList.remove("disabled"):t.classList.add("disabled")})),this.on("active",(A=>{A?(t.classList.add("active"),this._distanceMeasurementsMouseControl.activate()):(t.classList.remove("active"),this._distanceMeasurementsMouseControl.deactivate())})),t.addEventListener("click",(A=>{if(this.getEnabled()){const A=this.getActive();this.setActive(!A)}A.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._distanceMeasurementsPlugin.measurements).length}setMeasurementsAxisVisible(A){this._distanceMeasurementsPlugin.setAxisVisible(A)}getMeasurementsAxisVisible(){return this._distanceMeasurementsPlugin.getAxisVisible()}setSnappingEnabled(A){return this._distanceMeasurementsMouseControl.snapping=A}getSnappingEnabled(){return this._distanceMeasurementsMouseControl.snapping}clear(){this._distanceMeasurementsPlugin.clear()}destroy(){this._distanceMeasurementsPlugin.destroy(),this._distanceMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}class xp extends bF{constructor(A,e){if(super(A),!e.buttonElement)throw"Missing config: buttonElement";const t=e.buttonElement;this._contextMenu=new n({items:[[{getTitle:A=>A.measurement.labelsVisible?this.viewer.localeService.translate("measureContextMenu.hideMeasurementLabels")||"Hide Measurement Labels":this.viewer.localeService.translate("measureContextMenu.showMeasurementLabels")||"Show Measurement Labels",doAction:function(A){A.measurement.labelsVisible=!A.measurement.labelsVisible}}],[{getTitle:A=>this.viewer.localeService.translate("measureContextMenu.clearMeasurements")||"Clear Measurements",doAction:function(A){A.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin=new tC(this.viewer,{}),this._angleMeasurementsPlugin.on("mouseOver",(A=>{A.measurement.setHighlighted(!0)})),this._angleMeasurementsPlugin.on("mouseLeave",(A=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===A.measurement.id||A.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin.on("contextMenu",(A=>{this._contextMenu.context={angleMeasurementsPlugin:this._angleMeasurementsPlugin,measurement:A.measurement},this._contextMenu.show(A.event.clientX,A.event.clientY),A.event.preventDefault()})),this._angleMeasurementsMouseControl=new eC(this._angleMeasurementsPlugin,{}),this._angleMeasurementsMouseControl.snapping=!0,this.on("enabled",(A=>{A?t.classList.remove("disabled"):t.classList.add("disabled")})),this.on("active",(A=>{A?(t.classList.add("active"),this._angleMeasurementsMouseControl.activate()):(t.classList.remove("active"),this._angleMeasurementsMouseControl.deactivate())})),t.addEventListener("click",(A=>{if(this.getEnabled()){const A=this.getActive();this.setActive(!A)}A.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._angleMeasurementsPlugin.measurements).length}setSnappingEnabled(A){return this._angleMeasurementsMouseControl.snapping=A}getSnappingEnabled(){return this._angleMeasurementsMouseControl.snapping}clear(){this._angleMeasurementsPlugin.clear()}destroy(){this._angleMeasurementsPlugin.destroy(),this._angleMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}function Fp(A){const e="xeokit-tab",t="active";function i(A){let i=A.parentNode.querySelectorAll("."+e);for(let e=0;e{A.preventDefault()},n.oncontextmenu=A=>{A.preventDefault()},o.oncontextmenu=A=>{A.preventDefault()};const c=new Kd({localeService:e.localeService,canvasElement:t,keyboardEventsElement:e.keyboardEventsElement,transparent:!1,backgroundColor:[1,1,1],backgroundColorFromAmbientLight:!1,saoEnabled:!0,pbrEnabled:!1,colorTextureEnabled:!0,numCachedSectionPlanes:4});super(null,e,A,c),this._containerElement=e.containerElement||document.body,this._configs={},this._enableAddModels=!!e.enableEditModels,this._enableMeasurements=!1!==e.enableMeasurements,this._enablePropertiesInspector=!!e.inspectorElement,this.viewer=c,this._objectsKdTree3=new wp({viewer:c}),this._customizeViewer(),this._initCanvasContextMenus(),i.innerHTML=function(A){return'
    \n
    \n Models\n
    \n
    \n \n '+(A.enableEditModels?'':"")+'
    \n
    \n
    \n
    \n
    \n Objects\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n Classes\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n Storeys\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    '}(e),n.innerHTML=function(A={}){return'
    \n \x3c!-- Reset button --\x3e\n
    \n \n
    \n
    \n \x3c!-- 3D Mode button --\x3e\n \n \x3c!-- Perspective/Ortho Mode button --\x3e\n \n \x3c!-- Fit button --\x3e\n \n \x3c!-- First Person mode button --\x3e\n \n \x3c!-- Show/hide IFCSpaces --\x3e\n \n
    \n \x3c!-- Tools button group --\x3e\n
    \n \x3c!-- Hide tool button --\x3e\n \n \x3c!-- Select tool button --\x3e\n \n \x3c!-- Marquee select tool button --\x3e\n '+(A.enableMeasurements?'\x3c!-- Measure distance tool button --\x3e\n \n \x3c!-- Measure angle tool button --\x3e\n ':" ")+'\x3c!-- section tool button --\x3e\n \n
    \n
    '}({enableMeasurements:this._enableMeasurements}),this._enablePropertiesInspector&&(s.innerHTML='
    \n
    \n Properties\n
    \n
    \n
    \n
    \n
    '),this._explorerElement=i,this._inspectorElement=s,Fp(i),this._enablePropertiesInspector&&Fp(s),this._modelsExplorer=new ep(this,{enableMeasurements:this._enableMeasurements,modelsTabElement:i.querySelector(".xeokit-modelsTab"),loadModelsButtonElement:i.querySelector(".xeokit-loadAllModels"),unloadModelsButtonElement:i.querySelector(".xeokit-unloadAllModels"),addModelButtonElement:i.querySelector(".xeokit-addModel"),modelsElement:i.querySelector(".xeokit-models"),enableEditModels:this._enableAddModels,containerElement:this._containerElement}),this._objectsExplorer=new op(this,{enableMeasurements:this._enableMeasurements,objectsTabElement:i.querySelector(".xeokit-objectsTab"),showAllObjectsButtonElement:i.querySelector(".xeokit-showAllObjects"),hideAllObjectsButtonElement:i.querySelector(".xeokit-hideAllObjects"),objectsElement:i.querySelector(".xeokit-objects"),containerElement:this._containerElement}),this._classesExplorer=new rp(this,{enableMeasurements:this._enableMeasurements,classesTabElement:i.querySelector(".xeokit-classesTab"),showAllClassesButtonElement:i.querySelector(".xeokit-showAllClasses"),hideAllClassesButtonElement:i.querySelector(".xeokit-hideAllClasses"),classesElement:i.querySelector(".xeokit-classes"),containerElement:this._containerElement}),this._storeysExplorer=new ap(this,{enableMeasurements:this._enableMeasurements,storeysTabElement:i.querySelector(".xeokit-storeysTab"),showAllStoreysButtonElement:i.querySelector(".xeokit-showAllStoreys"),hideAllStoreysButtonElement:i.querySelector(".xeokit-hideAllStoreys"),storeysElement:i.querySelector(".xeokit-storeys"),containerElement:this._containerElement}),this._enablePropertiesInspector&&(this._propertiesInspector=new Qp(this,{propertiesTabElement:s.querySelector(".xeokit-propertiesTab"),propertiesElement:s.querySelector(".xeokit-properties")})),this._resetAction=new GF(this,{buttonElement:n.querySelector(".xeokit-reset"),active:!1}),this._fitAction=new HF(this,{buttonElement:n.querySelector(".xeokit-fit"),active:!1});const a=new function(A){let e=!1;this.setThreeDModeActive=t=>{t?(A._firstPersonMode.setActive(!1),A._marqueeSelectionTool.setEnabled(!0),A.viewer.cameraControl.navMode="orbit"):(A._marqueeSelectionTool.setEnabled(!1),A._marqueeSelectionTool.setActive(!1),A._firstPersonMode.setActive(!1),A.viewer.cameraControl.navMode="planView"),e=t},this.setFirstPersonModeActive=t=>{A.viewer.cameraControl.navMode=t?"firstPerson":e?"orbit":"planView"}}(this);this._threeDMode=new Bp(this,{buttonElement:n.querySelector(".xeokit-threeD"),cameraControlNavModeMediator:a,active:!1}),this._orthoMode=new Ep(this,{buttonElement:n.querySelector(".xeokit-ortho"),active:!1}),this._firstPersonMode=new SF(this,{buttonElement:n.querySelector(".xeokit-firstPerson"),cameraControlNavModeMediator:a,active:!1}),this._hideTool=new jF(this,{buttonElement:n.querySelector(".xeokit-hide"),active:!1}),this._selectionTool=new OF(this,{buttonElement:n.querySelector(".xeokit-select"),active:!1}),this._marqueeSelectionTool=new dp(this,{buttonElement:n.querySelector(".xeokit-marquee"),active:!1,objectsKdTree3:this._objectsKdTree3}),this._showSpacesMode=new _F(this,{buttonElement:n.querySelector(".xeokit-showSpaces"),active:!1}),this._queryTool=new WF(this,{active:!1}),this._sectionTool=new KF(this,{buttonElement:n.querySelector(".xeokit-section"),counterElement:n.querySelector(".xeokit-section-counter"),menuButtonElement:n.querySelector(".xeokit-section-menu-button"),menuButtonArrowElement:n.querySelector(".xeokit-section-menu-button-arrow"),active:!1,containerElement:this._containerElement}),this._enableMeasurements&&(this._measureDistanceTool=new Cp(this,{buttonElement:n.querySelector(".xeokit-measure-distance"),active:!1}),this._measureAngleTool=new xp(this,{buttonElement:n.querySelector(".xeokit-measure-angle"),active:!1})),this._navCubeMode=new ZF(this,{navCubeCanvasElement:o,active:!0}),this._busyModal=new kF(this,{busyModalBackdropElement:r}),this._threeDMode.setActive(!0),this._firstPersonMode.setActive(!1),this._navCubeMode.setActive(!0),this._modelsExplorer.on("modelLoaded",(A=>{this._modelsExplorer.getNumModelsLoaded()>0&&this.setControlsEnabled(!0),this.fire("modelLoaded",A)})),this._modelsExplorer.on("modelUnloaded",(A=>{0===this._modelsExplorer.getNumModelsLoaded()&&(this.setControlsEnabled(!1),this.openTab("models")),this.fire("modelUnloaded",A)})),this._resetAction.on("reset",(()=>{this.fire("reset",!0)})),this._mutexActivation([this._hideTool,this._selectionTool,this._marqueeSelectionTool,this._sectionTool,this._enableMeasurements?this._measureDistanceTool:null,this._enableMeasurements?this._measureAngleTool:null]),i.querySelector(".xeokit-showAllObjects").addEventListener("click",(A=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),A.preventDefault()})),i.querySelector(".xeokit-hideAllObjects").addEventListener("click",(A=>{this.setAllObjectsVisible(!1),A.preventDefault()})),i.querySelector(".xeokit-showAllClasses").addEventListener("click",(A=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),A.preventDefault()})),i.querySelector(".xeokit-hideAllClasses").addEventListener("click",(A=>{this.setAllObjectsVisible(!1),A.preventDefault()})),i.querySelector(".xeokit-showAllStoreys").addEventListener("click",(A=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),A.preventDefault()})),i.querySelector(".xeokit-hideAllStoreys").addEventListener("click",(A=>{this.setAllObjectsVisible(!1),A.preventDefault()})),i.querySelector(".xeokit-loadAllModels").addEventListener("click",(A=>{this.setControlsEnabled(!1),this.loadAllModels(),A.preventDefault()})),i.querySelector(".xeokit-unloadAllModels").addEventListener("click",(A=>{this.setControlsEnabled(!1),this._modelsExplorer.unloadAllModels(),A.preventDefault()})),this._enableAddModels&&i.querySelector(".xeokit-addModel").addEventListener("click",(A=>{this.fire("addModel",{}),A.preventDefault()})),this._bcfViewpointsPlugin=new rC(this.viewer,{xrayAsZeroAlpha:!0}),this._fastNavPlugin=new dC(c,{hideEdges:!0,hideSAO:!0,hidePBR:!1,hideColorTexture:!1,hideTransparentObjects:!1,scaleCanvasResolution:!1,scaleCanvasResolutionFactor:.6}),this._initConfigs(),this.setControlsEnabled(!1)}get localeService(){return this.viewer.localeService}_customizeViewer(){const A=this.viewer.scene;A.xrayMaterial.fill=!1,A.xrayMaterial.fillAlpha=.3,A.xrayMaterial.fillColor=[0,0,0],A.xrayMaterial.edges=!0,A.xrayMaterial.edgeAlpha=.1,A.xrayMaterial.edgeColor=[0,0,0],A.highlightMaterial.edges=!0,A.highlightMaterial.edgeColor=[1,1,1],A.highlightMaterial.edgeAlpha=1,A.highlightMaterial.fill=!0,A.highlightMaterial.fillAlpha=.1,A.highlightMaterial.fillColor=[1,0,0],A.selectedMaterial.edges=!0,A.selectedMaterial.edgeColor=[1,1,1],A.selectedMaterial.edgeAlpha=1,A.selectedMaterial.fill=!0,A.selectedMaterial.fillAlpha=.1,A.selectedMaterial.fillColor=[0,1,0],A.pointsMaterial.pointSize=1,A.pointsMaterial.roundPoints=!0,A.pointsMaterial.perspectivePoints=!0,A.pointsMaterial.minPerspectivePointSize=2,A.pointsMaterial.maxPerspectivePointSize=4,this.viewer.cameraControl.panRightClick=!1,this.viewer.cameraControl.followPointer=!0,this.viewer.cameraControl.doublePickFlyTo=!1,this.viewer.cameraControl.smartPivot=!0,this.viewer.cameraControl.keyboardDollyRate=100,this.viewer.cameraControl.mouseWheelDollyRate=100,this.viewer.cameraControl.dollyInertia=0,this.viewer.cameraControl.dollyMinSpeed=.04,this.viewer.cameraControl.dollyProximityThreshold=30;const e=document.createRange().createContextualFragment("
    ").firstChild;this._containerElement.appendChild(e),this.viewer.cameraControl.pivotElement=e,A.camera.perspective.near=.01,A.camera.perspective.far=3e3,A.camera.ortho.near=.01,A.camera.ortho.far=2e3;const t=A.sao;t.enabled=!0,t.numSamples=50,t.kernelRadius=200}_initCanvasContextMenus(){this._canvasContextMenu=new lp(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements,parentNode:this._containerElement}),this._objectContextMenu=new gp(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements,parentNode:this._containerElement});this.viewer.scene.canvas.canvas.addEventListener("contextmenu",(A=>{const e=function(A){const e=[];if(A){let t=A.target,i=0,s=0,n=0,o=0;for(;t.offsetParent;)i+=t.offsetLeft,s+=t.offsetTop,n+=t.scrollLeft,o+=t.scrollTop,t=t.offsetParent;e[0]=A.pageX+n-i,e[1]=A.pageY+o-s}else A=window.event,e[0]=A.x,e[1]=A.y;return e}(A),t=this.viewer.scene.pick({canvasPos:e});t&&t.entity.isObject?(this._canvasContextMenu.hide(),this._objectContextMenu.context={viewer:this.viewer,bimViewer:this,showObjectInExplorers:A=>{const e=this.getOpenTab();"objects"!==e&&"classes"!==e&&"storeys"!==e&&this.openTab("objects"),this.showObjectInExplorers(A)},entity:t.entity},this._objectContextMenu.show(A.pageX,A.pageY)):(this._objectContextMenu.hide(),this._canvasContextMenu.context={viewer:this.viewer,bimViewer:this},this._canvasContextMenu.show(A.pageX,A.pageY))}))}_initConfigs(){this.setConfigs({cameraNear:"0.05",cameraFar:"3000.0",smartPivot:!0,saoEnabled:!0,pbrEnabled:!1,scaleCanvasResolution:!1,saoBias:.5,saoIntensity:.15,saoNumSamples:40,saoKernelRadius:100,edgesEnabled:!0,xrayContext:!0,xrayPickable:!1,selectedGlowThrough:!0,highlightGlowThrough:!0,backgroundColor:[1,1,1],externalMetadata:!1,dtxEnabled:!1})}setConfigs(A){for(let e in A)if(A.hasOwnProperty(e)){const t=A[e];this.setConfig(e,t)}}setConfig(A,e){function t(A){return!0===A||"true"===A}try{switch(A){case"backgroundColor":const i=e;this.setBackgroundColor(i),this._configs[A]=i;break;case"cameraNear":const s=parseFloat(e);this.viewer.scene.camera.perspective.near=s,this.viewer.scene.camera.ortho.near=s,this._configs[A]=s;break;case"cameraFar":const n=parseFloat(e);this.viewer.scene.camera.perspective.far=n,this._configs[A]=n;break;case"smartPivot":this.viewer.cameraControl.smartPivot=this._configs[A]=t(e);break;case"saoEnabled":this._fastNavPlugin.saoEnabled=this._configs[A]=t(e);break;case"saoBias":this.viewer.scene.sao.bias=parseFloat(e);break;case"saoIntensity":this.viewer.scene.sao.intensity=parseFloat(e);break;case"saoKernelRadius":this.viewer.scene.sao.kernelRadius=this._configs[A]=parseFloat(e);break;case"saoNumSamples":this.viewer.scene.sao.numSamples=this._configs[A]=parseFloat(e);break;case"saoBlur":this.viewer.scene.sao.blur=this._configs[A]=t(e);break;case"edgesEnabled":this._fastNavPlugin.edgesEnabled=this._configs[A]=t(e);break;case"pbrEnabled":this._fastNavPlugin.pbrEnabled=this._configs[A]=t(e);break;case"scaleCanvasResolution":this._fastNavPlugin.scaleCanvasResolution=this._configs[A]=t(e);break;case"viewFitFOV":this.viewer.cameraFlight.fitFOV=this._configs[A]=parseFloat(e);break;case"viewFitDuration":this.viewer.cameraFlight.duration=this._configs[A]=parseFloat(e);break;case"perspectiveFOV":this.viewer.camera.perspective.fov=this._configs[A]=parseFloat(e);break;case"excludeUnclassifiedObjects":case"xrayPickable":case"externalMetadata":this._configs[A]=t(e);break;case"xrayContext":this._configs[A]=e;break;case"selectedGlowThrough":const o=this._configs[A]=t(e),r=this.viewer.scene.selectedMaterial;r.glowThrough=o,r.fillAlpha=o?.5:1,r.edgeAlpha=o?.5:1;break;case"highlightGlowThrough":const c=this._configs[A]=t(e),a=this.viewer.scene.highlightMaterial;a.glowThrough=c,a.fillAlpha=c?.5:1,a.edgeAlpha=c?.5:1;break;case"showSpaces":this._configs[A]=t(e),this._showSpacesMode.setActive(e);break;case"dtxEnabled":this._configs[A]=t(e),this.viewer.scene.dtxEnabled=e;break;case"objectColors":this._configs[A]=e,this._modelsExplorer.setObjectColors(e);break;default:this.warn("setConfig() - unsupported configuration: '"+A+"'")}}catch(e){this.error("setConfig() - failed to configure '"+A+"': "+e)}}getConfig(A){return this._configs[A]}getProjectsInfo(A,e){A?this.server.getProjects(A,(A=>{this.error("getProjectsInfo() - "+A),e&&e(A)})):this.error("getProjectsInfo() - Argument expected: 'done'")}getProjectInfo(A,e,t){A?e?this.server.getProject(A,e,(A=>{this.error("getProjectInfo() - "+A),t&&t(A)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getProjectInfo() - Argument expected: projectId")}getObjectInfo(A,e,t,i,s){A?e?t?i?this.server.getObjectInfo(A,e,t,i,(A=>{s&&s(A)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getObjectInfo() - Argument expected: objectId"):this.error("getObjectInfo() - Argument expected: modelId"):this.error("getObjectInfo() - Argument expected: projectId")}loadProject(A,e,t){A?this._modelsExplorer.loadProject(A,(()=>{e&&e()}),(A=>{this.error("loadProject() - "+A),t&&t(A)})):this.error("loadProject() - Argument expected: objectId")}unloadProject(){this._modelsExplorer.unloadProject(),this.openTab("models"),this.setControlsEnabled(!1)}getLoadedProjectId(){return this._modelsExplorer.getLoadedProjectId()}getModelIds(){return this._modelsExplorer.getModelIds()}loadModel(A,e,t){A?this._modelsExplorer.loadModel(A,(()=>{e&&e()}),(A=>{this.error("loadModel() - "+A),t&&t(A)})):this.error("loadModel() - Argument expected: modelId")}loadAllModels(A=function(){}){const e=this._modelsExplorer.getModelIds(),t=(A,i)=>{if(A>=e.length)i();else{const s=e[A];this._modelsExplorer.isModelLoaded(s)?t(A+1,i):this._modelsExplorer.loadModel(s,(()=>{t(A+1,i)}),(e=>{this.error("loadAllModels() - "+e),t(A+1,i)}))}};t(0,A)}getLoadedModelIds(){return this._modelsExplorer._getLoadedModelIds()}isModelLoaded(A){if(A)return this._modelsExplorer.isModelLoaded(A);this.error("unloadModel() - Argument expected: modelId")}unloadModel(A){A?this._modelsExplorer.unloadModel(A):this.error("unloadModel() - Argument expected: modelId")}unloadAllModels(){this._modelsExplorer.unloadAllModels()}editModel(A){this.fire("editModel",{modelId:A})}deleteModel(A){this.fire("deleteModel",{modelId:A})}addModel(){this.fire("addModel",{})}setBackgroundColor(A){this.viewer.scene.canvas.backgroundColor=A}setObjectColorSource(A){console.log("BIMViewer.setObjectColorSource() is now deprecated and no longer functional. By default, BIMViewer.getObjectColorSource() will now always return the (formerly) default value of `model`.")}getObjectColorSource(){return"model"}setViewerState(A,e=()=>{}){A.tabOpen&&this.openTab(A.tabOpen),A.expandObjectsTree&&this._objectsExplorer.expandTreeViewToDepth(A.expandObjectsTree),A.expandClassesTree&&this._classesExplorer.expandTreeViewToDepth(A.expandClassesTree),A.expandStoreysTree&&this._storeysExplorer.expandTreeViewToDepth(A.expandStoreysTree),A.setCamera&&this.setCamera(A.setCamera),this._parseSelectedStorey(A,(()=>{this._parseThreeDMode(A,(()=>{e()}))}))}_parseSelectedStorey(A,e){A.selectedStorey?(this.selectStorey(A.selectedStorey),e()):e()}_parseThreeDMode(A,e){const t=!1!==A.threeDActive;this.set3DEnabled(t,e)}showObjectInExplorers(A){A?(this._objectsExplorer.showNodeInTreeView(A),this._classesExplorer.showNodeInTreeView(A),this._storeysExplorer.showNodeInTreeView(A),this.fire("openExplorer",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}unShowObjectInExplorers(){this._objectsExplorer.unShowNodeInTreeView(),this._classesExplorer.unShowNodeInTreeView(),this._storeysExplorer.unShowNodeInTreeView()}showObjectProperties(A){A?(this._enablePropertiesInspector&&this._propertiesInspector.showObjectPropertySets(A),this.fire("openInspector",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}setObjectsVisible(A,e){this._withObjectsInSubtree(A,(A=>{A.visible=e}))}setAllObjectsVisible(A){A?this.viewer.scene.setObjectsVisible(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsVisible(this.viewer.scene.visibleObjectIds,!1)}setObjectsXRayed(A,e){this._withObjectsInSubtree(A,(A=>{A.xrayed=e}))}setAllObjectsXRayed(A){A?this.viewer.scene.setObjectsXRayed(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsXRayed(this.viewer.scene.xrayedObjectIds,!1)}setObjectsSelected(A,e){this._withObjectsInSubtree(A,(A=>{A.selected=e}))}setAllObjectsSelected(A){A?this.viewer.scene.setObjectsSelected(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsSelected(this.viewer.scene.selectedObjectIds,!1)}_withObjectsInSubtree(A,e){if(A)for(let t=0,i=A.length;t{const t=this.viewer.scene.objects[A.id];t&&e(t)}))}else this.error("Argument expected: objectIds")}flyToObject(A,e){if(!A)return void this.error("flyToObject() - Argument expected: objectId");const t=this.viewer,i=t.scene,s=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(A,(A=>{i.objects[A.id]&&s.push(A.id)})),0===s.length)return this.error("Object not found in viewer: '"+A+"'"),void(e&&e());i.setObjectsVisible(s,!0),i.setObjectsHighlighted(s,!0);const n=i.getAABB(s);t.cameraFlight.flyTo({aabb:n},(()=>{e&&e(),setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=g.getAABB3Center(n)}viewFitObjects(A,e){if(!A)return void this.error("flyToObject() - Argument expected: objectIds");const t=this.viewer,i=t.scene,s=[];for(var n=0,o=A.length;n{i.objects[A.id]&&s.push(A.id)}))}if(0===s.length)return void(e&&e());i.setObjectsVisible(s,!0),i.setObjectsHighlighted(s,!0);const r=i.getAABB(s);t.cameraFlight.flyTo({aabb:r},(()=>{e&&e(),setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=g.getAABB3Center(r)}viewFitAll(A){const e=this.viewer,t=e.scene.getAABB();e.cameraFlight.flyTo({aabb:t},(()=>{A&&A()})),e.cameraControl.pivotPos=g.getAABB3Center(t)}jumpToObject(A){if(!A)return void this.error("jumpToObject() - Argument expected: objectId");const e=this.viewer,t=e.scene,i=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(A,(A=>{t.objects[A.id]&&i.push(A.id)})),0===i.length)return void this.error("Object not found in viewer: '"+A+"'");t.setObjectsVisible(i,!0);const s=t.getAABB(i);e.cameraFlight.jumpTo({aabb:s}),e.cameraControl.pivotPos=g.getAABB3Center(s)}setCamera(A){const e=this.viewer.scene.camera;A.eye&&(e.eye=A.eye),A.look&&(e.look=A.look),A.up&&(e.up=A.up)}viewFitModels(A,e){if(!A)return void this.error("viewFitModels() - Argument expected: modelIds");const t=this.viewer,i=t.scene,s=g.AABB3();g.collapseAABB3(s);for(var n=0,o=A.length;n{e(),setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})):(t.cameraFlight.jumpTo({aabb:s}),setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)),t.cameraControl.pivotPos=g.getAABB3Center(s)}openTab(A){if(!A)return void this.error("openTab() - Argument expected: tabId");let e;switch(A){case"models":e="xeokit-modelsTab";break;case"objects":e="xeokit-objectsTab";break;case"classes":e="xeokit-classesTab";break;case"storeys":e="xeokit-storeysTab";break;case"properties":e="xeokit-propertiesTab";break;default:return void this.error("openTab() - tab not recognized: '"+A+"'")}this._openTab(this._explorerElement,e)}_openTab(A,e){const t="active";let i=A.querySelectorAll(".xeokit-tab"),s=A.querySelector("."+e);for(let A=0;A-1}const e="active";return A(this._explorerElement.querySelector(".xeokit-modelsTab"),e)?"models":A(this._explorerElement.querySelector(".xeokit-objectsTab"),e)?"objects":A(this._explorerElement.querySelector(".xeokit-classesTab"),e)?"classes":A(this._explorerElement.querySelector(".xeokit-storeysTab"),e)?"storeys":A(this._inspectorElement.querySelector(".xeokit-propertiesTab"),e)?"properties":"none"}set3DEnabled(A,e){this._threeDMode.setActive(A,e)}get3DEnabled(){return this._threeDMode.getActive()}setSpacesShown(A){this._showSpacesMode.setActive(A)}getSpacesShown(){return this._showSpacesMode.getActive()}setOrthoEnabled(A,e){this._orthoMode.setActive(A,e)}getOrthoEnabled(){return this._orthoMode.getActive()}selectStorey(A,e){const t=this.viewer.metaScene.metaObjects[A];t?"IfcBuildingStorey"===t.type?this._storeysExplorer.selectStorey(A,e):this.error("selectStorey() - Object is not an IfcBuildingStorey: '"+A+"'"):this.error("selectStorey() - Object is not found: '"+A+"'")}saveBCFViewpoint(A){return this._bcfViewpointsPlugin.getViewpoint(A)}loadBCFViewpoint(A,e){A?(this._orthoMode.setActive("ortho"===this.viewer.camera.projection),this._bcfViewpointsPlugin.setViewpoint(A,e)):this.error("loadBCFViewpoint() - Argument expected: bcfViewpoint")}resetView(){this._resetAction.reset()}setControlsEnabled(A){this._objectsExplorer.setEnabled(A),this._classesExplorer.setEnabled(A),this._storeysExplorer.setEnabled(A),this._resetAction.setEnabled(A),this._fitAction.setEnabled(A),this._threeDMode.setEnabled(A),this._orthoMode.setEnabled(A),this._firstPersonMode.setEnabled(A),this._queryTool.setEnabled(A),this._hideTool.setEnabled(A),this._selectionTool.setEnabled(A),this._marqueeSelectionTool.setEnabled(A),this._showSpacesMode.setEnabled(A),this._enableMeasurements&&(this._measureDistanceTool.setEnabled(A),this._measureAngleTool.setEnabled(A)),this._sectionTool.setEnabled(A),this._enablePropertiesInspector&&this._propertiesInspector.setEnabled(A)}setKeyboardEnabled(A){this.viewer.scene.input.keyboardEnabled=A}getKeyboardEnabled(){return this.viewer.scene.input.keyboardEnabled}clearSections(){this._sectionTool.clear()}disableSections(){this._sectionTool.disableSections()}enableSections(){this._sectionTool.enableSections()}flipSections(){this._sectionTool.flipSections()}hideSectionEditControl(){this._sectionTool.hideControl()}getNumSections(){return this._sectionTool.getNumSections()}getEnableMeasurements(){return this._enableMeasurements}clearMeasurements(){this._enableMeasurements&&(this._measureDistanceTool.clear(),this._measureAngleTool.clear())}getNumMeasurements(){return this._measureDistanceTool.getNumMeasurements()+this._measureAngleTool.getNumMeasurements()}setMeasurementsAxisVisible(A){this._enableMeasurements&&this._measureDistanceTool.setMeasurementsAxisVisible(A)}getMeasurementsAxisVisible(){return!!this._enableMeasurements&&this._measureDistanceTool.getMeasurementsAxisVisible()}setMeasurementsSnappingEnabled(A){this._enableMeasurements&&this._measureDistanceTool.setSnappingEnabled(A)}getMeasurementsSnappingEnabled(){return!!this._enableMeasurements&&this._measureDistanceTool.getSnappingEnabled()}destroy(){this.viewer.destroy(),this._bcfViewpointsPlugin.destroy(),this._canvasContextMenu.destroy(),this._objectContextMenu.destroy()}}var Ip="data:font/woff2;base64,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",fp="data:font/woff2;base64,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",Yp="data:font/woff2;base64,d09GMgABAAAAAc+cAAoAAAADHqUAAc9QAwcFAAAAAAAAAAAAAAAAAAAAAAAAAAAAATYCJAQgBmADkQAApnbKi+oUy5EEBYgdByAlUo9xRfVSwH6YHgAAqv08KCN60mrxAKiqquo1Ibh71Q4A4adf/Oo3v/vDn/7yt3/86z//+8vA2B0Qy3Zczzf8fz+Wnnuzm90wl8jV0i+zrENVIX9hPI6PkAWSf3zqKwFdiNq+JdqywPWfq07FWCouVM23IuZ7yFSMJLMMVQhA/vqcnBfJAa5kbj9eoU0qwP/zOc1zFXCV2gppoiEuoEIu8ArRLi6BWGWE1TC/L38N//TOrOqVqlSCKtmyoExtkGypm11WW0o75Ek6A9hD2eH2AQ5liX0Z4N3sEfqA2Efwu8B9jJkl++dpXz+759zrZfbE672qbn/1rHqkZ3rsz8wXM8w+YmEwDRCIAeEjIWLEgRAyWEISkrBsSHajP7KWrGSdWPf/vdPq695CFUmyVFWyx05sK7HiNGzcjq3ZzUwvImUWeudkHzHkAdIXADg+hDPt581IGrElttcgS1pLy7Ys29oNYSGlhTSApculx5AjTI94/6UfsIeQz3SA6QcC7//itO91ZVsmyXYMMYUNCbcO1EkBB2k7dPqAsozdLiF2CeZ9JOjY8/wq9V+dc4EecON0T/dM99Du9pumJWFkyUAySkaZICRjwIkCiHaY7OT//QTsH4TR/+HSqn5VqUpSqVQCbqnV6na3TG273egkTmwPBnDw7N3JJAPkLKJnIbtHzL53mb0cw8wBsc3DByxd76MVZG+67W3FU0RbD+JhbvFwLOIV8IpJoBYqqsFbz3B1CeYVJ3AGAsihaSrOxAnDHwRP31r5e+4CwBWi3mOWAbYLvctd86brUPnQ89FRJi5CJgrI/763ynJfqs0AzJAcqZMyKOS6C6PkijZbipW0fZ9z31/c9/434/vusfjuEYvvEbn4HpmL75G58Mis7x6B4o/ILDAyq7otC6huVqExtELLrAJACFJ/zyyz9qga8T2zzOhRReGRNcIToMhC9SILwyygzQhlNKA1xNCgRlSjR4FC2l7suNtxnxCLAjB6s+Riz92am5UQyh/D8eH246IWgiA8cNcWsokqY5BSiP5JMBmz+r1vzYqIiIFMJlmVcNqeuGsAmxzYkuw3kaXV7NPe/SkBAoSAsfWMRjYZWvat3Wdj960YhMpoiA1R+++VX/plUxzbcZUlAcPAXQ6ChlqVT+ndzpsd+xZp8f8AsPr94b0X376HWIz3fqIpoI6lvkFyjKbiPfhBLMa0n/QUf/i7vWH0nDdULrC9g5IDnI9f0Q89oQo6q1vAifPHWmSIx2CqDUOeo05+GHHoxpVzFDZG2LGiKU5rmSc6rJfABlAGMj0qoESzMijHfxU6lUDEf6VYV4r/yvH3XBN/4ZhkkNHcH3b+Xwm8zlCO1XGNnCsyQ8aJNvSVCy/kfPzdxDZrWzT0bcixbmj1GOpxiscKw4QKVafrbNg5Fu1LSvzloc5W1ewnGGqG1rHWtRo6rT817OVr5ViTiSPGQ//tXPy/iRUnthg6eAyf2Jj0GpvLnf1rI87YJo5JmaxRhfr95AHSw/5gvkbOyHqVGITNPEOPMkYbzTTTl2Ta+NyXuYm+SmUqTnQox78xtDMeUcP4OqO71ahka6pMhZfxbjeZvsX7yMQqetDPee/qlo2ufr7coT/zOoJmqF8H21tJ1FQYl87Cbmcwp8YL/SNYCFv5UhMhVyfTpULdiTaDDYNzNhhxSX7o0djE2OmeOXQT7So5lXOi5hzHdRgqxpPoNRjMcIq169KMHvHtDWBoUkKKFfwksSybN0ElF5Kqypwi5Ezc9TPf0bqhe6yCXRffoMSwiVVDi07R3dqgYgdsAlYCffCl2JW0qsiv1ZxomEe5Hus2Bmu8XsPE2vzsYA4hNm41zq4j14gL1ADjh1b8da2CTw5rJlbwYvwluYL4650xWE/0Yzy1X8Z9sT/J9PrZTfK6L2PpZF7o3xgtJ9pxKz68gEqs+SJ1PdHdyozO40IMKbNBGauuSJ9u6Ac/6kl7UDNYLOLbq/AaOaXGaVo1DA/xbo5LBflnRU8i8JTVDH2YtDP9PU6xrpe+20k5Y7AHe8pT12uFqvLhiRqg3niHKfBbcuB5Odbhy2/Oebs5N2JBYS5ZCqcZ/aNTzfpXwHVoHrmjpvHe2j+HCUnPnQu7xFtiQhL739ALsY5zfpTxoMMm0umjv2wb8N/dcQ4c6IV4tpM4q+lIvJBUdskL7nyUfXvqe+zP0jkh+nvT0LqGemHmb+rbotOU0bS4c6Z8ZPKpM+bbTLkR0ajTC2mcXoipY8gnm2ZcYnjVCeAeR/Tz2oX8YpfnnuS5SzWui1kH1OMjs2ay/moSjCUmONZP5DDW5STWCbaUAdtJIqe3zlpX7kwA4PgHLgCIBwAxAJDtOo01IOZJJcsGMZDg3v8/3PFcYQCHzwHgAh9khuyQF0pDa+gEnaELdIVu0B16QE/oBb2hD/SFftAfBsBAGASDYQgMhWEwHEbASBgFo3MWztkkZ9OczXK2yLnUclkpLMPKYNWyGlstrCnWjLh/vgd+r7+j/2VABMoEagdWBlYHNgQLBwcG9wWvy0TSI/PKgrK8rCTbyi5ykBwrp8glcr3cHOoR6hWaFJoTWhRaHXoaisMUmAvzYAksh82wNXbHXtgb++MgHIxDcTxOxCk4F5fgClyN63AXHsdzeAef4yf8jjb+ohiKT0koNRWiIlSSKlBdak+dqA/1p4E0nibRLFpES2gpraTVtI120x7aR0foBF2jV/SOLG7Lw3gcmzyVZ/B8Xs6reD1v4UN8li/wFb7G1/kG3+EH/Ibfc4C/8nf+wcw/+Z/6TyVWaVRmlVVlV4VVPdVYtVCt1FMVVFL9tFPa+ezCdgm7kr3IXmdvtnfYh+yj9jn7mn3Hvm+jre1fYRFOHq4YrhxeG74VvhN+owvrdnqMnqpn6rl6oV6pD+rD+oy+ph/rZzpO+yPlI5Uj6yLbIrcijyJxkY/RKABkhqyQBwpBOegEnaELdIVucf5b08waYU2/lELBgcE9wWsyoUwr88r8sqz00l97jJwkF8v1ctOtE3/TlaFHt5et0wN7Yx8ciINxCI5CE6fgTPpytwrX4QY8gmfwFj7AD/gNQ/iLnBRLiSkpFaLCVJLKUB1qTx2pC/WjgTSWTJpCi2gxLaVltJq20k7aQ3vpAJ2gK/SU3pLFbbknj+QJPJln8GxeyCt5LW/kbXyEL/BlvsbX+Qbf4gf8iN9zHEv+zj+Y2eZ/yqlcKplyq6wqu8qh6tHf9QJKqg92gltvHiqk2+nRf/0Fernerw/r039b3mt/pFik4r9cRq3o++jr6PPoU/jhGs+UO1OGTGkzpcr4JaM/Y1zGSxkvZKiTfnT6hOm+phuarmK6VOn+95zwHPcc9mQzpLHbWGI0MqobJY0SRl4jtyGM+O4/bnZ/d1vuZ+4nAABCi+/ik/CLvWKTGHT3q/YGog6AKAAgsgCIzCITgMgoPMIQaUVKkUQkFAlErHAl+VcPpb/Tz+mH9Hn6JH1Mej29nF5Iz5NuTTem69PF6aR0YjohHZ+OSweng9KBpD1Je5C2TVuTtkpbps3S2mnZtHRaKj4fH4kPxQfj/fHeeHe8K94Zb4+3xVvjLfGmeEO8nnhdvDZeFa+Ml8fL4qXxEuIF8Xzi6fG0eHI8KZ5IPD7uEneI28Stm1XzI5ofNl8EaK7SXLK5aHPB5hzN2ZpTmmObI5rDGr812o2fGp80Pmrc1rilsVZjamNKY2j9mfqF9UPr+9T3rO9W36W+fX2t+pr1lepL1uetz12fWZ9R+6j2Ye2w2v61dWqr1havLSggYN/U4acf/zPLbeG+cE+4IlwWrvPyOsIGYR2ONKwWFjrvX4BwCuGAO9+4fezNMKTdt7AUr/3i6MMcer4JJ/m2c/tu8zMjm+3X8BZ96vQ/Yfexj91sp717BD301EtvfQw0yGBDDDXMcCOMNMpoY4w1zngTTDTJZFNMNc10M8w0i1nNZnZzmNPhTna2a30ZmmFwGB4mhQc0obGZ3rWMid9PDJiMqQ/JdWbBrOiNubAwTxcXXgybYCC23g4NwzaHhmPbZAQeO3E7jMT27dAo7HBoNHY8NAY7HRqLnQ+Nwy6HxmPXQxOw26GJ2P3QJOxxaDL2PDQFex2air11WnzZDk3HvodmYL9DM7H/oVlwwKFZceCh2XDQodlx8KE5cMgvmZPpcy/Qm+nrLjCE6evh2q7fvuFXyuLpGzbs9vy2QB9afReYi9bgBeamNWqBeWiNW2BeWisvMB+tdSY0P631aW2IBWgdSOu4mO/ROpHWSViRr/5vC6xMx1sLrELnUgusSudWC6xG58cLrE5X/wXWoGuRBdaka5UF1qLr4gXWpuvSBdah66oJrEv3XHTPjfXo3osmtAHdt9F9Bzak+wW6X8TpPqoGVRObUY2gGo0tqGZtI2xDNTvVnJjtqRalWhybPdVSVEtjMK422xfYlWrbBXaj2nuE3akOpToMdz3VMVTH4a2nOpfqPEzF1ZX7CPtTXUN1LY7i9o5tgT60dx6hN+2jaR+Dq7h9WlvgENrn7NOhtC+mfSkOo/0O7fdxJO2vaIFjyYMXOI48Y4Eh5Fm+4Vdj47xAm8Dx5EXJi+EE8vq0QE/yJgucRN5hgvAAeUfyzjiZvAvhevJdyXvgNPJe5L1xFnmfdoDOJu9L3g/nkA8mH4HzyEeRj8Yl5ONoApeRTyafjsvJ59EC15AvmsC15EvIl+I68hX0BdgN5KvIt+BG8n3kB3EP+THyE3iA/Ar5NTxMfov8IR4jf03+Fs+RfyT/hBfJbfJveJn8N/lvDKX0oPTEm5R+lBrepkRKwruUAZRheJ8yF2UuHE6ZmzLP2hSXBds+fUFZhLIEvqSsSlkNXZQt6ABVlK0oW+NryraUXfEtZXfKHiiUvajCr5TDKEf8+vd+lKMox+BPynGUU/AP5ZxWpQflXMp5foIal/PbBHpRLqBcTOhFuZT2GSZRrqfcQOhHuZlyK6FOuY32GZqU2yl3ECLlLsp9hP6Uh+gAwxDKc5QXCEMp71M+IYygfE75gpAPR8OqGbRAY8GOHaFxYCeBnW/TBHYR2OWg7cGuBLvqSWUPuxbsetAOYDdu16N2BrsF7A7QLmB3gT0A2hPsIbCHQXuDPQb2BGhfsKfAngUdAPY82NugQ8DeBfsMdDzYl2Bfgk4C+wbsW9DJYN9DC3Qq2A8LmA724wQ6DexnsF9Bp4P9SRPoLLC/waaAzgabTvvUZWAzweaALgebB7YEdDXYMlqgG8GWL+AZMBuhm8BysNVPcbFtaFdJCbgAXAvoDnAlcBXQPeA6wSWgh8ENAzcO9BS4CbRAL4ObNIG6wU0Gl4JeAXcALdAH4A5doA/BHbVAH4GrLdDH4P6bQJ+AmwNuLuhTcPMIOiafD2416HPI2yCPQX9BvnVbQBfk6QK6IR9cQCfkey6gGfK7F2gK5I8v0FTIn1mgaZC/uEDTIX97gWZA/t4CzYT88wWaBfn3CzQb8l8XaA7kfyzQXMhXLtA8yP0CzYd8zQItgEb7Ai2ERtcCLYLG7gu0GBp7LdASaDw2gZZC4ydo/AxaBo1faYFWQGPKBFoJfnvwKWgV+ONoAjnwl4C/FJSDv54WyIO/aYEK8LcdoFaDvxP8XaA14B8A/xBoHfg3wL8F2gj+HZogCMB/Av5TCJrAf08Lghbw/ywIWsH/P0FQAj8d/EwINgE/m/YZbApFPxS7QlCGYnco9oKgB4rHaUEwHIrnFwQjoPh5QTASir8XBKOgmLkgGA3Fgr9MMAa5t78ihSZaYOOXukpf0kqFmBEMQLVaqm6WdiZ9E/o2S0vVZLOkMy1VJ/RNSNLqpMFqmg5Wx6U9SU/SmbaWWkvj0smbTd6sc496vV7f7J133qnXrqrVarW+d955p1bfME+VKNbYOKpIlSjeMCOOKtopy7Jsg9spy77Mskzl7Mss64ijilSJ4g0nxlFFqkSxngQI6N44g9P1JEMYD939m6Xp5AnjS61DOtM46enrrQ4OdDYNVgc3m7xZa6k16UlODMMoCsMwjKIwHJuU29rKSVJuaysnuioKwzCMNhK1h5umaTqAllPwfN8D8HzfA537RqvPwAK+H309ejNCXiiVChlTmSpUXuQylHfeg0MZBj7T41jRe1BnepqkSVEoeg9GaTLaL/IsU9SXF7mUrGC9E/yywxhYx7Zm2cJhDJtjk5uXgotCNzl/3YRRRw+C4Dg4hrlm2eL0JYcxuKKL7Oxboes7cslhBmbqzmez2exnfbOzVgvYhwW6ipA3lEqFQaCG2UCFSqpQhkxnepqqhOlRyUIp1RA30j8N01mgfKbHUZqMRmoQD1SsBmqgkvRHV3g7lWGRRzdJ0pTntojvV6XIi5HaL/Js7pgm1mAgmIE123L2Bq0maATbVaVBKKt+6HBddys1vzqzry0AvFo94JRQndvCDYKyatQw1jSrpjSAUEo/FIJRz6v50jQdWJim0wNDsy1HMIYNJni5RHVW4kANgzv1RmfN8yxD6zqmaZpOrDFm6pxzQSg1dKrptl0pU52VbABqGNypNzpNz7MMLXZMEyGkIbS6DjN4CQUoQnsIQT5Saj9N4oiB0gNfhtmwAJakCdNZKMMiLyBJE6bf2Ph207SEsJaL8xNhch3anU4b3s5AcGfjLZYQlmkuF183wsTseZWK13s7Y4W2G0awWq5O4CrM0a0xjwuVEffXGYv8QHRjpvLhmLwoVKpaLFXsJl44pnnFFpwxTeNverOtabrBhX0lUM2nee9f7k1c0xjbD8xN03nxItM0bgtuHF5iXHBb0/SLL/i/8cKFry9jlz58Ntc0dvFFxzQRoPLqP+Hn4BpSCEE1yQcqVhHT/bycqaC27D1SmRoW+Wg/TeJYjQAhyF7TtcO1O/cOV7qkobYkJzCpZZ1thLxqmoUylMFbdZIm6ajQmVI6C2osMX7xJE1ShHd2Dg93dvD533C+0WgANBobTUAs0ezzMVNoNDZm3GgNhOJZieCH0QZCXpImrGoh3+5XKNcbpWz+e7tzKLvlqY01ZgjOdyfzjafTeU8ygZlnmtbEEJzbWGPt5ac8QX+shylCsPqCDzYMEPIixhRO2vtF4Yvtem3F2oL+DUmapB+Mqi3UjmpvnTm3voFh46Vf9PneKxSYzPldCSBlBNNqOxUu0NoEvLF+7szWi3ZcwPPKv1ONIinBD084gTk6RMjbL5TKs0xVd9rjdValW2mqcDsilFKFMlN5YdUZsarsM0am6fxnYLLSs+E4SQHSZHxXp94oYUoI55wzLNbuavs+gO+3v5Y5972OacLMuvpB6R2QJuNxkoJbXiOcc0YJ4aQmAtH9eEHpHabpIASrL65OYAY/gA4Q8vJUqarwzdCUjmCr6gkRv2fx25QQLjjXZ8y03BPc3ta5rTPBzzwObxKc65QQvvzPcql0xLLDEch3/zXyqZ5H99AV8m7x6i1Rp6vXFsqWfjh4k0P/Cve2qzVBfx6xa/eO+PaSZeIuPF/FuRde+fbzyqW6+ecZwarNSz+31r/tE5jA96MuOtPuypTO/MAPVCbmkzRJC+nnJ5DLtfzJFXk2lKEMg380ASxbcPNDfZyu78vm1uR8VYhQ1moyFOLqieFxW3DTBLB+ausAAHDWbriwvUNv+5d6KLErrG/8VY+7rD4DhzBHLdze2o20p46yh8jfOqCKZRgnBueca5r+h38KuXGlcnk545qmM8E5HCGLaxDzoj9Ch+grEIIEXxo/6SErloJQZsEN7KdJmhcsi7OM0eR+khfZas2zNxgNlFILPJlMmj2TMIBeP+/k/R5AXHUc6PXzSd7vgeNUY5iVy+VGpQJQqTQmF0vlTud+0CyMcpdePx/1KvXGnYt1GvVKbzSDSqUh9202KhWYfDfPfvpZH/TV0SmEPF9ioJMNizyPmEEdpgfSOXFelPDYD2AjD36nnIT98AM3bG2i44Oo9T5kcmFbAMYEUMiPzOnO9oVaPoaQYvOnLADT5MK+jYe+8IuWcBWuegj75TJVlHlpP3vax2cP7x2/M/886JwQyjjny4UL4MKEc87gKc45e+YZxjnnhNC55XnWnBJiu1djVEYT+DmYoABtRW2nmEjUjSz33g1usYNY4QAgzrqcp8UwwUmi5bZFAjCqtYRZGb2nt8QyVRSntI8K2ueXJ2uUEA5s+bkivgwmvz7LxWNjVF6dwADm6Ay6BY8Z/eNARYGBWEqcivMRInNUmEi728vlR+moa3aaWymwgaP2ZrNU7utkCNuPpEnQmXtJ5DXrA6irk0EYjUqzGWldWqrwjAXIlj0xQqsFRrBAR+hRhIBFrIYylGgKznxbSh5uWAeZBzsz4tmZQYAhj5CkSSoTnrkR3ZPnGOf5Pfm54M0H4ygCiKLxwc3bxzYaGzvNXjYMD291DNHAb4jz/J4JFT1hhvP8nnvyPIAPHg3b2mE7vts9IA58jDRM0zmCqze8J8/xgrD2IYTwarn6zGfSRetMZ4HONMVUNy8KlWkVKIynlSrNi7O4UPIzZhAY71inhArOud7+4zaN/zSy/o6ta9eu3XwzvOoBeMuTKedcJ4SK228XlBCdcz6FzvJ/f/qn4+mGNtpD5xDyWiYOFLsbiKPoVQ+XcRaP6MeQ4BqNAmD/LO/3wHWba/Wr04UJhIen0+ls3z6YQ6XSmM8TP9C9fh6vrbnRIO/3YDELhdR1fvU5bnHXOdpGCJJYcUE7xDoXMHvy+GLqgcMt6swZtbenzpxRlhCmZR1evny4XXKc0vbh5cuHlmUKYYHa21OTidrb42hjbrhh5+Dg4GD7wgWLC0sGCS5nM5ijRtwZGJusHIM153OzOItdRSAUVUPl+WG21gJorWXD889H5tPpdMqKLdQX9pC9j61UGjBZLoBbsJZYeKpR2w1wqq2lBE1mT0atOwmC4TxtoIUYE7bPVrejvNx553R8hjc0DzzaVs7uFjcNOzPL/xctYI7GRo2UY8/CDZX88OgCFFpK0hMd0j29tcXfW/C3dc13HDDPnXuonZ7ggbMWgGlxYW2fhyl96kAvPlUZj+Q48oGDMW62G8KFKYRlAZjrUFc3MoM5GiLUD0ZBJQ3Q3nI3pexW5JldwKMzVuhpDdBisagv05Bu5iO55fr2Rb/ZrtBye6apCth5v1i5LSjU2wiqswBKa8ygrbYv0dJkfrDfdjYRAo1ecpUl9DYjvNGW6mrwI9BxTLPm5cgiLI3Yjlbi0ggEIz+RVY6Zn/IZuFAC3+L+TLFqH+i924sI/EIKKEzL4sL6rt0yjrnhOYML28aa8epL8PWBomPN9359n9by9XdsjH784sLWsGFwYf/Fa/6U63DZqOVXbHc9u06UJqM6WJ04ptnEPDYMhsXlPC9gzcHYsD+k3htS+h+R63bc4r5BHKWpSr9AXsjQ+eEfdsIQ+nues1zXeq6kF4UQvo9WXn+9Qg3ZoU6C8E8d50+X/5wBL41xmf8UzOCHUO9rGZTbpmjns6Vw3rUgKAE7zxE/KC0/t30CfK9eXv4hrFfjibPQ0Etwdvmx8y/PQiMO64ILh6MeTVeAbRgWjPhcqTNRxFDAxxuSJ1v9fhgEYb+/tfXCT2CttT86fXq031qD9w3TIOwnm5vJ/eTnRuZns6zdarWz7OxDQbt9W3PURrs4QYwY8KAeNpJZnMl2G0CFsUnELV6dTKfTnm2nQGHCkRmGzZPF4HCLekp+F35Pj6UThAqf+H4yL9QtnYJvT2c6o8HyiNSZVCHzyaQTvLNzuB3fbADYlhDmTe1MPARqo8N/jKBLeDTY3+8uwubF/cu2EKYBYN+/WdhAZ/ntCPGAfp3LZw+s3RvWqfJwDD+wLXQabQbGbOCCDGUuRezxx18zgKs1bNy3XqsCXt84e2WxIZIhQCgjMAoXgTX8xoE8yTvcXrx7dmMdn8whlFEkQ/A98h+DQ/gx9PW5pK/8mw9UmC2mSmiuJGkScxVy4UE32Q/UHmAzS1Klzn4Rw2aWpIViKmFf0SIaJWLtFIZaoy6rjtCdcXHJq9Z8SjAIe+S9YgtmAvieLw469/n8udNxxsUlOwi5YLpGbFtYvm9RetCBN4iGb1pmxQFmWqXyWqs3qYZcMxjDAJTbQuiUYA10pmPD+eindCIlB0qOfGOC6ZqmEdxuGyWEizvHmGQgclMUEgoiKBfNsUdaysHsSvEc5U1PuOBbFjBnCA6tdhzT5PI8XFECIPyGJ9rB0CWjOfTk3PAvk6vwAz6I5ip92VPe3ExeUzpLUm0kXi2fc65ffYZyzgUlZG4GgTGnhAr4HkqoWP4JHAhKKOWcL2cegAczzjk9TwdfgB+IMMXHHcPz3RKvaUpn0XmrA2Fz+tT9hpTG/U+14rwpJdfMULK77zbC0LxGKBXwvYRSsfwE9EKAcPkpSASlhHJbLGcBDkAu/ynAAcyEzalnm1+tPgvfAN/vWw84VS7dur8upb4Zgq/+nYY/9QTCfOEFUwjLBjA++MFgg3S4Easf/CA8HkUu+gM/YAMYphD2T/5UuGj94A9az23rp37SQ82uwg+gvsJqKpWXIUiPMcf8jhgbgnNLw8Z39qNJv9PAmsW5MJ5/Hr7J0rBhCM4/+q0IP/JbP8q5MAysWb/1W/rk7fvC6gSegzlK/K+dwTXeBj7YholvGnz5L1889F2XC980OARfdF/XXK+8/GWI7LpeCW43xCbCiK/+EK7DbyENvQ8hb6AUNX46oRwEzDdNiv3YE+TyAtKXfhZmwyxz9tMkTdiMl9yDc1Z2//6S7nXWonExOA6PZgOQcHnMmnZfXYWpKRzhE+6WvZoUAHEQ6DWJAQBWvjKBan2vXjescqmyzYxm4+xOvaFBuZQxywbbdhwTwCJEM4wkYICBaCBsUXZNAhg63aI4fOTihRIzTAKTHd+tsM0OtMPQb8QhhiCKIrABY4wBwAYcyrJBCa7t7CR90JrNtlbxMNgWBZ0yw8BgEYxbLa9uB76JMZi2qNWScqnEDoui0wV8cOqBURwbgEzUWZ3gdZgjjjzUQzejY/QUmqFr6NsQivXiuG/Qsjgbqbjob61YBREsV8hRMMpSULM2vrUdSn2/tbzIRzFUxYHaQ9YrZCrTWDEVK0sgn3a7XVd1j0yscK7MtEMx7mNvjvZrlPR9HccOZWsNg+P463fddddd3w5UZ47DdAp/JiN9rbW1tXPsrAOsO8eP72z/yMHBQdFptaJbKaUtWm12mrPl/wJf/i/wd00mAJVKXjx+/fr164+fPQtwenzlPsMwygwaeK0lQ9tpB44Dyy+8dpNDCewSWtp9+OGHL53rdjm/F2/twI/Azs5tD0tLitB1Xffhh/92ORkfPLW1nyV9vLwfvnWovuarsn0w6/V6HSGEMMKrE/gdmKMmuhGhfl7wFXhHRE5f7Kv9VsoKuhKn6YweZ/PGFHlWqELl2VBKJVXhuzN8cBfw+XPHx+fOY3z+3PFGQsnakGDwAIIbx+NxABohp08TokEw1gCTm6tACa7eTDBol0e3XB6PMR6PL79hPMYOkIQTDLV2u/qt29vbl4iG8cYGxhq5tI0pwYeEHGJCMUIIYY5eNUceGiNUsIIF68WiO0gVlFmZjVpZ1+7O8f5o+XtBp9PpAETdDG666eJFlfV7fZjjfm97q2obps39zrrrVuq1MtySdSNYO3PmDNw8jCKQ2zsHp4fD0/BMEPSTYb3ZajSCeokZVqXiQxQNNTW4YaIGmr6vXMACFugCQp5MJ58waT62KNRIMRWoQo1ULuVkK6u/I1WhmkFMyeeBDJRUI5Wq4H+Pjo4IOaZkSsjRX96J6TEF/ejOv/zLO490oMcU3/mX8JW7u7uEnML4FCG7j7z9P3Yf1fEpTK9Q2Nt9+9t394BeofgU1h/d/Y+3P4IQ0hBa+QEbKqiGcoT6AtrE+Mr9NEn7rut2latxQRtP6g1Oj8x/pArYsoXvCCH8QDi6bi8/DItbRqMRlNcbYcBtmwdhvewIfuqXdSH8UDiOE3Db1v9lOYHF/xO8Um04IpTNZiiFoJTfya8+Fb/icTh6GH0tegZ9D/pDhAqfD+gDqvrWEhbFURzFSeN35CDwl7QF+fiTimEG+OSvTTtGnKeuv2McETw/KgK7cHocvRsrFaWRyqYdUF3dzZ42navpsR5HcZRGaTJKRvuj/WK/yLM8G2ZDz3Z0GPjMZ79fBa3erK/V/aBhO9War2kapnpQrTq2YRAKi28GJcYevRf7QDc215+e9hrFGIAQnepU0wAANE0jmk6/BSqVxnJhXSmQ+Q/Ew83UqdfrdSdt1gHqKR/Af3XbLYeX3Vbb4eVLeWpVfXi9d/Dz/KtVg96dxu5e6NXWLhtrlOo6IQAYU0oJ0TQNMHkofwM5vZflJ/9qNlO5tSXTJsKovXod/gpeRFW0z1Q25UuPkKf9w8nKrGQru0TGoW4eL3Pi2HMAzP33WwCuF8f2Gxn7m/vvv/9+A+B4cexcYeyNdhz7DoAFT/mIrh0G3mtf7wWh7SL6PyPVW17/+te/1gtC20X0f1rKn/URXTsMPCIIP/oG/Bp8nqRkn1xL7iLvIz9ACCzKUV7kRVmUQVVXRVnwBkibbJRPy+lUpVm6eH0jr4JqlE+ljHSQm21Zznpnd1WvaqlVXXWVTn5UFstpVc90PWxVr5YFW1nL0kRWp+pk9apUrV9VwlsY83wEy5LfA0oZSyl4jHK/gwhgh0Uv4dvUIAUhpBQcYBepu2e7tq0CaQwOpDQ6U2ksk6S7S1Pf8xDDsD+JYgs8LzCcscS2LKSNbBYb41vGTxmHh0C5UqFx4W4KAMaow5v6dLW6dGlVs5FWfQAHcDfPHURKjdja3Nvb2KAL+BUWMsZoL5aimR0wrjulFIP+gP65a2nPa4/TlNo2boHWIIVILGU76aTT4UARjlEGaDT/ZNxglm0oI8QQQgAP4NVEXDO3x4iskympySlygZAJUVm/TJbJvFrSFstvOGW2elt5m7xtuQxfff3iMQ/3X//617/++1//+te//gf+FZL2fP3rX//63738xKVLly4d/rfLP3v5STufnMcb0zr6Mvxn+BzhpCakno9VroTDvGNQ0WgOmUZda6rkaFBc18Nq2YJvYr8/Xxw858Rxa1Dv3UCbrWaDfpZrZR8bDACGw+XZ8+eLzdOnZxWD43/mnz1Wd7v04OCe6XjCgLMsXXTCyG3t7F6op7tpakz2nK5UjcbpBSGEiKP/S07jFThDtsmt5BHyKvJ28oOE1JUZTLvj8sOe1XyV1VURdonM1PSLEqOaWeV2DiAWWeKGZbUopcgFSh2dz7JYskY66vFsyf9gFbrlV3Usa1nLvCqrvMouaXhpUj/3GAu8JPF9KYT0/SQLet31frPppqnbbPY32z1AGHmtUZDYkWOMmzRdz3WThgepF1m+UcpoL7bsB4PsdKNs+ADgAfi+ccvSMRr0d8fjMUxai27jpv+yvr6e2MZ2oiSObRuCfgc8vz2dQtv3AJrdmWUxt+kEWjlC2VYc2U4a3tR077FACm1JqT3rff6vXe8DgJ+m/ml9RhvHMdH9999//6sOPkeIIeRoHnFf8BC8Hz4Cn4HPwdfh36LBBEeETMqsLJaSrltWi2oRNNflZTWqiu1Qvt0mb1/cUdpcsmayGpVlA3VkJfLLBFdkNcq3Fyayiishf25WTZMky6rpH/nJprmsRu+dWE6Ti5iyrIqlnKbuZFWaBPqVrIoTH362cxoiX2H97bb69rg9TbJXZ5bN5p3BBHU1y6ZVVqXzWV1Xq3lWqdqN2fxj4bKuFvNV3Sirb7eVt8+WFvP6pUuDclyWI7ljlotSFhJBZjWNKMp5NVsuq4VUUATFwvOZzishzS+9q7qq0ixfXT+v0qysJapOPaevqMtFvZpXKlFPUWa1rLPLhBR5NlxbKqclokcNCheAi43TrML6siqVeTVKkFUnT4c8l0dlcYp/rw//mqYpRBSANcBDQNYEAIOIrIUogFLWRARGWUaRM0YTSjUwRgNKXWQMXUoDyhhoAMSEMsaRZowyQGwySkEgNjkiGgBoMgT0oMEAaAQppenZf028+XKkvyWIAN9fEyB+/bW32DwSxr7fYWqyvlYo4EwMlPohSrdhyowRgJSikuYmpSW4LoDrwl/hyr+fCQ7ePRgMBCIVraVhNmfSBXQd/AgAnKZGAyht3hBwJpUFnm0BaGMcy2a/tXmqwbhg7fXhMAmZlQNEVEr1cXDBAXBd+LpmjDHtAri/6boupQFlDDQgTShjlXvPW1++fcqaALf1G4X09WqiX14NSYt6rYjwdXZvRCcPwlxQClIbXFHIGQu5CozSGoxpu4iuC+jcmUkQ3V90XZdywb1X5ZOx4GzvPJrj8ZgxSzN2u8mMUaAdJ4xsRyiku3aTsaZqZJM1W/i+T7UnOPz/O5kHcH9YSXXnwbvM/8vR5+EqXLVTxqPyeSqiQ3GWoGi0tODbSlDNKx7SszeDq+frbmdaTaf5UPBGc2t73khTz3W9LG1krns3Wpv98X8vf2Gxvh4Ftl2Ws2pnO0vFvVLJOG5kSSSVUlHUhAcsa96NgRAk5Mje23JJYj3VYb+HLvEpLPN5nlRzuHp48N7PfOYzn/nMn/zTP/3TP73+9b/5elv9CHKAV+CF5Bh5so+gQIB0663rarFcLKFKW+heYUab0SFQD2naUxZlPcrH3WCJZ1maiJxD3ytlFWfxnEvmZuPTL8rwg//pP/0nRABg/yWNIuUGJ0+dOWiESRKFUvG1dgsAKPwUAyqMjp5LGYIWxoQzBEA2T6JIM8DPUuAwHi+vUEoRkVF03WSEAHBu1G+2zjhgO1GcYru9JiVjVuI68BhgP3EdoIjIKHhuohGABsEqHwMhQPjREXwRrpBNQmA4HMZZmqVZmqX6ZDyshLcxm9+Ui+W0GlarEn7t8Fr4lcNrHScYrq/3enjHXhyG5vBf1OQeN0majVYziRmDWwTAlRv39gYHee56MLjYKoqtvX4SRpZpNsqNfh83twhhhBw9gwSeJglZI+fJvYRMyqws8lEiqzjJqnQ+q+tqVdbpfF7N6sWyrIo8r0aJyHiZlUWeVyMZJ1klqzhJ5/NqVtfVYinzeT7qVuN4vn1Wq7LIgV25cgUAr7wRAOANACXAOYAXAZxFADj3hje84YdZfLIfPHv2LL4AAM8CvAAA4Mt/8Rd/ATCragEAfAUA4M925gD+/M8BUuR68BsAsCAcmxpkgFfgYRKRDtkkBIIgAO+MgTJfFjnPygw1MXfEzs3ideBg0O2lmW3bdpb2uoPDq09PGvDMxgue3d0BePjwKhwcXv0uR9mnP0sePXAAO7tny7ReHj0D/whP6wb9JJvn87riE5jRZjDaTKIf+ru/+7unDr8D2694xSv+0zf/68tf/vKnnjX45rEHvvWtb/3XP/2DP/iD34MSH9rbPvo1+F/wTfIoIZNiWVULREM0sjD1oyhlTcyKvQXwIsoa4EOWi2WxFRXEFKysrwjgG8MgsKxef+vSmTMdB6nDmNXI+iPEdNRHtByHIRqtjPF91+NIrSBwLYqxb1tCAIAUvtReGCWx7XgSmWPbNhhjSfZYt9+fbG1tDUdu3O1dMy76bcsqev0o1RowAOBSCcaSVisJjA4DTXkUR1HSGjZ9KQLfpdwNQ608aSLfB55moaJUSkTbGK0YI4RwQo54KyM90ifHyM3kYUImIiwgXexUbnvd9XA4BGhgPrQR/7zAE9AhK30nmemNQXX8+PHjTddx3cZHV5/4Tw7/GnqHfz1sZABZYwi9Lx+G02HUOvzrVhSGUQt6rSh8fR7fPz/1qONmiet89FHHTVPXeQSyxjCj3Ycf+LcSRi3/gD5iiH30DPwS/+OybiP3kyfIC8mryVvI95IfJJ8gpOawxmU14PRl9TVJkmqwLKyMsVmVzrORlNWyKqQoC6q4lrpWIXFcV04Jl0NXdVEKmWa1kGm2qosy23pb2V2URSlTPjjO0vlqcFiY/Hln/zRFagO+/DrOU84f5zylyCh9CuAHkF4L3HMp4rVINfAnECk+wQD1JEFMEsTk4NMrO31YSn3w9fZTS8L8+sHmz4z+mHoWUIQLm5QLalN6HMXLBDqAlN1xDj4Am28TwDGpy3nbJoJucXoc4DjlLQWwlV9oMt7p9q0rWgr4flhLOV4Lbz36jkvw3vyt+Uffgn+Az5IOmZF7yEs4nYbXKbYhGbUrNYnAjUITsX2BOImzrK5lPXva7XRsYaUSZKXFG0SNWEbgF1BOX1bNQBMZ+cLIudVqMAAYDFarc+ufQ962lmb6WS7XN2qtAZBJ30Oh0fMlAwQNl3u7u3vTzY3BV0bD4VBz938KPLl/H3w2P76eHYeP9ba3l8N+aCEIKQSTNyqlKKXcdVFrdF1OKVUs2my2ong8OfzCP//zP0smhBSA1qDZvH//FIv0MdWz8QpkpEcqcp48QF5M3k0+SEidz/Oyqiw9t5S+qpQqzVz6/DyjS7mM2A+CW5rM6upZAX/DZnVnK08mgNvtWVYNlXxeom1IZ1DxbRkcbush1fNazNNyWc2zeT5PqvwXJpNJt1tsF+1e3oXOeLcXBABB0OsGQRB0QyGlCGPOAaQIPu00O67juO2GMxr0fCkBlPQCIaUIvjgYDMDLWsbACLI2jHRRFMXzX/7yn3rqqVe8YisMer0gXPrP83u2bXu+ZQPYlu/ZtowBorjVikIIT/3Uk2DZvmfbtu35tgVPhonrZtdf04PxmbsmxE90PSXzo2fg9/vg2watZSXxt1wZJMukpKS9i+VVUNVVVgXz22677Ta4fOutt976ulff/nu/P3jx7pkzu3Dzn/3Zn12+/GeHP/Da18JzCFGEkOvxCjyXjMg22SP3kheQV5GfJ39HSD2SSw8J2r3ZPywuKwtJlsuiXBqEG0JKPnQ/S8tkSRonFxv9emlueyS3CvaU4IGlEK2qqjSbjKqqKpYPclxPDe0wzogtw0qKgI2h7nA+gD5htJRFLvKCO6rL8pOjR6+vZlV5wnWqKqm8iXA9f46pvLPpg+xKQEq7FGmYtYMwDNpuYEzQobTzUR/R94FzuaOBGgvR5O2WMZbV6Y6G3Y5ladNu5XdCq1mWrSZAs1WWzRbMfADfR/TBgxSCyBdcU9Ho9DwPwihKEeI0ppShoaKR9/0AoiiCh6lEtGMJIGOKrEMpepQiSA82Q8Phn+JTEkD+AkVKkeo4isajOHo+2Js24GCIJ8D3AXzJ+b3b29vcGABj+DYm8WjUHyRxnAz6o1Gc4PManu97jcz3fT8LwPcBfB/6KI2hwpPMdZ2opTWiNoA2AiD4kvuOE7eNRtgXAO5cZRJ6lCJS2qNIM3WwzqkghBB59E/ExivwFJmSs+QyeZR8D/lh8jlC6kVZ5Hk1Kou6rlb1vFrVdbUqp/m0yithp4jTjG2Qq6vFMpoOS5JpNU2Uymouh6BJPil8a/tHklbTJM6mNvF8VC0qms91Lx1Z9LiPEF8yrWC/Oarwvb/IpxWvZb1a48nycTKtplWcy7NsVv81AnzYCMHasvlhhhYw+PCo1TZt7YddhA9zsG4BwHUO6fw5i8WiP4ctoOsc72PrHO7/tfX1dY4GAHCdL/dBvb6+zuH+NLMHevhdYwwA3WBosXWOJxFAKfNkA4GvU8QkGT6702gAsHUAmPMjJmS3/P5rPsP44SeBAjB4EA6/BXx9t64rlOcsgP3Psw+vr68Dy8VTHn17LCFH/4AIV8mS3EAeI6/2vKEXBWWbLhXf1XlVVuAyuxj2tbgpFVWaVbIoi3z4lIEpI0PPxpL7ZAhrkbmcpZrvuW21T/gvTYRWc+3wc2vNFkCrudZtaq0dR1+++zrN7JudanbXmiUY7R5edY3WxoUD12g4/K4G0NpztTHadc1vbNrL9bQBbVxXw93t8neyPuDW5m+W7Sa0lOsorS9c0Fo5rmpB8xpPa629r7hGA2jjfmVTu8NMN1t80oQfHZHr8e1widxLnkteQ95FPkXIRFjibe4hXMQ+RlVVVa3q6TKvRmZYPAPGUrFBSJFPK5H7gocCRwnSeD5CadN5NUsQ5m1yW0+c55nIBKAuBN8xcrJYVhVaYZSq6RfVYgnv59xozoUExoTutQa2FQ4TSgFOajBrXiCekN6gnq5PpNrubSnF2eYwU1wP9naKEef90WqraFpUHD6NIAFfDALwJbvrXzTfhxQ/dB3geQA4jcDg//IwzLYsplTQak7wXwGQIiCikMwNkyJ2HMoajCGAVsYIhnG8qU2ruX1qc6AQ2nHXMttKtlubi7UtY1p+hwEHDagQuqABFLYBUCGqEABpw7K43g4DX1lOvAYAhFBCjr4MR3CVJGST3EdIvfLRNPg0tH+tffsX85z/gcr05cxy6la3IJ9VaRJLycYKAH+YUThgfV7P/5exbkj73iONfr/xqOll1yeWuT7tm0cb/X7jEa+f3vD9iX+97bn2DV46OZGmJyapd4Ptedb1fjI4nmXHBx/R+oYEHknTR9Prr1XqhvSRLHskveF67wYDYG7wjjf6/cZx7wbLut6D441+v3GcUEKOuBeJQ3qe2L6qUC8+jnFWQW4+r4h2S+WcDmfqJNW8qv7wvx5eodvbdbPe3qI/s1Af6u1tenjlv8LVK6vxGK/ieLzC8Xh1uBZe8WuBfcWT5lnvJ5JKqaJW1s1HUnICgZEjF0+TWOZ5/o7JdDp5x/L7Dc3WaNRsNpujUavRgCTBefL8HR9oNBKRxzHm7/EKfD+Zk+vIA4RM/Fg1Jx6HFUdZp1ErOqOyWOoXbqZpkByxVE0Kjl8Qe6BnUa/qKtMy4pH05f0fGNK6wivdznJ7NNoaSMGY73lQ5XlR9/rQaKyvLyd5XrQHg3K2vt5owOHH+41mo99qeR7gNEnSMgh7/2cKkI+Wu1PXKzbiJHnThXIN+v3rlpYlRbvdxju7XVqW5y6fPl2WmCTTstkEKCanTl3/PTtBCNDrTafLawHT5BS027u/h5cePjhNb0yapy5kDSSEEH50ePQlfBNcJQU5Rs6Tm8j9hEBVVWkWVVWVVLKSlaA85cqyKqsl+TOtaFby/7VWK3K0olU5sazkZFVXZU3m6RdlWdU8KzMq6pfMLKskbNjiLXSTGmNfOO8YQzfpW4T9rje/+c1SvfnNmr8FzIMPPnjtxwabP72+vk45E7vh4fpgMPgY40L/wAZcBevwm2B+xBaSeh6Vwv4RA7Cw4PBLZVm+9jVlEw4Or7YeW19f//8veGTjhhtuEIxhdvZdL3rRiyDSgtM7Hibi6LtHV1HCVXIbeSP5OjThBDxESJZKIUVJaBk1y2bVLEvnaRZHeUCPBGJ/lDi7utyTW1rrOVm1HMueJ0uzigo8u5vFMs5bXVj4TYPxckvakbGsOJ26NPACwEunZbHkWMJ0dmQxX81XpQCFp3qUj8oiL5ajZVFOEa6XVzSU5VsplosqAgWPgORh7yyeaz4volW41cjbjvRlXxftO1vVs3llKsO13lGL7i0oW6OSw/QwyzueJtJSsPxMCln9IevmRPbQsT1jXbr2Ec7mBoQmIFLkVVYDbgFSCkhhi/YwM2redXBKyXljnG8wug7YD8Iw6DMAoIzTcRLHyRhobk+MCAiAPwkwCIMgHMDE4kneep5EUZIjUsroGIDuXXs7Wg8Gp05fiyUZ00QGwBilW5QJ+nUsAMPmXQentJgv7kAE+B1dUyXiOkwZY/QaBmWueXoAUDIAShlnU3gHZxVAlcrRL/JN141QJ0B2482PPHL2oKwtfKJVM6iVBHG3nHOAXcY4pbR1Dz+5f9ddF0dZZoDB8xDS4bAoBqMUOWXAkDaKcnOzLBqfkM8eh4cAAMlwNCmGo6RGUgAKF6J4TKcoGzBBNVZTgNck549fvnzu3Fp5sfsHxMdaCAw5p7uU7lLOkQG27uInT91518Vr4upAFb7jAP6pyhHoBcY4ZexUazjpUMYZBaD59E7Mq2lOgV5DOaNA6enWcNylnDHmf/6+jI/+EgfwCVKSmwiBVYvn0ybK4GJWsYjR8otPFgze0r6TsqywN9MOZwvvtPXp0XA4Oq2MpX5VA2jl2Oozt0G7PTOIUtq/b5vTw+FweFqnqtTKsfWP3gbt1sz6NiN4GsT23t7+6b29bQGgfkXbttb60xfu2tnaHEvbNoYeHvz9NZ7en9Ed062tXNq2pSkhinhH34T/CVeJIm2yR86Qa8nD5HvIh6JHiHk5jLXgoENsZavaiBI8562yKJ1mW6t6YhNfSjOeS+DebGPYrG+ZZkJWUqQMwHJUJ7Z2pZDV8PGGjRymuN40E2X1dwDWbYCb/KDRCPylLw6NkXgVjaPRaGNjd3djcziKYvoqMcp3dvLD70ISU0gShBdinCAmMb66neftlkibrhPHrtNMRevvh0OqlDZaS8U4IEUhlB+3pQjCIdw7DEIh27EfcG5MFAaKDofwkzFinCAm/60R+H5QpIO4r7+zs7E+GARBEAwG6xs7O/0eQO/bCcU4QYghgeuwO+43TcMRlEpuRtk7LLuRMYQySJmeGg+9bDTq92y71x+NMi8yYRQEnOus4dh6Ecc1e8VknVxLbiOknufzoGLOBPOMJ8sk93csJa+Iptacjl0OjgJF2+Dtl7B8eDAYXBkMBvD0lcFgMLg62DblwWBwcHBwcPWIPD0YDB5++umngQwGAxgcXhkMIP1DDg4OiJ1Tm3E+qH1sAvxvHGZCzqs0i6MZ2cSTLMmr5fS4Yrmq08wPO4K1yQ6v3gvWr9sA/T6A/WsDg40GetkOJVR+f3uNJ8Gm9MIFSm0YDD4LymkgNsr56J8gJAqCoIho/MoHIOhYNlayktVUTqtOqlFWo9ZGXXfbunKQ8rNMQQcXRgKNcXh51oxcDIiVU9y6tbUFWqr0wgoY5bQ+B6mSGrbBWorOIwcI3df2OpgjFClFY9nO7Rp60s5TTz0FrXYrmK8DAq7Pg1a7BU+xzFJ6//1UJB+HjBDitCvKhUt7Ofke8r3km+Q75C/IfyL/BAZyQtzpzGMsUs6VBN8oe7xby2IpR3WqbedndVksV/MB2sZVFstRuai5OBUGpc9j27SY2OBgVlVV0yqdx3Jalb4IvizIYJmsyqocB7ayKkOBM1lVceX3OyIRUpTTapRPRz2B1a4t5EiCmZF2N814ITP3k9XYsbKoZTxPl6t8lMz9XJrZamRTVRZlNs/ns+WqPNDL2OqelsWycEnKz5JUTvMpJPNn/+AHztx5x8FBh7HWxDjtPjiOb/u+BBC+b9tCN5vdXhpLAT3HpiB4Q6mHKVIGwP6AAkWkcP9xDMNhYJLUB1BWEEWM2bYAgH3gHIBz2LcsiwrHptzZs4VkoBxbA4Cg1IvGk3FJqQMgQ4iSdpophNHo+LFLN546/DlKGVLKEGxGkVGK9D8jBUrvCAI6cB2pter1fR/vAQBOOTKOFLlhAACUUoYIyMGbAuzuXE9RTYwMDaRJv2c7AIiW1eoIoZTndTpZBjRNIqkD1wVsAKNIGTwEjAKlcMOFh+db2/lk6GeZD+BoO46TdqNpkNGf5ACcA/B9IYRtUe5Y9MPSDxIAAGgLgRAGu7sAWXtjs6BUCGG5UWgH/qVjx0cjgLUPM6SMIqWvR8oRGaVrFCjFgW2BZduNzHYs27F7HjeGAXKpOKxThLHYIzAKjIJf/rFnCamzMnuO0VZtDSPr0D9gYE4IPoCRYBV/ioUUsnrn8ePHpeOkgeu4fhx3mz0YDHYPP7sxOS/cvDsYQKqn0unmI/+Hsyzr+IFSlmtZAN6paX8Ae68MBoPdeQo4bT/zcXyaEGKR+Ogq/Dx8ES/g9fgEvgS/Dz+Kv4Bfwq/hv8f/RMhktZTVqizq3G/zBLmqq2pWrTRTX1Xaaa6eVlW1Qn8QlyKRab1tRQqZjQr646Sq4mSaJEe9HXEmqzSLq0l/muVVmqXzKnJdMirTlG66X4sHv3BUT5rVVZzxo1UCA2HJnq7MpvNpNZ2nWSErPHTIuezUXrRnWdRFvSrralVX1bKKvad9taDIuNWSZmvjpvOqWtWiXs1lJeQKq+1PayFn9bxanfvWjNvwoKfzuKpwxP5VOaqm1XQ5Kt2JRSKyNE+zEsRIRVlV+vtdsnRZVdNqcZ0nxdW0Sqpp4quWiapIYqPCuKpazYUUWVEuyqqaBnEaXSxFFlfTJJWr5QK7S7KyouAmclXeG/IQGuVCR8qqqqqWZ6PEczOvuB4hRbaY3994Wi1nq2WapfXBOsxWdSyFrdNOty7NF/N1+EACO8mtlotqVVn4kqqqrKEjRVKUaVaU02pZdRSJKOvqqFjVs0SUUshFiUdMq9FyUQs5TdpJImR8Z9JKpnUvo3O6/K1Tk2e+rqo6zTLXy8qsSmohV3U9mc6L3ZWjaiqzq7NaSiEXy6oq6lhOqwpex50yZog0zdqNTjegDDi6QnDuUa2UYEJKCxkTfpYqxrmkMqlSQmpSThmljEkqwKaUAyohlCpWz1EoJGeGgsc5k46rAKTpui9NqvWNRgMpUR0ZUBSf8+UUtLZAM3DC0AcpqKMUY8xwYMaAJUDaYCRIqWyOwCygqEEANNNUZ9MnKSDnClSbmDE9qYPAmBrVAUChar5LADBKQYIAoSkKBKBUCnn8HO26rqDILOH5UeT5ykuTNLFsBMDxuACfUYGcMqWUHrYvACYBAPpPWAxCVxrLkjTI81ajdZNKelWAoaKogFJQwHDPMpRrzsX9nAJlUiBFiQyBU/gf1LEYHL4BnUxqMQsQBfyO8XQca533e46Fm3YAgTJGJ6McKbUAmYI0dcHWtpZqNDSfJEmMgwCM+pQBY4HUAeUMkBltECgw7QMXQjCkQnGmJAeoy/HCKYvl8oTvpYK2JgDCI6eOUSCN1qA4s7SWlHKmEaMxpEApw4VTKoFewNSUowC32ewpBK7CiGrXtTkComGUG9GUqhhQjgEACFOdGbM8Rmv3qxzBAIRjScF8x2jpAoCmwEEJvtUCGjeydVTgaccYUNpyKTUmThoAdLfZ9JALyhEYoJASAAEEgKaIAAB/ePiHggNo39LCAQUdz9OoXoXAwXCR2QaBokUZcESOQo6AMoaIlhbApVRAqdCcSVQKYKPVSJv0VdQCQCHWhaLINCKRZHB0Ff47XCXvIT9APkM+T75Ofp/8F0Imq7qupGzPfJbV1Uru56Wspsk08eOiJa1XCjlKRvk2xMqitUU6Wc0EAHXwUhFJBcTzjshHpUekzqncYFqFy4gnon/vN1vVZTyf1qt6IUWSLfKRHMlREs/n1WpZLwozPsmqaTWrpvVqmclaplmGWVnm89zvL5LFaOZ5MA5+u9QaPkypBooIXFDWB+CMs6FjcIohxds9c61Z0trZXl7eXmKWbqVZ1mz2V1nIssY4G/gbvBxNx90uBc+1EUfK6Wo/feBJGA7KZiuJN0/2O4zSF2EbwPcUXjIZUpZxSoFxAKM/3uv1KPRgqSnb2HrKtrLRpBHFEa9azaI4uxiPI4+9HJFJjQqOHaCUqg6oFxkAoANmXfMMJv0yjmEwOcU3iokrlE7GHp+0246yrO5MV4NukhSmE8cw4IJxgB5SwaJGI/CzxrCdpHawPt5B+EFoADDXBQEAAIAxY8jKXKE0vKrdbiO2xVXtFBs3U66zpqckjvqbu+12GPUazTh4j3P0LfhZ+Cy5h7yAkMlsFEC0kdGoTD/HAF5nk5U37dnrlbWKt3NtJIUsI1zZ3DsLfC20oi/jUmQVXA8IuBXajOXz++A5dQVQ1c+B5+51nHWTbt1552YJUG7eeW3ZoFSZVESt3XGnT6HZ2h50mOX1wfFcK+8dh4cVfAT8II7DgMcNKQeOg38IAMlapywnS7hw6vnPP3UB4MJoaor2CmA1e+CB2QrWm61WlDprzSFimE4mWcaApU7Ihd/YAvqcC6HW4LrbHNB2XEIJ0bkf+AvIG7+bmrxT5eeVk0Lw+nVO4sNlXhXf0jSrJH8nqYv8uYZGeOpcdf887z/2LE1pNtq/OB4ADCbXXJxEqi3d7vFjnXa7c6xqexSF8JgT9BtRghAGvSREacUQ+VlcwAFHvORaNnV8zlKlASzLBXgawrB9qP7/cfYPvVbUajVz2Fm/dGl9dycbyFaYA+SjU6eGY+j4YeC4uu2nCLbXbPgeAvW0BRj7XcBrAM5r06OotHaEgHouz6K2bIZsKHff1txzWHPNQOeexPFcclNfazU/qKEfLGD92c9+9mseuu7O3Re9/NFzN+0WP/mTP9n56Ra48Rnq9le+8pWfePTRN/zQvff+y1/91V/9FUHSPvoH+E/wftIgQ0Jgns9lVZLZ03k+p1VeRfDWixcv/vAvv+9Fb7j4oz/7gSeeaq6trf3rxhG8/7P/8IEPfPFv3/rWw3fBjYe/QLCnCZB08XXwGPkY+Unyq+SrhMD4v8B3i0eJjBd1nrwalz+ViGFEt2AiiVEV00NaFwCApXlVRDWT9WjFvsutlrPlIrdFC6X7MadVXBZlWq/q6dKfJiuLfCrtCMZGbRP1XTN6Xpxn7N75pUksK/hjXa5Ny1V9HQT9Xswp5dzuzC4kQspGHEZ2AuA6rlIWguAcECXKsisoTVNp1x8MoqjRPNbq9fwdIcRk5HmKsipB5riJG1TtFpgKbjbSdf2k3RaI8mDQDykYpXTc7TYaFN6BYRSFAGEchhNPK6k8XyupfGZZtg33gFKUGkOZVlug261dE0dpFJScHYsbDc8C5TUTYyG1NaWAlCrNOLAkiUNKh+VwKFmjOfcbTQq+HyvZaUfAw7MebJuiEBQoMMEBLZsBY+E6oA/Acs/jllSMw3WJpY2dpMZYdtIBx3EdsF3H7YKUAFICIZQQchtegQPSJmfIg4RAmlUkP7HXrBRlVXE2XE4A7CRxVkXul6jPa6vloqwgsyAl/Gdd8jLBbDPU8+EoZMBHYdBq+QFA4LeaffztQavthyH4zVYf17f/dlJz/H7hAEbD+Ww4As9rtfO8A03PBc9rdfK8jY2PzfdtgNFwNh+O4PkoyIZzp+RyDQzy8CAjdg05q9SuYjqsWy7qopyHO3zNSSx3Eh3liy19F1yRGwXB8OE//C+9KAaIo14ZAxgrKV9ZxsZKyk1cMWm3gJr+UPARiOJeL44AewB+nPh9XDPH8J3KBE9MBmRdUr6V84Rky2Q5xKcFgSYKjeAgtiZpLlbLFZdFGInyrSddhsnly3/6fZcnt1x72+Xqg8uXL1/+vj+9fPnwTy//aYJboPHBy/64plzre2RKyGRKuU2Lsiij2pTqAGGNNAsjoGKgcB1OKl5JeLsLG5unT29ugEup0JsX56VjK4m0lW1sLpebG9lDQIA89OFufnpjA3Fj43TeFdwycwpdyzEWF9F2qw3Qbm3f8Lu/ewMhhBJxdBW+AFfJteTN8A1Conk+z6pVLQr9fBp5QkRqsKSjUBoEGYbMW3VVhlDpZmlWR2yeh1XTejo3uGDayCs0R1646r5plVbTKs2gg2RVz9i6rVU55egk5bT0Kuqpp9WimsKoq/OqWhmIu9VsPpsP76mJ2xG1oSXjDCyRgRsoEO1pMroyVrjpKhjCjTAIgJojy6qazsV6Mq1GRmFAHgB4BWCxEqxyI8dqiosR8TzNsmqWzKq3EEGJ6GyPKYNKR4tgZDA8x9Xqem0VAkDAMcSmQM3aedCzLK6mydQakMSJEEtZXMVVHL5AK3jqOqw+eOONH9vCOPZdo8H2wLJsm0ptkka3p5GCZdsWpbrbayRGS2rblgWeDdq4fhzj9o1CAvAk5oJxH5GiY1mUWpaNSKnPuGRJLEAK7QMaCpQiqJ+gVD6cXUDl2Cy+Go5ApbXiSI3SaANCgIpESqmKXhtSawDbltK2lO8JigwopRRgEwBAA7iu4wJNM6kDBIoJQMJYoGWWUnAd1wUwcMQkmgJD5J6vbEtK2wajT+OFwhD6OCJYqFXRLp1LQBpy4QACaMfRCIhaK7yY2VCgBsHXcHUOiLZnTG8LNzZ2tt1u4HtBHHNEPZsNj+PA84Ouu72zsYFbPWM8GxHmh89GCdz3GGeoizIjxhgTAAgaGWeez0HiZ4ABWgDc81wAUNRE5qBWVAbdvwZjXDoBAKWaUkoFZ75wtaXg0rI4EwKgYRlLUSk4hR2g4aoFKo6DEDgDAQAcgCMIYByCMI5VIABwB4SP2hirgUIwbllCCJn9ZbaHcc4opRljpZOcMUAKILF0FmOIVGiqAMDnOfe7rQcMCCPq6hJ+AC7J+8nfQQX/HpW0lVbbdwzhtBGitS06CWExZGl5LgXbBIyPs7WnQgfR/vxm4UgNnkZjvbWu5Lf9Np2EWyw1v5a6tAoKbWnuEoEIjEfkKoYT7nRxKaxDC4qu3d72J1BmMG1tTtcRe0QSQuYcN1+JrqOKovxV4aYtOLzJx65tVDadgKcu1IHWMcXCODItdQEkObWnWCuuWYqpndjACVeFPAnGrG4dopwXotMu+lOGy4M3225R+Hjemr6E6+PSXWEssp3W5cNltE43W7RX7gdLxmtBKR83nazWcMzpArwfGGsU/1g7K+IUqBTFgkqtQxiPNSAgSC6llADoeADU43EIWktaIFWqwSVOI/Z1JRCMNQPvYUH55/CLi4uOC6BojOHWICoEf56/JmOOSqXK+vc+QETOKCKlAhExG49DqZRklcooAniADKm23BhDEQTvHkm1MYyWnAleVRxACCEAeFVxTpkRyhhNsaKsyGQICM47B6ABuVVSolSq43NpjZDGIGRKUgAqJWwVokGlMooyk0braWadQiqJQNrpoxlArrNCwinlDE0HoFTGqLIuQ7ScWqsBETOlUFOwt0dJgQjieE7WSGGMLDxHypgGoMoaAZgBOOcc0BCkKhirAOCSXQcENNZW9IxAiOGCUkTGmJDTfZ3dY6dl6fOqFoAAnFJKOZp4yVWd+7Kc2nuzbH9qM4ZI6WIoOPWm0lqDgHCdhRucsDSdsIZiZKwDBMaFmO0Xbm0m3tm8qiAbQEUJMDxD3Sq33k3yJ+zPjEaAjrGI1Fh5OjPkN3Z/wJhAVJQzmuccJIAEnueUMxSUCcb+EgRGOZ5RgLKsKlUIBOGUCrZ5WTmA0lo3AEIwZrRkUohBpR5I1axwkjEGlAmkDVZpZ1GhmXHeccDMgFpBMwTuvDOsxSmFkoEFV3MGQDmTrmBM1R2wcojwn6INy2mtFYA0HcOUswJQFKqqyhLKPQ4EIIf36uBY/4E/gjyT2cB4P4JvahcB2st2oNO/WQkZpVh1VqmlbS8H9jp/e66tUB4+6/mW210HuDw6mw0bEFzwM865nAjKWEjxaLllN8d3AYxGqxBDMVnDBlcd5u12O5uClHCKlAnBKP5Ryj3FGdZ1XeOfwXh87fpkD4QwX5sDQQJX/433wR0yIE8mhJXquqEqIv/ajVKDOL9wsCegiy0y8tKNiOKbuSHUXbRWZq6Jf1w0jcyGTdvGBJBie7tts+jeWg7m82rw0MPunnsOD0AU+bh9eDJufgT89nKJuFze/gKsK/fo8Rh4rs9008A/wHR67Ub/qd2wAWiG3ad+6oOPj+Ho6GEvHnbd8uc+NVMBYbl86EOXS4gHl/0znsN5/O4crWi76n05EiE30UaWt33Ljyn1y//c4Pkv//IvXz6LbZ7y1LfAaNS2ky/4Zvao+9hjfxTOd2+FT9+99Wsfee3YfDVw5v3kmz/1Uz/lU0ipG01vSSRTckzuJg8hjyPPIC8jbyOfIJ9HvoZ8G/kB8pPkT2KJqwzWstqttmt4+r4turU01DJ5z42U2z6thOxk6hLOOewjbedd7yuV72QvF500W5+UVjF1qUtxBiVWV9L3na9isuh6Y6jK49LNaZ/CvXT6LnWn3HQt5C0jWUipUbC7QliFmZO6YuVgULKqvlcI0e65Wfc87/0k1M30ESGESjW6njdNQ2lDab/p0oOp67qZ+kl4mLV21ol275mMsarO8Bl8nhBiMmrETKW73iyEOI7es6zRwLk6vt40jfCyEZapQd4/iTXNuEotqqpKUz8JD3fOfZ8GHoNnZ8/pb3D+ggA4BDw7e85zzs4QLunxT1M2TaOqUOtrVVWFiZ+mxzrn9lrRzV7E2AV+VOrqK/Zb0c1s4b2fNnWY3BtCqHWjqv2CfJqUXiTFrNBN02TM+7jkx4pz0I8UQjSjiRg1avbmHjrgG+5mbq99mvd+mqq168/u695DhPACzm72zzk7Qzw7e47+4cl49WdwBV9LnhRh0VjXBtsaBfSLX3REDXhXRMNRLMGcQyIyjU8xveXG0VFVHR3diKPhoPLy1aA0Xy5vPrGqjpeTSV1bw52UY7mxdT2ZLI+r6ok3l8scWvJ5VjUYjiJ85GCzWSw2m4Miy7Jsofens6k5KQrlDw9vHCHU9WiYAwgBkA9HdQ14dOPw0KuiODHT2XSaLTKdZSWxy+Q6siEPJwoRhTgEDAugpWy+pXYZqHGdu15vxryyfk/4kt398J7d/bnR2uTwnudvwhmEev/vvj/0K7TJlxux+839OsB+CG/7t1jDl2F1zdt/nbyZkGo2m9E6sVOaWJ+DMWeO6xZd2wY5fFpcpFW946Y0vshqdbI+WZ+sbq3MS5cnpJB3w1N23wFPaYocIC+a3XcMHfzvce+q2jpn6+Acu8vKvZnOqkqbA6jDfFYHmmV5deiErCIAtLLjj6adV5WAr1gft/FO+5cuL8D5mJwHo9XxcO9J0Xnv4pOe1KYU08HGxxjf/GTODUBMBwcxAQzKpgzP/zmewyV5EGO7k1b9Cudl2tPkv4gvsTgVc5tC6ekFeAeOX/caBc7XtXfgXfXWwdGvHg3eWjk/4bLUa143RvB5jHkOnzLzLww2x3OOqp2H/zlAPPgfAJqCLfuBym14oZ/F3AP4PBJc5C/7I6GhQQDkkAM5Y9sfwrcek5Athim/ebPZnDKMETHcretX1frugBgjstONB7zkafhvn54+6+bNm1qoiBgD/eAAYPBBGiJiVELflGWD2JSyPbS8Ji+Ov7HJDXbfZpKZfPcdKzWqHTx/jbvLhzSTvtN3DQbwtwev5+GciuvcYboiWkPv+dPORgGTe2FHRuQ6eSAhMG9nGr0VMSU+m822KSkFrANaliW4ZQgd7aFlWdbh5X0+9vB+znb/9em20tqI27t/Arn7b5DRvf7Jux/S8HD47ZdllMLgdgEgHgNvfYwUXNweoHndbwA8cvd3IHb/A2L3I098mZJqAHb3b2B3/8bZ7TI58/mEICmuLuHb4JJ4kgg5lL3cnd+53apfrTsASCtYtfBtFxcXF1929uSLL/uyKwLkijwZnvxlv31xcXFx9uSLvxs9HVFEX/0U/Cv8KNknDyYvJO8lX0i+n/wB+VdCeu06XQit+n5FcEGYK4Lrs3nXb4Lr3m/XvEE4d6EjB4pIstgkPglXYNdcGE1IYcQSsWkL6NFDW03C2uZFu+gO1y1cwEXaTMW8nbeLTbdadN3wdJ3qYOdgRBKzncfrb61jiiH0qUu3wokgLNYRdQRRzAhxN92aGaXPLrFNLrL5/3e84x0AAO8gbVC8W5dd6zbgnfH2Tj/P436nrAX4jK53C+AZlqfuNz7/xS9+sb1nGV9MV9YDu7f9/u///nqo49MBwDduSP+z996A8znc+U6cfPT0pz8dAODpKuJgkcTwFwMxfO561uHnUMBf3P8uIMA7Vuz+6jh+Cbtz5w7yoPJ3EBCw3WGLh+CesVX96O7zGFuIL/mmr1v2BMA3AAC8YZb4q2EL/KvnW2/j+cf2mnuO8fbrVmR/67S6z9nYgxHxc+r5hYE8jnyYfNcmxVCHLro1FhBMJ9YIhu9n28g50ACDBq3E13q1dwuWJJdYY8RPcP0Fn+LCflDui9dPZ97Be5oVL9YQ9uBkL4QQ9q4bmHpFKePK5lJaG2pr9igqR7k0pVTWxmhfaWCayzl/zcbu/7XO+RismzGkSBWjuaRsJoUxLlr4it39m8Xm/8DJ7q22CZwZxQUV0uhB7ZyzjZI8V5xTroytkrMWZvXp8YJP3+8aITJGAYRSD6uZlJwXRgtu6sVf9jdR32Jp228tZU62VmGZJK4x2axORC7Bj8dYuiN2Eu1WYxPdvLvd9xV2OJyElK7rMaiHo8nKmtE8BmthZGOYtSHOR9asJqOhZoL9Q4AphclwaFkIP6b+XjObxxKxFXVdB7mnNc9SmkyljMkBY+BSlHI6SSnjWu/JUNe1aBHLOJ9xFU776eepxVerUrZPLrpb61v93EHOPjlCI6BVEcfEt9EtlvKNFrIOJyu7w2cbsB/i8vieB15X6gHzWJTC5zHPXemVAjVs50teVdPJIFUq1ANfnYCpv/7G8bXxGGA8drZGygflEBRkuS8H+d5gQPv+/TU3yaGqvbZUIR7aTvdeFXQg0pmoC7upUZxNwmodVECD2kLQmgqO7TJettnAh1xZaF3ve/eM/JH3HfUZu8udf58+60nz+xARHw3O742f9FnnZUi/4m/1nGzIcxxE6WmHbq4WRBhbJqRouVxNQY6kYGl4om2/XccUZYCv2J3DebSzEKKfXVd/+bCHPezh88IYY4pSGwCjSxg97GEPA8GHQyXh4Q8BURTDVVEgfEWm3e7c6SzTDs6dznbnv/u7/2pMURpjTFkY86+vqQclQlHE1/3uxGkD48n1d5KMkKs/h8trbu0d5IPkjqrV8jeR745Pu6nKOuUH2ZmAoi/w5K1FOxdHaaWYrNsBlyxuhaU7C3Edexml84Y61e3CYACvxCR9d7q+FWo57+S82/a3kmiZJa0gOvTIacgBsE++1bqDy6vzmvg+0JMUEQpAELYosA6xxqKwAhALiHEiqcq9lZkCwxgqzvWQSVMEe9bvAWxvX7xmdzdGXg0b7qOMUtAUgFIA6tIcWtRBQYGYqjq4jShqMAsDSwgP79bADs7y8BtUR81Mou3sNF1m2wFqDZyD1hjYNnObO7aDwmehBQWcCdcaEkCptGQUQYUbm3vXbG8DbG9fs7e5Eaqa4u6ApUmyJkDFOaSAaGCFHQDUFXkbUbrBTD/rF/8DEnj/0TSpqmkx41InbZLOZ91HFjTyVXpc5s9Vg9+FfHTu7CP3XrSd6/bGrZbRxnMmWQZJa4uCW+7VZxG6va3d3rjvDPvdtA9rUlyMTDi7HYAtiOM+UNXplGhj/1i3Me12mW1v9XoAAxlOEuYMsliK+hUMQvMEsVgalz6RF69iKfJIq3pVV0iior5OXK7u+PAGj5w+jVeDpn4b9587l/3U7/Sz7jXXpAE0rSLk6A/hH+BzRJGAtMgbyDvIB8gPk08RUot8JCxUIDydIJJ0vloWOXUO/jFERdARFE+cQDTEGnBVXC568cAB6FSQG24nGHTYJuZpOCZO4kTUff6loqSbbpTxPkTZWLNXyWeA+TBtn5xTj8MWB86Bn33e+fMIOzs3hID+zWtMKRuFDMBxrDBJbWZvDYcouI2IOmw0sTcc9B3b922NSG0pwQ9ara4PEF6/sw0wHO0du+ZDSCkiRWrdUVUUh0gZBcrQEd5FpHTO1VEEZV9HFIFRpBTegOfPP/eOg4MWOMzKMgQuUnQdBVIAcBa2RcNgHF0TO44twrBFXYdqDUoJSVthKGzHiadZqhRa+aTrcAdaBwd3XFPXgz4c/hhSugtWNQ5SwJzymkZRdJFRQMYwxoh+47WOXqy5AmCEeOvE71iem1wCFRahxoKvb8q/wHkJFwEpctICIotE1k0X6mzgH2A43Nu7UORKa0aFAOF78bE8B9jcPHvzxrrjNORJ2x9QKXivu9zpdgDSdBhZFmPcAAwixy7KRgohJTLAi5ubsOreC3t7wyFcfTp7ywmDwEpTZisFW5tnT5drgFub+912x6aCWYozajzf3+wPEDrt7Tldc39O5PvdZEADvx1oA9Bqdbu2H8de59T+zdvg9gbbAvYFrfuCdqSbi5rQR2wXTlnjMN30FBs36iYfpHg4Q8jGw1ngCr9yRpcpMq6FYhTCMAoBDGfMssJRkgJ0OjvLbpcLqSVQD0BmjruxftPZjQ2EPD8WeZ6Eih9WSv3Hkn6gwfR5W+b7STJpjMDoIPdcIVtJ1/cj24Fef7bdbgP2+5u+5xnKlCVQUrvT7uxvbiKUa6fObG4iKGXTNLM8z3cgDNtw0A5DIH6rB3yW3FeHhzw3hkVZYalLc0dIATdFfnGhLGXz5QEkVV7XTnl4BTqdzfVW2+q2wgAgCFtdx8FjDyI0W1sNRJ93H7ZQJerTs/U0Ww5CEEn+cT3PHkm91W4BdDqbYfcT7Wzvg0MIvgyukJIcEDLZc1oAgXE2uNQoc/OsZstkiUyL5qEJLrKscngThWp2e/ztY2+cLUwUdTCEl7XXbNIX/PLn9+p6b2/vz9zw9vkCYutdGk5nxmgYjRaL0Qiw28nOyb0H+BMrCIGvwG8RQbLoSYysbMuXqHBF7wztxa8X3Fr/2/DjDzzwwAM7mecBtNrtFoDnZfCuBx54AJUa5ZYFD9wLOs1G57MUCWyug+dlfd91/X7meXD40x9sN5sIWdb7EGyuR64HWK6d+jQh7Ojo6Aj+Gq6QkJwjzyavJaSOZVUJeSs1k8n91RrlI/otjDe81yBq057PsrbteZNYplLWytQUKZaEbu58I8UXE4y68PP8C1rFkVZKR7HSUGAU5+ON9YIiY8Xm5mQSJ7AuKZOjZrO5tb1eNpvNoWRMrcEBhNE4TYVIsywVPM3yKMqy0Wg8HY/yNIPbIq21jiKttY5eGYQhYhgGQRQChFEwn21PfN/XPL3vT7ZnB1Wj6VuWq1RsdCyVa1l+M5sdzEeNhtrFR4FSYACNxmgzTaUCUDJNN2sIo2D9yKSrl6OG15KRdi4Fnn1eAbTD6rmwSn9nSwm/98gjjyyoUn518pETt5185OQ2PLU/GdtT/r99ow//DtLDv4P0YdjaOfmXPPx6V+BpYsguIVFEo6yqq6gacs1InRPaXWUGTOZVBlPX2kL5z928kiTP8499LD+8AovPfe5z/OecR+ExMaWrpfgx+39yePrwKXjP4VOLBbznSvXhdvv6wvNOfXDah0uegadzHG3RiLoa3Tya1v3qavj+AOGZg4ODv/xyfKt66m3R4S+uhyzcpU0/ZeN92J4+hmdNH7v33ovzS0uX18frGtR7Cjs38UrcJLeRS+R5hPT0kAgsjRP+HKbEY1K/GJaTuPsb8yTlxbAcpjd4e1gOIpCYuldzGkMYhuox13V37I/98boKE77MYrIsCN2oX7huodZqTcMWhIZhMqqqviiqBxybFp5T7M16nLlu+jFBdOp1xwVct96wRSZKfqvtB0AYtNq+KPy2t2/BcYR77sLd9wAjMGZ/W2cUu44cPnyEBv7qSljnTwMoVbVGQ1UpxaX/vXr1KijV9GZT1ygFIZTUCKEFrpFd5CAhyPIsz/Ik5VoBulj2oFdHh+WgGIIjGY8NpXz9sT8OC04zvVcfDhcXGVtcHA7rPV2EV9wnJk57hOkvXL+OI/M+QdiJ6iFoWO9EYU97e0paL4w69ZAirEed8Bs3bty4b53Qnf/fuYXX+BUcycokkdKUe5oN07zIQmmsDyte8aIIkSGhcZFKyHOM36B1uymrBw3hKLAkmgc1vvy9xx577KxoHNSl89SOz3P1kCH8A1tsFzrVX3JCp8Zdj///////j+tU/0nW3v24TnVCCCNkx+7ywPvkjrrzuKyqikGxh9zvs1fFXsq30+FV5WcFH1VYEQnqiix26UCUV24cYkpfFg+xvaqmqCLvK+wpteTTugXl/okCpWJbSvxCBcqLxKuOZ9kKlM/6a/qohW1ikUascjBUCAAACCBlFa9GMgshwgDw8YFCfu3DOJzY2tra3Nza3NzcnP7V1ohbnoXxuhUv7vxs5xZeju3YTbbQx/e8wBF0eBHyMcp2zVVCJJ0wjuM7W+PK+FmW/tIv/ZL8S7s/+MEPNj4gfu5zn7M+2+12uy/sPvBrv/Zrv5ZP/xrh9K/n8JS5N83Pz+fzr7h27Vp0Tdna2uptQq/X69v1n5ibe9H2NiFEJGTHppZ3SI8MyVkVHFrWDJYOyB2+7OVJmxE85YCRqCOIpCYEw0QKJROGSgo2uWE5qYKKLt0aj/I2O8LhRYkdEkHuzN0Xhepc4LnhTr0ol/itohsDcbd47ru+qkzY/TDXd7F6g8pc12SOE7184vVmZ3vuZK4HStHLK7c3O9vzJnkPGBgdL0laCudKK4n9joH5O8KNjh9PeVniwUhxP45y229QdGN87culdX0fv9igtKHJnMtaq8p7wE74WW/MhzgA9PLKm52d7XlPbvMM8B08S+LhrV7jEtnfBxhwmZ6CvVSnKF+9k/DYdBuXptsu2ggJL43YadkO4Nit5vOzNj820mNb/njY8o9y+iQcuzn/wAfxlbJPmJNISoYk7mQ7Laoo7tKgGtaV4z1B3NELCIvyvw4ePPjqg//VDxsY/uA89O53v/vdneQnkg7qDzzwwIOnZ+Pi4zZ++MMf/nA0IpRIOz/E/+TEox3vbY/ke75bnNo+t5jkSRpDw3sOZcEDSRSPCDaOGewITIrpMjpXrlxpfaSBbVHgoNOHbEDHj9SE6Tfe9S6sSVfeuYldvvmyeKCAhtkkMwJTJNowcmzDL2LI+zDozP3xOiwCjonWmJnd3e3qel+BtuI6FLXjCjYUQNm0nZhLIg0EoaurClCvd+PmY+oRTbSTOLagPBfKuoLXzWiazgDpoCwR4oc/7fWSnSLvp6r2+lYfDs2hHx6IxKWO0GcjX69cFx0RvK3pgLIkjSRppGm+IDCYlHLLCgyCB3STdtrNM9IiZ5rveyrE2yCORGxYnMsUEOZEgXOp//O4ws4tvAzbZIUcJKSXVVo4QVfXeaWMudxwXDAc+UER2Wppkhduk+d5GFTYj7K9atu2YcmaXW8sJSk1uWUFQcOynEbdtry679dq0rKi0DVXYNRxHaNJ886nq86cCFEUJYCrFHF8OF9wO+0wBLgCyDKoHzRbbiPqSI83PFeBqpqdBaSEEIGQHZ8H7WX5lBC34hVJKLHD3IrX9MMBa8f9Wyk4+cLDy3/r36bBAzMzM596//QrMzMzn3hvK0mSP/oUXvaZz3zmGwmeM0cO0AN43XZ0zV5IEbIwHkh6FecMaqL8REgeaMKNsODnEMoQ40cREwuYP/0Pn80CzmAwYJRJEit2Hziwu2CSxCgb7M9yTg/wPNv/TqBC8f1Tf8fGxoYoiuJWs7kliqK4ke7edeedu3anRCXKztfwGd2vCR8jP01+ifwlHDwXH8TPE+J6ZVHYYSsGRcYTPyiHJSl37KAaFsPxJM34oJD8oIwZbhD91BF1g/qIqqLy4qv/XMIHEUqPPlrTD/idQQyUdBgGZc42zWry2MgZobjDs3xg2PJpJm2SZFUO00+5xCc98V4v9IoJz5CwWghPGnipQfEHlaatamnJMWClKCZ5jBXzaNyx4Hy6POiKpqkJcOdwgNx1U9qaD1L5xuFQXpVMBAQSP0+SDtJJHvlTvUTDCmrKpXw/3DCCqekxpAHHIFBbHIS2KhryuC4hU/SMs1wKv290F3ZHA4F3HJIA9vucl3qU6pZsGDoMVQETLCtbtG3PwvjAtG1VYXqIc0qFBrCU3OJX7EoIV5k06jdDpY0dWI4bottqZV6ipA3gf025jlYOGkCglArBGEqBfF0JAZwDpVyAQGVT6rqUSgQZWR4XXLqMhYKbQDDBGXcQBWNZo5mmTckEpZRxg6gkY5QJyzaxsIyUKJTNqWU5DsScMaaU5I7i3AOHMmMMUsoY0jilVDBPSssYLiXjQluWkcwYwzlzjEUpAG/7xsKAMQDe7PW7gDRJwjRNbS4QOQBlBiA0liUAbC0RpAdHBCgzYeBqIRkCIKDgduBrTgGQMrgAAAguGsAdpgWEw/8ibXA0AsDGJIsiF7wgSJE2u90kt6UJW+3UlsNB0Gx12y0uOeUI1GYsJJZKkPN5VD5nPjhcXgIy2kRs+YoxaVsh7Pt+wwcGgEZpkNIwsCxLGxepFBKNEQDCiULcp8gBDAVDESh3bIFMI+WMSqX44c83KdoWGBkbC8FWGgFQcM6YRnTHlmNbtmlZGozxXK2dIAhDz7dY02lk2aAnddJqNZAiQ3QdRIrcNNqdQAVBip1GQ0vte1EYcq0c15aInor9zPYhZCy0baWiDDEJIik8J/M9kUoUXKKUjm0CCR3KNIDmggMChyGnEDSjF/7vQwQhkqijb8B34XOkQ9bJHrlI7iRPkKeisEiwf7aeaDJCS+PoKkuzsh+PtlUqF8u0gUUrZilLAgwSb+zdBUa30yJtqH/d6dM7KDc3a2WOdzu0ga32XjvLxHw2K/8jz7L29XWtTb+//Rpz+vStWh2fTltLvDXY3DyTGgsXx/am3wWjk/lkImWjMYbPNepm9tK965FzEaetVlM2RKORTvORtB07H4rRaBoxBrOiTH5DB+RTMg3DYG1t+/jtP5ZPJtmJzU0vFXKirfX141IKujUZN4kmYzIgj6iAUUXaWHvpnY1n9XlOilJ6rtHdMacfC7E8DiJkGJLDcpEXDQxO+a3DTzA8fvyuNO2W0/4AIB31st3BH1u/OstHIKUX2dpx0nUEY0IErTY7XcDhaG1zOESQyguMMla0ho7TVmrY6SAOR5sfSrK7jh9HlgIM+tOy+/bOHOyW3fuisGNrjb7WCrBpC84AUfn+5lYUel7TMRocKQRkDhcCUARBsZUk5+quvw6vh18n6+SunsdtScAjXSen1SqbwQ10FqO1JWUtrQ8eRzRP1gYJjSVSyBoIiaLMZ16lEs4d/g8IDv9Hx7JACM6NUac7HSGBUritqRXC1D/u27ZNnedFANF9hzEdY4DeZcOFwMA/juD9qQfw6+D57uGNHv/oD0l1eTCUChiA49jwvw/g2pMnT1oIkRMhF1KniTQUqaJJfA0A3OZS9DHHSZ8slXClv5VMq4Vjfnivy2RpBk4/M9NpJUmtcl6cSoWQtzNJ4B2Hn4Wb4b+XD57f+Co2b7OUBJDKus2W6stK2reM7NxiS4UczlHPv3TxR1fxMt/LPB8Of6b3+4SHllJKWYcvtqVS0n7fb/u+15P+uOUOWfXyt1KiHJW1LCvHKvl9b6IslbH8bpHwg+bLXvKSl7xEATSSMLScMHRMFCYZqJu79l//0A/90A+ZNA1twR0XHIcLO0xTkzvTxY6O/hK+DJ8gG+T2/W1miTRmWNvG41UJHmkVZRGYtyGzpJUII+GZFw+OzTQTEJW2WxZlPxWRfA+n2ebmdeF1m5vZyM8Ct+fzOaZJY5rFsZqKIGh24lgtZZJ0xA3rGwhvXN5sYarnHPR6/I3X0iTpdpsNz202+u0wZOegqu7ODPdyABX8GAlJTa4lj5CnyJvJe3LsoG4HoBytoqblkOnNA+GRzWf1rBqSe4yU/QEd0lZJRaOUkkFBWgJE+gdKNmmapZJNjsVxeuO6GLyZl/AD3LbDgFK/zBpGui69uqqqfh/w2vn2dpY5yDmFU3keMvsc5/unnvV+sbNz9szaOuW7O2fOrK+hFTEWTbo9x7Wo7ysvCjfWFze5/f6wb1l8aJjtdtQ1DeOkqqlc91VN45ofK5IgK5Igw3QNg8E0Jak5k9UE0Zr+q21FncUjdw5tu1YbyLRh6KVOw7JcXGLvWqg3JB7HiwuN+vd3OBRu2VSyrCiadSXRKRcXw7o6/fWOYajqTKPVNAxZadQ7HUFgaqALTFAD3aBcEZisCITVyfppXHM0f/fQUHGG7xpXRDGB3ILrSOLfwNz8oVVK19bOzB8cL3YjXe9GS+NDXz80P4cza2uUriLcPHgoPnz+wuHD1oenn0S7lc8NBnN5q43740MHNz9sHT584fxhQggI2flNXMNnyTlCehIvCikviiwviqy3Qncu4jBK3Q/MSTPNxkR+fH04y2gB5xUAW77NA/S/JJiEuOZHURT5HqJBf7euF3PzTb/daXeCyexs4Cs1zpJkNpV3J7FpAKBhoGnRHk1XFQqr1umsiEkSx4wbqNfzfPkNQ8sSBFXBvtkU0FSKdrtUAM+dBJLous7sIuB5u33PazWZ6ToUQdDrrYRZ1oko1TWZep5ZMw8GAeh8jzku5wkRiLNzEz+HmyQgEZkjuwip4jj2C49LKVDSxJJm4/HYfrocF/6A61VmtKhONMqz3MGHpw/hw67Tcu//RMtxRxXf589O/wIz07+Y/LHiOq3nBW3XO3PGc9tBuLX1jK2tX4XrtoOg7brQfD7tYxZzwX+5QRuEkfF0ND2a3MVxxqErW3Aqf9bwqkPLLVcSDVU1BL+mKkDgukZPMQ2j6YFaNat+aMjofqPKM/SNzdJ3ULaaqLmKDHi1GoTqkucud606o/xuhv0r67gdHtcT2SQna+Qecpm8kLyJfMwX6tJgYZ2qLHzt4O1VZonL43EFAJSpy6k/dDEFijZJWYZrMM2qozwtxqm3VepTYNSV09ydT7Xs5uOiHBeUQY2LBtj7ml4wDc8zDMAwvH59xHrPMPueYc4S9idFLxgof3WBu3Hp/yC+bt1b3qtFIvUfRinkXnKWXCGvIx/3d/IEWxHoBAhmoxyWHjrMriwZFEPWPVP8AEQ2LodkqcHpYOq2eMXtLHFe6SiwN7J1W65N/UZDMGimJ/PvBvc9/PDDk24MOFhnNcCmqmoB2L21utJvy5LjuFSGzPy7+rHHZChwHcdxXCiQmX8iAAy89cCBA+2olwAHPw/YBwftFtDYizheXT16dLUN8sI1dKPJ+NCh8STqYtiGDuTxM+XwQH/uROZRGoaWpk1gGh6gbOf+8q1nASiEcuQnpD8/LrCs3vniF7+o6BSffrGqR8tfaQ0Ge1ZXHulHbbZ9DJv2d/efcBOP1Txxj6sw4mdYnMJ1dlEVdkVO1bFi8LUawjpy5Mjp1TVKx+PNKkmArLf7yCdf85rX9Dpzx4apYnW7XWVubm0yl2uLarPZy1stGZvx9NrbWq2W7/BFpeNeJoQQRmo7t/Cv2Camv8oTt3FoclBoumGLAUEFkZrM3Kpba2trq5eu5hfepmeWMdNKU9h2/dD58+evnEd5/fr16/99BhtvpAke8k7L8YtGEPzfv/zLv/xLX7l+I0+IaCc+15ALyUnhjMKVQ6n/t5Em8J/x4MwLeqsfjSfOnNs9fnxrk+Lm1pmq1/Nc+t7/yr7w/LNn8ZqoxtNnNhhd37jm3NYW+qQfHN0ZNrSbRo7IQ+TF5I3kQ4TUhjlTtrGPLGWX1iIcdhl2EgFkOIM5FPOaDTS1VcA/EMaIEs8s0YIoSH6eJVaoudwFCsSyPDMEUd+LJNnq/UvrTw1jssrjGB4Mbdu2Q9+2aDsI4NiGlzSDAHBIp9OLl6ZTOkAIgmbibR6z7YhZlv8zjlKs7WgFWjtfAq2dNgWlHEdrmKrAT1M/UMA7/X6Hw9VLx45vWfLlG6u0qvKd3eWTYNthaNvR3v54w6KwQ1s2QBA0C3+V54h5vvKLZhAA2C0auw51tX7Qsv0+SOX7llX4SkI/sCzLBMciywKwrIgjInLit9RmrhYP/IXktdzQcBZPdaf8hblT8soXwVdaTw5nohQ+T1Y88lJ0D+Dg8GqdPARg/fnq//KNZRm/qzLPg9nYDVPPgy5d3zh9emOddsHz0tCdzIzlq+4PWFLSrImglPUZaDaolJatJGx4a6UPrNnuNBjA0xCGbafKNfU2y/i+sbBD/aCBmQHw3Gzo7vZ7iL3+rjvMXA/AZBjYNm3jLcZ4bYS2pzWM2oAd1xijvSpHzBloJyJt3zfP50iHXCRP2qCWEyEre1t2wA6n2aqusH2WeNkXl1VFQZz0clbVs78J51WcxEurU9NHv+tlHAc/AEjwEERR4CMJqfUTHtk3ZZjAtrCr59nzKViPdj3Xbe/KigVYT0+J9EQ/ClXVt/BSx+6YqK+pfQuwBjGXaZk8ghD8J66RFrkzy7vCMRcOBaQmzWmrzNSReeY2JY7MMWevmBHdM4L/RLfbH3S7SEa0rnP55JNpmpa0G/X73S6l9QY9OVeFzHWNy587duyY9eh3QtTtH7Os43UGLmu37bIsqzbb70RA1Fm5Uae0fnReu20f2B7FJLGjNqofFwZ4VtySv9hSmqUYj8CgVSR2wPRBCDmafb4oQ+MnlLLkGhCaI5YkV3EtymRQWZckXPJMExFqn7j5Xl9GIxIEM03/dDDXlSRdplRmME0PlyRp+u4abn6iFrEH/2+RS8MlohOfZKRPDpDbyTo5S4gbIB0QqNCnnWgvFRaDaFwcFymjNXwutifTFgtfYi/MZfju8Guur6+vv66MoijC/Pr66163HkVR9HdT+KXx0tHDRx3eE/974vXnz7/+iSeeaM3/2+vPn59vzf/bE68/f/75ZXniiSfKsNgi8eI7TyXERRS2knzc/j3ODxPuFwjebzOtbNsu3UglFrwq+xEuTdwoCcowTWWbi0ubCTUn1WT824piaJxrhqKMNUnSDCUq570bX3Pu2/++ZT7r8rqOvTzSrY/6fiSKkhF0Rkat6/uwLU2FcETQNOuwcESAplq2qn0cZPCOfAJBGCdhAOV31FJsxGEAtxbSD6uliCBMiEz4zhfpGm4STurkTrJO/pr8E/lPKIToEsdhmEdTOyyCEsiyhHIEAS0tz3hSyWtTLnNxXITrVJ6/Sw+vuF+MndtJOi78bXHFL/8cT3jAQ08h+bNIVAeFllb6eJBHDtPnJ0hcCnkh+WLLgQ9NtLvYWEBoA528BiwcKB+2PBwPlykUqb3cH/tVkZclK3kY5mu/GY/G2VjiEv8393Ccc84ZfNpvNl25XAIKrUUpbaAcuUDLFeLJbQuRMc91BtUxGXAqBA97oeoM+uqPAeBEI8/3LKkUuIJyo4dJLIIIIdBSQRT5zHEsC5YaLOa6FkdqKEVEpoQU79FgicFgODIAyNzIsWwZJbHFFfVtBGg0XA9BghRurJRrAejEcyVXOvCDyRAxDgLvaza9sdFopIOLiIjcDUOAhqet36EIwK8KobZNjMwNAgCLulr4M+BCCQDIHowSKkUnCBujOLUFF6LpCt8G+vPs3Ozwzdt5Hjd1Vp50dSQFsG4iOLeBMdtPEnRszxXMploDpRQsyb1KYMz0URuQUgEKpqV2J3Bdx/EU2J4R2nUEFyhls6kzYywe0UEBTsa7o17Xk9KNEMIgbOy0223a+P79/X13/nHbtgEpVfyoooCEkd7RVfhk+/LoJXIfeauNgBFHCDowmtMiPOmqKzkZlUXAClcksEsiqGb4ulVZVZmHN0xDFQJ9RzUBLsnu3XJRLuWFISc+bRJLmHbSVKk07WzkOa6Wt926t8cwzzd+Vsui/eZCEUBRBOUZW29Sun3zRuS1LMf2+jGCHcWd7wEODMM0PBEGQBGt0A9ChKLfFnB7q93qdtqt9lpVnbttb4+tVrcyfq6q1v7SchAYowzjOMZ25jp6i9HZB3GyNnAcJxg1kAZJO46eywBYK4v2gwg0BF+4FYRRADjenOzEkdbJsRvkbvJW8suZujGeKLSEKF/fyKrbnY+ghh7OsjIT2UM7D2pCYZnQxYNGUkj3t+NpD8ujkaZNhRyVwVrCupkEonWjzMofofwdtyzqshIJ7fpZjZILHr96gSBoZn7AZjtbvucZYx7fKhyHUym8WAgZO84bt7a2ZJKmqbA8zzLgbm0HmesFQbPh+6zVasVOs5EpCUZKGSEg53G0vf24ZRnP87aSdqfFfT9t+QF4bnb71tZW6dicSeFanmsb8La23NhxIPBbqe/xZrMZay6Y9PwJPN7yA3Dd1Nnc9sBYnmc9vlU4NmdSeHGr3WK+n758a2tLpGmaCssynudtVwvmB9k2L18JGTuNZqbkDzabzQgROY/i7a3HDyifSqkSx+k2PG4W+HS5vb1dOragUjor7ewuuHcQ4xwnEUJGWnAufH+cl9eexMIDeAUJyZDskj1yRzRhu/QWIKM2vDxr5Tyfr26XpbxaZpOIcruRT8a4pDYt3JxxXtUB6bxaLdEyXxLy/zyFwXD3x356Np7gmR++fPly6vmOk9x022233XbHCsH3m/Cs97///e/fGwz2T4xzyPP9+zunhB8Ep+Dz8AWxXLCX/dtkuQgjOPxYs7G6kDwBWjUyY277u0dx2bLM/8zzzx5fKxGK4sT+eAJ3BUrjgZD9JeKSSNKuSDTJvl3gLLmDvIqQOq2zlStkoJEUZZH/0+tZlELmoRHJxhIoL0PyUUIOV2kSJ9PHJK/iMqsxr6zOY+tV/ZEuxe7ONl9bW9tsMHPenjeePn2adrr0OZyiQufpc+foxhtvvPGjOcRx+4H7mmEArVcMw+DxkdaajvzZMAoBomjwJmx3YPHG7czh7LouQPc/01pr/VAUnbDLrutcNabTNiUk6UA7YdQIONO7EEfDgc5QxLhqj7xHbiVPkFcx1pAPQSAc1KwrmiFb9y1ZFbZbqfoP8zIr/6yUhcwy3VoWZW2gDOce49Ky9WYiDRjmWvVdZw6yh3gUtXpxfHu+o3u12uVauwUnGvFbzYXzT1gx9nX40/1+X4dJHGmtdBxHA09wLj3X+9k2xyhsc40Ca+Ga67hOTF4bj9XsprLh+0nSP9lura+1Yq+fuAZ3glM/enBgMZnVFdu2Q6mVSuI41ko5wnM9TwjxpjBot8IwDFvtIPS2YLbkHSdPlgGu+JE7yKPkRblqgoZ2Zlmdr20TbHmWVFm16ksZQGgmpMjl0gxIsi25bCUuNFNP0LkY149aEktRFsvPuFwI4TpuV4VRGCmlVBiFPWiRoX8UXh6me9BoTibNJkCrWdwEUdRpBiG/5yId+/vQ6fY6AJ1etwNekj5cfvJu4Tqey4WwA6mUjKIo1FLa3+mk935g6uAtMFHie18mRbO514siANfLJo/cBJM8Pgw9LxwOA98Phk3Htp3ms+L12e6QeW/hdEVvvBGNWrFtkRdcwE6aCHkBRvlkkGTZB8UMWA66MTIJV+nWXL7/euETgu8ulysAwTywT+2fXBl02pIBTE8fnEZkLEQ/bmT9x2+wMOhLcezmm84AcJECessz9Wq5aQON++r5w+9jbc5sZd+Zo8t4nzkunKXQ0ToAgNDngtFt6YRwPRtIFSImCfVtuyGCND8b5rd35ACuki2cP3uCElsbcUK1jlupSzVDhESbbTWvEjh49NFH5X2fcLYohwcekHd+1N2kHB6Fx37xF3/RXNG3o4AHfkm/wQzAP1L76Igc4BV4iIzJBXIveRl5B/kE+RXyB2VJoIsD25Ihgy2l2Qod55NJU8/lYVc0aRtEWYyd1bIopXJKWeRp4cpQP2W5xK3Lr1sUJjlpmYQsb7B+WdV2+UGWkCAwwQckJrZ/vEJbrfGfSMEpFZ7fXxu1wlBYdugHti3F4Y+I2VDwpgscQYWAzoNC4FvAZrYo77qeIoLjbM+TcgD5vQcVAN/mNzub59xw7JGHFQJfKEG19UWplO06wVGAXDgBATM/UxRRAKgP580GF/LvBecUhIDYbzR7FKR0HD8Ifxiwbv0ACCeOHTuBD9mJY8dOtIdSfNaTVPMnefJZIrZzji4XixU9kG49n6/iCfHDD7F6Wg89PO0f9CAd5/mE6tOd5PlYTRpJJ3lecF7ko6K5dKeZZk1G0GozS5vX8Pq/gDfBR8jS4sQgUeg9FsIOlwoeL+bwozL4DILkP/fhSqfRK4oozrzBYDgKr3P7/WJzWCRJu1XtpQmiQ7PMkwDtLuJksvryYrEQJzY3LceV4/ENN7755ddcs711Oi7KajYYAA6HmxsdhCTu7sxOttu2bzD7IhL4mhaI24x00HcDuZ0QKLNUwoJEbxA0L1lWi84tbIJpniwT+o3KsX6ZJQSzklVJPfCLZbZMlvw4KoH/93d/93e2/XfG/B37zE//9E/f8NDWQzf89Jfquq6/9NenNz6E6ZQDhMFHP/pRpT4q7I9a8qNKfVRaH7XFIy972cvmp5/1rGc96/T8ZR+dTCaTa//jd/tee862906m1lslIXgAbyFT8gD5dG5EIkHARKP4nOrVvL91zmeR2w1esliUgV9AgeEkOnx5V2JRrKAssXxm7QE/vqhMaRYstDvkYqEf+c9pSDiSgCJaW69m0/UGAsWdshS8Z1mW1e1M8pFljUb337/W62rt+aOks3Vyv9mg5Vq5Rs91XKO7LpOjUYHIGePJ2myxmIwpWJvG6t7No7DZjPzE9z27320o2Wy0KTImueBukmSp4wCO8kHRyNIoimzHsrJGhkiZpowO5g3bYv+WSsHjcN7tctbK1gEAok53ylk2HI7zNEUAaGTlZDiMP5YDAMDJwWAQS38ty2JAqtbSltZledri6cZGcXPD8wACLw08T6etrNWy7IRSRhmlOpZKyChs5Umc9rstz+Y8aqWpkDEio5xzvh3oJG0RIPbRN+B/w+fIiwnhRVlVRVlVRb2qV/WimiVCCinwUeEUidQuizybQZ9MsQW2BshL39JOx+xKplAbu4RDw+YaVL01hQS4WO8N+oC9Xg0iTTnfaWZed5MKAaUCHYTYjWzbGNjachkDy/Ohm9iOQ2kcxLHnFYw7jucBQ4S18ZjB2XPP34NRfuzYNScXizEAG49n81kGWmOr240TiIw1MK4LWRTCfJZFEYaWgYF2Pcwmk16CYDSMi3KUJymD5s72PS86fx6JJuToG3oexAZU3UAeId9DPkJ+nvyXHL6N0KYvyvTsqmkt66Jc1GW1qkuaGWR8OQejnPYtq1FZ06xMZjhezRM7yLJqVUNPupNVIod3+bLiof094XbWUkRYJZ0/zqqtIGMkzXYvWdWFZxV7DroDBIVhe8xEEmcyPitW8s7MVnUJgyA4MZ32fG2Fa6f432dZpsFkQvktgJavxNOn1kJL+73p9EQQ8FeFYbh2ivnLeViNjPiKTusBJ8YIG/qD5fLs2eUyg/Vg+CKl7/tKZAb0lq/Irzb9eagPKAA90OHcbzqO6zpO01uE+oDSAx0uvPHvOHgXjWinM9Wu4+84jcP/I6Xs9PsdGbimOn680l7wYmfHd1y92+3QiDbgmOd5205j0Q2effi/fN/f+ftGdHe167x9/3lcm/zkcM/zjDFusOmpfE/vnjhe/QIPt+JWZtm2nbbirZCfo/Tc+AWpbdtWliEAnstnJrCt3xrnz5IXk/eTL1mPk6oaZQclLuu0nFa1lO93NFstF2U/uH9UruazTOTSLWAlYqUnF6Wspk3lRApJ8/f1Ioouy+R2lpVyVslqPkMqMuNjimcnYl7rUo8Q9bJaLBf5KHekZHES19NMZijAoNOAKllav5pzAtGHku/7HiqVqSY0G9lRT/pqvScFSFOA9MGqqjIF4HpBqBVIsRHFABfOUteGFGKk3U76asdxLjNqIzbMPgcugT9XShlmW2iYGGADYFyA4J0XAwilKaXMCEB4BcYRpVGMX5CUmvF7sjTNshR00DAG0AEQsrEN0PcsYezIdAolxfMRMY5BXKeHPEX8HG7SNNUAG2cBIMU1TwXQ3AeRmXu/ODo6+l9I4H0syN6byQvIK8in/D7kpPg0i6iTZCJrzrp5J7xR1oDRVlHWsXdgu5NiwkqZCYNY8lK0OYyp3i1WwgyaulmVlMUVEcssdc2TltWiWuWFBPlCtiuqX0KRcvha7t/ddNNNSb/XyACHEGoDGKXQaNQvQOj3z1m243U6WYboTE5js9VsIpjQnTgOzFtaad1qaqVV662S2UgpNVzy20HFp8cA4zHA+JnuZOx7wHnWth1aAD22j9RxejDiiGG4tuMFlrFCHTQbjgOXSmMQIGGAnl90HPoHvuCcebYBQEr12zAIggAgCIIAHx8MBgCI/JUckQEd/oSig/8D4zwfw9966Hv5c4ECjKnvDTM7YRTWHwFhLM4MIYRQ4utKFAlziL9rEATDKqiGWfRlzfIz0KXuwkARPXZeSQJXDw+SP+nfPOlZJk3Uk6ixuvkt8HRarrW+vnriiSee9UN7WWaEMkqnaf0R/Mzo4Og34FlwlbTIRUJSeUCDyxi+EyGFjEihO03Fp3JtblCZg1iYXUE3r6K85DhUddory/MGme8Bdtq9WaMhX3WwuenYbWXZPLWsfDw/XhYIzUZRrntI3b2dnXYHcHf34tQDcB+9+ea602gg+F5j5Hrh8vKle+AfcDLZq2tHCHd3Z7vXAyjL4zvDkecZdBxuxfH62uLi7i4SIOroN+BzcJVcT8hkVFYVHx+xtW0MDZKuAp/hyJOyWLZLF/MRU0xcAGJF+MKXyjiHX5DGaO3YLS8ImegPxuMoGo8HfcHCwGvZjtbGSA6+kMowTsvizjvKknJmlBQ+8I5jOw402p2Ua20LQAREQARha83TTrsBjmM7WWMRx3HD2Pfun0Lc37/PNo04jheNjAjiHD2Dc3iadMg62SO3kUfJSwiBWVYcEypttLFa2axWVovL9H4EE6MpRyjDtXmaCZkwcxE4FM+z9MPOUpdz7zAfNQN4o9Fuvbp8W10jXh+d56LT1Vrgzs7FZ2cAma0S2Piks99paa211QBowKdwOj13aWcHcWfnUrsDuPJ6UQh/qrgQXGUA2fMGx0EDThYF4M7OxVvmJ0ahQSaIkrObW7CELAMhLUuK6dNPDsgy+OjJcg1xrTx5cm0NQUF3mnW6w4YQSgqBQYg/kBtFHo8+D4dwlde/9CzyTlVqcyqQG9b2+WjahVuylh5KmOGWkqTq1ki/RKQx4sUyPRfhRMAkgTI3ksXsyigfJYYloD0usqhX2bBayeSL2kfHt4IwDFrfO0omVX5MCAGOEx3+UOwE5B1jCS7aN8dBMBy025AVyoG224NhEEQ3tQXndn+6VrYYHQVUxYw1y2JXqwbsb1EoAr/RTJrqdTQbfjCm517G2G8mKVH65Dcp+dVCWpP80sam6zn2OADQ9B0A6LTbGmHs2J67sXlxPLalkFGTUWy6TAUh3vDlpmUAd3/D5plvHF2F/wxXdR56emSbENBxcOXTlqylcpHWUTSOBFLWErQ8r6AawtuLoiieW5Zl+elHHnnkqUdu+NnyhhtuuOH8XbCEe174whd+57777jv8lfvu+1Eg//3y5csHBxDmlLP3vx79BrwRvkwiUpDj5AbycK4G/M/xmOKgscqwxa7O8zMVWZrNGvQhmeyoUKYxE4ShW6tykrsuM3PVxSw3383HH3/cRfCfZymF3GXa6K3xptESGDiufa0EVB84ceKEMEaNIsaYeY6vtfxwOFTGiFNKK/95hnF2+GVNKX+25XkolTm++lZVVcpzRYsKYbbWDWPsHxoKhDQv8gW3blXGEi988MEHFaLslEYbOmKW7b11rSsR9H2ebbMeNdr8AddG/bLLWPgtIyXwJv7lrn8Ob4JPkTVyh7YK4u9fIM+rYhlVq3pmpUM/28tRIyOqma9xObKO+Vr8Jypai2raw8XqUjab78YvyC9CxjhDep19gvmbvf1GM9lSOgjG47ltpa7D/h8CFdEonxRdyQ0EXABYBy5FaqiQGnFVFA5nLPlBq93ptFwEG57yARB0WBQ7u2kCyFj4fsqCYJGmnIF+Vj5CG8AF1zntUQrQau23m02fEMIIP3oGPgdPE5t0yAY5QUiUZkIWZVGuysVS5vNcxJmF9Y+Qyecon9fphpjL881iWZQfq7t2ZGwn4Th94IEHLH6q+2w7ioZcTZdlKV9qiuLYC/6FWfcoiMXl0BYSenDmnsvz6dpkkk/KMLyM1q3PWUyrLXn3LQ88+PizH3jgxvMWgL7m+je/Z2exWL7oSSIIOXoGD+BpEpBNcpZcR54i7yVkkmZVlWZ5Nf07Oq1XdWYbk9ayzm3PtCTsrZLGQmM+n6Rz9WyyqGd8imDYESUQeWAbxfZdsqqzWMVaZObTXNTeXNXTag5/BJTBkArB+kafi47xdYNbn/nXq+45ffr0Zslc7h5AIxxvPthsNteaa+8ZpZDFhnG70Qsjy7ZTACl1EnDhdwdRCO8dDAZ9T5zcYBQWgDj59xgGSgU+cs6dHzCymf8/f+QjH3lucskFKqy3f+QjH/nIrBVoY4OAoQDXbfjGCKMVo4rmCsB1G7OPfOQj4L4PtGZcK8hGMXf0l3gAH8cdmF2DDMmd5CnyPvIJ8tPk2+Q/AIMC9uBaeASegnfBx+Bn4U/h/6GlOWP1Op2IJPaUPKkWcl4VeTYOpEbiWUIUpGZcjSqxnFZiOaqmVVEtqkW1mIfX1Pn9hmqWTKtpIhku6IIKRDSy2tKKQ999LKODgMeyzigVsS5gs+wg0IqH12yYQ2WNn1eLZTGfyTiZV8WymK8e+WUNwtNX5EKm2axeuc1alIzsnxVSyLSVCOW/rY+YFZGPSuA8W62CG16RVOk8ret5Pn9umqV1ydVisS62hJdLWztCmJWYmc0myQKwL3T+Y+gyNpvZ1QARbr5ZFfNssZyW02q0jEzYU03zOBeE2nqSeB7PZ2+EX87enKzO57nUmWhCrIIE07hwU9disUm7tRb8DeAyj4fD37YsA2BeoSEC9Twzafdz4c74mp/6upNorgTWyhPreQ2rfP1EuQbPLJfL5fvAlYJqwZWitoUKqGNQbSulmAoAAsXUGjoyYl49qiwDaCsAKQXVlgVjSuklVTuOUgqUZm673bYsTSxbu5zv94SSWnOO1BJSMmNZALalmZTirFJKmiWPkWqEnFOlOGO4Nu39NIiWJZQC5CjgThlYKvQjEzFYK49v5GPbse1JvnG8XINihy2BsfYdWAKYEWdtwR2iX57WPUXBl733HF8rIZueO7+bAZbliedvHRxsbx8cbN3gAijJ2YSzJGGcswRSxjOXcQhDFHzSshmjggMai3EmBILRUkoUgbQsGThAnQZA6DGqBAeQKVNskigAVKGiyKWgzPUYlYJT1CFTjLkeo4pPgLNJogBQedGU3sV1nHMO9qCF70/z9YxxxhjjN58oS4S0v7G5sdHPoFw7TmxyfXgqhozJSXIbeZi8jLyT/Dj5HPkN8jvk3xMyWfCwv6+zpZFDczZHunNxlHpgX7rSBFTQPM0wTXsJjmxLAA8JkUBU8wfJZJmcnU6I58kIQCpg8GNoJEKCv1pX6dzQgjZHLSHnFqohsIJfXdWT4uWg8v6eROVx7qnDATxztswDHDfeYsx3XYhacYr+3vb2drfT6W5fSNM0DccqLyPHcZwosh3HjirfC2fkvSyXn+9lUeMRgzRMAX3fV1opcFqIcewZYT+ZZVkW2zZYVnbe930ffhTcwxc9fM/dp06HhxvSY8yTWv+L3XQ+DY4bHz59IsOU9Em/GygLI5YPh7e6oZu6t9Z1Xd9+O92e52DkOCKKIlfKKBbSjYxlNxu2bc4qLaUfcO5YClAKroKMscgY51bbCj3bgVsP/8mFaDTs9+2H5Upo21aEEE6Ok7vW5EnyAvL95GNZcnDvNpcVLYFwScAf6mDNKufFplAigwksnM55zbBWQT+YAvRrYdgnlYQvXVayxOphiWtKTy0fB4hWLEu1RJ3blZNy74WcGvS/efbWGzuPBkG5+M/F5zY3Nzfm58/PN9bn587ddsstt73mpx4py7KcTCaT8uRgsH8wP7Vpn7VvnYz+JI7jqLSHWm/FyWn6+BcPHBgM6JvzO3u6HaysrKzcdlu/f/vxOOiG8fXbFhYWNubPPfTQQw9dP336+vXrrdZDD+1dWVlZIdp5V08mdTJHDpHz5KXkBvka+QH5F/K/tWli0id5WjK1haf2g/OMx+PAiH6LlTYm1ifEDoVcok4w5I4J0zKV/Ni5cG8N/bl0xCs6HY1HOaM+JCXhUgi7OAjJGHgvnH/oSn5Zh0cT3/OlL1+NlrvKC7/YOlfM/Jk6S78Evwbq1fBUURSZqNgCRFFGSxRFJsgehSjxP7q+PWcOqKo5J8JirghB0CiWseW6rqiYrq6Ddmo6mC1Qlc0dOHCAuYzOaFRwGCCIgkQhcBnMZfRji/rVffYKuZZZGiD8/uyqz1wKi9kCrDMeheVS1L7m0ZpHawPapJbKGGiTejKleHU9c75vqEkcwiMChCanWFaopAGG4XYoNMYEiAcYHjh37hzAwPKMAQyGYdoCRE0DnXGPLuXsrP2rBUZvk8QMoFfAID48gm+CejWe4Cz/VWod1DpBHiYvJa8mbyLb5EuE9DJeFqIIeqGcbibfT0WJS1j9RO0HRRug4LssIDPrUWtBOax8H1c7rvacEGa8KBLuFwEMV++KXFR0LEjJqjDL/WKC8xizr/NUaZkG1VKNJc4PRp6Pv7PoLLWer4ui7gP+B4r5d+T0Kus7vucaoLauaaArjm07Omxd13C02WxCU0XuWKqKtHmHIMt8NqJcUYWl2buNdzg8jSj3PBHIZyrvR44dOyaGXq3WmLEswDRnGobxp6jXQSGNJdAoYl+Hh8A1/d85oCQaFEUQZNnOISUKZIUJsuyuDmu0Laiq9Rw5iinkrZdrGkBf/nKHc96Sfw7yPP8xRaGWHcWWVYZUbiuW1W05ruu0uETsIDaQghLcR+6LpEUbW9o2STNdXKX5JmrGO6tVFZmxrsxl7CboJBFLflv2v7IaFH/iuq7vpZHrwg9aC65jMlFP0juqOAaNurkozTLMLQi71bMLnYjSYwpv2zawZykIVIHZnfbdB+OEvqJo1O8ry5LWarRRX5gEIdrtUjcX223AdZcK25Yo5JkIs/wuBtcZ7HZAJVn2uoDnxZp2IMuQZ8feQKlhUs5gp/0cbD4iSOs44xiXcphEBRz8YCKu6kjCwI+jjV2F3GM0FQjZslbSSHj8kTCM07sFAHP9+0w6rqY+4ximrruBbkCr1aK7KdYLx9FAwQ2z1QM01QEEYQnw3Jk1qUebDSBgQt3b6juQ9H1fBvmr9UVJZLTrODDNZMaqQVXQrQkf9NZphrA+L4iUeoYBT5dEBmi9jq5hIITwLBGCpnVamg7Haeof+n+NXsMXyDy5l4nEUlqmppsdiXvhVYJ5wNFnpDXKSz0w7etYBzhmUmV5XETxSIIwfmoWF4HfS5CLofpGTSp65fDhw509e+9WfT5qcRxQGoy8hEt0bXVrbWVlBmFAaTD9hvTxk5rTv6rEgjT9vd/7vd8LKA0G1tA9Mr/gEPcoGyENAjruA3Fpa3WNotXq0yCgYeMzrAPrXTKRyNLOTbwLN8kBskmeTl5Lvk3+ghCmtEVL1JC7tomdq5SHnI5U4wqamlae5WiJzSqQkHX8vKjIRECOdExYZGnGOSZYLlyCYyXXAz6GNiwOjYLGSPUXs1zy1M2H5bDEQD9jVPj5wMcJ8/P8t8F9wiUOfRUPw3V1cVbSNI4s8/FdxzZNWaSgUq3mOm5d02DWdEZV1TVroNKYYnn5jtPlEFC1NGWaajiz/t8qaZqIJP4pUVQ1K6HMUyFpqiKD1mqWqkHRHcescS59YengchLbuqKYXDc0DUxROFdl1eSy63iepgmAKCpKCIgCoBuOXqvpsBhzmjO+DzCm263WzIyhMqqozQcUTRA1hQnAX9tRFHVszzRBGzNx0tA5E4I873YpzFows7yUcEkAbMs1TaC2ura8xOja6ql4pqE+qjfqjJpqu9OJahTShT1c4pq2/DCYCLvdbresX6JhONOQVQrPDUNd4hxfKsJwIXZsoGbZNpfBeU0xLc+r1QDDqPmuwyBQQ9eNwHV1RRA1l4JCkT2JCWCMS5rS7vR63VcwCkVVVMYIYYTs3MJNbBOJdEmfEDfMw7SoKtu2JS7VEPOMuSwtWAX6vRgW5a3FxcWTi7euTB9aBy9evHjt4tln1c9ifnt7e/u4vOxZMv0yFqbfwML0G2fPEkJCYu78Hh3iE2SDnCEPk5eRN5HHyIfIx8lPk8+RXyK/Tb5N/oz8I/kPAAaayLCMCneiOK9Nxlmee4hpio+paY4IfV7IC4kPfD6oIKrZlPyhZFiVgJVa+vohpwH5OTrLxTzMy8Ifp2WaI0WfP+YVH+TJmpJBMTJHT8PCH29AaTDfSlX4opFdpyp8jrMb5UZ1AnGdpUXuBvE4rTe75shPWVWUacB0sI8XeVHyimvOVngx9p+c5sXYX0UwNp8W4zDL8/pOzAvXAtOqAjaAlziCrq2Iatoq07mlwuPTYSqFsFefPIOC5mVZUhirgMnFqyLn4lWBmxSrMjDRAK0CtNEcEzwqcBMYaUClAer0uUt3E2C5LEuArmIksHJlZYVOuirHAKQHHviKpmmBho2NjXs37pXuueeeI9LL7GdTuos+sPF85dnPfvbajwkvFSRJuPPd5ZWYkDMtJ3v27Nlzz/zs7OzswsLCuv0oZwwPnsWrBEkSLp/Lzj31RYIgUJx5rpN64T7T1PM8wcahqqoo9dMV/O7999/PBINeoswkc1DXZPSyoALnmK4JFynT2WnGTPj4vRQwKT3DdMouMl1nf3DixIkTmxSDcv9kMgEuUUrpGTo690i/3xcEWLfdW6vV7tyTA/jxw4/gF3Rd17WTJ09unlqX1tfXj7dsDIGHIAgPn3oZffGLX7x3jwAIk4lEKcXEO35PEAT7txY3zmdZlp04tby8fNLZ/XEGnLkoAMLFizrnHDi3Eezdu3fvUd8Bfdrly5eB4PF7AFBQQihxd27iZ3GTBGSFEND8ZY3cJFrZtgsOVW1sJwgJszEsUhz/9re/nfPKHZH/Wd6YwSM/ayoscce+zVAUlLdwCs1m/udZmG3nxTL89JXpr0JRjevzNl869j3Ivo+b+Ah+hc4xhuaVHHHTVrnEe5c1iPmBnvQ2+KQKwiyvpt7cJAntzrDc16ifP3o0xZv85nPuuy9xZ5L19efW6tKeQT9eyccT0+sI+pUTJ9JmJz144OSbZ2b2DctOG9Ls0WMXvtp00/X7ntPyn7uxkfxfthwXxR7e8MzVyTs6zfTuu56qCScPHUoJIYQRTghdw6uJT/rkdkIQ5mFaZDxLEy5xt5hUw3BSuUme5Qmne9JI05ygLmESBqGbM5dlacYznnBGnpRW/V/68Jparaat9vurcafTiZb7exfmdn+uF49W9ywu7lkddXtY2Hd8rSjWju9bWEySpBjtXlraPSqSNIqy1X5/NYuiFPf993//N9otmRugDhYXMH3CqmN+HnUL5xPQKKJIpjeWUZ/+Feo+8hz+9K9qitJuK0qNEEJEIu3coi/BNpklI3KEbJKHCOlNxj7zfAvUe6cKXh7SbHPpsQPI7FdnOW5OtCXQ/uD47qXlWj2aDetgseOCJukIrxilCcVMY2H6M9SITErNyKCnYUYmBkpnpvys+6nR7m8b9A8d9/igH97oX2N4QL2eanqt05kdpSmQpqPFONZ+1KDUeKZJqflMg1LjtSZgvtag1LhhAuYNg1LjSZNS80mSE7LzS7iJrxCJ5HaiJ65MV+MyuUKeSV5AXk7eSD5E/oh8l/wJ+WvyL+T/IcGAhyYSzGOACvtwFCdwPy5w9hNnYiEJ66uCG8EQR+PCBJltB6a95phTVoNDpt8ZNk0qBVqHIdVNkNoD4DHqlZbj87k0wpcrQ//YnEKdcaoGlkc7z8arJcFul9Ktr2C2bYdFVdgMx/AYu4gL28b+suKmbfe3cHuY+cr2fMKd/SFPKnrV1X8oiiIhSqMoEjo/IQhCJN7odDpi52Vjb/3dmsdEUewIpwRBiIQ/iuM47idJkgwc97Y4juOL/91y8Za3X8b0Y5qmaceSJEmOhWGYaD9ZPNrcV2t8PoBlWYFDqQxJ1RQ5t65qrjuWBWrZ1oyvTLpCug5FMWyz9mJN0zSc1DRNm/6Upmna+Ad/0v7lX/7ln8frpy/53nin9sdf/vlxHMdPaus+Fcdx/KkRs9NeE8dxPEiSJNnQNC0OZpMkSTLTNFWzZRiGagiqqprq8tjqBcMwFHOgqqqhRtPenkxRFEPFverPk6bfSf5H05LfpufNl5tr4JkO51RsrkOLM8aYIlFAFHxX4oDhKIwxqsqUQhCdreRnk8UY902v4r3Tqw88gPdOX37y5MmTMKf/gsXdu18dq/EN7f2xGt+vHYpvJD+raVqYaJpGCGFEIAT/h2skJiNynBCkZQovQQBjiA+dHSBgxS6yPBqKhCwAHhljLvxq49EUT169elWT+Zdkrl2tM9rALzQoq08/23Jj4WxotVzXdVt/NGgmTIdrMtfm5jQu0/r0M3VK6zhRp9PvwXXaLZpUidtqB9MZMg6yk+MFeg0vI1e8GdHiKrbqxAUIYfSFf3HIYbsoAUM7jycrXcOCU5fSBQll1Qo9Pnz16TXE8XDfwsJsujC/p2o10WqvxXHcpIIiK5AkqTs/t3BgaYnShcVDtxeDPJ6dHRSWZVkrNUOTTZuxLzbdeNh2XE0WVEDyms323jwDHKff7eKFZdQFzXrFoNejNOrOL0Rd6JpLmUqhSlwSW5YNzOUHD83Pg87Pj5a6XcqSOEkoRBGmoijqsBsBiqpwQJOlQNNo1turaiLanT4hIGTnl3ENXySbhLgJN5MqlWk9BOEpsDdEJCUmM7xuwYcfsVypxTFxDkGt6Gqkv3Xvnr2M+r7HBUGSRAk0z/eO4i6gyJ6XuIZJNR0IwyCkqsg1RVH3PY+ErqapTFQ91xsniW3R8eh2fHHQ3xy32jANLsqKYbr7ehnQao1b6exME7rutVqtdixz25qfqQcz8wuLqe9zGYwtNPVwe9sNQ62h293e3r1+a4sQQighR/KnrEOW5HVf5nXB/i6c84SyC/b/tmSeLCeCeLcaOMyw8EcRa0S7enRCWchRNcoL5j2I5hjNYZOxBvpFzAdef/a+U7NZrwvd/iuqY6dm814PwmDwsfmmvCZiHcDl4sbrVzXS5fLGJ7jrcslZiMG+Rhh6THJF6/MAGEPBgQuhgQsBoDUF4M1G2XI9W9s2kwwR93joAKDbm81OnZy/rN9++Mft7bW1weFPQpOF5+X28sbFElar629cLvBdVArkkktJBbdcty0EczkHrYziNgUJwCwrigOfAeh2O7IoIkppUk4RSFyy1g5Z2oo5qYl0meqxMEzFVCm/KW0kzlrClYODg1sevOVgOr3g3Pqse+551q3u+en0arvdXrXh6atXXzwdTL/1relg+uLDbx2Qks1TQojBKz7ypyrz7BQBeamKO6f1Gyq08AeD0Y345Rvmc8T5/Ibrh0dcD4Oy2Wo1y4Jm/QnFux2ttXbiN5/8CpwvbrhhMccff0MLp9PLl6dT/BuGsLV55szmFgxwqE0V6ZNMO2BJ7Kg1T1vIUi0H4xCm7HVjf3jjjTcOd6Swt/MbumbD37uPyAc/+MH7XKd93/sfvJ8Q0jj6p6M/wGvgV8jT5KfIF8nvkn9H/hP5f6ChAZtwADfAW+CH4LPwVfh38PfwXbRwgBWexzsImaxkUa5kUS7ykSzkYjk7ypORHJGxOs+qXmXLygdMSoqmjM+LSBocCzgNLHdZ2gRi7Mo4mWVpNpIjWUiCVwCY0aRh0FMkQhbZd5btcVobYXQWZbkK8B5J6RsyboIIjSPhDrw2m08rntoSzJ/DrKAjCU9k2ZMkVQ2Uc1jIerY4wXkM53kpaxluvZOVabJ8SvZWqmo2T0tMeExvmFdVmqSybHhhdzDwRTxberNpmgrZiWmd1qt5WqeGpnYW9XVXFm+ACGxdHveXuyyUiTrBwS6ezl9Orii5KGPbIRTieJWudgdwyd5O5Lyy8CccE/dFZ5WlSaMVk3atsgR3TXG1mNdyVOapDPEl9zMLNDjm6QS9aHeWKi6ashgteCH7w33tccE8qYXgnm15HqdUhtS2qM8NI+auA8/ztKaIyIUlpQIQouW1V2fPnhC8la2NU8tWiIxGoWsHjANIJVJKPe35XqBsK2bMpIu2TYeKe56lQy6Elh4T3NMA2Gg0Ot5P/qTXaTQaANciEqq7xniTe1ICUh1QSo0SDYtRJji1hTi8FyhVDgA2uaYIUrlCGUppoKdCCtsGKX32uUGaACTpYJAmwzN9SnDbAHDBPXcFwIzvawoAne5lEwSGA4ahZQGw54YRc4fZKJ9zNrYtQK4Dn4owsgESlmSAngCg2vOUIIQ5L5mX5Wy3KIYOT5hluV4QmEYWWVpz0ACMWQw5BWC4sbc3oy7c+pGPLE8G7uQvcfZrszxxbJcyUMgsxgA8fK4JAs9zbOBaW1Ej+zXWbHa77jV7h3/kBgGCNo62LMaFsP5d6nqAWdryAf3AZp7f+EsQUlkCKUplDMDPW0IwblnGNhowCNxUIkXuSCnAMqrtMSV8yZnFqTZG69DYsbC40QAUbaCcacvzXNdxFKdUUWpzTseNTcZcAK55aGujEIGBsoEzB6milIXDYawZ470/64YUwIDhljcMtY4VcrAZV4FQzOOiGUWYCZFhFDW5OOTaaOP7OnMkd12fMcWCILCBSx2GIQz7qfZ9YyzNnazDmO+6nIMdBAHVLnQbwIFCb/jJNBkMkxQgTYaDJP1ZNwylzNwOoPADShnzPbGinEWRBh0nbA7g+L7SXPm+1wcAo1wpYgsAweMIoAGl8C3TAgCklI47Hc9vd3Ihf8ZRCizjNYKAcs8POTubxMio5IgUYXsQ9DqNAyEAhoEUAMLEQ7sX9rcRAJiQyDGJ203hGQuMDiPPZywIGvDasetJ2RmfOPwldB1Xc0apUspY5rPguHHHcbTwQ8a8VuDD/+aUobC4lIBKyXPGMkopShnXruPiBkghLIGMcqkUEkIJOfoTfD98hoRkQi4RMollVYl8VBbLBS7RUlKOrs3hPLOYCDxBmFUNI4dFMruyCcoihx9znCh2HMeJI8c5NATiuI8ejD98152zWcmF0+9de/m9ry4K180nrY3JxX5/lH+PfILdWQgX8BTBlTJJN5Tu9HpxDOh6rdYoXy/6xyfjIPDJYwzw935IVuQacjd5EXkP+Yk6h8Q9Iji0iyU3vBAyJNrrKsplJtHR0jU+yatRzgrZvEqz7BlIsNYtfTpWZlma8NrZAn5lKXCkCYAxpDl3MZF/996TJyk9efLe4TqPQLuzvt5pgwoVYK/X6+GfuX9A/7s+/lf5XWCaMc3gveDP+g9RYIznGZN7Rd7AwWLR7/f7i8XBozPgw2v+RfeePEnf+njQ7qy3FYBqrzuu6/z7meKbPqL/Ph/Af9873/rWtzL2VgbAponpa903iWeMMR60184tOdvh6H9slOQ3CHuLmhHZIOfJg+Q15AOETJbJcjaf5dOagE7DOdIuFt81IcKnM04EWzXQ7ubzPM4qIcgJ2M29od3SwEIOksP1rF7a0/llJv9Ll0W5CiJpLOM+/uGzXc7BBrAZc6TZAMpcZTvSZRQcAOdJ29J//egVx44dAxS80+00khT2HZvCLw6LotMG6HaKsleMRoijYfmrNO9hjpy1mqdeG9r2NweDAXVcTCCnrks/b479Inlx4E3iBNyOAIRWs3IDrsHzx4XngepEXJSl4FHn3i4F0egiXNHaI8R+LQlJb++f+v7zphjw8cj50BlNnInz2ulZZi+OU4QXRO9shU3yT2eHGcbZ8OyZ4RDj4fBMq5bed6t2qfrgPlX/y+rwI/YTt2/fvpznGOf55duXl1dwqTToT+Cpi/y4PDvM8NFfsVIYx6US/aVf+qVfoqVSHIclBqe0eJdydB9eWrp0YzwBmIxvTLpd3+edwTKlt4q20D3oaXlWRikDFR1SrqLzG+1Edh7Ns9Pil0RMKpQPdxoW9rLxDPwo/0e9XpdkGdcl0SzKFd7QK1YQcNj1vIH9phnqVbFu1OwgwOC53sB+w6nptFbldvDinR7bnk4bEUCtNp2e3F2eYZhOb12fzTC3snr5rwuFgsZxPZNRcHRF0wDretYtmBD/9/MFw8Cz+0VoNKbTnRPTab0GtWo+PXNimtfrcLTGzZYfc2VlhcOz2fW9pTxf8xGIYQTPQB7KGF1TYUgVn8nzMs7zOLSbTJ7r4Xw+nx8e9gPr4GB83n/vfD6f++fHBwdW0D88/J35fP7I4WHftw4ORueD9zzyyCPz4Nz44MDy+4eHsasz+e5PwX/HufotmKALCF845OBABjavgArC7XXiTJh4LwDlHMu8S8n29/f3I4+ePx9OvAtnH4zjeMTref7si14EHXwpR6/Z39/fjz31/Plg4l84i+P4lnnnz+7vx+Ougrvfgw24g9bRZZ0Gr3MEaORBV17siwTxwjJjzCuXRhuynDPXRNPg0VGzzY0wyCApf6eD5fi+5ZxjhBi6Xh2c0w2diJqsBFXH9n3HlxVF0DUbfL/XC3xb14isyP6/4zjJ8yTGw2fbhvz0H+/pjBDsnNN1gxBaHazkDzVZDao2JoTpjJmUF3TMKMaUYV3gqcmY/nN5kgAkSZ7HCUAS56FpmmZYMk3TLCHeKL0UpWiEnhlzldWZradEJd4F3GHWNS9hLSfYy8DKBItS2cdDv4zkYuNi9kcuo5S5Q6f1YUC63g8PvGLRG9w+x64wWeYIITozdMoWKKO6VV7UKVWJKAiUMWoYTCeEcLLMDL1U0g3ILce2bduxHmdQNcdNaLZbLYBWq92ET8scllRJUiSeB7agM6rapUWVMl0QBUIpA56XFElSJczJoQdiScq7fuM/wR04QCHajgxMej0DJxJl145rg5s9smu0NBsoKXGP7gHvPnoLPOXoLQVKoVzJ2nlcpQxULXxUoVSOiy05K7x9MUlRKma5ZNYUWWaSjGWl6UZwQGnhVU/jIqpfZar06F8lKXJSRZ35siSxYpbCQk2UsCwxWVUTJ8I8+if4Z3wAb0TPRwg+rHjfjrJmqQ1GTCgWkvFkTIq0YOe3vVhspGkzFWGeg7lwUHSjpcl4UkFhiv3m+bGVPetrCzfL8EFbl40wjqvaFdOqVUAkEMVJpBRd56NGwRBEquqe66oio8xSZZtRSqSCob9RVxTCVJUJhqGyMVQbjqGTxFnhNE2XRIKfLxq6fABvoJRyqZ1sXr168tEoXl8FuHL56tWi6wLHCRwDWTa0MKxPlyae5rpBVLT75TBglOdBY0AIK7t+SanXgjLH8xzDlRfI1Wrd0vHgMmgFQoALhBASEAz3jJEhqXMvudQXkivkg+THyRfJN8mfkv8BAAo6sBOFfMfoYvj1V0lWy7A0kO3ApzSrqqIup5BdKMamZVGX1NU1AamjtjaSUYHJOSmrZVVVicXCNz8Yi1qJgaxNMllfqLXiwRvX1aoIacvnmeXI3HRUjbNUgkM9Ma3QGOxq4GnNulq5WZCWtjNn1NlEVz8BxoMD2/imgqgoiov3XmjSj3qeRyC0PgD1JKXyUSkllQIFlRQBjkuuuDMAeR2lFCQg5QwFigMhLM4Ftxk7BtKXMLDj2hJBT7TfE0ilJ+mDix8hqUDGKcLZz0TCuZvi1IF/8i/47Gc/+9Rn8+fLspak76/vHwzInymK4gVw6wvjVTX9OSEEEXCzhqV7PG9zHgaU0tG2q7cLlOXw8USepBuM2Vxwbgnx7r93vLzEI++gCLC7wr9aPLICWWSt7Yz0zh2y7ONf8NRTT332qT/f16uSynP7pETyhcj7ZEDm5JqoHgbbk4jACV8t0dWk/IEfHenPmkrgvVT80jwhgeELg253ksTXP7x/CuEFEa7/YNSNBJf4gpf8xV/8xXQ00jeMF4tTl44fHx3+DjSxJmX4U+jqxeO/0QtD+VbvmmseO9sbn5hszy8ePz4awZe+Ap3u9lu3Wy2AUX78yjM70GxOsOJOxKPfhu/Cr4LK1U6XxGjdtLc6ai+WxXJaTZfFcrqc5otyWS3yxbKovueqaVUsF5yhEBF5wnxRTpfTqlhOy+lyWi7K6XK0XHAczaqimpZDtapiWSzLalFOy0U+XU7LshrZIRMzhYVGMq0KPqBAAwgrttmrIzmVnPjDKfd6sEZIp/NZzcLBcDRlI1zo3LiVC7aLYa6pWxIR8oOzOEn1mjcwrRZL+C4ghzvFM7L4d4RjLmg5yghhO4y2u5NGR5GVpYs+ADSb4glXo9rdnXh2GnZ2d4omCBSCW57v4EEFUebESrVV7Hba/QL2NE2TPAkKOzv31EN7fhFjwbE5tyO2cWHtYMg6zE9wcIRsKLf3XVZjsiTwMsGYicALaglAEzDIGos0M223ym1ZbvgNQ+cVBTAhpum6tuVsDBY0E3OlxqwxFE3TXt7mMIdvzZah3phOj4uiLir/S/DfcAelDAOCVpFA08EPPmy2Hfm1lEYWmg6VQVKRfQoiEWF5dzQWhFEpTfp579j9hGwvTarVSvUBw/07vfyRWiOqdsMwDLu1RlSbFEzTnMCHuNXVy1eONxy7sob5Rj3Pd3bk0+FWK0fPsACKhcWFra2FxYKDwRptb29tD3FmN34Xc/AzaIy20A+asJRDG9wBggwFRXBP4YJdAnOmrfdKM20KihIE2SnlQqly9NhEHPtCCn8qEzLNH7i6veO49Vrj6sTQGEAQtts9L/DDMyvLwfPK/UGaYDgtiMQ6uocFQTSIY1mOn4krlU67UsG/+C3DsixP10DgiV0qR1CzPM+ZMtblRuPrpXJZP/tAudWKFw1DlFwVc5CmJ3pECPxRPUka321Wa44POIrOPqkTBABB0PmeREQATfcM09JrYaj5FHiMYt5G53LFR+qmpawnAsJRhanrQDSK2M+EafgC0VqcfynPs6I4ond1VfoAsqZVLmmKoijasmNUMacDfOXWrVs157WKbdUTKhq6SlU7rVMKr+FWx/PP6U08l3U7DUXR4IWaolj+cJqv8iFjEAwW3dR1hWnanfbly62mCqVM4mbveceM9j5g4/c9DY5+Gz4Jv0KeT95KfoT8mw+5chPaPogWR71as17pXQicGmexCqe0hFJ1MnMGShTtLHcPBLMFm64wK/kfLsqijGJrsr4kCj7KNwMNuBxtcVkYpa9Pq3S+SGYbB2VdXJa8MEsyAgUzjM2J7FkcAP4owRRFjy+RO4CTyVJSptcaDYA4abcTFylAubU1LIqyrgtQigGGNpr/xREA+TOwOnNmOkUoJqvVbNY6AMbkcn2t07YlMiX5dLVaK+lfH7t4zfFjEToOeGcObr/tItNa/iJQ4AwpdTmTSIELzoOQSslDwQQiMiFYKJiNzzacU4qonPYDZasN0GmvV92uyxwbwHHWemGYunG8mw0zLgblalUWBSgtQCHVv6ZBcEYFh7euADa3rj23tmZMlp0AxrTGSAjfsziAUmLLGKmsw19eMbaxcatG0HfP5nBOas2fzxE4AKUb/BQQBJdBKKRkoWASEITgoaA2YmLoF/qBJDkg97U6do+kFELeIrbSA4JiNqElrTNeGouJeKvXVvVqnugNWWOOimMjndUrifZGWbwKoOVFsWz3A+9xnq1yrT8AzMebG03he3oPXReh0Tw4m4+udaMIW1wgJHEcI7Y77XeI7e0blxub3Z7NcxGpN5nPr7lwn6vXbG0oE5IJ17VyUrgpgOM4tudyROTQVbrZnNVJovVYe57aA89Lvy/pdikO+qXMlULfawlxV2nbxrRyy17/lNVqU4jCRuYLRARopCmsMx8bUloyijUHAEDOBQIA547tEEKABEfPwGfhaRISMrG4I/D+5EnFq6DKIX7Oc57zwy+E6qMv/zBcfc4dh4dcafL/Al+DN5OCw2QkCA9IbEyz12gfgriYf4yBq/Se+06XHSlDzw15L/HcfqsdLew4DIsOYpqkwwcuMCjOvPSVl7vNS2UJSdtxOkmC/Pq3tzuntxpDxszzKd5NkOCVlbNPB5bxMGL3VYZLdiOw/8ADD9x/cPC5gzN4ZDd4+Gv33HPPPZ+7887PyTqOF+QMuZ+8epnKZdvQcjTFnGaXjxOAOUGlXp2Vy6pzJ9wyAZe2rFZguEjJF6VGaf5sR4V4tPrnDLTAt/Otjv/ZydfhD4Hz1h7yrTcnCoCnHbi+HUYwh+DaRIqmvBm5n2qtZX8gdco6nvY7FG/tnf1eKZ0GAE5egkh5s4XqRXSSXEKwzFC06P9qNptUPl+g6P0gIqVNIMPhUAWBGjZMp2Ou1cwN9fgDcgt5lLyMdwY4laK3S2hPRsl0cEqBsWZpxnwPGF+sJYrDlsYubqVVFHtEeFtXz+rVUmYnGODsfqUAL49cl2eef2kZtQZJArYVs5Mn77nn5EkW2TYkyaAVLS9Ckg6Z68aZ53le9seBZaFl+SMGxgT/HWzL941hI9+yToLIyzIXaOKk3U4So4dgAqpqcmbB4+sGOE6taJryTq+Hca+3I5sFt+Y4YNT5hucKJqWg60VX1+GZwJhjyzJu2poGiw5jABpzmliW7ZMi8DyIrq5puosQQhyKU5h/FLXRBnqgXx5Q7BhG5+AMSYVJkjYb2sCNi9lStJhlFsmEhDU6uKisEDETGjy023DjahI6GcKKJAJvetlzN05dmy2XyxDFo9wyQQADj8cXZiO3UpEBDGw68e2VZcBpczYd8K1SGeACAJjewnopaBaLnO4MFvKFLiaCQOB9KUDUGA6HwyTCQFVJEABMb63VwmG3FBI4erTfaZWtE6f2WkEIUAej35/0SsWORAtx0qmWRpUKOMDzoggIIb6oF/wp+C34FrJQH11FiEGo0broJNs+KqwpKyQpX7BN4URawES5QbKpBgHb5P35lE4EQSioQZrVZsvnBcazPD3NG9+5k66trXUubXY6AJ3O5pnuSnUwmK4Ns0q5XMmGa6uLi5V/B8C8R9G7/53H2y2t4Lg42XzSA7RarR7ncKezsahsvbEYBAvALQMol8f1oFi6i+0U8APRBHzUNzMMGCZvkSZC4jxA3wHML89EeChJklfcd+03fuM33PdevXn0W9A6+q3B/xzdvHnzN170P7/ged5vXHvvp9L7Xvmm73znO79ZXj73pje96admnJOcme9G9zXoPegzXJ2MKzQStzXWssXHPhUhTuPR8CxF5nu2UcQDf0eXaNUmRdcxCiwuY7PHt6dCVwmBhHU0rZnYumCk3nc/Z0TG1XUd+OswDHmIgQ+FhC/xCZYAEGD2LfGqCjwviJIoyTKlMmgaBglAwrEQ8jAwc+BDHr6JwyAI8TeBP/ojvsTzJf5twIeCEPLwYaF2yPO1Gs/XagSnPNqLJ6vZk4ziBEE2DFl4KiYzTczzhzVB+N37Ykopje/7XUEQhE2e3xyS6+EKfim8nDtbJHqgu0i8y51Q4AvD6TyuCYDAZxl6CgJPBqCyQIKhUX/HoKx1deigqdys6OKXAn8Tcxjz8A9UVVRVC0G6KcHAXmHVMqmiqOxhYplBpQNk6lQC0yIisVVqBY5TEQhLSHhdEV13E1bRVFVRGeS8wN/k4Y7ATQCwEDu+Z5oQLvvFAlIIYVD1DANcXXfsSsV2dN3lZKW3ShnXwKDrblE3cN00Pd+JBA7jJSzEqjzGQH20jfLLo3c+YunxKrHpiR8XXSmjbRpcuglnxu9LcEJVjBMnDEX9qjDsB5kD8L3kucMTiefDnxuKekZVjOS45qkqSXwP/usM+F5if5l/GB9AiOIco8B3zE2wRYz9J+GDgxxRW5mT4AogjKYBX1JxZtt0UYDEe4pfr9frRE3XUpXUt2M53oazu7u7p0/vKgOX/PRvfOMb33j43cUvfrH47m984Qvf2FhfX0/H4/R3m9brdqkX+FV4OXwexeg88puyox1Gr0JqnwI7k7SZNgUHdCtS1qHzudHLueKZT6Pem3DHg8WFkyd6PYfDwzSc7rSiBofDyLEATLfR8GDdTyu2DZYThRiH91zarEdreivLJs1avVJSFCIUfrQ8Opc2wXVtDKe8Zmzbia+Ijh2EVhHjgJTBsiqB5YhKQMgGhoVmeFKLLBMUxQ+SOGo4CCHEo9rdH8KH4UcRQQy10BZCIOZiM3PFXMybmZjbYpaRij6EAoyagiqZRt2T5JyXSZUp1KY5SLrdLnggzqoLn3KLnfZs1u8HPgR+rz/bHQ7hgxcvXnzRmXBvLzyDX3wVHEfWEb/X7Xa7uy9/JM9JJV3RPH/k4dms6AI3zd9148aNV375dLi3F5z+7MFNxKHg7h1I4Q7yUBWlKA/WzTZIcywK50ZXeMIf29vbe+tu9YlPrO5yb3+gPbyb5nvz+fwDv7Bbe+ITa7s/8Y75fDgcPjR8/3A4HD7UHyvZT2MRvplZftx0CaMK5jKP2DBttQIdRUnxpA6BMnVTKdCl/FA1r5KOWsqXmvBfAHACwzv1cxgv/GABYw7uaToBnzAobcDjJzUiiqQ2eTw0VKb/K8b4GwIP8zzH829+M8/zH39meeEbuNVpB3Cx5fEAvNe6FLQ7LcQj9e4fwb/Dh1ELZWgDnUIoKb6bMOsEPTfBOkCGTKZAaIqJd886d+JMSNM4pZk3nX6uT/jFUBAqlawShgaRZWKEYWWxWhGEMDULa6s3b66uFcz06POdTqfz24Ns2GmNx913fvKTn/zkfiOO/QAY8zzGIPDjuLGzs93rYdzr7WzvXF1e3nVdV5fkmt+QJWt3eRkhhGSE7v5RW2JvH03QOjqJLqDr6D40R0+1hN5Cosg9XKFQSJvoh0Rti4jfiksgl5sj54HmhtRnd92Jr6z5nIE7jJpH7zQpo9SCx5uUJSDIT/EPfX//hYYDcHguh8N/vnz58mVrtVq94uDbX/va1752+8HBwStWtz/2GLz88PvhuYffH9n2Elq2HY0fD8/lcN1sdh3ww+/nAPyfY268B4qiKL5va2tr6/KoW/6iTHAydNx/NpRprVRVmsgvbcIumOYevPdZkfhkVOn+8P3B81lZfM6PfOyWW7tdkPSW1jXaHs3nx6dJHNjRzQ2tsB9HPmI2Hlc5RVdbaasZAib93gl4uub7ItzbG4fq1ouACulmOZ9fv7xmx6JUCsi63SGlu1WVeUaosCxyxO21tS6H5CQmOz3+VBJKTzFMO90UO4lQIOJXxwYzhXfg34XF4bqHOm1ZQIVAGQzA03Gz+l+BKk0VYCCFZnN3r/hV85yKAzCGcd7NaGpL/3oQwLlVu01vR+Bo0oSC1hLBdaWvles2J42mZois3bccrijApuNsbAhA1/WzRsNmEFxAs5zy14TnUQT0EcH3250zSMty8zYEekKbyAi6hhAcgsBreh52usNYOz7tPPhXxIOjPDvXbiXPIcTh1+hzgnjg2B1mR0n1oLz89/ZMdhg/ebhE5dt0Ww3h0EsBCT8gVTOOI86BSQs7neWxsoijyfgsRYUmScMIwPMMwyy1m66TZWvH10pXIQVkWZq2gkTbAkApY9jPuS53EDuWBa43tCyXMuD/jQIobSOFVnNre9XIYNDf3tk8l+fAT7fbgHHmuZyC1hrb7WytkQHd2l4OXZtRtJXkgJx7ruvQ28+dsyhmWXNSlLFQ2koTQog9y6gvwBfhKtHkFHkkN00amEobc0NdrcpFmUo7DNOaas4yXU0kZMb3W5VCu8xdOyCSpzPJfwGHuL01DAM6tKAo9tkLIUIArZut6azfA5xMTjYb1PQGt06nlK7y3enuNF+XMoqyF7hRFDUSLbg9Hg595EGn084Ga2nagvWbLjU2t9Ze3emeXCsBLr31WB2Gu8eOT6vEFJPl8fV1NFliAS4Xly/tTxzbdia7q3rb5sC6tsVFoF3XSQPdaIws3U5SL0PMx9NpSWj5/IDvJa9n0GVBo8xYpFZ4cUTy+CKzdORDrgmzZ5fHpxRglXY+KtUR3G8UiNiFyaStBSFbAu351xsOf2WI0Ost4kii5xVZBlHU7/ueEBC2YstCCy5g0chAerbFWGu0Ox19LAhCQ8HESarAtj2wbUv7jtuM3T+vvcO/KbZ3BkOUjiug1ZwMs4Zw+r3xuGtZs22v3W7CaHzrTrM5iQIqO6NRN88/pV3XFyLxPG45oWsoUCmjZq+XZoB9gVSNRB/9G/j/8HPkLQDncFSYgNii+BJPscMjOZLaR5HmrwgpkmRITFEfeO2dTcgpzSzFfHaZpGS1Xs1nPGPkvrms/E28FNF15WA3YirEhNi22MRmOSMoIyFl0RTbvVy8hGAz1idCxlVcUxCM5px52tl0vrldCf9TWEyM01EoWFYhU3LJXKGl1RUCEKjWthuNNjZGkWtrTaXeVV1LauFSjsBSchhLRTik6Cvhcen6DLMo28C9MIi1sZ1R52wbHfsQeoIhAEXqe1K4YhTYWkrG3aBt27brZannWbbTDlzOpNR2oBFZHQRpP1QGkvmMG0otLeoHis5vF+RJur6eJtxIiemA7ENoi1LDmc9koCQCBkHNEPUtjnK0G7aV4v0scBDUWGHYBIAg7IWR7VtRZPlOGPbCAACaYWiZl1QDELlSrRBB+L4vmGKEozZyQTUIKhXNng1KUgGKy2z+riJTTIDnh4oi40pSCopLJQSAEEpyBZRKxRlSJSjFXq8vpJSGo+WGka4EgZiNG55rSbdfBz4FpPHcZhD4FkgAyhC0ayGzpJS83+8Bo+La/7Am+Qi4VlybsChu0iphYSscJ305bb5vn2bXJ40VDO1UnCrF/D/ON59ls/mivqydN83SZDY/9iJ5mrh558WYaCluGgcLglUKDVcqUU95k5krLfTy7byo6txmgVamDBOsgFfgKDM4oltDsNmGfOqGVhRFUQsOhjPGuLZ4x9ZFZtnGFVI5dhTZjpLCNbZFc1QbjZbmTDNuAaZOpijKHH5qaiaYihgDAB5oJ+t0MkcHKU/0s0gxwTTlOSF1gVInU8LXVpTpYGxbgExYHG1KJaISjN5mJTCHel677XnUGfUiB8qEQpSU2sgtwRAse0wBpaUEZ5RqO9TS7XZdpUJbU8q4ULZAoPB0FLVecnL4Ze6cOhYRKaMCGHLOheBpoKrIXLEGAqBAZlkWBbBDLmj6LlMDolCWE4BlF54lHUdaXmHZEDiWEkhxzlTw0H6147VlwjiJGWdcUpRazFODg9fs21wbAKO53W94WXHUoSi0RCo54yxOYkBK+5mhj3NETrmdFMhIjsgEpYCCUk6WVYOjZ+A78JNki+xreXgtNMZmzOaeQmgcA+a+VRaScqQoAkBN68g3Ni/trlI6QKIHz/RxI7cAZ7PrdtcbaRoNmk0fW61LglJ5+Ms938fZ7Lq1yWx3dwo/YY63nztjPHHi7tv3HW927rrZDLOe5xmn172jubkx40LA4RubeV5eN5thuHPx4nN4PGb86Cr8Wv2o6qXkDeQ95IfITxOSsg+sWtJ6JLO2x/ChNImzGoh++C2dz+oSKXL4LV0uSolQP/y2Ic+CIJBVmU46mUNC1ptUyzICFUlX2FpZWdzX10lROv/WMjRNot526Mz3LXFwHuD8gbD250643YuSlFmWZbE0DbvbgTPbt8TBOYDzB9zanznBdjdMU2ZZf/qnf/qnfxr8zu/8zu/8zu/8zhe/+MUvfvGLF3d3EXd3L17c3R32f/qWZ7pTy74jk7W/zOY/4cIZuQ2fy/aZ1j/9K1eAXLliXv7yl7/871/xir9/4oUvfOGfvPCFf/LCOe5OL16c7uIw6mc1/hC+DD9N+uSA3EpINM/nsi0snSoVZlSgiELUqef5/IqORD6Qd5FbhICqmFdZFWVBEORSVxukgTFW3veFL3xB/mIviSGOt+wCk+NabZb/4dy5c5udSRTZtjfcHnsuo2Gwfmr25JU/MvirMJWnAJ6KII56v99OEoig2Zr8ftFswt6Lr3u0qpLEHcBcNhoxSMfe2nrWxyB73yFI2eN5DLKpF6YnCCHm6IijypNxycvJO8jHyE+QXyZfJr9H/g9YvVPDXgxrF0vuoCvGDBR/kARJXJQgBgR1sAVHctOmgdJt4F6whMIEvWVVyDhX2rXSZNJbWaWVhfqRJFvUooDXpeQ/KYvlyoX3xz2dP5b+KCOxZ9MuG/rdwPtKH1ih+2C+ZMpVvVp+izOtOAtCmGodxpNJG0Ap29fa97Xyfa19V6rmYNTy3UE8GgZJbBQoFUWDQAiBQJFRrpt5vqZ10MwCQA3ABAegsGuE5ds+54df1MrztAJQ2vOUnqkmYqO5PmyzRIppt7eOUYgYRlhhGCFGIVYQRQBRBLMHY29obKwvLm9uguiFYa6D7Xy50lcjUMMwpKbR2NodBIxXxmklMU9sG56thJRCRZRGT3fLMouTRA8crYFiEL7PxhgnAkiB67YMw0YjTRutyaTbRU9JBIqSG3sAKpL5iEKlzphnlMLWgUpJohV/3KPhUu25lmVZ7nN6nfWNDYjTS7GsFC3Hnh1FiNEgohgPHr1WGg3Gj//UdqcLdL642GwuTu5sbPQxZwvfx3mdotx8fKPfBxwt19f7S+NRTOJOu0d4qehlS69QyGk39R1hgKyCZ59QQAglBAokXWLx6WqRGMfTfvwBzquEA90TXhx2O0EQBJ3ucJoPk65v64dmK47ZNS9HGPTr/zTO83HOR2WGh+8J/G53OOx2/WAwjCBNh8M0BddtbhprNRzCc/M8z8d5Prb1zNtHV+Ef4Gp/99A0mydjO6kCDYYOIQRdSVQjGd6fZVxRN/VcgOgAXtFAPHUKsXH4NnjY606q43ppy6OHTx8cYEPwd7+biwZ36651dBV+Oc6Yg4Rj12SVJmmiLAVzA5XS3oGhtCiLJL1Qn08lwbpMVpt+Re+WNbzwxIkT0CsR4BHv+WvXJW+8//XtjUHSS4KzCvFGGxFguNPGpjwOfDKZTOLmmjFw5tmnWsX3Vlvl24feEx3nxmtWjou1Bmh0bxiF4+DaLUIIQSKPnoEvwNNkQg4ImeTzXEjAmtJypw0wdGisSi0QgoAita0veyIv6qJOZSzh871eD6QKuvEwifHE8ZtuPH6C4mSyd+ykl6aTtSjmAt7vJkm+m9raavm+5YUvpPSFL6bBvjEGcNQqy+re5RJgubrnXDWNY68VhABRlKbmeOq5gEmDQRhlHD76MYCPnZ4QwgklBPfhCumQPpmQ55K3ExKtlouyyEcSl9U4AV+wXNRRWs2XyTKu7ODiqiKAYme5RqLGXWgUoImJE8HN6uQUKDDr1ZYo6yLcxuU9K+phzWfiZvGIzyh3sr7vgeO0ux6nzDkHZ94HD1DOGXjeJoDjFLlSWaq4VohtLtwIuODMGM+V1HCuDRWNptZrSJkQ+ucyh1Pmn4FzDqPc67YdBzy/Dw97klHaGhXFbF6WwzFjTDmnn7z/1OEXW4jP1Y+D7zYb/X4eBPm4XhRFmlJ07E57V+lwEgbjgW0BukHgOIiNbGN9jwotJf50i1ImvVP3P3naUYyx8bAs57OiGBGChBzF3L8n98XbL2oXI8EIsNjycjX2A9kCMiZ/0O66j3FCqE6xA2rqCcv3GAts2/MoGkrB+FHMX/4HS/aEZ0vL0pQmELxgPAsjzjkF6jvT/EQ8Go5GWQtsSi2ttCWVohSVF4UdDdOCCwZ6PW+k3PUSkU2D5bKYQrl7T/JPjcA9T3NecL5Jp7/8y798xy+XivEXPhrL1fivqBeBSFcen/rftDmFTupZWWVZmYuwrUMqN8oCeygwzXTpMR1EeSy+bXwf+Rr4/lp54jAN3JNn81W5KotqFKQ5lKYztjgI6GLfSKa9n+AWuRtTMsRmLoZEoNdaZbOQz6401HG5N6rLOEOVMqETy6lLh20pjVKWEEZp02OMC8YEb/G7T0yXPCF83/VcBC2FtKLYn0opuNTGevdu/q9zz7qKGseOtZSANgWAJkfXbYxD31iBbdmcM85RgJJaKwWMGyMZYw5XQRRi1mwiIGOa86Bp+UZGRgCAbbQGKQDRsmzJGXi27bmtdqNpWr4n7TSLY/ZflTJSGq2MEFbMOeeccy44Z4xzzl0riqKQogugLMsPhbC2pJJKcuY+dWFvb3hUXUubLqM81IoLUL4R0u02wpBip5cmCpQKYt/XVAAAsxDBsrQNVqvVYMLKGlQ3GimnlNtGCyeke/lMgu/TLNSenzicUxa02x1QUvpRbESzkY87fhg6aRxL4fO7tld4uZcnR1cQFtavlkEThai+X1bZlRgBOLhz8Eg8Jq9GWVJlUnbSvBKJkHHCWzAtylnZYyfs4Qfk3+OvQDWt/l133vlCJZuWAUCj21IhXTs4OH9+xUGgToYgLdN4p0PvgkgIAbTl/DDrFgKTIoY4mm3fs+77Pufp47Ld7nYdCqyJwIQIipMnT+2vh1ywzI96AEDEPeKyz4zsZRmYTwNq3VWm6TVsK/DXlMwsGwDeXQbhprF5w2W/AZ8gioX6ybeR15D3k18i37B8SOdVUievT6MHqpWNAQRSCmH6gxQTBXmzbJAiz+tkmSTy41Z6XVvNv5hUki1NjHUbVexOoiOuLmEe3lfQ/YimYSsloibd2DVKTuW0GlbTqkiUbW9jWE2TaVVxt3qYwE9VDu8dj8fjs1rr3b6bOP0dBGDnW02lee5hJzMupL2ZK3QBGcGOjxgXUnKevtxIIZUUnOFgGyBZ1psMUEr3bK2UsuHwddBkrAVvOXxdSEEIBW+JUAh9+LrXvetdl8+cOfOuBx647753KS1kfvld73oXRcGUiKehFJQBvvSee+5B6i41pfjSd73rXVsMKVJGGXImCkQtBBWAlOuEmlwjRarHBikFD7R2Dq84muVabdaCt7Q4aBoevk4JASyCK1oKkNX/Vpyjb8H/hs+S55M3EzIpRov3uVG+qEaV7p1EFozwkj9Zowlu6SybzeOzNOcrReXg93SxnNbpFdtlINciSiOIP84wg/8FAEyYRJuk1e75gZSUge8DUAz9JIpDo3w3dh2mmAfFuK09y4uyVi+OhaQUBoBIG1kr81wpEIQIHU++PVN9ArTWsZSXL1vzP+LcWGE4aFlW4vmKO/3tE7mwjCul68WNJAvCMEjidisJfSdwfCO7r6m1py0uAYSI0kbb97lACkSh3zYaEzz4G4MC5cMP/Bryat7PobBUoclmXBb6t56yKIts2i0unNLOUtm9g6y3tIosraVg1y+l83S8OKbTAnQjPHJ4CHh4uNbhg9ka4Horh8d/jtZnaVkWkecr3wptinaSpY4tRGIAUAbaxBaiNTFWknIqEMH4NtI5LwBKYaBNbNNf70dZFtzxAw1PQ7u9ttKDWGu34fBrE2PFbcuK2r6SgNIWIknTzBEAzAnGv7B0rZx8S3MLKVjyxyLnnzdcrk0mxkp0oE1sS7DcJdNWJe5pfG2OwVIZRNzsIjBseBJXT50+feqa3R2Bnte769TpU6dHfDLczDe39veLEvnW5v5+WSA8rbRSVlVd3CjK7l1K6Y/+/7xfFMg3NveHW5sb+/3LRFmPdiLafxv3kEfJ8642O5b1mK3zHnATY3FfZ8DwhXRYBWNhWzkPmnnM/iI+ftEpceCxHXSf28hT81mvB9Drzeanbp8ZDr981113Te6avHB3d9ebVe48FeeFb1+4cKF3vntzXddZnV1dJm+b/MXb9G+eTCZ3Te76iQcffPDxx59n3J4rX97r9c53L2xmWVZndSfC3uXon46+iAF82SbWbdnOXOhm8nry38n/J6RO2VGAn/jRVVlIWo80pDejyVjzIORPCOv5goQwGjJtA5xPSFHGuTA5kZDjAs4NFIMlWeRvkEwWvaXGiRviqSwXmVuiGcMjcoAmEhiZmmm3rRrzlfNqKDSf0fKV6mO4l39mR2v6vUZoywhl32mAWgao9ZrAMX7gGB/8QNuhr63wN2xpXEsaB17uILNtYHaJRgM1Gm92lOU5yvJEJOWg1bMHwy4A9Iej1IVhEAI2Yj9YT6rp9nJtDftSNK7hvhYCQEithABqjBUwYBJAGt8CoJxzKqV0XFdq25IIwrJjz6CUSgqBzCjkXFgInmfQWLaNQkjgXCghkErp2lmD+5YT+caNRoaCNhT0JWUbqWwj4Q+oZYAZC3/X+KFjvMj5KTv0lR35+rhxbGk5tvooc2xgjg17GtBooPpay3OU5bn63aPxOIsgNyYDgFiIXtqUjWav15jkuZoHQd/r9Wu718uuc4CitsMwijzfCoRgwAWAomhDf0TNAxilXEg7mEwyRRPHBQhZECax51GJQnPHcVsyQAx4nDYyrtDBr/uIOq7wXUdxgPB+NwwsJwqs68TfF3NyZ+5Zr2q/AwiA56uQcta9/DB0RMDdkGHW6RzvmYBqShpHX4CfgKvkDLm9ng1uuYiFCpkU3LNxxunIUYjSKfHhFKc9nAzIvW5plqXQKgMCIYlHAEwD07S9ynVZiRx+3HEc6nmua9Z9WF/rUmy3tstOOdq9fnPuex5n7vkgwtFwNKQ2Rev4c11t4EwaWStMh7/3/eJ6u8VFujYAXF8/dnxRNvtXP/axj8WCKxW/BvvF6c1yWBadDrTWBurOxo4tpOe7+46BOIojVL7nnhXauD8MrpumrruGGocfw0ZzPB6Va/W59XUhy7Wc3/L06PDof+Bb+piy9Sj5OGpXq6ymhQaLDjdnYg0KI8ZZ3C6AFM5br+osnXPZZqFm7m1emzt3mhcWFuJ6IyYYxFyIynFWypSCDtjkPYvBGderEs7OlTR8ONycFSVyxi3abnfaFOQD2GwmPjxtpJSs3el0eqzhqxza66+t9XtUSBXIVrPVkuBKoflwtLU7GbMfop6lsdPpdJiltTymmi0pFB/l+ZgDKgpsa/vkie0dTpnlOIb2er0uk/prAHCWouHDwWZVFFQCA6W1BmErlDjCLItdeJUNDGzLtoBJKeh4Mp1OxlQjAlB0+ObmsRO7uxyBIji27QDnXF+LjAJF23EcBGQUwBjHsQwAIALHKIxCFEgIIYKQ/vP5vtwkt5OXk4+Tz5Lftg5o8OIitDjNryxAqPZxgmxasIHkI157UEekdgj16HhYaWgai5qCP6hxoScQVOZaI++suaohwSiZf20l40pmUc3rU5oIyQHhwpJ9/jxW9UrGSSpFDn99eAK+fngiEEKIAL4eCiFEePittNmyuAWeciizLH3qtONjRi3KFUZFTQAud3Z2FVom6U5ix0F0oW9J3Dp8OVoVz51R/M3fAsoYY6C58IxggBtbm55u8jDodNaAsQiQUg8WfrfnZQ230Qw9EId/AqAsu08+x1mWQYjCPjwtRHD4mm2dVQhvCYX4oidl0+FIpeM6Du+3rFZr3XZstz8QjCOVPreXJNqWNc2iyDgUKZW+/RcamoBqbF+mR1Bw++GfQ3745xYFZikOkMXx+Xnl+D5lyUULhRl58J9z6M7mLYCs0R+4ueB+ygRHBAXYDHxC8Ogfj5cj7yQh2Yxnb2oXMCNyk9GmwBPLz4styqfX1jeyxLLK4X/y8NDx6649PrGbmxurYrk6df3+qfEY4N/WzaYXTnfr1cfku7v1sQfX1/qNWZWPvO1WCybjU6ducGx5iH5JL7n9Ht0MnafYBVFyFELH/6B5FVRjo8Igih0XZeo/BrhN00P+C29R5kAuHjuWj3A0PH780tljnDWUKbfvPn4c2PETd33rFVL0VuNmk2K7s1m22gx4X1IKvJjsnd7aZOtr+7Pih7kQoP8fXIXh6Nixay4dP57n2GcikSwAevLEPXceP46H3/tsLkqgzeZ4q9sDaDYKydtMBdHeZMJxbe30/sYG67yDU5TwXzUQQggS7+gZ+Hl4mlxD7iIkGp2dNiMOzSKPSbqxYKStTMG9jOppnoLZbL4qgwucRuLKUk3yPfcPu9NqTfNs/CKurdbG+ta60bg9m62vBRlnoHS7vZpsbgwETzMDzEsSJgB2dx6fDXYLywKg1I2GwxE87bgd7gFKYylXhp4LcTQqhNZKSzfPU0qtRjNJAWw7aAoKQAWs708mcPjpFCHwDaLtucrShhHr6IhUeAVuJGOyTd5CfoA8TX6M/Cx40IQFnCBkImspK1nVlaxkJYf5SVC3fF3Vspb1ROWZH7RkVe8uqTJTsuPqrg/cqV4ev1x94yMn7225ZmRuGdSpN67quqrrlZT9+LZWy1rIVCwadbkRhYWaoV2yYukbx/MNKpdz8HlHyyqV2crlpSxLUW6QnVz+OoWU8mLIjUav79EGuS1F5o/yZwPxCqU0x5zmOKIH9u6g0XcGD3yn0+k4Hefw/0dRxDpUe27U8n3AMOg3LYsCLT3bpvQMHeMYJzjBOhvolF5HG+Y4W1Pfs9Vut3XgaY0gpR9abbqHHWophYkQQsXp25VSXvaTjLE1NTjW6Jt2IbpMuG63bdsItExdNnCy/ibvch9HrUnEOhSAO057zWPNQhyDxBMSgPGQvkA5UmgxoqehL7iQtrEQ9O80Gg3lf7vT6dAQOxhji73kZfgKvPk28TZEfBW+yh+PxwV0XWMQPL+TxTE1WgH0ETj32qyDIXYwpsnL8UV3Yod38H7qoa+uQcQQwRjb0QYwgJ4KeIdSc/HkyZORGm4XRbGG1wVBQEN8DT75bDx9FtfB9j0Kti1gQKlj4+YO3rSF25u5V+KkxAGCsSxKN9bw9Fl6K1CmFKXQzTUA5YY2mI0CKSjjuVoBQFESQjhRRzqN7oBskUss4xTws4LuHgXwVbKq54cPGqkgUi6V2aiON2mwtArlpiRtuXU1lfF3RW5MP+4jWmsr8NRdp30p5ecjxGhxNlZeYOmboiiyAl95Df8nlstlhBh1Y+kFVisObJtxE42Rgl+d/O9wf//++07t4/DnFLjo+76nrOAHwHFcDCN82TiwlOf/yWg08pQJWjI6hVGIo9Aob2fUS9I4UoPTjIOzCq5623f/fR24v39/3uHf4ZxcII9kyRHCfhVwr8H9ztIleF90nh7O0J2ucwT8LebRUevwf1i+J72GF737V37lV0LEcH5mF6va9Z847jzlCyke7Xa7sfR8Kw0S1+bMMBYNFiFiCEl2zOHjrrT8popGKwwjeGkeGOV5nqdM8GGwHXfkW9ItepNGGoVKqGENER+Ufn10SO7CKwB8SZObyWPl8/rPka+QvyEEzh94KWleJLkfqFuZSNWoq7wSpaiLLEvLlSwyQV7ByezcIGUXe9SGKF2syTsU0hTT8z983terftkSo21eXNb8WH2Vk1JYEXVagv5R1tm7WK5kkSUZk2OzmPtnluTVYtkZDpIk0syXG75UFEK/EKrYURRKBNHbRNgMQsAkAprdWBQFgFDST43sA5UZSN3ocihvYcyxGQdg3LEZO14UBUip/MQo6mnFOffHGeO2w9jSsYd9x74e0wgKEHpcWjaMmW1dliWCSgIpc7AMRSj/DaU688ENhQMQa+/6KEUsJzCF97++hw8lDmNaWFac2ra0ANJrfmI/lqbJ/zAGiZBChPuzXXk2NpZtDyyKGYCHnnEBHLNuUQgQfLYTJ6BVi0oKKRo051/pC9r/f/EAPkQOyI08+d2iXhau0DiAjhZReRa9ZiSlUl/LkPluFTo/XtU/TElRhdPWm6+QKI5vbt362Auef99N9+8d21u8rNO55Ec/8KWZEJuD3e7w8f2N86Mn0lGevWPYaW8/ebmTfLHZbA7z0ZM3tTrv3q9n47HjZtl8I/AYVfGZszf73t8c/nW2vr4zakT2YH9zbdWdj4BNlspcfGGY3rK+vr4U8PTrLEUYIUf/hFfgbcQmA7JNriFkkiwTXk2qZcWriaxlXZRFPpJCzqtVvaK/KJx7BTAOWuFFifhBKFG4Hlc1Xjm8engVDuDgK7u7u93t7VW9td0Fyi7ecuuxP28NlsMdv9ns7o9efe6GGy9dmkO1fubsTTedObPhR99drVbf+MbqG9+41O12N5vNZnOD0j1jXYwi3OlmjoO7b1po3R9cgN6pyRhgPD4d+ozO49G/HD2DrN1Yurb8Ax2v0lugUXWSgdGcqJzQlW68que0ttvEy9uQU9eqT0rC1w+/AXuH3+hlDXGMB34P9mYP8PhgMHhZFqXh+sI/7kbJhUg/i/ep67sW6gZ7SMDTEMW9w2/23Em/w3uw6MURHP6o67ov9OwDZ3/q9/2w93iXv4T1UAehgyKUr1REHB0eHeFb4E3kGLmR/CD5e0DoE99VNkmPkxxnqIgGp4WYFb2BKiUTu8qpwsVKlsokqQ5kykHjjTRL64wFtmRZ1A7ocvM0yaoamC/dPQ0uaSfThCsHJujvl9OKHFxEtcqct3Xhd1Kcq4KinMX5SnyiI1UdU4uNkyq5P3ESFWbpd4vlR6scVWFImEYWPnF8NNRmOE5W1agqPoiJqFd6Cvv9JZCUOUiBC90ovCSFNOmYCdp2CqLURhdjoyjrNyO8s2FbSMFr5K+eV9r9KQtnun8H69vjIaUyQM5wOKGoIqCI1LJaYIeK4nCIVIUQ8CAIJXcOvWi8luvQkAwvLaT0pRFhiGE4tKJQIafC7kjPB7RtJkVkWdpGpEGjwWB9deHCubtvveUsp1R8309+z8sM46qr260ILD0cj7XQumMhSKX4/001pww1AmNhF2171PV9AOnHjo3UoQBGMy4EYJT1LgzAGG1biByljB2tITM/yhgD0O99L2UUENT3fi8yBoACUKnx+DYDnMM73wmcg0BUTFmGKDPjlDOKICyjOEWOzLa6aeADo5oyIwElAGOha4nzY4Tg3IS+L1qcwXPKOIZ+/yRjjN4GMGVSyKECoKBjAGXyvC0MhK2msQfR0+3oLf7MbgcyRWAktkEqZJJyAwIkaEo2ZygAKEo2DltIqXHKA4zic8HADzgcHACPk0ZwLo7wAKRs7iQkCWY7TSmBI8nBAxzU4VGRpmCsMP/P12VKQ5ZO8k6apoHSoGQaJVKB0r7PEqPD+Z15EXkT+XB/li2pxaWuYWH61op9lmuySudTIizCERZX5Fh9aybT0om3uqql6CKL85q7y0VZL76jPD3IMaj2+6jnt6y2ZVlW29J6IkEr8NBxKvnjqhAs0BqcXAhGrbZtLKtt582GraQKO+KUarVCSj3K4ixjWqapR9FFGkQRvVqvvibypufqbbFJcUtuI+ouojBzgEsSEKGvEQC25RbSbbGtpOw1fV/z/K4UUcBJYMbK7o7NrZ7GCqjWCeFH3z36d3AI3yAp2SSnyPXkJSynwisgZIZU1/Z1RHMJmxthKfClb0T2kklp+qBymSy1tjWiLdfAwu/Wi7rIFbrZiaVLuD1X7cZqf//U/kxr45y9/fYzjtb6MY8z/4719Rhdh/uBv7V55kMP7OzE3HUwWFu72efMO8WJW20HLzLHOTjtuAyo6yKO8+3tfIy+067512/5nu/v2saYU8eNMfbhA+g4onPt5Ts9Rr2D/f2dnRiHt9zysEdpcNs1F7vScehNly5dcgGdSw6iAw7SM/1+r3dSCB+8i4s4BojjxUUPfBLbJEccBHiZP9kLT8kBuZk8TF5MSJR+Ol3diKAnHro/cCtYrbIMcb52mv+81X2Q7OLQY7wYPwO+v34xOd+3bfie8+fPh9eUvg9g2/3fPX/+fHLNuu/bVv+Xzp8/H10sfc+y+7++pXaWrKx7Hqz+nRVds+F6ttWH60LPg3vAcZy1e8DzQsdx4M33gOvGjuPATLT6fdu7lstO20j7LGuQOXk+H2R+NbdRCPx4uVGwMJeJs22iCALxCjtD4UcvzDPHMt7hkFgvssdCUrogqQD0FEBHFll0OnkFxruRHRimn6KbiCTOBHBL6TxVOJn/crUslp+kQqSR4Kgkch63uELkp0pjQKAC2+5PtWuhNuVfyi00ejy++Ybx2DJoGyNJJagEa43PZmfOzGZ8YJY+c4A7UFBbU4YammGGWsV9x9UbNgBQFYaJ6PV6PdVNfIEA/2Jb5o3SI0q1Eg9ZbI1RigGA5VIAeNNWIvs5KpUy9v2Y5pabx2NtsLQAZA+QGjMe33rn+hr7giKhoMvcfisUplcH29R2xjuerzLfO90LTP1MpEmcMOKToL0gN1jQiwWuiBaCJ7ItY/kHpZdh/RUvShK+Ci+10F2RFHVGYU1BkLG6mk+rRsUU8BtM89jlnLsIa90Jc9zBLE38c5HS77XA7W53ZKbTqrJ386ahAIdfYkbnA6Wp66BW/U3lUKquep53wyyO0Kagqe+fPvA8qgGtv3K8FfahzGbrPQtmp+tc5nF84nKraRfNpgRAMW5OTD4aDsWB2OFinqsQgDuO+QYJOalwHGOJexcQ2rIlCZ63TfQP9B7djUIGqQ0SoTEq4BG/p/XSe8q3+3ux3vPtI1euvOrFL37xi9emv6kOL60kSdOv61UvfvGrfnm1ra1Djnt5PPo6/CN8HUFeeBBXw7x10A4V/xdhZZrKzzSkDM16tTpQsb0IXKZx3G77Pk4/k3deW+91OkpPJnu33XzzcsUhz0+evPRL1ubmyf31Ta1ay2su3vCLbd+nu30Kszjq/D1fK0+dunRmNmtPovjUqfuuPXFiOKS/dHJ3Ohi6m/fd90qr2z1dBmYTskOu48QCcWnwAUJmonC3W9C1NxwWOpHRa6msJrFqVF7J+DYLUpOHU1rrvIrC8Ymq3S4nrZZjlNKWrQxezxjntxujlDFaG40bw7esmf7MAoVSaoA4KWpjNtttgEYMWlu2Vspy7haMsRcrZRmljPV3CjycP+PwymGF6tzdBH2z201s9fQupMsLaSvjs+Yb7euJ7YTdJh+eOZK/3fvbvz32N0dk0h9EYRgN+pO5Cf7s2LFjf/O3e3/7t58MgsFgPB4MoA2aL/a3jiUEXwRvJkvyUvIW8iHyGfbD4B85rA0fgh5wJy2eGzINS6Yjz2uA6p5k88wpsDiQZvDMcvFuFY+DvOQcI1f1qszsoX1ZUK1yRlH6dduhXKQ5Z2eFn20FFH27CHH/Ff+HZbl2cm25Khf5yDJZYy8YjiaTzmaWGfC6PmAYh7CrKFjV38gwbK3GE8cJG5wxpF4QMPD8dmt9o2m125Os3Z6MO23GBy3LBhMqlSS9Vrervru2tuYBeGsegPcKDaA7GkB3fgRUqgBUquDFYFoGwLQMvH/R79NhAZ3O5nRrK9pKEsa0025v0gSDJARf2msWqFGSWJ7v9wf9sNMNEXQYDnrNpmsrPR6HIc0cm/MsHQ5HTpaF8ajoJrEQjr32bPDWPABvzYM10B0NoDsammmaKgCVKgD1QLPZNACmaQFYRBz9C7mCbwSHFOQseYq8hfw4+SNC6qKsqhDfrHOZWlxZLM9WpZznnGmBpTSkX6q1w8J2sVx4XcxENq9S6tNsHMqusVzgCIIJKvZzK6bLdOJCkT1QSJ0IOUjyONHsXhSW0cVpkU+wwh00hPhxWXCql5rfZq4bTSyaNy3aih2OgmvLomLQcV3+0TAMLSbWJq7wvJatpBVF///GG2+k6B9nqHnOWGIxOo2VFDI5FgqXauXB9VEUKRz7js3aoP7rtA0qkjSIDedoUEUKtfC81qMCFIohA6CpRekyEIxq5e12jWFK+ecM438bWRaYN4F5GFwtJZgM4iTrWNl6K4qgpajv09z1ESn0gQFQBsYBz/c8hGDhGQtG6q3aeI9JyB+VoA5ASr0mQQ1bUQTXAu8JjhSME9quZUFnjTggNT7gqPupV3LCfCU1qihapWm5k8wIEySxiMgMdM4VcsP8CB3jnL/sRc6jj4mKLlfsM+zF8rXif/1Z4+bd3d3ZB7vdawvX34edXbpr23cyOfoG/Bx8jmzEjQpz76RkwSvoERSrG8aAysHdbqvV655+Yb3uVq/VcuNzo93dun/mo1Dv7o7Oxe9reB70ultb3R54XvOmskjSZu0VSZOivJEIkh59ETfgK+Qk+Tj5O3gEG9glJCrqOFvV6aKJ5FdKtzhfNA7Fbfn4OBHZLJlWo2RaFaXIipRTWHDiqtU7q/Nqmk+7Nw0c5ostp9W0FHJazRI0fauz+WxOIsXLpnljugzwspSlGeK+8yyraT4tqwBxOVVyMtB6ETciW9RCLtimkIgRrPKDVTZXSBpEs3K1rAtZe5AkdaW6S90VVn4hGoZ7zXixnDdIZYqSPAjIe+MkzmbzWY7ZUYKVEel3gxsnOcvRSVGusvuDjJGRjwP8hKeLalWn0li4FUZwuI2JfiGnRaY/K6kU0idHko/yh9KSQuLeYM/3iNVcJGKe1qu5ezDxjAWhJCsXgJIMAaWfZc+ibOGn1VGv1XpVZmldlLdRj+kRAwAzyKJjjnCVgwCohQ8c0UY0lu9ZgeAIMLAcmQF8J8iixHMZUwwVUgAKkISM+wzC5swW1gIAL2kPOEOk2Gls9cG1uISw25xITilQZrtpBvD3DZqF8PR+x4sGQaCkZSmAdmSNO0iBTSLLkZwpEdL9iKzd60Wdyfp6pxMB/nRgO0ID2kFCUlBGJUXLJc7slXQsZXQca4szigoBqM04YsSESymjEgCYo5UfWAgwhIi6s0IFKmv0miEiQDcFGDQ9zoTTP3yNcpPIcOVbxjPCxxwoj3LGms4kwKjjupQiOBoAle962OEOhBkrotQzCsFYnCrlAqIrFGMMUEZBwB0rOTelwU6AljIHQF3PiRS8H8mEkr5r64whR9RpQ2RZqBWlOeU4s6K+bQN6gWW0eKMIZQAPtFLLrDe0BnAU4+7xfBAGaG6mFR4IxLjhWTZYURMxTgH8cauTDV4baB1vpVIyhgg8YEwbyeo0CNDZAYDQ9hkwt7MJwnAOuD7qvPbXMyAKyhnAZ2NKEQXtRla7N8x8TwHIJAn8jghD5HRcaek3muNOg1EEywKk2LB9qdqtgsIuRy5t29E2BUBGXc+3KAKAYzRIpfxAAmjKEGwEjEKbIrUEnc7XUjmOsS2Xs4kHnudLAIpDz+XMpy9j4gCAJk4Qhl3z044CHiaBkUJp/p8qAH2NNIyUJKOorrBt13UoBbRsQIw81+HCd/kSqsd82wkodULXB6AWM34QSki1HVRC0liVo1QKzpgRygmqLQqZ0FVbgMCVb1mIMmuzPn3qAKU0BASrSZFzKTwE6ighhW43IZB1270IXCENsknOk7vIS8i7ebChei+1NN2ieqpLhlLCNKYw3Ke/usrtyUkPzaeGuKQ8vSX+rn3A9ywWi4WXJME6tazET5LgQGvP03pqkjfO5/O5nyT+BrWs1I+T8MxK/pzCecewX2CvfMVwRawd6BUX5uru/UMSIsp4kUWRkYDBsz/pamO4Z38zAWjjfHIj/R0OmuVkj0UcowcQhu0jchrMeULyBJ7gKjwDXyFdsk6eIC8iJKtlCmWSq3ZjXlmxIQ1SWzdwgEhSS6ecoXTl3KgLU28hqE6SRmnNq2n4Pj+fYZbC9QY4f1jUXwO/3+/3o7AtBCAaoW9iDFWjWSjXc7/RDQLr58JXbl47FC3bYQxQaxDCuc9ttZIEBGe3Ak/cOM4F/NtX7Y7Wbz04OBC2FQb2QVEU0k9ThpRZwpoEAY/SRMKPa+X2n/mJn/iJmguVK0kNgLF93wHLNFub37GRohRDY9oBJEmnk+z1er2G6wLEfQIpcvg6XtKlPXKONcE4LwUgkrc43a1Fc80raeSDZhfCgW6vSpm48vNyXlV3XXvttdeeOgUfDtc39u689tqdHXgYut3d3bqXZlboeWW5uO3U6Va7+V8femh07f7+/v7+T+6tb4TNduv0qdsWZel5oZWlvdXubq8LD8POzrXX3vmfHnrooYcIoSQ+egZfBk+TS+Q+8kJCoKhUnbUINquiA1WFHBL4sOPlwpPnrfMN81k9S9JsKvu8oIznaRbPV/ViuYITYrCD3IckTt90enTg+CkAJc+dkwrg1HHYiyMF524GCBxopAAravLL111/CTiHNAMAJ8CbzvtPHv6b1PPCDeQ9L/ta6nlQ9A8q81wAz83gNdCywPMty/fAasEdt992K0DVhKwFoB0fWn44ZH4JF6yJWxk0K4Bf/8Dh/4EgaDYDHyDwm00EwYPLpK1PuaKO6tyFvh9CiV2Jk2n1Kot4I6YjZ0fblk/Bhr8+NZ/3e/DXwDCI0uIY7DZvST1Sj/cB48kKnoZudzbbp6PR1tZwSKHXm8/3EWQce/i0HV/XHpED3l5NxvqbGTm6Cu/H7mpzPBYnLatMJssk5craZk7oMT/D5bLK4X3ve9/73vcgvPShh0IvCH/91//twzB4z3sGb3rTmx6HW/B2eki+8j3EZ4/+Cz8TA/LBjbeTB8iT5EXkVZ70Ia4TxjuZiwQ83YflzB1z4tq1EnuHitQ07RBDAlDds0L7uhd1Odk7mAkO3IYHz94cd+PZs2fPfnTudxIkdhLHfOwaF9Fz88MbhGV19l74yttvXw/b7YhycA5h58LEzP/wxIlv7u9/4MSJSydPnjz5uEKkece4abfb0FhubeVnl4vHUMkBNwC6c+LXpUsnT8rK+p+BHyWnyDlyveTZl1nKdjuvBDEErG86QsJV0cD1KB78sKKwoSkpKlGjBoCaPbzAFPeaOzzz/ve//77GYNBoKpnRKB6PF1vNphVS3+s2/MBxUtRK9RsZZ3Hc5GxvYzNAgJtHu7u7u/8VCVGrE+M82drcaAmhHXsURRaoOkKtVjvLzOzWW28901lbX5+ur2fMvcgcbBRFI7cVxwC+30h8nwmlqG1bWa/Xb3F+emc7RDh4QbvdboM6y0cF4z/LptVs2O1kHUVt23a9Zms4zPNW28rTLHFJFyv18deSe8jLyPs+cwZ5BMVcLnPfEMuorJF2piQRaUuEv9zOZhuzZxb7m122iLFvuBOeQAHs89D8M904lmKcz0LPoy3mueE4CLA1GAzvACnd9U7H6o8nw2q5viZxFPR7BReXphZrNIaOEDDK2x2OXQyjiRCvOLwKBxF2EcS3wPt1Ye4g4YTTbA6Aot1PU2Z4mvZd32OpUvLwX02nU3iNRtZgzP2wa6T9GRhWRa/ZsmzrncMTyBgrWm35SkYpVmPmB4Fr/4n31VNe4RNb2vzJM/A0x/FBXwCv5cVwYwYwzDu2zMnB8+7c3YXtrft/6qduWdXtDuxfeOlPwdOvfOUra7o7PXVyWtEDGAxn82P3nb4ARB39y9E34G/h88S3gTz22+TvgcAwLh5iWOULKcrRUr6aCJYXxB4zdGqGOa+aDS7eH8m0EtQE21mxbPRSHpTFcuW0tFGOIjJT37kj8lFpsgUsvWvLRZ3O3z6FlnqyLMoYWbT5dnPTSTlHc5bglBYO+EqlNOScVE50DrenDXoxSaKjVlNAEpiM5uR7uSpqQUEI8BK4XpVwDC3bRmNo5BkhfjsJLCHAsV1qWewPXETXA/A+7gF4LqILp1QURumzgbFgOgUHKEgplDGIoCUyxo3taOf8FABsm4PtIKDtgDQGt1wKvo9e0H0ojqNYC9frSgXgADYAACUF0WoPOkuLUkRjOJMSENR+3klTjigRABoIwBko2XBccfg/s2wwsjlSqZQIwyhUgnFYAFLNhaZIXU4RKbXewW3Hh36WAqNShlEYCqUUpQLebxAY55xyCkZQQQEsg8gF588FL6xH8P10nwoYM8+OAbTl2AgUlUEKaFkWcpE0TuaA7VIWW/MBd13DaPIP16rrIgBkD1mMhYHrhlxokyTaQMNBhIyLsePZNgDnrqAIWim9AULGgOg0QGvPCyLBPNfxPjXggqJnp2kci5wbZiF1mnrHOQ8ZAAuUAoFUsts1RSr4wEtTLZ1jHMPjOE3t+JGj/y9egXcRizRIl8xxpWtA53NjVetQEw4xyCHrVqmMk8su0RY++4WcV8Fdd9111+PXIxz897zZZD8JaTr+TxUevhuGw2vnxaT1cGtwC7zr8Hm3vOWp6zWk2WSSpaAPHlX+Hasasd/fmO7k8GFCgLhHV2EGXyFjQupkmcyrHDVcPmAFqIqslUVeZDBVZ3PzU3eFzwmCsmnbSeL/CJ49++HvfOc733l0VAQB3kMp4ic2H/Hlc+tv6jjvKz42+RCUMxGVfCRMLpgScZmdthJnWdJ5qMxSCfD8C9dgEk8Crn4qKm08E0vBb7x8aXcX8cKF53348uXL2ved41rfpKRgC94p8Dk8e+65q+2dIZUy0o4RnAmuETHO0hMn7n7uubP4+aeeesqhVG8JcZILoX9aOyGE0K+hXuWGs7dBtslxcl39jRBeCx7d0B2qMu6BPHWyKsrrW6gVnRMEwU7Jshoi7DngK1c/c+Xe1pXPXL3Sat17772tg8MrV65cObwC5MqV1pUrreLKlStXWld++Oq9By34jIJVcuXKlb70UX8OV+C95AS5m7ySoTxSq3CKOO7bK5Xip0QixrFWyihwdyp+ubKpK/nSBx54wLsB5Ylf7BoA2SvgOZNmCy5wYYeMy2uuH/e9731vxwI91C9EkfZs2zYbm8bu8SJxkoL3npn/CEUuRjm1Pspg3n2Mguttq0hIY8IBIh7+64iZDymq177FkAIbwX3b29smTc32xBSFOySEEXX0jbjkvQHJkeD3+oKhJxY3Z/ZU557bmDsq86WSMOSSdKvE66SImNPMZ3JXmrQmcnEVV3E2B4qdk7hKpzRz5sKt87NkmsRJCtw+mSYxEUOY0wwCcSNJb3tnSVxlVXqcv8w8qWZJ+vJp1qhSljJBilKWTbM4O8+oLK7SapqkVZqwysTt8mk2q2bz2ZROcx330/lSnU/fkmGdneckL7dabYf97Gp7fOlq7sh0PqtWW8Cod5+zalEv6mk9rRb1tF5Us+Wini2ny+l8US/m9DXplPe2eLXcsu6iWlWLarVczOtqUU+Xs2VdTevFfNVquaoX9bSaLhd7ZYv5Yjmd4ja6OIZfLKEJ5qq6mi6n81iL1M/3mlaL5XQ5XcbL6XK2nGrugCULS1/OAt4TNgANqBN+WLc0f8wqm82XFTB/l0Qa687q1XxG/LjNf9YkAX7ZL6xT1x42j361Md9K05SxlALQV6TpdH/KgL6FMi/0jvlhgo1Fo9VqLNYpSsk4Y0pRthVSerMpepTm/MOxu75exXc+Nezt8LYYMnrTfR4+W1/vwA391Gzt59y2ceP+mmow9IPf2lo/dllKoTvxSYQCQAJaFoI0RkohhGCUgdZUCiEtAyCwCzRlP/1t+rdAFxRqvZ6zyOcCAHoW51YPUAiG2s6vNWenb8HHvh0jY4P2oR3gprj9kC9W0oc88p3FEbpYtlp6ybejW+11uBkWibtEj6+YrrI57bAb5hoz5P5H+MrNAAFvOX34L1nUDzS/vqeNMd3ruQ76UeMiBaCt90/d1urlcC+TjiNJTxFo5eZ/lfaAb1WXAtD3tyglhB7909HfwNfhk6RBJld0NnDJMVsozLVbZVE7bkd39bmrmhszCVuyrE3TveM4IWEqO91+zzWWFQTofq5EKIX6Srffd2zbCjpTWOfKSpM0tVzOYmVtr+7fN8h6HuzvY1tweFgGgWVbTr/f6UolZBiGoe4ExrLcQb9b9Z4baKNNFKdNx6VcNIDun7z//pP7lO6fvP/41FKEEEKJOvo6XoIvkXeQD5AfJgQKKTLnw51ltapTAMGjlF49s9boELtlUWKYdTOwKOgzNfCbU2gjLGXLaq1d/EG73ZVsWaXnTFf1onRTDghVhnaa+rjilqYBHpx5zLZuWcwRRqNjRjBN88SztSxOZQgBN1pbAFnW66WMpd1e1gCwtNE8AMxOFSVAvz/XTJhjoxHgfHGLZT925gADqi0ewnhy6vQNlnPD6VOTMYTfSBHZafiemasB1xrGzFb17EuXvNche3ZycHD3hb29AdOGd+ez0xfrunm/bsZm4riM2V5SFMEIn2tFkXg2Y64zMXFT39+sVxcPZvMuN5oN9vauuevgIHk2o6/1Ll161mzLMGamqxsPTpcl+yDAB1lZnj64cTX9EUhTxDTB3SzOHdHt2fgMvB+eJuvkmJxre9K97ersDIZ0bVMdRhMFDLyQfxzM4bzjOMVir5gATIq91dqpM/edms26XYBud1adnm5ujcF11uznPve5r1g0oNmcXMlzKIpjx4oCytNnFJHenzjeyNotfMk9sN6vmq04DEdTMiWvHM8GQsBia/SBzrIUaryXMYOjSVUthNBu5L4H1RRjDQI7E6mQyEd0aSGnIR3R4v+BCltM6SyIY7dtWcjTtJ1HEf8QVzxzekUXQEZxr2y2jATs9ebbDQBpD1vtocI2yHgyHk88D6Db7gQWCLfd7m2X+/cpf1YGylfjr8APdqf3roHvuQBJPE6zE90u0E0A5jgsSwZSSDVC8J2eUsp0u+VrXdk5+gI8BlfJOXIvqeWi8mIemy0J3+3EUiSPnbp6+IDZuQ/mNE7ipTWN2Fq6yKsFDsMOlEmKssg3ETGKEez5+to8sIvieY+vuXF7h4Lx1sqTO92eBbAFWWOv3qt7NnxwfTQSLPA30l6vnTuOUN3uapvObdtY1XAk4vhq049nGG5t3zMeUYN75dK0ifvvvHSp1YKTm1ueY9s7cRNeCIPhhZ319cRA2NrY2FoNhjE8EFufXIZUkwmN6LyKqlzKmhDDa2NIaUSzKqpKuO3Tn/70Jz/1iXfecsstsLrl8HemP/zDP3zLR297K7QP/wO0D/9D473vfe97wT/8B/AP/+G94L2PEEaaR1fhP+WT0PVJj0zkoh1eyQnAnxZUYCwP49UDWy5KmPBJWUm48Gd/9mfQOHn4dwlAAnB4BD9x4sSJM2dOut7hB8BZHszJP/ujP//zP//Eyb+zGofXNCwgQP56NBodnMmtKLIO/8cnPvGJk38eS+vi34AD+BxZkRcRUi+uNvj+aFEWZVwTL6X9M7uSVSiSZlmghNeKt0AjeUUxK7lIsYBvCFlNtnVldq6L8iWeFyeBD+j7HOKo3W80AKK4vev7AIgh2JZPEdHS6vdkFMexZgwgCm0ukKmg6LiugxqMR+abpusxBOhGIeD3tRqNLGu1+uNWk3I+6Ha7g/Fke9xqJnkc20ow1kzjOEoopdTzvKgcdjtRSKU03f7AlyiV7zieF8dB4Cdp5nlgxTFibzQqbYeQkODRVfgeuEq2SE2eJC8jb4dr4SF4IbwZPojH8Hq8DZ+NL8Ir+EH8DCFRnFVVWlXVrFrV4gOEni5NNFhc/fEAcLdYSHRuuMhrtm+cVUObYVLJ06WqjF0iF7FFneCY5bRKs9pjGa5jUEGLRP8BYNjEQtLVQ6Ud0yMDnZlCRDrol6wultM8/JmvK5K1RTOcZSeJ7hKNSGQB7BdL8b3PRSFJPwetaSK5e0fkb516P5XPP+0DbMKmHC8UWAP8wEFcGeA9oDSRD8PStD6YqYO53CPdPoOL2a/mJAcw+IyEGm/lIscLjK7tcBZZT6dVCSjttWshnylbkj23q6jDoz5sWmVVOb4c4RwLoU4dQhhvS9GspwJPB8rBtaJMqzRiJvcCLT/YwmgewYU34iIXoqdBTwkg4pK6qkJ227n6XzIqs30COSg8rpgOD7y4OSFrka84LiUchVYsSzNtv5ya7sD/avEtIjUmX+4HjcqBI4LAi7SzTykiCpblqCQdCCmg23e5ZWwFQN8nJKk9OfSCQDj0j85ISDFIE+VYFkanKICyLcOc/tu63a5CikpwKbgVqyr/6zyiwDnLY5lnOwBI8SspUEAhKbWULSodbyywlW2nth05Dmec0j7Yrz0KyBKtcgubxFgUgTtOZNuJbYOywfLG420Vn1Hx0DzJzB3bY4wyDjTiaFvMTKTvd+PNzaQT+KLQzLJxU+lAcU6Fb4f5i86Na+MmCIxJTiXY2jr8T5yrQCvXaI6UURravqBbknLJGKClbRhQBkMwAi+rKYIQ+feDodJZAghuYieKQiUYOG4T48HGxiDGpusAEyqMIic2XABQHhQTQMhDAhkJZwBa288cmhF9UUwpGC3o5hknXi45l5IJbYDSGFZdH/MyDUynouU/o2LJSbKjDJeJftFWFDIuaPqKlArOwmjrFsm1Mcn1yURaQFmSppqB/phR2nUcVytzqtfrCYqAFheSC4UUJVAluMWDQHJhM66UAjDGhhAQHOO6ApEpCCMKqOTv4c7ra8E5wBgrRFBS57n0UhkjiGScuBiEAte0d9qAuCz+F7FKhBCJYkFvH2VFWaqgNIigncuDUgJMJo4ZISRBSmYhtHBCkIPRECoOhhCHAIBi6Vww3nk2WhEQJxVgQqwEjAYsCeGEFoIZQoYkBIgQWzDASvvcOU0Mrb0qyyIbFfnReUjTTBRAIbI0DedHeYGWIYhN4jesjrFOFiDjnAZJ7YL2DLSNk84agMgmFidaPqJr3oB0cD9DBKW1SxlAYO8bm8Raa4CN0YoYUodYCcVpFgufpl7EWcpKqDhoCSaljWFAax0ntvGeAwBOnfaJe3Mxg9A0lVZa9Hr+oNcLQOj1DkLbE1rpqmnCwHxDXhay75wSCNX4nBC8yy6pbbPMKECZLGtb6vkAytxzxpUHhHKuL8si/zcwBsbAaPqfLFgmEoJTyYRIROHZe9Ef4K9ENfp4EC+PeNSPdJyzZNktCV5oLdtlBIe0bdqGDzmJyCfFVbzvYlF7tS9RBUQCS05So0CIUNA0bSxn5uImqh/KWFfXWeVymOzq1fa9m262VcvZRRlk+y3t2staTdgCK8X1hcvR7bq46rpBWRc2t7gv2a5bdTuhHWKytetKPz7ogSAzC68b+il1x/Q5zm+X4zQz6GhNL90iweodDpbErz274pJNt85TtXe3/6dJkkgKWabLodLZZXf41+M4ls4nzlpAStLOK8NUWpXVRkrNgtnmdAdST+qysEGyoV5vcdzvkQeME0rbZ68DOcmKUUUV2YMC2E89AVjpBKxWpFPFpFlwAAIlDj5VcLYDdnYY4K2fACVYiMLMPAXAIEM8M3lyoZH/kFnKPHmtpRACodkSC2iDtFitVqvif9J8du3afEY0PeziOL6PtaZb7qAs8CgBbA5PhRDjVr/ff6kWUgr9kkEc/8VHPvKRLMu0QA7ap7wxIUndKCGMMKlzxqgwoq6uCmeZ2RG9RDo6nUrJN8AogtaOmKXQQlmliIm0i6pI1pn6VayNgCV5GZgyTQBlEygnwZJIW02kjNTEAuTVDiSV5cHk3HX5yB+PtHdSCW1YEJRmFtZLSXylgsceXFM9BAVolUoBX26YmY2FATmBUVIA3YMkFePuKQn2W44X+v4A26XrIcos9qxuhkbeyoyeBAe/W/ZqH151Tc35A2Bln0aNLv59uHrlv51MJi89PnCeQdk+bc7ySMWXfNc7vuNm23ggOsLDm2b/XW+zJTqnH/1jPxibaibYeUewnWUqhGQZUeeNtyu5kN2iKLBV/YcZEIN0IUQ9bM1nmsc4QVErI7JiF7RIIbyivcSoYbW6e1jRIQKzDDSKwQ+RXywdOST7y3Y/v96hIDKKKeU68+KDb+pG4xNXX4P3XX2NqMrxqCol3s9lORyVhTiOlRQsVdwTshUiFRLwh+LwGQ3li0lIkQrRStHbvF9BEpyVyM1zYgUSsVIslIprwTUTJClrdaP9p+m31DVgrSIJ4kqQlHGslGClYkFQwRgQpBKsCBIK98ZlJa6+RpTFaFSWAk/LqhxdveeOPU0WJJkIbjgcxM4RORcPhkMHIpYkxcbwAVwwmPH4vrdnWjFJMXqVEARtWqdb7xcYBVa/cb7VrjWaGARuWymJlc7edv94bLTCcVtIxIVe+z+4F02Y8jJ6aE6RvSEKR7j1a27n2i2LBCiyw3qb6fButM10OsFpr4c3o2mmhwdnvR7efPes11u2azqZ+1HFvYdOT3q9FHW/t3no5LTtZVW/v736J3W//zM3hPzMtP1hM2iP+SSFZX4QkEc3GYSYNtr2rV/bUh3hZDD0UXO3d9Va3qnV1YRfYnCpde5DCFkePOjy8DqYt8OTg9Uwo8+xGLZluRwdHLSENGkbfYjepEnDR18zBgwYjqdHfPL41rXDS/IhP/ATKXU5wPHRzcv53NwfH3i3uvhBfB/7ZFw1TaF1TCroJh6r3/dRlOXBsV/DQVnak5+viF4ffSj6St0muayL2zOnPpLoDmtvN1ueM5fnqpbCsVHNKzOeUlyD2dhpdJfbujKKFFG1UTeH4uXNuDZ5B/zn5606oFs977ndimjVPfclqi6SIgstSDIZ0TR1TRoclLMqF8KtBaW+o/mgOomDxdnv/u7vXgg4o4uZEZ/1sv2OaLd/2eO/Hfc4PoNW3cnqPa9b0W9XQrqitAyOw01DcIT6Ka1P2mNjOFYCBJEk3hGEGI0OjpVglsIQ2YfnN6wFpmfF/XiEq7fSbv/4+fNRhGf/9Nl/azvFd2ek7FEYUB6OhVe2i+3uafdVFw820pKiQAxoytDWZrmROZgXQKz3J6k0Pi+cF1mWFsh9kfeY6RTsR6Evzs/PZVrSTaDbpCjjQ2vqkOc9wVaVF1ddGfniGw/XdQ7g7qkWIJ/VdealFIAmY2aHL84EjDUGSF9247JulJbDoJnJjEbtxlMrOR6fnpzMej1hpEpszKL4nEceOzhQmqM26n1Wn/G/Fj0VfU70jdFvIcEYZ7iFl+AJvBlfhx/Fz+Kf4X/iz6iix+gp+lT6XPqmiD063kolsyAz47NnfnVtKK7Afqmguhj8GrZ6HLwir+222LWSBHniKRFBZtSILc69kAYRnYsS9y1M+8WIiqdDcQOlLxQcsqbTLrSihlYIeimpF9jILEJdEEGDcF3XXa4X+nA8wRPWjV4sd8vNfqmWu+5yGxyHoZjoxdYtQw9rM1YC56haC2/ktlM39TyluPamq5XqW007ryLjbQiDKbck6lh2BfdLoWaBqaedr+ebpWktikcR/EsusThie9bNnYdD8zTUxSh+belKXzGgmYaHn+43+5ZMTuTp2Viti1yxWjO7szAC4BoirDOqOM3l4hY4fl3VJRU2rYjSsosP8jCIpWC3tbprG806HT5shPsLQzSnysjg1RKOR2a4v1zjf4lMMkltNAyTFikqm+Xp4ao7IS5yo5s814VgZ/9ggpHChyE02DK00oKMKWupjJLg627fD2sNUlf/q07hIaI9eW0Mq8Zopf1gMHhXPdNKCaJlblJUlg0B7phA0ggjha5CDHifB6lIG8NCQFjr+712fHw06ufMqXMUZ5m2ZF1DbEI1GA6mZZkDoika571oisIbrcV/lIbIOoI01jktmSBHLYC8zYCydlYrKWIQgpKCk3f6LJMu3Ej2o9pcvxmYrYraIQto4Bd/u4leRbCpVtYr74Mvk9mqmnGvYlJeaiUSu02SREnkApKV1yrQ8hgLC++sPHo5K4y4LJ0lKaNTVlo6qwxxzIzfl3GcaCFFEwetQL+qjFMg5aYwr/KCnlJqzE3UmDnVNSFLtZSZGwGwPgSvlCTiYtDGybekOoljq7FxgrKyGiiQ+ruCWWGkmikglADpsmRc6Dg0QJtr/bVp09QY9FrzOtK+LJOgidp3LyWd6/dHgts4CCahtBYmFiJPN7fvnOV54XssEkA5IXyS9GxdjYTUigWhadusVGnKwjsWgomk8AkzK+nTXGuAqO0Jkaf4MrAEJAspTCIAZrRZrl/fiN6w1zJrpdA4F4C8KOK/Y7UQykmJqiwz70DOBYBk8CHO0tGoLQofa5VlQ8FCqdhrHTcTKc9PT6csEpsaa3xV9UGjqvEMGAiZhDzPPsIQJATAUkvBIgSbGighJFeU5uLsCUIKcShZaqO1NTyA0UZBCCFvl8WiL5U2yAIotACT4lSwD0R9qYyWJlaDWMQ5kiSB9J8dtsjGECQxU18CUstWcl4whEIIopaa47wKMPFSQIW6SRMlhVDGak1kvAlMeF7sPEFILZzPSCn5IDOLUEiZJ4FFTiaJndLeAjJRLISIAWkeFcIxhJCCrFKSiCgpipoFMyHNi5hJkNFSeGNIWmssawfrPJMKsSVJ6FszGqchRjDsBQcDgrEEaFXc0EIAygRmEAtuhKCIb6Xsb+F38Kt+g5LXRF+UTahc0lh2BgWlVALDWYnGlavry7XK71G2lmtmcHkL9UhuhXsn+s3FOioCDi+G12013/P2NxE++/5HHrh58+gIODi4c+ehh27fOp7v20xW3c450xC/xgxhMd/vT1KrzN85y7N8OpIiJRw9eHxc5DI5u3z5y198qz+wybVrXTf61aJt21oqUFU6Yiull7KZKtOrKvz4dQq+3uCbjg8mt07KOzCPq9+4HPQBH4IhCkWeeeY4fhXiuJ7FRM57koP+ZNK86LkvrKrrR7duPVA9qtwL64IHKE5U2TxaE/WkyIyhFjL2Y8EPUGKiA5QlBhVXqTRURzqGoG8grtslpNKA8R/wXMatls9pS0kMYh/+oRPh3tWDv488H/WzVM9M2eDsLbeLWTgYwpjUtUkMZPnopDp0eQkM3TBNUJaT5B+nvfroYZbC+bwqicdf93UP8knVIyq9VErahMNUD2DLeU/kmRM+TQbjNH1s34l+tIpeh93CLR3DmQcKtbK/H/Z7vX+wW4NmUfqDB//mRJ6PXjWbPQH35XYBwaL80efizXqYpedV9XeDT+JNVP0divCr0WH0UPQU1w32R1DlSCck8udhm6nUAJ7XluooiFIpqEQ6u0R+iNapHqfQz1qqb/XnkCmsEZitJHLHnixCzdOl3023t4GLdGdZ8LFGvq50K2s0LJ7DD969e/f649dPlJXo7jy8sc5aqDgZVHGCsurhLWPwNXhHqTfWhWAdl3HAg6ibq7/h6Dpg4iWhbsbga4PUG1gbgsW7uLeYpZcPXL7o+knd3Xl4c0pJUv1jY+7O58peu3b37nyuzMny5h1M/PP9JNHEa76fZVjeuXPnIUZPWYUp+AzWWou2LJHE9SCJ9Z+vbj5nQ94D3oZgjfVpHcfYPXqxqN/p0xUg04s7F4umu/mczZC8DcFa2GuIE1r+Lp3uPkRomwnofKlNlcR4F9mLa/fduXNV+9mMPjzPN5t8nvLicpoNdHL43o8essHbREQmjL2al9YtxQmMla8NlbkkhnyHB9/XjOuzF9C2bVsUZb9fmuKQ5qzvC/nwsDBlv18WBYUN+/47bdu2Za9fFoXpA3k++NJBngMDWxRlv1fmxLzH9Nn/jJ/C90eLKDreaxtkuFDhO8LQqxC11syPu8TbTk5OptPD8/NZOrl9nRuFWdyepIcX54fT6cm9k5OTw/Pzw+k0uSBMDq7/n2uTA9BFsl/z8ASHz9o9/B7u4e/pf1f0edGXRV8ffQe7GvayaGvo1XCp6KbvG5TYN/bNeo60g3ZDqgKhvrCZHnbc92GUhlb23W6dlUWr09L1P4ftAEfP9LJd5hG1s2XXdat2DbLWx+CrXKTd6/22012tdw6WTvAewW8QBDxKJN5AzPyUTuNE/AQR/7pgIT5BxJBvZH7OjcebJl/2nL879g2PPvrox14NIvqXjz766KNvXDnNRz/60ed89Dnxxz72sY/hHu1IMP+Vk7cKZtpdYuoQC3qPYKbLtwoWeC/RewXz+Uc17elTTm7eca9fLpcnJ8vHTk5OPn7y8ZOTk5Orf/vGl3ZELP/x605OTl6yfPHJycnJS05e8r7Xv/71J29Yvv2Nb3zji1//0qjsIgaCUcfRPno8+pzoW6Jf5eUBUMB0OQBo2+YgwKJWy5cpiklA1ZXtttvkOu82uMU4aEqMExrut7+jZXhSbFGez28V7LR4KWGDU9p9WocLZu3kIPa7LfYiJhyLmDkmHINj8YY4jpljISZHR0fYMvbYMv/V7XbLvGU+Ovp+Jl+MwXB59fGTwQAYDpZ49GQwwKO03b7kJdsN4fz8OSl1F1wKEj8cTg7qkz97/PHHBV2uhPhWLcTjQjzOeORBIR4X/9eIGY+IxxkiZsTgWMTLv823Xn0cj56vHoaD5dc8dHZOdH720K3TU8fGlMOm0i9lnrdte9HVJ0ZGmiJ8IMqiB6P3YHKgkBut0WS7laFeDY4xEbuB4xeuIYg0gtvtbLvFMilu+uASbmCov4CrBvaHJuhNYd7V0Ytf/GJrnG/bto//2RvY4XBxPh6jPxhgueS2ZYzHFz26+rfkPF4E/9CMbnc8j/Vt21HF2jiO4QZ40b9pep7QSING/q2fTdP0hnGaAnS7W7/Io0Yub8harRu2ul24nmaPveQlL7Gsl7wlCiMlpIKETtQTrrGlbLfXfsHeeA2PrsKXuOsGmieVIXGWZBWBujA5jCSyCtzZTh5UZZXAlw5+5ONw8Bd/8aXBYDA4/dBDp+GAhsJsAuT++yfHXbly+KdhGIZAxkekrn8KbGVeyAFcJfvkOnIPeZrVjnCuCSxiDShnnRFLhnGN00Y79cHZqOtsGjVPFOHMuVwSgNYhnykDcujA3fWA1Csw8xbxLI184/oV2EcSwSj9G2ORCSEomDBCx3UQhtIjlZpyFzNTMNc1lui/0Pff4fvvaPj+3b5/9wgAlXpIYTSToAsCkhfm4bkA1HLswLZhPF6txmOw7cB2LArguvzbjGupqGu0k8SeD9hohn154zmgEC5i4PlnhWV5vKuzxb+N8F+aeDDzjL6Xs4afRtDtdSdnN7cQtzbPTnrdXpT6TcY8pB5n7SyL261mP22YMf1mqx1nWYszn6KHJ3HUN3ADPkdapCKXWB1gFUoUhPjaMa8dMdiUJxmSJLjqp28ptyqDuNIXElE5O7zo1I5XUtpYUOZNqHFUqn5r+Utxubq907smBMiU1/Q6t6+WCOsnz57bVU51w/XnzzrOtht0wvDEn9op/FOYTodtIdwNKUdrp04fe7YEkFMJINcmiose4eoDZ8/60uvyZzvSP3v2gcc3ONtNonOOs1PdcMOF2Dt1cGbz/wCA43ub4/WNcmuv3q0EX3vxseWXAY5yjT2+lEirebWcM36xs1z6KMgf//Ef//F/mViEp78xHrj+bzzOdgtBJF+FaIlVb0vL9jEkmCRJgjxJ4hgwy7IMWZLECaw72MMDuHL4KXjg8FMdY4zu/o+WUsZ0f65rtDbdp9paGdNp9LQxVuebNnEGw8CbYYMcJ5cIZwBHqZBBFXID6A9Ky2V4l5j/Ti8ALfA4N08HthUElv2qKEmi/+PB9I8t8ju09+HT/gD8wLJtK3jGUPpHX7/kj44P/Geah/+gT87H1YpJNcYxBiAksyhM6yqZMDXGpDRpPs2GAtL/+8jCw89//vOH9d7583v18PnPfvbhdz/+ieuizHSc6w7qgYF4P+orz3nOlem3vvWtj3/8W8XGHW9sFLj2878N/wA/Tjg7K/nryMPk1eQ9mL+XinJO0QrchMXLivQ1W5KKHAtJASCg64sfSzt7X3SWi3LZcYfHplFyktS8S5eL5Sge2u4yRjAGYzHATE1GecYWD2oWX3Wl81k9rRYlbCTdbvL4Vr+k0+rgoKqw7G3N55v/Zn5wMDNmu6q2jXXP1pZ94sS115447mxttRobe3t79Waj9ccYxUmgAs4En6eJejvjgQqSKEaVJnMufkJAOQHO0lYrpdfGxsTfaJlP3Lq+vr5+6ydMq9c7vrMtRJYJnl1zzTW9adW/f3t7Z/te6E+r/gWQO57vezsSDv8VkFuOowAAtVqvAZTjWBxhXWn6WgXGgFToOCgJIUjg6GtwFb5MbifvJSQblWVV1AKbIQnm02I1TBLP5wj9Ge+Zhjd8M4BBLlu3IiuR40gx0ODQEGXY/fLSYrwhU2NE4wjyq7JV/YzRpyQA1ZxrpLuUfh7p5yj9HKWzxLaAZxxwKbUOp1H0+Sj6fAQQfV6bD8fJ5rptAWjd79gOA95AQH7XrZikxZZtARwbOzYCa3CAOD5xL57kEwYIFJEDdBCfB+w7FJ+L+Fykf0Shp6Vyvs0B+Lf3EFF1rOw7qfU8Y55npX+U2M/j3+7aNuecG60USBUxBHoG4HjPtimTUvdA64jxZpIAnCKcEHKABzAgijTJBqnJzYRM8nm+rMgVuXXIWtruIbem3Z64Hxm6YHA6hcFgwJz7u/wzV57Gg8OHr1y5cjAYPH3lypWDg2euXr16MBgMBk8fHFy5evXqYHB1cOXhh688Pbhy5eGHH374CjGEkFN4Bc4SQbrkGHke+XHyc+T3yL8jf0P+HyH1PJ8vq3y+TJZLVLbtqpqnAeIStwscUTdmmUR8u51llctC2uVMWxNl4/Yl9MjSwia1myTVfJJNri6NW8I4QWZxDch+eYImAf6ZsLJTYugQKzNLslzhWMvjcMzPhPfibraql2VNuCXyEYWprBqTSmdNHppmd+4rivzZrVartYQojkNooWXDTe1WAZN2C1owzKdQjUatj8FgMOxj27IC37Kghf3hsA8t206TZiNJbbsFn0w0ZO7axFWJMUppKqJMQwbueuGqxNJKGirCX2m1Wi14mFuaATj5yOXKYgDueOJeFr4vpe+LXRmGQoSh/O8nTpzotk43W7/YarVakNrGslMbwG61Ju0WQKs9meajUT5ttSZRGEYTjhdn02pPoiCMx61WI0kc23aSpNHaDsGCPmBbcwUAPuNXE1BpLIAQbegDtFsQyDVzVvZLzntaCd2EJmKzCVoo3YUmQLO7MMY15rhl+cbQe++9d/3BtxNCiHd0dPQN+AB8nsy0MfQlsQ3zP0l+nXyL/E2eMMd0YBfOkjG6alVV6i+RCojSu6sF5+Ou0CwXL8G+BBGXZMlSXlS/JRHOor7HN2q5XAx3OP8Rme3cqotlHzjlhLNb1Wl2N+0Puj2mdJpuSBVFuRCu14RGY6hUEk8wDKOQpsj++w6APRgOtram062twRBsKzh4+OGDwLIP/7NStq3U1H+ILm14TTSAm/3bbts3DODsgw+ehc8BpWm6h4FvWT4EgetKcFzHReRsA7Msa3CtGtkWMNZsnTr82rXHM8T678/xayfDUWcXYdoZDSfPPvkpzy4g33r/MbXfsvH4NUpbjT5AP2sy5iA6/rCC+pxmVk3JFqn5GHwrzyWvJT9ESGYsxJpqMsvAPVblMlnKap4ly2RV55WXZNUyzBtsuXvKOpZ5pZUYlTl68eoUTNPlfWNV7qlL+RrFarqETlW8ZJmMA8LS2cf2ErHLjPu9w//7+x/+8MPXrL/oWJIkSazBB/2y7I3n1zfgHRcuXHBd13EvtNttSFMQqVV6Hh+Px64lOPcUgN6WzXm3paS11+KZvzp8x4vf/53vfOc7gwceeKB3+l1KKR2s0FLGwGJvCjf0Tu7f+OLpsNcbTj9vNQCaTe9ZvV7P7gWiJYILbRqVx4DjWMbLMopx3CBjA9P/l3gMPkFccrG+imcZLW2Q5eKn84tiQcpva90Hw72gF6WpEUXy6XJRr5hoacVJ6fc8mVeZTxQdyl7gu1oaoOb6yuslBk/IyTH+4NX3wKSQ8Ebs9wYUg26rhV8FJiPK2r6xoNPZMlpruleUqFb3VQFFpWyHImAQx/ArIES7l6GUQxjQOKJZD4MAQYh2n7aaZzqMOXeCNtDBVqvTNV0MAjwcMWafPMkB2u31Swg0itG24kGeNyItKbOCMFyujYZRJE+uSVsz2mjMZlUV22mSULgDA5/+e4wjClL2/z0I3sHAx7TZpBEoBUCpEzHm+zkK3iGEAEmOrsLfwVfJiBAoygobtsg5WJoWb68N+DvsD3aOnT1Tn241QYpmc7mepp7jx63moB4MAYrZZOxFlDYHJ06cL0+dmlUMet3JIGvZlnTXymOE5uGX/1m4SnqkZmOC7SGpxA47b6DQNtTdYADekNViQqdk6xEjO3jzfenJ2+45fgI9L46cbp63k3YrSbgTRZ4HcOJ7G9tbxQRxubz1huUCcTLZ2kxeBIPBzrzX56wDthNFjg3YPLG2hnDlNOD+yfvKSdHvB8VwgJhlzaYM+v2iKO46fXgr7mwfHBy/bW8PcW/vtuMHB9s7CP3tQR+x21vfKCLbAXDsqGvbo9ExwgghBP4BrpDnkNeRnya/QcjEjb5f1YNd0cmnVcly+mIlKoJgcsYnUjWYKvR2mmmCynHLSefTKhvNI/BTTQD5mgFuOmE5repqNk8Tu7Al7K6BwG9LdZldVs1tKXlN7NIFq3ldVpaLkg+7jfS4fPKKclTCOTAaNLUd1AAxagUuaI0xgEbHQQVa42aPJkGlwcHfnk0GtpV2HKNBK8fVGn77kUceOXH99Sc4C5W07F4QBCaUSun4xPXXn0iUlsK2kiA4/Jmtrd39/d3t7d39/d0vOI5zfq/xhBiFkt+KBoWOjRoiqjRslLkuVUCc8XpjgULXfQw5DdrVepjPwD7llXYmjzzySL3HeSiVZfWDLAt9K1BSqwTqvURpJSwrCbMs+NDu/v7ufWrCFl7S+v8Br8DHyOPkJeST5LfI/4ImnIR74BWEqIa1ZnUhNTM6aCIoA2nOAyFpgrV3WdWjalQVuYKBfHqTaTX1ySJH4mc5rikRAwB440qA9EFHubB5h9c+wL3XmFYjedaWQlKwL2pknWRUTUcvCGJXW7RHyzWCIVCIUq7eNxAM6HT4BdamVZGXJOOX87ddWhZlAb1fTKsvVK+yyaisqulyeq8I/Bn+Z8Ic0Ab1yeQpWBpVi4d+oXo2nyYyzasqfrQPG1XTanG0eWTfYVozYCaKPAU0CLwk8sIw6/Z6EUC7KAYd2wFq2caxhWp0LNui3maMEGW7k7X6/d18POkqdE6ldeT5goII1tZ774IwQtuyvj4cDhtMYuQ7aKeY5IFto8M4at+PPN/3BAPUnTjxk58DOwyiTHNgYdhZm80At1xr7eHW+FmRqwO/6zoOB1SRZQDcKOq1BaBlOYCx57uUWo4Txb7nQWjbjuCNyUbn8P8AoHSdIHKVDmLKqFuTudhuOeqm8DJq276lufBsgLTpWJS5EuAPETqR59gSIIp9rTkAV89+lPMyXduLGFNeKw58Rh03BU1pGKap4zFKmSW5L5BzBJCNrDdstjjVOnbnPV0QrCV+0jnWbCFkAAxspObwkxAGbaasZTLbsVwx2kR9QKURjNoOWmbDGDCEf2GUStN0XQgsS3vGbAJCLJX7Coxs21FumxmAaxkA37GRKgDaYApRckEpogQKirJAiuxp9dtx2hbCogACaOg1/ke+5TM0nGtAV3GbMgvgnQCQBEIAMG60QpSM0KN/PvobPM+X4/JJcl8eLQ1ZjeSblfPBZ3hFlsskOIwGaPjkfYwWGBlAAGBwNwVNzEBAN/O6SipR4gnjuvB7P9CKLd93Hx9t9Ed5b6CkfoYxK4QHB+NJ83izAdDtbR1+aySl7wcBvu2RVmJ5vrtz/Y3XW1LA5dXKUgyA53s2p5RZlutY97/73e92jGa0ffjpHnxcWEbF/f7eXhwnbzK+7xgpp6vcUgyAB5XXJIQQfnR49BfwS/BJ0iUTsk1OkmsIgTIr62pVFpJXQooskhwbnSRfrsCZpTUv5kFdj0SipJXuRTKtIK0N8Af4xeUHHn30UVcYyz38n7YU9DnC903+97YQwQsUDX7+1w//G9X/+MiPvETQ297AlJISIPit3/qte58rGdystR5GxqJbaIx3+Gkf0bnlP7muh8dBrfn9lc7+4/85/LSQEH1dh5HvAxz/6le/+h1NBSGEMEKO/h18Az5NdkhNnkVeTGqgrgSkZ2WNMExKSum7A4Jn1CQDvytaBmAJHLzAhs6kaV4aXVTt3LvT0qou/bSMhM8J28nWIIrazwMnPd5Ppydi34fnPZ3ZlvL9H86ksA8xfMXznve8dLPngJcemw0tC573fVkUCqW462YTiKKODBHDEDH8/w3Pg2knisH3sicT1xG+LxwnXXc9t7l76ptw757+R30vezL1PKaUcJ1s3XHddrfR6Dc8b9qJIngfQLyhOkpa5QC6xcRomCmLzeFgh/HT6RLjbQ59XnELg+XHIPgp/Pxh+hY4boLpD7tusmek/Oze3p6RcsWjhKeh3Vrf+8P7E3t7e4nr/nCKieuAlOaSlOb/ouz+m9Mhb++LAChthPjj9UoibRgVILfS7BN9c4w7jhPLl2fz2Z/RamtwK82jFpc/wNl8xmzMVD+VZkxbVtZQ1BjBUZy/wKllpGDUItTo8wzfQ5EmhiaxVsg4A84T5K6nlKaMaUW5oCCFUkhVGCWJBpC9rlaaIQpJhdE6bpzQDD4Hw+HeHeAdm/HH5wslGw3L5syypWS82eTM6HwkwOzsxJFE5GiZimml4yiub4XvB4GQIIROomybHpe2rEnm5C609StvIYQnAMVPCK30yNyUSDIJQVua1egGsvVLg84WRvYLC7mnkfF06rJMWWFuz2eZ2CdabLZjsrAHDq5evbrKEChazUz3Bi0tpTiwzhilMFKzp7jWdqgU3IZDuvapYYwZhIHnj3zX1XbKYQ5Sura4WRgjhZDGCCG+bR+cBKed/R9Qwa3o3fcqzuno2ZRRrQMpJQ+MJQWlUTgZRTFnMruoPFdpRY86EReCGyMeF0JoIzgXxnAdScoykoCcRRqNfm+qP4JZclez6WzC15iYXwY2n5tIduldyhXZLh1omkFzpCS3mOsVX+z85uDeM2eTv2gFYbgwlj12HSd54M/M9PCvsr2L72X89in+b4uigMlPamPc0mfcXj16DFxcLG4/UAhodibrQ0dK0W6PnMnNo/f/hsM3v+Utb7l8gvBB+Yu/hKfgK7175AXkXYTkrWfcteDltfnirx/feU5SwMzbxVSdYXhCeaFZgqo2d5OmD8L5tqSQlNMMaZSm0HHNSOH0etoY7b1wkhllpH/uGb3gX/NqMMb9oWx9bT6rx+O0M1tfzySiCIKAzecsCAKBKLP19VknHY/r+WxtPWu1Dv9xeyvxk2YbAHruHOmZs489dvYMpWfOPvaXxrieNsa4njZmao6uMXvjdst1ReI1EDVVUgSdTm9x9uyi1+kEQiqqERteIly31R6v7+ys/0879i3HGd4HZG9rbe9gYwNxY+PgYHMD+z3LHZ29LfTjdqJ8nveINecVxf34RDIRwzdZLvJRlZV8n1g/du+9977Y0Sq77vY77v2Q5fvWjzhaZ7TV8tgTHbg/mve/JQgjfOyxn3Gcz0dhBK8kPiFH/xWuwit93Z96GQdTajc2S5QfIekjObPJarN0m9whTSpZxRNFSlhhPVNYGgCaAnrxAXY3w+zoYT3ztQ88VNf1tTc+8vGdnZ1R3TwzGAyCiZ1prbvuKG00GrolM8ZYJpr9JEloiu04jhM42e12ocmLfr/P27qxvr6ucrebJMmOW95xzTXXNOu12zc2NjrzaH1/f39582h+7ty5s/dswWhnZ6fcWh93Op28O5Zpmnay7t15nod5eHsYho2wcW232/U6vu84zsgebhtjCj05obXetaoDx3HW3Y2XCiEOzPn3HDt2zF0F/4kx9pB+PjTSNN1Otx+Kougu66Y7u93u2VY8yuRb8K0crLpj8hB5NqtnugQtYpMsoPkJJEdvRpG7DBZD6MDQsmiL6tiMhvW6MKuEm1uVPfHzTbNV/efnz59frc7fDgBePwoB0mxyopgAlMUJ2IsMT90okZIhSs9LdLGF/jjNWq2tXAr6O570XJ8zC4fmkQC5Z7L7eRbDqW63+9RvNN/87YcZY0u73c7XOl21Mlubp05tberDMx7HwHI9y9iM+66rvBaVlel0io1+jy/E1tbZeWliz5OITKo4clNuolDCWfh5FHnSckhyHZwCmwRLq7J2VC40Wryoyrs3z5w5thcevmo+KRjfHUxxs6rKNffh7JoLN9+8+s+i15vNz/BiMl9UP7h3YzDKZ7ODF9x2+2ym9HVzKVknhNMKPsyY97VU9URqNwauft/3fV8fcHf3mou7uzBc9zq5/cHe4X+qx2PE8bheTX9PK/jwhz+8uXdpd4o43b30UxcmH+q/IjUwyeIrnozzke/nR38BX4RPk46PN2KMDFf2a/JS06isWdfD3RcU8dSGtyViA4jVXF1RM2+pcJm98k3n4ATj5y7ceefpE4yfE1o7thBy4+D0wZnpd8qylGE0WG+3EThL4iRyHHAdwzzPXUvSNBJZliYInEdJEtoOeq4E17H2rrnjztMnGT974c47T0ullOSChhTjePaH6+vr0miAJCm173mWEFJ6nuAAjAUbscRuXCsI12zPd2zOpXQDxgEo9R0+Go/+9ejX4dfgy2SbPJR7gwxrFlxkm9yiBLKirNNpC86vSlaow3INXWqTa35bJppZgLloq72+WMIbEPEnhTwu+HkplbhdiAel/EGhtiX/N5zL3xTcfPvb30bG5O9LvvlTUs2kFMekVOIhLu5X4hNCbUvxEUT8Mc62hDjDOee3CnEt5x/ifCTk1xD5p4V4/e///u8jAP+kEBs/ynkphKg55/x+IS5x8XHOx0IQQggjhBC4CldISJbkdvIsQkBIibFJvvAV2ZwFC0eRIllWGbcVxoaSOrKo/O/KqvdTXJTXOVdvErz7nxerGt4DQdhshUEQtpphAAsYDKoXsKwx7GeZOP5I1r2Ig8G0Ggzg/0IQthhltBUpJXUYxkJqHRatMIBvQZoMB2kCkKSDYZICuM0wAAjC5vEnmg4GeNMwTQDCqJs9r3Tpk9PBw/pRqj7fDkKwVBjGkVKSUsoGCGHQ/vwwSdMjC5+FyVU8GGn5Ix4hkxGztUZESAXIcBVUm0CeoAYbjupOkfQbE5UfMUBItMKaNc3SLPaCzKVFi1GVc1AlAsDEbaVjvsH2Ffeh6DOep+CE+FH2MvbWB9zwxd5exGqM6iMu1qvbaDEnX4X7k82n1SpZCwfQ+aLEGYCgcN4yBxAdKTnDBtkCRBr49085Z0hVEHTcOA58Ji03azbDEFfdru97LsfJ7EGwDQY/MRkAcGUoN4pLoykAKiGot08AGdPmkzGqjdJAlVLIhOs2281myOg8/At7ZKaS/QwFAmWO4yksRjnUIC3K0A6vRVF5aZkhohsCuI7tADKLc8tykFkuowAcKLO/e6ONyJhjjMJqzljGAjU4O/3AmHQQLItmpMpA+p7jAAWqXVaHxzkIUrqOZVFIG0b51dV1pvsrpJaer3tK0ay4lPmOgv/hXgRKJYiREKlmUoIXhr6JkzC0JMwB40rxcfp4SqB04lCKoISyE64DG1FSQJtyzgF+KqhSx65jkkQJYUzXcW1gQknW+HyMDXxEIxCZdjmipk5s+riiiEL3iwr0SZ3w3+AqeS4hAFB54JbvH8b9N+sK0IuI54iYY3fKvjdLCGTP1c0rzY4yJoNnOOetcu/mQBlg5eQdhlrBuQf2UpnI+J497/Xez9z6mZc9+a/9131vWO18dfP5dsKKri2VYwywTqfT2brx/KRps8CzMyrb4w5ey52d+YVGuDKvDZ//huLax4rw9tfsPaKDidVkwlYxJ+eZTQi5MD5sTzYm6+Qu8nzyBvIu8jHy4+Qb5LugYZwlYHNU0kC/kmZpRsrArlmGV7dRlJ4ejd6mrrhqEC2kMI/kAJ3gZDmt8OxGQkGeCkcy6oM6x7/GGAg+qfFVgsaCLW6xPollnol52KtyZVthSNb41pJkHm9jlPcLHtfNXkHoem62lFTzhUVeQVzFm8XVxSv0/IVnFSPbftaFCwiznVYL/vWzeOHCs2xrNHnWhfMUWu3tGZxU0u0AKKldBNuAq5VqL9ofWpoL/WoIAvBxMABv5Pu+10Jslcq39tJj314BUMu1j4EulIcRao/T06pULtlBlRF11UKdQJRUfCxuUhQRP18NB8hhPF5tD/1Gs5uvxmMEDsPhrNto+MPtNeACMLOFoFwpkExpxjC1hGBMG2AMrGvrug6Cuu4h9uo7e9BuoXtps9frgevCZg/aLXQvbfZ6PXBdGGntCMRTysV9rR2BmDgZIHeUc3C9EEIUpTnJOecSyOuA/ddpn8WTZmnP1a55pQJuVMSj/KKNvJV6f+TwLfC6w7dkc4UcrsYY4372+MaGfBDEeQETH8EHRTFZrSaFYKPRMXjaGHev9Yc/xEajY/EOHRDJChbikdWxjQ2p+6tXcxHgOG4I6G1dJj9CdTu07cLSD+4lwBf/+k/ufus7nrjribffcccd99x5N5hIjL9y5Y+2X37ddT9wfHn8pqqq6t088ZsZiQM9TpCY9Mga2SUrsk/Ocw9XdQ95jDyXvIS8iryBC4JL+QHyKfJz5NfIVwjJVnVepVlJlnEWJ/NqEbiNPLpsL+cemlTz5V93Toas6GTzfJ6amK1VWWzy6+1LfnoUtvybDqs0izpyOByu0xQ2FElLzglZx8kc5l3haJ9Yr57c/aPdk/c861nxS1/6UireFbnBc57zHMQXCkqfdfMCP/PCF74Q8TlU2Ntc9PD3//Zv/zZ0D//UC3935X7+F1SHfwCVUYc/g8jlr7/73e9mFOBlbrQ8Xm4A/T58eWyEZ0UpO+bY2s9tY+wLwZf4Gp5TD3u3m6b9IWPb5vNm1z6lLoyr0tRPOEHgwMv4D3m/7biUWmZiNKW+vpVRRu0w4K/vhX4JXwVfIdeQF5EP/+SqKmkBhIStY7JLlSW3WK7q6dzIi3kyoqK+xzSJ5UiWqayqURKjopeGTLxYYsxwU5fy3Xg+nUMdv3BranIkdJa1o1wJH+gHId78sZxaH3KSfrPpavvDlt8lwrOq1ayAAqcyDPzf5YAD/BSDzl9hG8CggWi7gxODC/0UUQAC4G0f/vCHlTG+EJJxSTlCX5OhNVtqfdhOeq2Wo21436nB0HW5kMPQ+1aALAo7UfAtT3uUM8vutCt8/jnGGNquBiVc9Vl3ckQjRgwbFG13y09GEIC2K/nhe7/1rW/ZQipKGWOKccQTnmaM+e6ZwP919lX4a/jRsZ19rJvJ75O/IH9Pvgv8mkj9edEBE4T4dqhsJNJCwCORvu0442QcdVblrDYrYw97OqtEPsBk0NbWXC6Ngd9yZd2CVMDpfPAQGUib3srjYhkQJV7VW2VpFs/nkUZAPQPUc4fNUYYJq0FzR1pC5sQL4UxpVc3moWzS5aKOLWi35QvulI2Cv4b+4Nix0wd7x6hymujYsdMHx/YGfTisodOZL44fX8yJJC/Mj3pjJDX4JpbcdYE2C8DwT5FFoJRQt3CKIpa+VFQFWnEDlCEiXp6ppESuECBQlHuOI1D4gWsj9zLjR4q+Eq4KEbXQzb9lHFFIrl0uucuZ6DDFXc7lXdN7/dLZuh4OBqO6PnOmrkd/3sDJ2bzX6/Xms5M/jTwtRPCI6bc/5GsJlHYKJlJt2YpSIYWlWkEcWEaJZB2cd38/pYwa1+cm9826QnAnERQoZ/HAFzTe7goWnwDt/6nwoOm3P2UxThVsG46CIuNuckkxypgnBOfUmR/dloxy5grOObPba/nvwpfhabKfVRXlHRyuMeiMx1WaNRGiC4EBYcrEd1ViK3C520mTKihTMIWswEFOybCsJL4A/xVoPXisDxhHCOcfT4UAmsRUiOSJ84BxDNB/bKB1qMD1osj1QCkdJvrcOZ2EWimMvCB0HFAhzL0wxNSOEePJadDKICSICaBRGk5PYsTYTjEMvcOvg4et5nDYbKHnuhC/4hUxuK5HR61eP8vQAyKIffQl+Ee4ShbkZeRN5MPkx8nfEgJFWVX5jVsB8gu51gU2mCjaSql3L8h5imortlL9E8VfFZl8thfLqefsAsq90iya/qIscxfVJdf0MtjY5G/dSWV42aqVF0sNFCsTZnBlZzGw0Aplejw0S/ZYxv4dm9ks2a3/s0WWSvii3ti8A/Pxzm4+B+Ss2ToBiMYopRhz/VMbGwKZ12w2MmW53sCVYZTENkMxHi/BcX1fGZgmMaMAW921steHS8VEdixLvxu4ABgIEBs0higuBIitNAPgAnaBC4B8NBfiWDFBS7muH/R6zWbo+R1klu25BoTgSkrLZiBlFA6BcWZU2EwsCe+zwpCCZfX2nhjt7KythQswhlEhDON+wKSgQC2729t7eP9U+7/tNBpaI6AQFHw/CrV2eRJHMXiD4aToUnr7blNrAPBcna2Wt9wixRBACLppD9OEgeDAWq2JkK4Q+8MBCDEZn33Us2wG3PejOIvax8B3HS0tkEo4Vqg14xyCII4NcNtSTmRcUjf9ZT4oySsD6efl+620uhSDJ88N8H2HPwxPHv5witMxPDn9T6GFB2d3OjHnjmUclviWSePInWjXZcnzbZ6bUXjacaLd9/3h3VvvXCThstPxYq0Tz0O290gc7wz8BqXyRvyhNvC49OiIPIxvBELm5Fnk4wRNhtZuUKSjtZVV014b8Q6ADljoaaicjvPhfrZiz3mTfbflf1iZlyCpnQUP6ZSdMakBLd3W06slRW+aK8LYKaStaev5c5qWBXsI4A4tDjjm3LI5HyMwe+hSZvFGW1Yzh3dvmoMJArd+n3VtWc38k03L7AGCO7Q5wIRx22Z8AsDtgYcAe8Zqjh9Gx8EX86XZcRCv85ObXofoJDL7nXwxOg5udQ+f/r1Mcq/LWuQF5O2sz5DvP45ILu2STfSBUqamp4UHOVPx8NNlmDWtkOkE0jTAVmbJVHgD+mw2viYiBjfMB2yaBwwUcgrGzpTx7ff+mDoz3h/vFQVAWa72JhP8VW1M1A4DBhQ+oWciYyYElqrJAZEzQW3bCQRFxpBxZkbGCLTIfutKi5/xOjPHP7z99tuzFLe3z53Z3UHc3jm3nn+5GPCpQ0PAyWSvLkqYFHvXIaJyokgCoG17jlIDMpQCcI5DvYIaynhkjKJjEqbcTf97GQCZJwWHv3NS82H9ozRNb51sntveQtjZOXtuewsj/8KjHiYvI/9CCCyTJS61AYT5WuawZFA8lrNpZjxRSMHK/EJugiQPquIvi7V0lo1K4lEhRZ7Jo3bKzkIcMkPujdZLiWl/p/IsDLjIvXjMZlZJuqKkW+2YWb2q5/M9jITr6pRVCVc7NDZdKaPEkqm0o1ipjhXTTofGpidVHNkik1YSK9m1Euy+skFmVNiY/hOWS7u7uzUr45UblGXibDjpeOK5dVzw1UqUydLzJuPM3rAzwSzKg4aAcZYB9HrbRaejHYkcAy5igRL6SZJoK46V6lgJa7VYYrW1ihJLJcqOQ6nadkK7XZrYHaXjyJbbvt9s+L7vN5q+H7iuu+ZkeeF7i2xNrFaiTGeBlxepu+7F5dj1F3EpFjsCRSRYCAKFozudcrvbgywby0bAqc1EQgghnCj88W+eCZmSp8ib8j74WXJRR0mZjSrq3TQTeRRP2eQd56bhhfiq0/kmcpKzea9EXFSBw3gCFeNB6suIAuXGouxqewDkwl5/+pX7y+h5x0Yj+Mth79x5gLzsZ6hBYxRHYRSDBtA0GU1vzeiaaYXqVdMT95wCgMAYwADBp+BBdvMt58+fDwek8gH2unOdoZrfrTYO/6yzXJ77S/2VX0Nw4CICquAbyBP5COBDH/yfiw9op90GPAZg2X6jgZist9aRXvsPh3/09a9/fXdoW9MTp+azHjaDx/4t+C58kYzIRfJc8uZs+pyovoWFMUipDoMy0LfBWl4hynLQ22D5RreP8EQDEIrctpeLcoiLwkotPs5mwzY1oxpeOvRcJbudTtZuNU/MYymzxkar2RQ8TRpN75cpTeKRTZ6dynxfMABmdOgwilRavd4Maq/VksIyuteldDQeB9bQEtzsFBOcU8oOf6jf63kSabjVaFqI1an9U8PsTev9gWcHgZEUUQwdrax0MtlppxlGcbMZ/iylke9LhmCy4XDYtG2r6HRbqa2DIOnN56dOn8xHwJiIO0jX9/aqYWRL6bjG9n036nSiT1u2pjqhFKDPeMelBAkeXSWHcJU0SEnGktfmUANBDmk8r0a5LMwJMNOUF93ayx+66667Dh4eJTFsbpy+td7Z6Xa7eauVLu7T6b7la1/72rf90ejYzetrh+Rr4ECrdXq/0YS/lNHrDmdcOZItkyUto6aKqnlFq6TK3/Si+tYHF6+eH3zmM5+Bjf8I6eGnfyg0VMujfyEn8QqcI4rss85a8T3k3eQnCYlEToGFk3Rdirkf3w9u3vvXmK9e9tL06qtztjMDEbHRMYCMGg3rdrXMKOcUCbgbERavs44FvOnieR21B86XfJ51yO5QJ1lHyHD9STWbv9yObSeU1PS24lwZq+s5QrhSKUsLadtSGEsqKSlj1trXj2JgbEs83tvoBWEQdi/38jxfB1jPP9VzoeN7rabnQ5s3OlAswXFS1UTojIzxn0wdWy/7OYz7cyoizriAoRs5HkRuKCgA5YDNZq+XWEoBzXw4BakM4WDzMCaNtEGX0clXv/rVsxCE3U4YQAuKCdzwU9DIHklsx7bjCBoWsiKy7Eyp9RIsR+trwTLND7/sZe/TCUCDt716f4UH8AliSEJ2yR55HrlCfoR8PoM+I7j3WWyq/PrKSiSp3NuZQZhmo1XGnk2MEERYSWkGXn8R6tj5Ky/duy5/Ranza7MCAi/rbYmmQ56Al52ZLQ6+kmA3/YOe1jXsdBuN7jRsQBb/dc73tQ8crRyt4SSVCqRAkEozS/EEEP/1itjSjFnaFZwrzbh0lXkH2HY8T7qJbcO9WASWBREN4tYEcJCY+MkkSZrQTMfIXEoZ65rJf2xDDa3TDmCsEJzfOXyaCM86rzDGBWOc60BKz5UCDO3vrEIKEIZJ4gbIacE46gVsFdv2O3ZtO2n0rWUmhUAhtjsAvn++f8stjwkPAhw9W996VPvoKjwJXyYtci4TddFX6UyTaWLU6FaeeZZnWVRWF1Ol8vF8iMm3LZvx4u+c+7vAubLZYLZplsrfNJYFYhgZC9BYBimjb2sW6+NeHCuE9SQF3mzloz6kHjQ3bA+H7bbmjIUfyJKEIRee332fl4+HaZJQtKzO2SyzY+26LkAPwBjPdh0VyKLWc8a+D8AFg2Q0Wq5vbhZlN4mJGbcmk7X1vNtu9w7/Zm2x2G72+lmDHX7hp7d2d4Zry+XOeDJJ/N2dLUKIS37MbkwPbyXXk1eTN5F3k58gv0T+IygYwM3wbHgLvBs+SAj3M1Ga+5j4pc4KeUcmVZwrbwC8lShwYKgvxL+EOEvXzPsYcp/0Ihnnm24S56Nl3pNUrLW10jtYzCMWA5VU0LDfjQrynVUmcpK0unFSLmS/XmtWTgZzkGwo8Y4G7jGiWjUQeaITWrEu/WkZZRWzKTYww3+8QRZVWY1y6SPNzkPAvx7T5XLudEN0WQYOd2ySVGldy2M0ZtUTms/LappLackhowIayrsHQmz8skTj5PMMD0bPHE5SGg0MX+oCHP9OjyEymEZiwLTPAfhxIY4LcRzZbsthlIb+QB5UYLvVdCkLY2BMIos6UAMzWQBsgOxtFLr1U0DKQ6iA9cMMDv8nPaUSULXPEHHMqI9YUVNKLXrPzUD3Gftuo0cB2IRuQ+DF/gQg+TZj+3STWpRNKD2FGCFGCHx8A4DNWkEL7MOvagB6irJ9CtcB3BDwQjHVqTwogCGeRRu0jyHAWQDNzFmAsyEwzeRZyYaUDmc8nkWvU58KBBsAYggDRKTaBpRSxrMHjWH+ArNC/VogAreBaQFMT4HC9zIcA4yRPYQAkCDb4qgBNPIthoPYd+ShZ//8z//8lpNdZDhG1EAf5BgjeyM4DjQfWtqkLNiCm1bniAmlOWKKYI3hdEXIIKHggpQTra2LF38J8336cqQAr3sTjA3jYyNRR7+HCL9CFuRZ/stEpmfUY6RcKhUKx6a+CtBOWqNTpH4MizCWc2bzwrqg3+bmo9jJk/dec+L4Wmm7Gxu3Orzd4vZEsDDu9dKEM9vKXNFuM2stH6UB45AAHw72OaQZ8l3ENOv3ew3bpnyNQZYBW42WRuWjur5w694e/ZVnnT3rqEZzWp2+79rrRsK55oLN/bVes0ExCDrNJLa4e801hnm93taw3fJZ4n1zVPW06iM/foLR7rFBo8l44DYanZ0GshPHOTZ3L999crrbairr5P6DhHiEHP0pEvhRcr3mZ92XkHeR7yMfJZ8inyO/Tf6E/A35P8Ch4Q8XPWDBU1AuntFird1lzzEvE+X6SbXl0qhgh0heCnbqhHJcHGyZBgeiAxR6espC1ockj7yQSmBatL3Wl2lWyFUNQcQIUhiK0dKXmXcAI1teeFdwa1sPz0NhrVGejGSBaw67GU54D5+k+3dqLUQSd3tDKRjL+/0kFkIDar3ebAK02hs+t8cJESf9/pBSpFIOuplFfFWhATnfarcBmq2Nt3camWMzpgCGozgT4imlskwYKXtpQykpjWgb23KyLMscyzbGtpy00Ugdyza/LJWWWUMpV0olG4nUz/LdXs/znnKarR5SgCweDREkZXZDilHXY5AkudLG88xTzX4YOJQJxGEeZ5w3fc/zPM/x34yenWUdKbIoHyJIFjJuPNcoOU5SgCwrvj9yHADHiaLpOYCHlIvt4dC2jOkKwVjfsiy7399UmlI3TrIsTTxErTd7PdsyVpeuyT+xEG1jLHsw2JIS0E2TRpbE3h0NrYVqt0vOFe00ufh3jo08zVzn1Zw6juNkyYUkiiPEKIqTOIligCiOk7njJBmnjnO94zgO5VnykiACiIJ9aUwLKUCzQ5VSk2ZTHn4X0Yrt0PN8m+KgPxg+mjpKykZzrLTCTovxph8DREEvcoTSDS6aXSqFGA6fBzDo9weIju+5vh84HjhOFDnOk0Jbt/5v4RX4LHFJNuZTnkBEYMp70nlFabYjaVblXCc9zap6gjbtoLKqhlOf+MQnbmy+qnnjj66tr6/j+u3wXGPMj8c/cjj78R//cfPxCD5L+lftW26BZw5/8k1vetObdvv9vn/M7Pq+39d7uJ8mWuAVuJ7skWeRnyZ/Sr5LDgmZjGyjW9URdBXcbiXOkgoAZVgiomin5QJXGEzsXJ1XpF0QnSbcSZnbMGY6NZxjVfFcqBxpEbEkTMPmQH0wjmuVHi9qPAi2dHmWLJZFuqB0RLNaVqJsFAyc9+vkLyUhVBkJJKzlmFLqHN0Ch/61/jyVOT4BCBuxiBGg0QCASMQbo9BVQ3iekPBcyhIM/SCJxm02UaEx9BFSkERJYvu+Nwh8cBz/8IckXLfvlIDrsYgQsgwwco1ueFow/M+MphgG/hHVJ0hpDKCtdBIlieP73oCw1P8a3v9IL00hTUe9lhcGQ/UQQBAMezLrwLH/4Fl2MKUNbFq2440o0pFn204DoUmngW15SkrogJB6ACgsx+mE6DppZFkcgDEuHQj6Rghw3TQ1Fj8B7i/QaeBYrpIS2yCkdmw7mNIGNBzL8UYU2Mh1bLuB3990XQA6AjgByG3H6YToOmlkWfzwtS9AmpRlkoZtA2MQ9jBJ4Gwfu2PpXP9fj34X3wifIwin4W54CbwNPkDIRNS1RZCW4OF8vbJkNeKgIJSQwZY1cOurmP+3XaKKbMJ8evoLOUqEXC0Xewm+uEQWFfCmgpjKVAhY/Del6GVkd2VwySt00AbJqphuJl8v0uPnVWbwEhh4gjtxVSfVtF5V1ZZyNCS7HxyR+3WWRbnQ/XXLe4PLqpudrXifzZmKxvhcyCfxfvNpnddJMy82wTF6MlEu6qktra+n/daxkEQYIgLOBtgB+Md+GxHFKA4hxkaTMAbUcaxgLzkGSHU6apF9qLTWXDDcv+iASCk1JtbjS8DE9X0L3A5lUgAEaSMMpWx3jl+3WFjG98b5vOv7TCClaLTv9fsb005Xu3vHLqyXa/2xsZhqd7qxA4DgDQaurZQ96HbCABSllDqWoCC4UTJSgnMAYNSWUlAAETlaAzIqEAUTlEacSWECYQ/1roQipM6REAoYKVsYG1xNsl2exjGxUqwAKUIgtO3F1cvTLLWWRd5WzMwA4A++lEhqLRWghdIyV6S1+HRBgNJSKhirXyUsZ2Bl9vUc4NUxi9gR2RA7ASYo61yvl4flap9nhDSZQilZVnXtEg1AS6AMaeIdpBosvSouC0bwqUkptN01lmdFVQ5cWQz6B3PmXjMatz1NWkvDQmljlERWnp2en4fQJk0zng1H8bTfL2MPQNX14KAs2cRhOByNshGMqaNVOsqL3GqiNvY+jkPMmVxtELmjQdNQHDsvhVFaiNpYybx5ppJBGlO//ZSKEnHsAlGvOmAhdDwIwQtVFrFXaQZOYG01rBt8QyqVVEWeVyGc55XH9cPXCZUmKZVFG4JXudZ1Y7cMgtFKGSTWconKJVLmRrMdTnIPz3C6JHzZ6HJcIHrLbi7X8zV3a1eSO8bbXvSiF91c/ex//s+vvfpn2+32fU/vfvRH8cyTT149g2emf+tvXf0nHEYcZXmqd1WURwfoBfyyG19FLbtnfMmmdRQdzrL8+Atf+MLFYvGP//E/nv7sz05f3HXd4NOGqy/8xde+9pPPf/7zrz755jejuvr9hx/Gkd/4XPQEPYOTcU1OZtH5jx6T7hfiuXjliODwuD37ru3myxFdX22X7ZLpG6vVb33dJTpUyExtqe7mTpJNh3ghWDtzrEZorcX5prccBRlN46PW1NLvNa+iqhGgENM+YCvALY5bqzc5jSJGtb+mZFavlK6zqq3aZfeWgYhkt0tg6+s2P1PHuODsUeeOWh9I0zbr3aVjhk33dfvz3Xp52x4INoQ5N9zfuc7fU5blpszvvz+/VpblsvrM+++/P792Lb//8TT9J8XpW09/RkprQ0iSEKyVUkprHCgkSVCTGS9lKoTW1jlvrdZCLPlZ1jt3bTHe+OTvAQ89JJwHemV+/wNF2QLeMR58EPi9Jy3gA+BeauE93FgpqdRCKyWFFBJKqYVSUqmxxcY/yb7UfTLB/p2qqsoCVHzs7Ozs7Iu/+C3n5+fn7/jiL/7ip576YvHMM8888/73v//97w9hfefNQ/FaBHw9SdsQEm/dPe911nvr1OM4MOWsf5PW2iVCMBtCrOTg9Iu+6HQgVQwyLFgkThPteAkpSznM5I4k9xKtk1ZYYh2kDJrJinb5xSRbB29ZWrVz/onz8/PzkxNfFuOiz6Nn8H7cxPPwFD4An2P4sXxgO9DciLmarLpNKLVYzf1wYojT5cJLD4p2IYiUQXy2q7VyHZOYeTInLVZzobV1epy6wC6DkebCciauTP0R3VRqmYeS4F9szxeddhMuvqRbGKJQ8oig9aBu8ExwDstKgO5d2cuFGjjWzDa2Wunn6WS/6lQwmCJDvK8eictgxzT73XbWji9a/75+1a32u628juZsHe5W3TEGB3mBU0FHqNZiufLhQ1sMFi29X6mRAl+FYpS6znzV0TOQAtZ6B6WURJjMxxFpzaQkJXGWShmarWpyPniGCkHBv6MWKqO1DGkqhTE2lgrORxCUrNuMYobXUpEPXHxomVgrpkIcTfJCQipiNjvHpmlMRGkWgg5VW5gzKkIw6bXNjYvqvKqQERmjTWLidJIJElqH0oB26G4OyngPaM1xqM6LAs62wyQBkbVKoiIWaZamYPqLv0TOaUnknJTIpZSKyDnnQVqj9VlK2oQASGVeYaxUINbWGvwVA0jJSQKKg4AQMDahJFUMqdomg7W7YU6qOG5qfTg5cBKPBfyIqZCkRZkIYpkcHExzKVhJhbo+Pj6cYl9E8LvGVsYLSAEqCk2EoFtrNoYoSSW4KKwGpOn3ElgLqYxJszYDzcsYOMbraSUEEOdOSlhoxWzMHPRk0jYxWRYjKS/TFNRrU0eLMg+l4YyROhpnLbQW5D3d5jzX4j5Ts5E956SyVmt8LrzXysdNW5RIB0P+qsb226W0IOf7qTFpQgStgyfOd4/Pnr2Hz8A9OXAXRXRkscsf3GmN433Fw5eXl5dvW6/X6ztX4q2Xl5eXH8GnXP3GH129EL949UL84h/9UeSevYpeRM/gNJJRqkFy45PRu6N/Ev276JNMVyWLZUsrbKfZqyUIZXExvt20up88+tYLdmBiyqUrHq5uB3HrXV9iLw8o1vQrXXobN9qd6+gyBl1E55G2rghKhqcwYhkKm1TD8PvmwpjqEBtKMwU/OPWhv6XH9bbGGnHWtp2Lg/mGxWJRFbfKm8vJNXxHsIaGA4YxYXz79u3bz799+/btSUrmp09jV2/PQ3GaZ/RcH4clsdIU3bLwPcMfHPOta81pv69BFIez2842eTUTRDpgeOBc1U+mo2EceKRDJnLBqz+cMcvm7G8S6ZH7pwDCYR9SShSe0vfBmNDvB2Pw4U/7tL827OJAeIyJQwiBiCj2IY4f/OQ4+FwIITyXg8F2zGkAwuRt05A4K2uXASmC7/eWzx8rnaeTZszjguxlxF0R3pB6D9S7LMttVY3yNcRMk73h0D3wwAMnZUFp/mWTgxxKXj97Dx/GvfbSRlTW6yBoJIYQ86e8/95v+7Zve/L++5+8uLi49shnfjruXf17HF39+/e//4knnnji3/97f77RXj7JI1Evuh5to9dEH4qeib4t+uHopyTxTXWIblU8i4BU1Kp3Jrx83UJXI4HVnb3ctLgECxU0VjFqU9rTYkde/dxS5aBdT2NRLflLBhrvpF2qj6N176kAj43OoQaGOzWETu9Fc/uh8/PzONSNVXFMs9mTzLy4sM5JGbx93cXFxcXVP0ubpmmGWY4kSWtG1u/1e/xMzTJNsoro5Vk2nRZFVR1Oi2IQO4dX4QlobUv+voGl5QVM2w8gxrii51IFnQZttAmfT+7Zs+OGtfZrq+ABOePygUUcx/F3vMOBTgmIn2utPXaPOPgzEydt46yUwSM58UAIvZ5zUrrZnEOyKz47KSv4QwulUm3zVOvxQ+z9P7Bry2V5tqzqz4F52ARfFMHj8Dv8o0w+gL8Swwziw+GaKVZYBVzaubojC9fH+MVysfwuunG4OJ499tgTmw2Mhdc4nDQ1kKa9o7PT4xc8/pr9bub84aGH/Vf2+JCsy790CJydvfDGeJRl3oVQlcYgxNUXTBfLF20ODrLcWe/zbTb/n/Gr+IFolp0ZLDNsV/MIassEqo6xgSgXCtGu2HW1f4GF3l1etgbI89FoOh2PTk8Wzo4Pp22Dz2mdzdK27cdlkSR0crrH04UxUudFLwxObt7UJfDOXC7uY/D68v77j6/D6GZ+/fp8ThiNzk7PD3xAFOkoiUCfic+PVtF7oy+J/nX0BzjGu6NIF2OhsiVq+yClejafqzc0n6O7WG6WJWK1jlZ65sBrfj7vFm3dBdof3Aekm+2mO/S6fdmQxAun81Wn/RnS1qltXlvJrd/PIv6JPkvGhDitVbNikiw4c15KumqotVk3KnLS9eV+Y04KNv8xRVEQLhhS0JjhLlXGx1XN0jxKoarGgR71nB7U7joVsh58isZ2uwQgQw+WY4LlhE+ni1CMhE1CAbitUqyGroI6NT+lV91im7AW0vv7Hp5Ob6wGg1e8REivhbyxPV4MB4QaUHLQP10+/hAI3yuEqPMg5U0IaG8hnRcAhrODxJEL04C91b4BqvutU4D0kzrHPwCQJEYpw8rIuqLkE7U6y/PSaeayKNui4XODNQKg3GF1zak58tqQydQVcQhGbLpPkHa+KhvAtYpAwdVWKs+1NqwtIJmUKhXwxWXlC+EGEbwAjQ+YJ06k14EoqpDG2H4ixdFcULqaWREwAxHjcwKmmaiDrPankt0hQVrBkzy4X50JnYxvT19V3CiJaCsnWMP+0+64iLHmFM8DGq1Gda/fO9DAGSGlfp5l6QQeb3WSaK11kpxBEIWts8WknY5NoY3NoYAxApCqTNPGWcGpuMwlSwm8W6vKS8IzhMBgYZ0LSMOUYLPkSIov0IjFTykEvSoPIhNC05Q7tQRI6f6EBaH4nN1WKSYpmZ/7PKWkVArg+h5SSgNCY92Tr2HO+IDuWwUbHROjyHAVpL14KVR/a/S/cIzX4WuiaL8BxRRI0pGO52S52O6Aerl/4RZRBjS7z2keuznPQ9TWt/CV/W6/+T1Z1Ypyu8XN9iiBvSTUuygaQB5xfbm+3G6+F1Eq76B3+dsvW1W3ssGH3XT9st7WVV3t7G9l1W27y3q1Psgks+VsvKbTY7rpVl0DCA5QKkdUbKdeW+i6q2DlAFN92l12a0Y8zfUkw3MQNNJqFeSOcO8CCwQLfKVhpQZvq7XZfgR5XRkp7DBP8F1a54ng1XtTeeeZiA1OOk31/iNYm2VkfkvthRcMPVc1XnK/JyUgrunqEsYsrDGGGMI5xudzmualif7xrLUAEuuImBwQhyZDBQ9fcZohnOlPkswo+jph2Z+qasZ9b8m6AbN3FS0UCWK02ShrgK8S4uHHmvrkZDi4ubZWCMkA7R6ZzutaCkC50Pjp5GIpWdlLUsbmWZFC9q1AmSZKKVJmp5uBFJkE/jAEJY8oBuokicOA4EAJgzyJIOJZPtp5ZvqeTuvLmRet7BE37WIppRDK1/0EUgSNtK/U5oH748DRkqyDV1gLtL26NlqItxdWMwAXFb1a0ielzEn1AAa1FUjiQDkpu9bhtUCqM6VQaRy/5Wd+5mdAQoDuolSqLcqm6iuAquQBoCSvYP43aARePy9UPJCS1leOaNX3KnoafS4ZMBsxyskCzxwEP/TS6iFtXVkeyXqlrAdC6rycWDPP3sPN6zvw0t+/7Mqu1Mt26XbT/XDz22/ep0+8/vWvfz3k1Z999ute97r/8B9eZ1v4H+q/hO+N+tFJtEfrodISF+OlszLvtiUkVJLjMNEcX3T1a3js6tcGeQZk+QCP9R89jf7VP3/qqafu//THf/0HH3744afuPfFBfC+yfHD1awPVwWODPMOr3//+L/7iq99++umnn/6iL+JdKfsreBZ/qb/5G16P9tGD2p64Q/F4wt3ZVNBGa0NhAV0GobYh9kgRZrNbtx/LJo4bfez2rdkM987Pz565sfde4luaj916XHnrsXf/i3/xL/7F+fkrz8/vFGUnjqhoGr0SKetp7qGYEluAq2uP6XJDAdH2OdtVp7MFTjTg8POmwuCNb3zjG99O1rcmMO0+NJTuZ4ez0ZhoPJodZn39yht7b7fbvXf3n60hj/jy3uSAeXLQ64f88AWBhO71DybMB5Pny329WOeaqG+RmoaHaOkhy7vDrrYw/dbw9ieffPI1TyLwxZv7hdc8ifAkPubLM/RF+FCURPdF74++KfpY9CtRVG5MgEKdhVvaQkPaAUS5vdDGrOtUAqOvUWMZ1EqKeVAyRGivW4v5zD13Cn3zioCXeZ315X4lNLy8PF6IMxTsjBJwEy4gSjPriICDQ/6vDKRRaNqs/nM+ZT7lN/aPhi09vOYBrWYzrQnZkEf4j65/OzjVaycMGo6WFXvPcrrNhTg8rgXStl9lEFlupLn6i7zXK0vwKfUPbxxMgMnBjUFRIC8Gw7wo8uE3B8M/0RQhNsaYGDPmv8P8lwv/OIOu/g/zl2tLfZZ5z5+Tgr98Xn1a6/vaKiAhcY1ciiTpj9PWxAnlJGaZNMK5QVU+A2ub9vRXCfxkicnBjeuTA/xEUdrDm+0wYDJ8zyCE7ypl21op5dhKcYyVIw28As/2kTK5njxio6fx0yT/NPCV+ys3eJScHzpfjqQQidS8YJ/wuXwRHObaWss7EuFjua5mFTTdIs8riebSzkTUMZkAq66Xo27KAh/0VRzd+wEHd50/v1YClGvnz9/1+AXdc+nyxibA5sblS/d8m+WTwvczxl3Om47DXz2ZTLQUzTDyYsZcd3Bx+IXJZKKFSHw/iQM+OIxNOBWAjHeFjCbDvxjHbypEawTclSSjfG0tH4VXx/y8kSBLi2J3tyjS7LdPpY+0BIeLwHnz+VsUvajVDP0f/84WoFK+V/hx6veNoQIf/vHnDv0K6sK36xuzj74G/xc+RyoyJ9dqqzViJoasYFydBgdhKShhf4Hv7WGFHE6u8kCQV+3jALA5niRJkkzGm5e3twUgYzHknETuQl0PB/D4U+9CnguGcGO/0bQtwdO02+l2/KDbXW9DEk+K9Y1iEidA5/NLiFxsL96v579PaBhH+Ak/6HS63TQRwrYbzd56PJ7qSUKO/isewAfILjlNbiIPkReRN2jDpMbmSFqVY/cZN/d8FoSnUB02RJrPlgPbIXbpacDWnjuDxyx5fXOSZDmOJ0D/3e9+96TT1rrdnryntDPy3uv6A02pHvSvu7cE9Oic5PCv6Sfol0cGSp9m7Ok/LxU+kKbjcZq6TvJ/E8eNwoLzIoye6jv8/5RmlGadYAcfpK+hNPtzp/2hcP1x2Uf/dPQleAtcJWNyhjxJXk1+kPwM+Rr5Y228MMiAjcWQre3mUKGwhRQ0scneyGhm8rCNAGwWDhVJVYkWF2kRkst3S5ui5Dc0yQQkKQWX+KVkqo1VaTJHK/L6MSAJsNQKOGChLak5k2ZbMSI2Ff0fPIsSUiUVZFlvPBrGHaPjiEKWjbLJ5NT+/E5pYsa2Z9oohTqJe73Ij+LJy1ij2Wop1fWNpuC6WjuIDmNhtBAAp1wnCgecCR44jtI7uwiY9E+cOHa8bbuuCZ12x7byZ916S1k2n5lE4XS69NxBmnUzRvGX9k8fbHvexnS1KkuKjjvf3Or3+xnjuB5H9eq0rd/OGQWgjFJkUgoBSD1HSgR74LmNTrtY7/X9YKPVTpJWq9cdflarMGi1xqnngzF+EFMMPC+Ke4f/CyFqtYNQI0egtpOmzVMghVKMIbWEkEhBSGXb0hfc95x123UojYUSAIwKDo9YEjijjFLbSrQx71EAlCkJnu0ABkwTQuDo6Ojf4xX4MXI/ISBkVQlZVUIKKb7y4quxKl2ohBgwSXAKi/NNs160AFJdTCdb1SupCbzyBXNa4ZV5FDEEzrhRfuBKpi3LurhcHrOdLUijarG4G0DQJdf7y9V0WdVpCthuV/V8vsQwTBIrEAKQqjgZFr1uCj+WN5sOQ5P2UteyJKMyjGJM07FSPiiVWpYFTDys0DCmDYLvUQSK1rO3NoFSx+l1jQUowsl4YzcKFWGEHNnq6m2SETlNbo17QsGkFi3F4khlk7CknZuPlupRdxQn303ZCLgqcKJzQ5cz+aTg/Ml8NMrzi3t7gwFAPtrbO3t+b280BOgP9vYu3bu3B3js+J23nCSzq+/wySeffNWrnhTqAn8nn87z0ei1MBzWe9dcu1f3+wDDwd7eNef29kYj2KYnTtx6x/FjFOrVA3cdO6Zrn7bIkg65zEbWlmdfKtnNKtRSyJvGxezIc6R2vSj7ZUilKkjljlfz3g7i5gnrMSCAyjOU/S5lX5t85OfOVQuPH7tzvyyjGB6QcZx210ejdqdLJSJ1ne2th6/2dqfbD6kojDqjzmCUpkrw2GjLpG8QJ07cAZ+DwbDeu7hIfs5wb+/CFL/cH99x/BhCo9lo8vW240JR9EYpNI1g/TMRx5vvxCDY38wsU5aQDhOlfIqaMc71sVb7zuMnbTuYZWhvw+mxdT3V4qxKc1Gz26exw25Ee+nTeTdQ6duyNq+yKm7QX1/m83xeVQqxmDsABAuxWApGN9zKudCTYll+9/JePfjMPWf39vIRLIvp7zx2HK0zLMvaJs+3NjIjHcdNo0jdd4XGcVmcUHlzEDcwxi52KE/6ndDKypNjJW4ZjPNuR8Ndx46heAd8jmoxEfz1/f7fP3VvOHhR5/1ujwI6vVmzhe4Oo8wy3T2QzUaW4W9EPVuLDEDv2gDrxprsxDFjgMeO3dVpnlyuep0HoHfn90IHHNOZZnVZZVXnCK1xrad1ldVB/mJu4FDI3mZZGXDa9ZIEW2W/n3XsOOo3dI6Lg4P9M7cAxnFRHLv7+PHjtBbF6bOb2drZzq3x5sb5u44dQ/XEEssPOnulHZa4Sj5WeSNLU3xXKBrzMAyfetjcOR/n/R7isWN3Ddrb253uxu37VdhzNzvobEJ1yavlu39nD/7SL/3SL0lj3w1Hmvfg+zc3Nzdv3tjY2Djm6HU4CDiDW1+7SVUVQaaM0msVHn06RVksdzNN9xWttUTrateAj3LFFfr6jappZfXix7kXZ/M4Tm9iEMedTiNIknjMtHY7jnPd1iJOKG3v7Bz/yjPPPOOlqb8WJ4l/sXtde2treeexPSqdjq91eArLcn//bO6FVbtjW1IEW3HvmVWaNYdxpjXCbrcD3//44483AfyNQHBaDTeaDaB7x+5sN+1YmGMMS83fAo+QFyw58/lhxY769lzVKBpKt4fslASxbdLuI1r9bY4Iws+rkNfcLaytPaMXlsvlMmw2KG00Q4jjOALuOgj5S8+fPz9ql8bgjHe73U4GyY7xm12ztzc4dU3X2sceBO9E297ZsR18wc0oZLfAF7xzC8NQ7Z5bxyjEZZXdSZ5FXsw50d26b4A2iIHBhUKIXDWt4uWChvlWUmWeFgB3BhKZYHFe/wcjnd8ySVXvU39g6pOcc+55nkt5o9Etg4PTJ879YHUNvOQlINfW1ibleLm9vc/9WPQHlNJrUEghAIyxfdnuHDTQsubd0/vxrVtbW7izvXvc930/8IrNzc1oMyoLfAvvkkeWnoDLN0gawrQH2xnlvP13TY6qkeTV9O456vwBqxfKOMkyr+p0LBv6g7P90cicoosoChFs23E4zEQ0q+IF9Wn4x9eTRArI0n6/PVtbQ0ySYzthuLsWBIzBVlWR5fIr+Bs2g4kPZKppnWZx1K+7dbWoZ8+Hczr+GTxyaDVKy0WVbnrwgNov480wjiUMlY5I4qVn1LsWy6DY68hjZUIkN277wbXhUubQn5u9xqrOu2fxo1a+KzgY7U/63opanKrj84gqBUwZ2USmGODZjAlLQ239tFoywanSYAHoxbbLpESqwADjXHLmoMN3FReActue4xIoyuef1AAa0LGPH0iqH3FkuiVBDx4QFAygbdeXFIAB6jqnH7LAvqsX9BjXhfUsgHuOGQB1PQhIOhJAxY+GyDbVF+5XOD4f5c2PImNwjv0b+xPkq5IVJi4nY/gscvTc0PtQhM9CoZvBd4G+plfpPgSb0U1GpUbVWMigaiVFubIBpguVfTpHXnD37HMzeJ6kzKJaI+eoDTKOxiBnaDQKhtqgCulr5m7OJR32JzJh3od3TEMFRaVYOD9xY5IkIGUqAWQqJSSRYb2b1v98fw+kfsBY8wsWmO0HLev2c5Z18zFj7rU1gGpn4rKxNm+0rGsuW9Ytlyzr+IFl3ZYpBLWViQkOzoLY+Sns39/V15F7yWNnDJK8VuCeqMBIkRizdyvBL5cwLfpNUy2PfP8q6wkHwHm7DSsH0LzThtWvr6+vg1U//7PPf/7zn78AP4bfAs6vOADOCuxftRGc1cuesHHtI3d/9KPLIjlLbmJ84e7c4rl4wsxMdG5VFmUyUzBIF33YqQSg2u6mw489iaTZnzzJ4/wPu9KTnBm5QpCqt84ApOpZWqn9Denkk3Rra7HY2qL3a65AuY9HXqPfpzvNsNnrUyGd5y4XxDKh8oDcSB4hzyfvIh8iHotR5QYiyyBOcWpiJxe9hcKcv2xo7rBLwLAieNCp42yuDcCWcaMRJUDblp6O2LpQ215lK0JPJVovGI2bqTF2wkM+9r75IowP1nVdT6x4q5kkbMT6a5AkZ2zELOsMmwOAAaSTThRJ8L1emUEP+H5n/NjhU5njuk6Wuq7rpr8N80gp3E6iw8evXLmSJvlGEsfxZiNNxVAmSRzRhx566CGepmlCAV/wghe8IG6D1s0EYMRypcswwtbNPxH42jTB9RqMh44D2DHGds+65qnVV14Hrttsui7A/Znv7iBIZVoAXJVhBHEyHiQxGKsZcm6sbtLV2ugOIZzYR38Gv4BVJHsOeSv5rIYWI3khmIptoQ3XSpBNXla5boHuEejXqsus4iCfYJB708QvRlZI+qIUA0Gzla4Aw0tYuyCh5ibQkltxVqbEDwy/6NTEZJglpgANlZRLt8tx7HBLrRmrMpZSVCSDno8Yd+YvCS+WaTrWxnG9fuQCoMqEYzHmSI9SGBgN1HET3Yq3jcGMG2MoUm7Tncb2mTP7rSx1ARB8tGzhQX5EPM9DBzJOGSAIDl1GP6ykzgX3KR+5gWCIjAegFCJQJW5FoM+en6SLfuIwVOKH7DQNGOv3+5ZDmP2Bq0IfADAYuDMYJ56L4CbTqtocdqPQEcC4aXZOXje07EAKEXVwmuVk22Zgl9MTi/cBQALGIKN8ohABjPlpLq0245Fg7cDRp3sZ3AGjkTKGXDxMGaOvmCXoP38s9+jP4efhk+Q8eRVSLePCBLuAUJNW0IVYJAuWymokJOSWUfjCGVtXXJ8XwNafkVePxcXoMCul8RJpzziBnwff83wY7u3t7Q1/HixwlmWL/Y0iiQGytD9otQTs7+zGFDf7fSEBrtvd3QXP93zYGUXtXaDUTfqDyLbjfj/xkAI4007bA6NnGeOuZbc7U62P7x3b2PQ8SqWacK71WEoHgIk0aayXJX39S5tKG9M9fbprjFbNl/YbdbPppdCO4zakXrNZZ4P6qfwzeAGeJkVry314LomAIytKopWfskbmAug/5ATgcm+tpCgf55VprCPZMlnOcLr6sggRAN4543yJF6Aszp655dYzZ4sS8NzZZz8+Hq69+Nx61jjcpqdOPfjAieOI5xlV2uB8mVWMmKRpir+1NxrBX7lW3/fDsGPb0G63lRCs0f7zemuzFZ2N58bmVn15sXRO7XN93Uvb+Xjd3SsmOBhcuG5AgVEGgsfxxmYUcgbfCvqDtaKuawDGkpRxhMtSCJrW4Zk29YdfIq8kb2lXD8GAdTwqFfz62fyYD4uaybKaUevFnlNro3JZpQZ/wnjRMuAYEgBQbEpxJd8hxl4N/yL0Cl3iHkNKIdmEX1cIz3O9tq2BM4tSbozxbEarImfBmEbaati64XtgWUEa214WKClVFEoBhnNzHfhhDBIIeyh48ylHGnsMUGBIq/sLFMALdmDHYwyUAsa8F3iUKVypBbaV+a7DJ4kL8u1GOwNj8AI/FZAgOHCh2wlCyyDzXHcbLgCMRvXK1f7RF3AOXyUr8hD5tXoeEQDellw2BhwM7izj4IH9sxQ1N0EdDij7YKRXBBCIOOAZRBvElWaBRQBYQLjBjLioUfOFdJs0zPRnYDRCNRuMBsFuJUYP/Gr/B4Lyh6qkF0bQ7+3s9PoAzWbZmFK2d/z+2dxyrrvuoUYU7Z94XyKL8f7JixfPMfwoOOvb2/0TZ+snkPKxZKFA2VMeExFlkgH1GL612SkkWLY2rmYIFNE4mjMfAMBw7iiqN6TJAQGNTC1DUTtc6cDYoQRgyuZMagtCIUbwkeOXnVZ7tNPrA/R7O+vdrjzYpaGTXLr0wIPHj3FgqOLl99986exkQmmO9PBlgZtl8+c86xZOqZiebIRMhCvfZlS5WjERKMpoqOTE4VwrRjXjFqXIFBU9BEDwY9cIy/P2SkkdAOAybjW7rlJOHHUthhEAgKSUcUmFHQpAQjgpa/4D5xi5kzyH/Jv6PymEczAWSm3wzq2/e6AODP6dMXoNwT3EvpexbRj2o7Vc1LXBw7/H8xkDsJt8f32TWJYWJnc+l3AXTOoLQ2bYQ3rVbP/xSfeePEHpiZP33v9k+IJwr933k3qcNTvccVybtVvZeJX6p651xQ23It5241A/eLaZ7ToO77TScZ34+9c68sbbAG69AVgHOUUjxzBktk/xzRnkv2cc3jyTvfeePEE/1cwmuuKKG2+braVTQfLzJzku//Pq5Hu89QbhXnvKT1d52mozx/nmCOb3W0ufkKzyYNSVGnWtLYSINXbVNWG/qHejItmpHx6Px3l+exzH83m8vn5znufj8e0bGxsbyXyeQIearKpX/+Zv/ubx47/5b7e3d6nKqrp3e3t7+9/+5vHjv0l4Hi9srx+8c+QG8j7yg+Rp8uPks+QL5GsIPQY3z6DRXGxxh7OOGL1lkWfJMmm6SXMhMww26DIXC8kjiyHaruC9beEEfWvNa8qCR7h+WYUsgLZW7FBrYKOU07HDJjif80BPwLUQ+IjxAOuyqhAPz1DxWTrz6KPd2bGHHBcXt27euiiObsRZuNPcMeJlLxPmTnMnTifpk7+jIZ38SlEUI903s6ufnZm+HhVnZvbtBy18lR4VM9O/+tdFUVzcunH0H49u3Looblahnw3/aV4wV2nd7/fHdRd7WIx0f/2yie80nZsom70xB0VRHF+/dXFx68ZR8T2fpf/GUXFx67OLophNzLIW/bmz/0YRvk92pP+l0bdEPxp9IvqHnOIII48EUxSobIISPPrrYecYAcPlPcMejvRmTnbrBUMZ5icg0dH6NAn2l/gZ4cgFV0kAZSlatWSIUw9CRSBJLizV9bSmvuLs9cw2MYc0OAUJMLBnpldd1VbZGhtZkKTXVh8peoCDE3vfreD2MFgNOjut5v7UK43SRhyUX3/tzyW08mGQxklI8zxupR1YTv0odkfgBxlHLh75lO3AyjbO8zQkcTqVoNF4znxydjZISjcanc3bng0hBNtr52ejkSuTwdnZCfN8PCLIPHjAhzwPHvAhT6xzNkmsczbxxhjjvTHG+PdliU7iaVWrNM9TVVfTJNZJNqrLAxhjDA7KaozvGw6H+e3bL+u3uTHMzMzG5G3/Zbdv58NvZjVysh8XeeJD1SjwabmYzRblKUM1VfBJXsR96UaKLcr88OCAIGRNgyYLAQghY85CAELImgHVUoAODg7zEk/BhzwPHvAhz4OHcTZJPs2KgjafZIw3Gp9CvhBU1xO5uCsmdU2i8ARLBaMfWBkExsnkyF/BD0ff3/MH0HVEOhr1WI3FvJOevLKm5quu4lyKisZ5PmSwnpfqbhuRWpw7qW78mH2narU1Se9m/XusGqdrX0GZKlHLBX76AmRgYVZmLt2qw9ddIyQpVd6XJS2Y26ZtaC5ECEmCAymbtq4JkEmC3gMPVJMoOqA/9018Uj3wQG8GoKmbVsoJJUkIQszRNm3LvKCy9L7mJCVcR5qWStfNtWsvFC+6dq1utEKRZs+/f7udHp4vl70eHlxfzudFMTw8HB+U5d3z8/EoiVEUlzJJaWXt/vqN5z5285ZggPnWrcceW13fW7s6uiwKxMlofH5+tywPDqaHIxTFfH65fhC9/mJ5fjjdbu9Hnl/DaHh0NBoyD4ke7eBannFbWqt59h5+CPfwN/G/KNCc7o+iFuwI5fXJlwo5U1ncb3wRWNrtd0mSIF0uW6tOXXyJIUuWchk3GqyBtbpqmy7cLdREZeu6OBio5PTi/bYWGiVopiCIX3bQOzAXhCDgNvUc3EqkjE0VO2G9tqVJSJfCHYvbhbuQPGyQHW2U0mkZldH11npOcaqyO3QiyX7XAVI2gTaHdIvusTAENd9cCoTda+ttetsCVLpsl7YamvNZlJEp7Ux0yhIjCdxUtktqzyAbZj6fq5e9r9U4Vb+DTJCvq9qqrep36zwg4CYo4A9e7Hc10l7AxMRSMVEDp0EmhoM4UXWl9eFINd90fJECEbhw35WOepyxVnhSaDV11WWvvfzfuEGwtlWGQhUuJdrwSuGOl0LxpXIIYGMhle6SHsgugdjCbaUJ0JS8pzy16QdglJDWWWEQ1aDKCnqBc72PhSfKlfk9ZRD0/oBmJ8iBjbBM0Fqw8TYccmSEEt5dmwotGQpCkszxAcXROE8spDPkWQDmEu469kmCYFJBLAWzriz8IoJdDRJHC/ivn1dCSquc8EoiNFmEupAKkiEkaU0f1WJsfy2AVS4g4EhA4wAO2ngllw/8oNn9GG6UXVOeC4BXx0LoQj7k2zzbxLPDovbuvn96kaQD5MUI4/OqkhJ1NeinD7I2uoVAW5/iWKo0SMHklG68IZNm0ugYBmxihaK2vsVSkjk1MbNJFRNrw0qIIjBrxSarNJPNSMpYK3+XRN5nKxRb541I6pRFmgsRHLOPywKKSqZk4WhtZ44Bg0T80qUkIqGtNSydCkpKVgKUIdiBo9laJuZM+oTZH4V+SC3jWGlSzVRJMMySSHDM0R+AY4Vm5WFJwyxri4Rcx5WkIAXBMpOS1VGellnfyoFVr5KspFDElJh3jmcS2rdCsDCsC6014IgNpL1TpGMiRJC+BPMEGSMdUSmk9LmyCSshvNLJUrJgIcqSWYprFDdBhlrBGCGFFKy9QOI7G6vriZMLqaQULIXUmkgp5whGKW2MEGHMZOweIAuSYVucDke2AfqT9Wb7CzwYnpTlQTOZHE7bnsS8LIgSHJ2/o38Tv41fjr4XEq/Dz9Gf88v5Y/w74v5vft11pu9etpfrxofrwVvw6YzjBJBhF494QTw/7dzBaAZWpiDgEm0egZNM3Z5V4OFGuPkq8LsGzBYDjXvwM2zNFdxvpdU/PEiW6xl2a7G9dN3sLx3SLla/DnzlqSJc/nP8bL6YL7QuU5hjeOFHrCvnYWzN6gbRpT1CVa/qqhbmMeGw5RmUk4a5+h0uF6s5rOM2Wc1nGifoqtOQH8W5D+bZzno9lNRigKyiqLKWOROyP+z6rL59NfJNJsV7/ITBPzi/mKWAXGdo7DeIIkVnrK4vFaL1oh1Yhkbzr52X9cgwLv03pgjUHbNwfjVbfCe3mGj5fgDuk9vF/aWb/1xPILoOTO9gqWPb4nMDt6XFQjxnvlp+GuR4hO76Q/bVXdVV9Wq+MtdtN8vZfFXr2j+br7pNt1tfamZPV+vdOhTd2n3IdL6Yb1zIau3aS8TryX639zPSVubBiUzfr1eakeysFIwyFH2q86v2VTe/9d1M0r1C1Uqv5pvtahulFt1CvMSqD1aMu7zH31EsME0PslnqakuPNjueofcLEHA71brq3rp9tVF6NQ+uoc59z+L6HcYFDpYfN9qK5WL5SamUVBKe8ggmhFAUJ5OJOHmDFST8fYFU6J0PJs4CUjinNUhp55yTMhbAv3UplYrjNAVzlm16ko/ijwvpQAjFwbkPvb4Qp1ovSK9RpYkT7+syS6GkZHmC8+T9cIW2W8d5b6KpqD8riIirmkSpK4UgSHly2Cski4u22MpgadX3Nq4GyxshsCDy4V1Vj4g5jz37Hyd6GwsWQvBZpo+Qp9ZYHZYXmEGHC6m90uXW/ywr4fNZ5gCVd7CmvqZ8mpWn9xxrZ3QItn01s1AmrQDC21BYoeMOEHQHkaf0XIGThob0mNk5gARKj0Ol/xC9Ssk4GM0tGIXPN2injAtxnPE/KtWr4RyaA5JsOkPakFN5liWJV7N1nLWaWSqlrQ1eqcSrMkcfgTnOfMLSg2ecv9C/3xmfF1iusVxw4Qk1VVLLNrg8C2KlJy+huNgQ/Lk8eIxMcQY6z+CFCGgvl6q8KyXS5t2KMz/myAtZWlpllsITLPfx1V8ZpLJeG0AIw8Zzn5GaCc4pn10vgxciMfLFvJNKg/fOd58nJqgQR2G27Vxw9dYLDt9+RuR86v5KR0qv1kpC+OUlnmdlislkGa3ni7mylEKpEGuznV9Aq+Hgct7EQpQ8zG1CLBP6oc+Fi4fixNpYHWeCKE0Eh5XDZbwnCdFvmUH9ZtFX0pUDR/WJSDrtIITJ+b5rd+M4Tpx3HTAv55Myb7NFhDIXdo6u7xetYnSzji7KLK1qFkTjYVuN64Mwd75LzBhVusQnLmhdF1koF68TUgkB/aOIKbKX0qApClq9SihlfLzKPFFr5QxUrw2hzq2uQSxdmpYE5qavdZ5772zmiVBCoMIyYpaqWKiwutYHFiycUZxxIT8A+o23mQdwR8p6vZZSCO981ziG1X6/vzkD3B6RLBapEFIU72HMdFHJxypcnMHuTK8J8T74ALMuxFoHr9chDn60lCyPfbYFwM0XHxvHevkZUhZCHb0ycipmcAFeGpZZEqF5NkYQSEuZFc5uPF2mxJtlkLAWx0NcO8QkO1Kqz4OYLjHHcXlW2UGafmbnrPXOwB5PGIGnJo5WF07vOjoObnKj7OdumXfVwg/zRsxJH2EBEF27JKsKPhyMrPFOyaWbA1gZp5UU6MhHKCNEWhoLGaSlHAHWWKJMvLGwX2oASo8mREgSJZuqDGrdIY8hUhijrwkSknr/6lMqLWC0OIqmzoWAy0P/Bl7q5Q9Gn8+agV5C3Xe7KDnKWayouNdvtpxEnKPV8jpcznVmaP6OgqHUVkHDoZxUAxsGrKZE3eqs1Fzpp+bnZ9cuzo6OH76uFWE0PjiQKsu2s5qpyau2zlPoi7PIy8mkKppKqbMby3Oj87QuhSKaFamgsmovJ5MkyJhOEBMmxjQTKfunL7z78MM3704b5kH/7D+akJiNDwFfMEwSpFraS2KEUO+PIZVfOzgeZV6I4JJq0e+tcNI7NiGXctpWQqkkrXuSgfZ4ctjEXsXn51shtDmYNLU1xsyv7y+722W1ufa8+UiI2fH9F91ke+P64ePEbKBNFEURt1knt6MXcKIM1B2rbada7k/QJLVtjxJBd41d5isjV7rUdkt9GUH0Nl5DPdNVxx/O6NFHH73zqJSP3nn0Q+G1g8Frw4ee2yOO4/i14UP/+XJxdLS4vLdgPhwMhnN46LnJW83P45gfvfPoW/93+HJxdPRrOh8OojzkWLOH/xb8A/xqu2EBe+Q/2v6E/F8QsAmn2hFdZLpec01mRu2qaJot+MnIGGkYnaxJXiV00QfVoprFDQARyB2oLbVZACkHhz1F/fRpl5/gdLP5YM0/h4Ceg6iQgxn+eaDwCdW5m8z91oBAtc4uFyEqumVReDzbj3zlI5NXTG+//YOXb2u/Ln7/T3/gJtu2McvQTj1/obV2FLouSOejjuNkXc8k0tFPJUli0ywFK/E+dHoxd4v/fvPF6R+fAx66ffHytY/95getnbLs/daPpPXq0n0nT1K99bKD22/7wBTw5Mn7LliWhY0GcxIvgF9tv+In8ofdqCDtcebsctnvA/T7y+XZM2E2+qrg8u7u7q07X//abr7daDS+/vXGzY29C0mSNARvxDoMLcuyhOMy6jni7Zxz22XUtbm5xxgTZ5xnsQ5+Dnq9+fzg9Hze7wH0+vP56YP5vNeDz8zn8699fXbrvP9DEAS9W8+srcPhHXjy5H2D7t7Xv3Y6mh+7+b6TJ/GrSZI0mGgkVhQQQizSOboKfwtXyTPk78j/Jt8FABcaMIQCduEkITwrs7rKqqRa1at6dbFOBxoSWaXth7QYSjug4LQDunc0I6nQZZWwVKVg0Dyaqk5aDjU2P8uZnc8CQx4SNbewRAJJISleruTqKpYio/cFzMSY+eBY0VLpammckrxoXE6z5fzaWngnFyexrGOzT3669JA1qdPs8tQu6TS3SadTchPSjZM4KyPqkk2XclFnPA5cZ9WlkZtYJP13+8A2xghu+55QG8B1F56dhIHshbwtIhW3VVO2kg/hGmtRAymEYSOIQrDsqGcsl1NmDzpddpw9X4Zbfocmw0HCOv5WIJ9Hj/NOd2Azxjxj9SLLwijym2EIKRjWuuKo2ZJN3Yp0KDos6KkgSBxv4TrFgv+FPM5tzi3Lvsn3fUvRDtratprAlWl3ECAMJAJEjhBB9+9937cV64CjLKvJldXpIEIQSMTI4TLoNjzPs2VPpGnTNkK1xuNJvg2WGahRIUdyKJMOz12h/CjyeS9DNHEYUvC8xHNd0YljbsaT3WCUnyofOClZwatX+b7vv6riBZMnHyhP5bm/OxkbHscd4bpe4nlAwzA2iFmP+1HkK+HmvJPIoRzJYqQGxoLtfDIet5QwdjNNRU/aXpI8ZFmW5IjKmgUeZbYNInZd59p4DJKG7R3KwkBRwBb+lGVZkuPQP5Wx4EkRdvTPR19CgK+SgtxG3kJ+kRCOm8KivGF6CFLllZ8n+QXRjFZapNBTF6HihZuWPGOIziubNa0wHtLBmxpFGVHkQtUStDbb2ZvbZVo7T9PMK087sM+gUYWC7oG4OypqXrJfT7NmFBinNfa8docyxAFjSZr4+XgbEODanZ3s+cil7biulJRalhcGAaSQNdaY1p6XQqczajQ2Nvagcrjg3LE9VylsbG9fg0Dp1igPkiRhtI/IMQzDCGnfmJcFrhtBo7nOtfa8GDvtUaO5uXmMSttxHSWRGuPd2HKsMG5kdG9zs9GAUaeDsedpzTaazSgIQrhoWQ4XnNu26ykN6c7udQCwlY+CJMsEHyJy2ml73uht0nFcV0rGLNsLfC8DaGTrXGvPTaDTGXluq5WPN4Ed/mtja+scAOJ2nvtJmjA2QGS003G9iZS24IzZlucmadgeFsGj78Avwk8RQ7oEUelezyGfJV8mfwa3wKsImazcA1+fpZmcVlVgTmKRkOoOcxgad+/tpMtVaWMfhViESEpjXwfwXvhVQyhnbRlnKxxNYUzkn3iW87/llp2XUA2EVjcckQh5aNe0JJETCZXksspTjhLN9hK5I/HXhOoQFouyfxuqnqjl2wobo+1RuapwXEwzJyhNNaBRBmIeJ/Osqvxq17PlCKOkupEbNRSAhwuCk6S5jGPEMxVluapn1TQRcrml9aqeIUJIp8l07lfLLKWQ03K6hOsYpxS15shWEtD1XQFSaCO1h1wbBv5KIWItKagvBAfxp5RTJpiyjAiAag1AyjnXHFEpBshhq+qhl1Jb2bas5Xjp5Q8Bev1tR3DBob21tb4RRg1PAIuj5uDM2YMzPaSMC374tdDzEKMwSQVTKo0yh3GOynG8Ynu7zbUGiOPGmd7/gCRp0dAKw06zxZExDjxxA2Ot57mHIDh3KSJTUiJ1HI8LLoQfAldSSIoAmjKESDKgZd7paPCF0Hav3+/7gIPxuMEEh2EUAuAPtrtAEbTjOsApJDEsx2MD3wSQVgAYaKEocCUMo4gUGGcCkNbLXCTglHFBKY+hYI25CTmXxnGkkgrEdXSOSiO4U42jQYTRcpI6tqeqQK5D6SWJPxz0pAq54FzEWWNnZ3sns4OgFQTn0jRJzzDbdh0hpuA4Ud9xlexnQQAv5SHljMbdbrroDwQajY4dL255ApTNEKSMbAcout3U1ZzZtt3nPElT/7I3Y8pxYlLjxwO6wBEYN0YLrZkTM7UeyUQYu6fs8Z6PaJkEIRVSA2MqxRP64Mt9D7iCLLxAI2VqAEx6ZRVl97qGlOR+H4IFK4sk88AWOg+yp5kuyy2GPMKBx1H9lehb8P31+uPhcFiQ7v1Aq9VqDUffP9ROnGy1Tp7472fPnh0Oz45+vAB78qNxHMdnhsMz/46868TdJ66PoutP3H3irn7La+7RVXipDrpkjZzQ0kZ7mQ25eii6gAwiSPNBN+sfWfn/m4jNFmLrbdiEhfyM4E3dcq25jbPZ9dfN5oiz+XXHJhPEyeTY3qQAKCZ7Hx7ctt+1L2j9mO+P/+bw56+vZoiz6vrrqhkefhMmRb3ntSburxGCJPJh4ZyUXMA7UjhQoWBra68QaGBre9K/CYbnC+bktXLifAYjMFYURZHrMqZk4MftKIJ3QxSPdkZRBNtb56KbOc362v4LXnDraom4d+yOb/9M7AdSMea6URSh3rx4FLX59lrZbaX5aJ2s3Mc/vbkl106fLtSxY7fdeew4+zYfdBf6F/gcKcgFQrhobQsuM89JRA7XCretJJYdNKhXU3hSEHd4kSJCD4EPnb11g5jRQxcBsdN9bP8kQqu1tra1yAEegyIfFWtBwCjAcLAzLRw8NOGyuhyqcRoosnLt+tVomCR+2ABM3aNk4Lkysxel/Sj0gwwAVyf6wWf/Bwm8J//i0sfJ60juXknWhjB/cEAQm3hYCclFrS2VNvMRJ/xirDyrq1XJLcUXh/HLxftN6IxNPUNYTkbOyBCI/HGJyKovuG4YfMyLY8/zftiLY++V3W5vrex/7P+Gwcf8KPbCwPN6a2XvR1z38J8+9rGPvecUd/8y8XPCwPM+5rpeHHs/7Hmv7Jdlv9v92LNfeK97Qdjt/kgQ3PWxj31s4B2Wv4hOK+YxjqY8E+RvJHeT55DX6MUu4ioPbOI2shFB8NRNwUKCzXQXoCW08HqSVfMoAsAcdeERvTpyme/qYdkLEPsS96Ob3u+G4W8EgP5vhOHnfUT/eZZt21G3oZXSjff0+/1QcK0y27btKOxlG2HYPef7g78a2bZl57ll21aeKillliopVQqfU+r5VvzvY+sFSr3Aiv99bN3/ZA/CIAjwiTzPuee7Lj45Gt2OrodDwCDAIsJWs9VEbLaaLQwhCIIAMQiCAEhur+WQwBWyQkMVGEh3MoJwUD5rWlZZTA7KR0Fhhp5Zx0VpnoiPWJUVp1lgjs5Y1T9g7Gt2P9HLUu21W4HfbvkqzXpFswFItY7cJOy045Ot5n7cbkdZReqssNEoW2fOnDHjXK9BaUZjc0ZZJujKLdiWg4Hchi3ZHSdfybshfE8YdDdsG9G2N7pBCEk6tCy72VoUJ7YcB2C5BHCcrTNr86yhtJpkKbzss5/9bI4wfPnLh4D5zyWuoxR03vPOPkD/ne/pAIy0YZwwQsg5vAKnSEpuJM8lP0EIxEm13ptCqq/UGTrAIZLFpUxrX7HsKF+hNhcxww1KjOjOZJQz3nVZVdUyq2VtRwmqdYM2Ymh4PCerJJhauOwXULlzDc7TuoR3AmOJB4xppc3L8jzv6LXCdHLu+dFZsCxtpJBcC85BSeBMGC6ksLRlwdnI99nLwBWCUoMIWvPq8F/gPn3bbbdhGLpaa09IxrjkntHKC0O47TYMI08o5QvFGZPCU1p5UYi3wUkAY1taYmYsTiF/61vf+oLp9AVvjbXC7zKudDOdNKKIpikNo6xMm1px9l3UKuZoKAVkQtiU/SBjWqc/oO943eteB5a0nVQZRCqNSh1bWvC61wJYwlgNbUmKaFRq2coCeC0hSORt70ldeykDoBVZVpwU/bcYkcAffN/vluViUZYu2g6zB/2Njf7AZo6Nff/jv5m5hNIzcxjaayEazNYcyhz5OxPHrfutyLu/l0oZsu2iF0ShUBWtLjroJlqyXM07m8Tl4po4zuL4sLOrwHHlshqVixOoTyoTnYAUlV+UxXw2nz2XxVmczIClzwT+QvZ6ZTEc2vZwUJa9nhBIKQrR65XlYGjbw2HxSi2KSPknuR9AAHAzCim0Vli+fx+DgPPARw/gZgAe+BzBo4HP4cAkcZp5h/t9K0vjxFjj8fb2eGy9Nurwr9H3GSatptcGu1c0kwCSscbuzt0UmYRlXYbUS5I4sAG8c5xfLMogVNoaJPB5vXWVbKIddDWXIdlIyipAGjaghZWKAa7OvJrVMP3gBz/4HgTgFwR/i5orNVf9F3JxjsPqV37lV96OjPG3wUypQ0/KF/Tey30a1H+2/f6gJpmRWHoTDRd5tSOzYrbMJ7BdsqKkjybmbGKsTWyYTYO3/uuf4fhf/yxyXNeJcBw7jutER6dOndr/WrH/jvvvv3//1D68Naph4bft6D5p2IkcBw6//aobbnjVt2+44dv0+c9//nOeQ3id6MYW2SR75AK5UR+mlnhCmDlIDFVSZV3NqwCCIKirJViHXF3lFUSev/Ad3TkFALgQ12NQ0Swrs6CSVQIff+ihh55/56NrL3jtXY8cnrv0x3csbjz82uLmm2++6fKlNVgd/g6sbrv5L99z6dKlSwcfuf80/HXvsy85fTiDnzqcw+8dzpf/ePjNEr5ymJ04ceKJl/75Ev7+8Br4wuE18IXDr8L+Lz/55JOQLl9LeKh44l28ArcQl3TJi8kV8oPkP7Ifw+Vplw6405QflmquzOf5ahmNq6NlXq3qA7DIkxDNrMbeajhhcMulwIPWsmpRr/qdqNRBsLYqi7LC1CY1XisyK4trIWN7kxQu2ao2weVfxTAdyhqhtAeKk7Kfr7Q7a9zJWxMoEX5UdmcBcCzilphB9VOZ2qhe80in0+lw+/IrFosFzkHdzRXYtgRUcfhwagNiF2ChKTsrD3zHVWDb1goxBGjTeAL3AYHDR33XBTBaCdeD6PuVVnl4VaExAsdWf2u1g1R2jUl/vw2UKmo00M2NVT2mjhNLXURv4yx4PmaOIxUGjrP9GgkAW3/yJ3/Sav3JV8LwJ3/ywfUhGANxQqlPRXOLMRc2xyzaHQXGgutmjDIJQTA+A65rgXQcZScxWAbQfF0/Z0JHIXVPNEuPdlzXoS6GoboITwRguS2AtqpXepwC0MfRaLwY3eu3R9sSty6DZWIfpHdEnXUztdbGMLecI+CMU3O1bPExLT9s2TLmjY1sKkSemyXgqRMvuO+awWsOvwmLw2/mAsmcF904hnx7e7dRFNNFmgJPklP1JUfKX7j/hS+cv+AFdxsTFuV4DHHUO/xlx90se73owtrM8xGefoEjvI6iuBc1snSUZYDNRrPfbCBmWRhC0I/m86iP7XbuuI7z970ohsM/D4IQMc1aPcQg8AghHsGjq/CvcJW8m/wb8tfwgyjxN/F38a/xv1FDu3SDPkBfQX+CkIn1K+RBV1GUlBT5sMLNoN1hqwgWQEvWlXqdeJrg3wE11D4viOai4wkBdWFgBEqnXcMSkdXu1dPQHWoSWtW0ltWCZWZIeyVpPWtFEfZ5qbbPL2dyYCfOqpWMZSFH00iKUgT2ghJeyJALn5UcxK1kaR4PhmDkhHWTLmEDxrIKYIbO3Ikmi6as2mAjTzurVilvhd7+eTnKi1xWmDHAG1YiKxHUKyRmRjyfXbmi1zujuhTPsoZM9AZEd01efR9Jqmk12xCDhqZmXS3WZJQsVGjFq9rNyIflVSWqgdtZVR5/WE+po+vhpKzSV5KiFMcn6YQIZCRYplB9iHdr/bqdPwcWf0WfhtacdRV6q8bTRMJOy1iCsF28I6us6pLYk1WiHC35WnaZWiWDx5Afj+uvf1UvqnSZZmmMjOLVnK4yLmImpY0cSaGXLi6kbol4Wd3XFRXZrjyLsrVO5T4az7IVpWmSQ/hR7vESIT9rxiKW9K04WhdlUbHvlxalTN1b0oJeZFrfkfBvpHJUlvg7kfo0rnBhmMF+sbPGC8a+A4cBaMqTPAGTgt26pJAizy4wjAIvngwC1v10lO487cVyBckcWMuZMBppWRWyU+hSLTITj5q7M0hwtv1Cwn9OksR3qyRnSQ0wrq3ItQFT91BxnCh1ODeBqSe913Us5PZaoEYpCOHn22yC96k4PMgBIynzZSqYxzBJwhXIu+sPv+4NDzxAi8qeMbMi+RqhtAA3SYx+1EsB12GcBEGOMxSF9ynSvkDjSMtACKY6AbRTMhGJz/8o6Bq1KZZOlEmidGYIqTLGxBKsDRlXM8DTZV1MfGDtGh7llmYivCJJNnPWCedqm7D0FMexAemWTJ+oolQ2gD3HGbG7NhpVzgWtVGDp41SjYMSIyaM+CIHpWnnA3O38Yp8LYeLQv3NxMegT8lLKDNKHkwfHiPUoz9xgOCwroD8aTYWxUrCxzgRTlym3cKzjz6cGWLyPmRmc54cHTasMEi2ocSU0ZBz3D29ch9K4GFybzwM1sbXwLypIyQbks3QkKgEcmIz39LVvWSSJ7Y1DYFKGeDjc5sUN6x1gjDeJcopFfJoUedbDMIkJilnHqRAi+f+kswlC0NoTNLNICcIxJUkIrbTSMgT1aqzB5Kzi4PU1YqEksbbRMs8TIkoCKR0/YoVSKuOYyMfQylkLZlKeoIOSYKYGIJQkjFFCoJvYXJXSEnTWUyolhsJIQCrLElIW+dRq5AkFbd0/1FpPPVBQiIW1BpnT4QOcVpQpYAV78o5ICylI51KkwwvkIQjrTvVkiINmiGS8sBC5LRo2JCuTg6ybw7Zir/bp2Y27dOv2G6TgJEWea/VFTdPE5PEeuASoSyZkymhnMw/m1FGmhNC2s+Q4GzvhgvUyduDYd+ObpvIHRCQ8B+lwHCeKNIFwNNba3+STEWItqaLK4z50xk2kYGOJVcqk1fAgSXoNjCf2yWJSOKJCp0yfJrDIXEIopAZBoZuUkcqTktDNUC6Or345FQLFaQ6S1pY9o3WapbHL87aRiWeqQVJmk7HzWVLXw6E2BIoFW+9zbrVSSiiVQRmkALTReZb1/6WDaZpBbS1gOBMiGY54DDLBq1rHAHHbqra9yJpl8ArA5wK2PzQxaBBBuZ5B4EQZBgvHRVUFjCxBpplDVTdpD5wNe9PhkKSkrKxiFsRtmgOYviKOY69SFQRBxBzAxNoavEP2elniw5GVN2QmIQgE2FoIY/oVMgVmxyyyL6X/kpWQkteaLtwppM97uQFIKG3APgRL0NCK5G2rGUVQljiEOLG9WPtZEcX2pqM4NKDA/CK3DnkOa5SwjU6UAakoyiI8ew9/Gfeim8jwWfhpInoL/Sr9Lx7wc/jz+Bv4J/lX+G/y39edSXCA5aqHupuf7Qsm4gpwV4k7DlEtjDsVTfhwyR3A4q6FKQ63lHWNHGZp1W0SxUC1PStKd6Tr1bqRU2gvthsbcujxrppwHImpO5xDbtRVUQJd8tdvt92mbfbMNiBAYt3F8rKb6USUId1W0m91ttwsjUSxOOC6ggF1K+M2v5zNd/v2sokzbrQDmbBrJfIvUdVm6lSJPL5cml2GKS6+lm53+w3HUu3L9aX7u3bHhinEFDubumotaBHbh64ntq6u9Gy/0VYkNpNb+80+YqW7qm6igLveWe7Wzcgby5nWR22WEYqine2mW00426+7nQ53HJf1Sr3q1PLmmsg3tdo3+jidZ3LzxXy2Xi12IH1M57O5StIed5nAJHKN2Nnv1huZ+L622a/Wl9uNzlQsBcMuWaxnNTn9dbNulrtaL7wsAHmCWa1qtVy/FW3dqf2qu1w3a01Xr1IYZG3RVrVKo4B011Z6G9E1CYNouc8WetUtWeeJO2UaWyqQ/WbLNg9KNEGPRzSh53SjZ91Cjqhb1dW6EdCAXG226ubdwk4NfBVu6cV8nlG6Si+7Rm+KSddsJVF0Pjg+qa6qRh+2qaua661bq+5SugQMS8C3V5KRiL0EdOMu6vm2HC+r7IejAA8c6dF9+rxgA1zZ7Dfbj7duu1iuuiVt8MgsAfNWyEdpS+f67P4rTadn59MpCWFnhycnByPJp+vL42Mitgfj47PZobJvetPE+q/ZQ1QUqcPZNi0SExuTgz5BzLF33sORIFhIwUnSXdiyhEAFQSitDp1HF6cDYWJOpXSg4An08ZNTQBPYuTgLAdzr9wdSp7Xbtt+XTzzh3KsDkqJuFFsTyiyXGmydn286Y0MaM1aDjtKIKH2FVrUIsWSlbabB3FhcKCEQOB2dxNL0wM5bWGtcGLA3BPu3mkKpLh0JLoo8pzgexYJ5n7EMquumkeRc89KyLGlogCfGVVQEzUIxcyKdmSpV8mm7tpLSGKODBSkGhFYo5cS5z0f5D9gBzmtmKQeip36ok0YuI22lgNMLKcmxmdIEcA5+p1aFUumBB3EBLogOkdQfcYNgy5COp+NVr4QMiYa9GAJEulJKSGflMqkFyc661PgkFiMpIUSgFZjQgv1+VxYPubAxcgoBIVyQsgyQCUithAtq4JhI9XvTxXRqyJrl4jUfEfm8omJmJ+dfoV57eHhw6l7LRKkWTIGUxruRAeztgSy2AjYYaK1fCnNr81bqnyulmHEPZdHrFyVIfOTzBFRZtm2ecm88rmsC0Wx2/cZyGZhknle9quTq5j4YIBbj8T95OhkUIKCXtHEylj1CF4INDJASgbPdqYJIACqEVcIQ8orScSmmU8EsuBAM+LClTq6VVsCjjwEki7wdNjX+J6yzzpD7LKxxltaXSn0bmNrJ4tjLNC1noxEBz3/BF4LI0FPIhA/aJ40PxmMGkY5diAmCi8RZZjEYDkfWYqWE5Gc8KBeCQCRtYKETJ2akfRNGtQCW1hCgEKSwZlxmuYVKyPFoksU/45ybVHkhXw2Cmio0TyWATlUIL1INgYka6XRfSUZaY2TTjODfHAciOIdM8wBLSYgvGdEgJSK3jAKlIm+sVHdLqzGPQ1UQWS4YUqmHsgEJIiMqK9mxcag8lvSCwJZJIopSy9yx+/jYGPo0CFmQYzXJ4IP3cByG5asgbJIYB+DdFv1WVRysKJay+/AZcZyldAsluC3neQVaH2LJ+hJqzOjq/wMiSYqmKCRIF4USDCkbZim9U5KuM5DEZZn31G+wDCF4AbBypkhFlrEGac4yofPcyKBDMH8TSgNa4Z0EpcgAJKQSKssyY6KojqLoNfQMjqNVdCd6OvqO6CejX47+EY5wik/Bp+Ej+Dr8NP4y/jH+HzW0pBfSl0TRccUes29AeFvS7f9WtNKrHlaZahfbjeFOmNjYc9U1+nLfLuaNVsvdsjqjsOTE+4jCjq2KK5mu6qbtOpzt1bLZw2dEZKwq6lW3axdLNVeJYpMpreYbv+H9bo0jiED+WNEIMJJ+W5+F+9TyeLFv2g1ZvOhRY7ewEuJmbS++ht61Va3q3X4x37Uz3awVSsnc5V7p3f7EObZT+9l816p6p3dbpTfILXDyRvVPpO73Xc6btp0tmxMbgF3ka9XVXbMEr7nWbjs176XpOiwXhkZ4whCUtlC/3VSK6zLufcxAkZ7lbF5v66RuABMemVrO5vsA5rl9L3pd0lJFPINIGc3hLfHi07DEyyHTSi/3pKI3Os2WVGEU8XKJiYsgz3qa/WI/0+u9b7ffrRfLRVv2Pc9y1am2jc8fi6MMqyhROxZHi1ggUuVKZ9vtlz0NgIcBhpseb1Xv9krv2pledav11nEXkizqG43WBYhiE9yuEiDqYsIZIkuKtJD22wgYsBBmw4t9ziEognuHlJyR3ZvyRIkwOCCoiKhiKmIsUVzltFZGWFUNEC+dxpD1uf69w8KYYjZJkiwbpdeQxOXVn1yBJ9DuwJ3IPJGGSgWz1uiAfDvqMgmSwmOe1AGpTzCxEdB0a1t9dZeXREKDUW+rBFeyXmDAEMuTqQeyZAOSUP7qv8SE5yVOHPxN471J/TgE7cCcnBL1jbZMxM5YoM/ibW3bJseb5HlaP57c/VeLOI7DYhniOD5GoZVWRam0UtVrLy4uzlRVq2sX+kyPiMCMeRJAIHjSxAImTpi5UEpQqAFpNKCNBP6H1lqXmZhovdSiqFSjv5GoUkrAC5Ag4sCsAaUNYLQwqq80oGTvH4oERGQJxjgSglgKIojaksQYoyxjb+ZaQrFUnqSEUgbItxygxfVez4oL/UxBSOfRSh98CaIc6wmO0s+CiJS2ImwA82IDII6bJk5euNvt1GGhFH+njGbh41qwZwa0TsgY1gogsAKxvgA6XIXCCKAWRIoTpYo1/EZWDcYmrwQrLbRcHmTznKYhG4yF1MtgQECBTxVacSqlHadTxprrB0it5YgCawDLtm1B0CKQCzF71GltXmzqF1Kv1+vRvc6LkcR0y00SJ7APP/ywXiz0w6W1Pw61PLtVOyPYORATF1yWmtYrEMcxE65Za8/iPNH2RcasbFaGV9qnFKY4XcCaiASI44QI1lAcKxnHrCfI6CZ9QVl0Ft2NnozeE0X7MBh2t91meQxjmjg7CReVhmMLBOkJszqR1kJeMI9T0FruaiCgpoq6b93pDyuV52lWs2F09e1459W3l7qtlkq889FV+FN4P7yxGniPt2232+l0e39JKB94p08Su5gejA8Xvy3eKYR91MifjUN59e1xLrwyeGcZ4qu/SLMUP4QsTR97YnGwOKDiIyUdvK8Bld/w9NPfoJ+cPo4mJrolc+i/PNLFDVyb6/XltutWe6RBUXsdznYx069fdNiio3RJOfETdIJ0TYU6tRzhes12lpSMbj82/uAK4kiHDuw3Q4LoP91U/yjK8vZkOhlUVUUpLDdz7lsn4ywLzCLEuiics6ZtjP2rw/G4SdO0YVYyxEpmWonJ2NZ46pgsLeO1rHG+KEPw3jpfVVXlPuVZANeKe/a3b34Kvu8/1UZV3p6wqNK6JkKaMPeMZUfCibMLsc4L76xpGmPvDoVIbJq0zFLFQclMSdH0WCjl8tGmwhoNY70rijnYaH1Vl5XD234d8vs7P4qiaPDssxHTM/hIlERd9GD0DdHHol+IfgfH+Fzcw5/RiF5Mr6avpF+gf0Z/xif8//gP+FlxJNbiQfHiuHOateC17GFvJCIgnyRnJ9euCq3hi/ndFm1hYB+wpE1eok8dVlzcaN9YRHuxrU+uaO/2daMFkeDyfLU3YifNV4L9m93u0TiOeL0ZsSjfdkmlxnkkCSeUwiLNF3jG1vOha4VS6Wq+0FVofl931hf7nEzfjNXNsus8TsFH9fudVedc3S20mo8+26+6er9ovO7AdOiyUZK+iaL/1znzrgO0r11zTdx1M4OYX9s9RGec9N1+iUNviO7DC+M65hZ106xVVXdNfdnNu53uTPFW7dar/bqrOlV3kcpCnkPZekq6DjxuPF85EC0VHQjxRrPbB7CEHcak906n2ddd4RREQ4eLVaf7FDWBO0KQ1xG0Cp39tt7iGNbNK3HTOdFsLApTXx3J0YNAnJ+30hKZVst2ZrvWbjWa+XrRlJXorrZJjFQGgueBXBZHVnWlK+8ks323W840b8quH0zKrXBFwel315Ah5lfdMuJRBHOf6HYm+4G+eWHNkhlCh2W76bNWFXHbsSv1HbYGQM2099K9vnnXVAwx2FNlzRwItiS0O9K+VaK7nV0iVS3ZrlX9Flf79rtblqxkgqwd2zydboPk50OcnJGuFobKH+5P3OgLKF/L+jG6YMqYhAAgwM3Gc9SPb1o+hbAiexx2oPZCL9d+s+1yNIFGpAuKLqFUU/qPtRfL1isEUeFW0tuO383Lx9r0LetXuv53xKSFuzKpjfF4qpXUHo1unHZdB4ludeP0YjQECB8jrdhqDlKxwuXbn/+CszNFvLp1+xBn9933vPtmM6AF+gwp4aVzpKCEQJyUnaDzoaY1p6cPPPCCt1hjpc+8MQJMHlFNK/QTNci9rKUh9i76JxBCCYcl5WOetaaIDgTvAWYxHFPw2V9NxjL0KZAlxjUVm6oq2SwNJWAWlDBux4B9USr0oGKPFDS1JgJaYCg+6eSALCQpyN2DjpTUawEM2HuS0sYK6XzMEmUcD5ySgEtzqSpAHUujCcZgFqi2IGO8grMaylOFtreyLLjBICgVw2b/V4VPWIdEiOQsT6KsHrcnaiaFLrhx1ns2kCArhbQSA+YYpUgQq5TYjUl6Wp+QlErtNhJYkDbcVDRYVefQI1grDPOY0LMIH1UiWXP4PRfi2CkFM5dVdXry0Mn0cPTK1/aFLsumKSUO8/g+ckppCgjGeAY0E2RyDdAMELI5k0ejcNoeas1CCllbVwhSQql+yMuTgZAxxBtDkh+MAc7lnTbXQrARrNDMd/WUndXTyfR4d+fuEHT1TggLx19PIVaNH19MJyY4qPHBtdc+8imLBXA4e+yxz/xn7DTbC3tLIYS6j4RgMlqSbreEa4LfDqm8ZBYmTfQLiVRyUDdSxsmCVHqe5yzKchAU6Je9FiEQWLB038aHs6NjC4Tu8rX+B72r9XsHoxLIJ7nzMR9kWUY6BJen0JM+jFCWyCm5v3YxGODqPyoilWdasIJ1/suLonhMjYfSfICtShjYQbipKTd7SUWpxlpwWkxT9TFelspBVGmgoSKe/kYKIAfJywJo9yAc0ISEYnQDcBCg78Si0reHWGgnU5IqZSn1hoWsicBFEa9N6BBFj6ALBrCb1WSWVgjPGTHFSgmrWRitP5B0NVeSqA2RC0waTFJmMjZCXFDqE7G/8VzsfYieVh/B6VwqVJeNlyS510rxPpklQsUJJTORh1SvBDZ1ErL+smoyIQrCk4kbWBJGCNmmQ2tJqxilmfIsf4kVJJzRh9MOFSykkMaB45pjaFb01mBj9uKiCf/P7rABKdZOZ5ASCcVEAWSCF9qQc/nBQb/Pzue2LjNixktR01DK82Mjs6piRVIwSwlyC68J8hEi8n79RHz+BnNcHyhFxCrTOtYkpTH9UNxxk7gn2I3lmT2KiaxO6DwoAryRgu4bkwHqh+4rrcXh4fOZn4YB2yURF/nicyEVgRxJBTo8XF/uHTNnF9vNckE/7inERkoJJfvnAJnAIk1qsAakRERR++w9OsW9KIn6UXS81/t5pzvuuGu7ktfz9b4ru3XH+CdPPPHE9OY//OT073/LdDr94N87/OTyW7/1W9+IN1+9C3jq6u/93auP4luiQcTPfpwewd+Kiug4enn0kei7ox+J/m70j6L/jyVu4RG8Cx/Ct+D78QvkaEmP0M/Rv6FP0rN8i18YRUVFVvXQ/aB7adunwTZLrq3qaqmaKt0uvJr9l8vNdqG7buHy8/Fd1+w3250VRqIE5dWceTzovbWfL9ne2UG/1Fh33YR1yTMpxpa0+40BD6b3ICaPpBm066IH37Gy1/uWc+phUzQeY0f7ueNQwRyi11GyWa6gyfSqtu5m7SXSU0DVPftq7nn2rnm7QJp69wnPN6/qulvV7y9+ILNkwCBntp+v5yv2lOJVCxOE75Dxh83MWZ1SHqyTE8Ud4d50EHGcFcr9bvEKi0PGUgrCv+v2PSbpkh5ZSzBdANlZTCA3QUFeY6E7WKr2ZK+53XSGU5WQFjJtoAT2SmM/hLUReHsG3QZUSIvCUKzmydTSs5qrpZojAGQIZjl0aTdKXNrSmQ5dGUkodQWsUCMEBN2CUouaU9ttt9puHHjWbF2vdbVcLDw+fScdrBndq8uLurT89OvN+AFW5213qqu7VbtabxVAdlwcXdLN/wyeFsWC4/sUXpE+Ii1fz8w40jIFyTIH6PC1rnw8SRIvhE+EaJgbIc40kCHSRdgCUkke4TbRl5Cs0AJ8lV+DgobbWq0QQr7UMA+E0ILFH5dlif1/MSsT8CJ44F8P7q/609Q57911my9K6FCC5rALInfOOe9flSRJvWi1S1MH75zH32EWdr6KSpH693mRKDkYHB2dSHkyGMYxFUolZ+f7G6tp6z3HILebHoIG/fHYjy7r+Xylhq4AcqXT8uHd6tcrQTHgn1b69Vc/QMbko/Pz7saNqpFy2J6fkRQO3WtzuLxxo2ylHLVHbSNSKYVVWglmq46OdJ8ZzvZv3ox7IHjbOzpShgj52Wj1QaneLXVCsCrc7VlBQrn+zVutkkYo278blCFRYS9Z5JdpxsTID2f1+0oEiORrAqT9d2y8HM5LUpFaPH6dVFXVgte27hk4/TCc15+E9HZUaC30I3/Lli8TfaSLuIeNBbFzmGOyRcWIaVPmu/xoAhtSiDvMbctioVGrUIOdA90RACa5SohqPB6P691uxzfZjhnDzyPt0PaBe/WSkyQ5STYBCEcBCA17mwyBNF3pjr32h0+NSFzS+gP/qNYf4MWixZdrcefkJE3SdCnlwnsmcoez+6x4wWwGOK96R0eLtNefjKvKefrIOPbh2tCfVpV+weEM3qn+/Ggx32yOv0xqg8nkIRajvpQHM+FJ1c1gUF09/9V3bylx/3gkvrIoFQhNZYW7ADGKYynyE4CLY2HqBoSqmq+6aVFAAE0tzXHBUlG5kGLmrZNULIxoGmKJqhS6Kqsk4UGWqqcBXAYgXAIAsEmSDYBXaq0XArh1ehsQWkotJktYH9xyorcOrBEPksl/JrLV1BpEE6RjY5r2sFvuueTFct6BdSlYArq6y3ap6fz8PJ1gfOfXfviHfzg7eKIeBligmmb96Vvf+ta3PXD+/PkGPNeAztGr0MngaOsBoI4b9u/evXs3Z031MM/s1MmwPUizQtiBl9RFKUzU8ITDF4Pb66vT5l9ki/dTSo3vNGhuq/XXjQDn+ZySmvEdBqUU4qTTnuukCaG6zn7DUv+rcwb66fPnZ3/2yIUL992/nTd0znW8unr//Q88MFjXdB0hhADFx4fw13CIvg2h7mQ6GEx+F/lHnFEKJw45iQBmA+pSSuPXg15OuNZmd6YCU8ry7rCmMoP+IuCMF8a9ixps0AGI6oAgjALchW7c2yoerpHHg2jVTAMHJE3TFLs6AU2jFEgUmybBjAHkN0/0zAKoYByUMkxOTSJeqgzDNCkThlKgMXONaTq2QTrmMTHNOCI6sPsxEx5O0zRtkCDehlycpClXSMm0eTmRc1iaxrEvFei7knuSRHEYddQ8QI06jlIAVCNgaNLCYCulsEaozsuyKAgYumbYmu+Dup/W9zXb0HQDSFGUJdcp0bBStgKQUjMA3FwdZTuOZuocR2EcESCUmuSy19AYYJs3sjTDOE0bDW5zptqnWcIyKSV2HTIHoeM/bgMYz5BEOeqjEboPPYyeQvv+SNAbl9Y3oO/3JijlgzGPuKzvTBHj0DMYO/Qbjbyia1waQuB97RhsI+0PUwGan3aLrG7oT4zvVLTvspO6nw6MXmNwW0OEVM0mj3a0IFjuwIuNCwdhGDUR8TWXOhR8Z5ATjcalnZc+4WAI7bIsL7zj4sWLfXN5eVmI/qwQQhzMZgfi8v7+fnljNpsdCHEwO3q5qqpdZ691BTYvXbpU7qq98nsutvqfeuvWrQsVbJZluad2y0v7+/sXy80LFy70Dy9cuHDrt/v9vhDL0zfu7e05u9UVeKIsy4v75cWLF/fNA9M8mP2REKI/my6LsF/emM1mfSGWp1fKstxVe2W5p3bLf9jf37/Q+t4L5We3Wq09Z7f1KRdbmxcuXNjfvHjxYv+5AyEOpjd2d3edvdZlhPDx/x1/AlP4EdSLGwvd4AJGCmltYIQ65XDBPbDBgRbmgioEOFca8gpb7mYzmGJmvSiNZposLV51fVtf16RbFOXbHjy7sBhSCv83zERQpOni4hU3sPUhtbyiaL7t7K/zn5PGDrNGrmvb87rBJLzF5rpt2xMpl/s1YzCTxjYXMHJdW87rpibfYuu6LdXElsvL84zp5Muhz8UH6O9jYpz10QSdyXLCUW9F70MfRZ+BvhJ9K4ZMwCrQGsJ6Nh10pm03Xt3AmI2bZKIsHLNx3Wu3cOg4t522DMDRhMZwwEaMrd/l1nHIrHQGYfWAUgp26CcOkWvSIrJ5lkVM4jzAHNGsgg7nrvofTp48GZ2M/uGa9ti3syq2KTR9uPB0atv0Xticn58/PX/66O3Xr1/fo29ElFXT7GtUY5xF7wjfxLVfOnv2rHYJ7hnTjME08GvXr1/f1SJK6cWz8tFHH72qfV0cx1l0Yv6z6hMVpkxj3hPx7c9tNhmfVqsXVh2maVMQgvPxeDzmjDWIZsSwDmOmZUGubTDWxFJixpo0TH90GbvUbDab4/EpzHXGmwgBSo//CP4Svgq9LZrPhqIKemBbEGnhM0ZptVtXfK4Tlx8QYtRSqBzF1Mva9jVRoNWC2y+nMLNe/X/YdQPbMACHYRBiSyhPKSBVVTWZznUdcLOswlS5SACn8f1muSCnnKjMMuWjv4M6SOlXzYKArTzbNAGHQRh+m84OPA+/HuKk4UkJtlI2BseJsyjEWGjZnV+apAk2TcE0ChhcN6kaOQbselm7KDBoGheGDiRJkxRrlAvTxBCFWai4gahSCsCSfp6lILOZfx0+gBLtRmfouE9DX4q+D9UxGDFN41xz2FsUELAaeJ1KI6kZCt4M0Rw+tM6Ew0NrdzAc1N3EjbQduuaKnUgC0ktlnMF9VzOFIOH3dfFmXmzARcwUr8ManxuPx6ej6J2zLwQ7jGzFzCRNUzk9dWswwJBlZdNZlI4Dj1DHSSMLfiOKtyZH29x12eqXeBpjzHUYY5r7TdevX78+m21srMzW12efkmVZb2VlPst6/ZWF7GtPnTqVJM7aeWdRXqFCmJxHSbbwQxd1s+u4jLeVxrzYdQA8K01PuQH4g0X/0VLKUeB/Y9nOl5vzSZIsb2ysmM1mczhqNkfDpjykVuyxRZNSz8C2yEBGIO5bpa6EOm0E+IDzhO46SJL8cKAMiIcPowSIJDasjOrOQEM/rVMSluLbM52MBwiazfXkPdVv5zi8/zGIwmYWBBQr4qdK4EsJ0g4ajbkkwZDEnSqOaeX7FRimtIUA16VwOCrJfte8bUfffqb0yNrQLLYzU7KsMd8NpCWlH0oLuhAnc504AYjC1gSHQDqhmg/9tkLnLsUeBY/FKyBiOoL6F9Emehi9iN4T/26KAbthExeXX9IZ9KoduD8zU38avdp9UrKGh8wTtGOWpQSGT+D6vYZ60ba1F+jKeDzomGhk+Vg875L37rfuDEIbGo2Fr1toNAAvLGBoNBZwL4M8X5jPnz4ZLyzgr9nZ2ck96Fi30/K9Bn6qN8cNz78J7nUc8Ru57w/8oHxn5+Zbl/MdSCbVdJTno8dx8ngM+fj0JKM8Hz3p+Y2G5x9sNXzP8xv39MnUjEWyFYzz8jOwDZ6XNzz/5Zf9UL414GX9L8anLK1zyim5il60VLzFIL4xr8oY+d4zx/Uzv6xcHBAuKoVjy2jMp9B5dKxLZ6uJFdLYxz6m7Hz+wR3nnizc0zt1cvPUvKkbVmc8Ho8ry9BNbZBTflXCNu11Tam7tn2XK/U7Sv0Of2Z/TaVuK3X7z0ohTNESpqnnhmEaDd00xROvD+oz/s6kaB691/sZIVMXnp8Vj5foJYCKPBI5H7KLDjuNEyUOEtD056aRo2TbJPuLMEBOE8UDVsMXHn0OvOHoczxhWcKDN9wf/5dgCmrpHGgc0y8vOE9wq1kyy3JdPevrWVVhwNigvGVcFFxgjIPQDlrGfUZU5K5n0Ua0F2qawnPn4Kss4U3kj1FvcTVN51YGjb8E5UShz1lsmlwvnmv1CO5y06zcxtxy2jdN6jDWuDw339VYFC45psc0KqHgE4wQPv6f40P4DzhEc6iP0FHQtPnjK7AyhzwOV4GHmTOBvxlv3nfifadOWlY38C1pqyKfPV/Pg9Qxdt01y/rnCzcX+KXx5n0n33vqpG0P+0+QF9Pn52uwDPj2U2x7F/7+VSCGX4a3oMfRG+JRjOvAwlVnYHsEtawGTxALvNITQCMPo43j6eQqFDZHzLB+OuF3UZwHFBA+N7+IM47fHBQtrptOkk5L35NCWI6yhGl7fmuaJI6p81YZCQBLNru+b6sk6XWzTPqeP7/g+b7M0l4vSRyOWbvTlBico18BgJajgA+LfIhBUSBLp59TEvr91fXTU6YkzRPnnIuLNCE+Pb2+6vdBfde2VS15NDxalhWQF8fzA33HE8+PixyoymWWnwY/jkejskRd1VmEcJB1VSOKkmf/5Nm/jO/FX4u+I/rR6BOYosO34ofw8/gb+Nf4fwSqaM4P49pmuViu/Ikg2Fu/W/Zs0eXCB0ntol6JX6MaQYswTyI//Hw2rM66phAhdke1qjXFE6/W7fz0BkVWmbkN92m6I9+BTNwt1W+DxqdIH8DMqow1lzOZYXIVqq3Wq263r+bPyPN+12ofy69XtdLNfgasVtWKGvTWerV+Vi/TTCxp1grnKqn9YjW51TDIQuXVe7xeWpqLL9ci5Mur9WXQPyhUzlf9Zi6Q1dvt2t2yac1Qj9gtV8umXa1X++ehrR4g7eNG47NXNYXl2bINtxA0+DjtyDjqWIzPPSKHVIwrS2HxSEcWaCkIW2E3Kd0X8ugAOvCidlLBOMjmsW4B8j4r6krj/UKIOCkRRCGkcOSENVLIoLQWoMR7b4iCAKUKOjGaWJtEASphSE8keO0TYvs9F6SQxo7pz3ZJARQioIwT0To7YklQVWmbyeQQs4NJ7cpKgSSPrO013LZVpedt77xsmzRhKsumTRPm4hEQkTSAUI4ZOkAKlQOKXdDsU0WxFIpJQyiG0EIzwRpPGsYxSwEdmEhaq5hk0jSmee7ti57R6azMM+J1P0mRpc3nSCKKDcCS2Bko9sYQkxZKQkgJaBISzBmpNLAOjiSQK5aIFcDspICWTKDE6Pbi9nNr3TaxJNbW3qeqqm0JvfboneU0hjH+tb4qS29DnqexYDcoiZO0aaqCOcmapnx7m+dAVVZlXqDImzvI8n4/z/OsP8hyvKyqa+eUTLI0C4YQt95ohGn5r7TWs6JwCNKTlFr7YBJtlYYCFBmpJMBSCqYPNo6di+OHQN0NoY7MkAJ0sXqdpOnYNSYlORXgimKmk9lsngUhDvMcRRgD41Agzw+FCNl8Nku1zrKqYlWUx6/3StdN28RBq6Zp2hiHGsRObaNWL4GWGSyGgIqkkEJOPPGAVbkq1oqIYDTpvBabWgoIQYIgVds/LuZx2yTv8y7pkbXeee8VJHWpJJo0dBOvtDGRKgt4BSiSwqKIxZTzUoOUNHyCjVVM0EnTxvPiuN8q2d4/hx5XVZab46KQn8gmk4oGg36f3qyV7NVFrrXRRVZV9kNx2zSN0iG0R7Qe/zMh1q639RNYGwd8pE1TpFmDsE/VOO9LYXzT5IWx1jZN+Tx9eF3Uk0l2bZO/IsIXRmdR2iJpQ2dsuqpkUzKHGGm0VtaDmmdXQzsLLvKj2QU6TWlcj4slXjUcDAmCU9am10wnqc+HnNvSElZs+ZQCFM3haOcxAgCNfHFrPGm1gM5VFcaz2bVrV3dbFQ6j+a8xjAJA2TvSNCxhWQCGAcA4tMfSstM0CKHpaBrkykFQVCszDcvqLS0tFQXGZdnJsszztyUzjv8I/hNrQaZQhIryio4yuskEZUu7xhV8rVVbjvVJVVX1oI6JT/xBZ/p6Gg+GXZe+/ysBrlVVFQ/igZ/7vr/HLsGbDg4OPsaP/kwIsffH74b86M8gv7r5Zbdv3/6jXWIYBrDdo/dqmvbxl6E4eg3aR68tPfvZ0EzT9MMvvs227c/96LdFUXT0P6Ae3/nao/8BdvQ/wD4opfTe/PpHHnnkc+0veOhnIUcYhceH8K1wiPLyFnQWsj+bGFN+yLiaTOU3Zter4VvxxolHH904gev6DMgnJT5d10f/jKuqqgipqqrC//7oiQ28T1PsjMfhsxJAPhuOxzt9Rymn31dKqb6/XVU5PoCnkY5C9Hv6rcFx/uKUF5SgI8TFakblOs6t5+eSKSQjXPNUBA1rqHG7o6BcSluw/5esD6PoXYS9W1xZR71nQvaDpzOps5PtFtUfdtQKEMgkl9hUIEJNoWGqqqINWJEMxjB746sGo9xglK9S5YYBu+ffpNXsVOoNYhhALUpt7q+osj27TyPEUVnq1smPDQLflSbGlASFcjSGW/6lLdX10g0C1zENsD1Cwri/Mhktzc9XgZQYTNNvD4dNibFheF7kKoeZPjc5aACGMG1pKkodNy/inJKyrKp4zjd1YFJIWDeYITFWANTSmKVpQjeEMo81XWeU68yKlGI8jJRiPPwIZ4xgAEGBcJtyTjUAAAAMhiYMgkFnJiEYuxgACECrWTi6Yei6hg3TspXFAZvMpkwYQdj00rTRTZKgDbj2oigILAm6rrLQAMy4BlhJnZlu5roYu0l3LosAZDjn+gCuzTFwjoHJqroW5ao+oZ8c/wBuwM8jC61mNkY76BF9gCbM5+GE41w+gedle9HaA/nC6/RnlibSd/FuNSPIue0brsfwm9Dtqgw+ptvrwtErz3xket0u3Ci2ti9GYJrzVeW3OvCpAzzjem4MKenbzRhwdvTNvpPVdR+AOWe3t+YoFQLevhQHQby0FIVhtPQNf31EgiBaeuHBpSUo5jA20rSr+O7As3047mxdvXZv5S8PBku/S0U3DMEw0oC1O2cwYoge/xG8F74OhaiPTjNgrR/N3yZelkuug5CFF9EJFVSuGuAhDEAA4GyRKBPHHQEV/MomHwtY34Wex4MI41yb6hfupjqRhptzjzP+nCYlVBAESWxWT8H64BHAGD88GMDJ++7b3l6DZxcWH3t8ceHS7u5Dv9oKkxRDGKSJbOnBFLnZ6YZBLoNhCp+A6zpFmhFTWD6A46ik0cCfTePnn5szDarxz3jh1VdfPdfrVgAAVa977tVS14VIXz1dtefwcDQ7vP/zH8lS995/8S/+xXN0mu5XWcZsPvi2t71NSnlt6h3w6so5ZfIc8UFm7bTxXpk0RTLOrJlEEUfDaErHeCqaRg9Eb4mi453m4da8W13Vqs6jqyBkSGGVPTp219uFKUkLTJLc5iQdbA53XVMfmXZ3KxvS4w67En+/lLIaIoTEJ2tmEidaPG724M94TmNJH55u1uODvy4ee+wzFmeb1eKp9eboLx6+/FC3GngvnBDG8Onp3bt381Vg44888g8PnAN7ZSCQaJ+dUVLKpiaCEkWRvD4XjD/slateL/7RxPVD7AHpsixwQXQDba/tpRnwYIRN6ujboy+K/rkmbRpl4RHXKPvDUR1Y2m2lZwO0jvAozH7Xch9HXKNDKjiq00o3WwKKPjZQzqag9Jo+DKNBpl0rnYAgKJzgMpTX8OEcrYsR2jCWORDXCWNOwdzuvcRXDvLq1MX9vipZKGXYkUYrpzaaBQQLBVSs5BTGSEVWZ2kCaG3f4jUFwzWXEEE4tKb/UNG8HATAvt140LPqJaKXx7HT0geVWEEwkNJpZuIQJzaOg1BeSWaVeN9KqRE3jW7NoJ84qYu8irWxNd6h4zSWKkxhvLSyVsHSGwUptHbMt26Rl3Yw6COOs4xYZQRwmrHG1o8TZorLIj1KhADLaRZiIyGLhGEtPznn/BTxCxrHFWYt6LCuZHac103KzJRIAcaBlDGTKOMQTKjK6ahtVK6DtX2yU8FaE7PtVYMLsFo++x/xCfxg5KIHonpo358/XMlH3GM81LtFnVVpChXmq9EGIhtUQYiB22XE66e4CQmmX/YfmN0f9bieNRqZrnc/pdVsNtaZFsftxSAwzOW1bh1FlqaU7zmJHcjEiqJ95YtLUVWBaZqN1TNly/PiyvftUZrq3C3ydafI6+WiMNfzwtUopedX55aVbavludWz0nHK7f5yHENRLCzPxpjmeW23Wr1ea03XaGDbSiWETO+9Z5CmifXx26dO2hJDELReGI1db9zrYhDWfN8wMe72xsQ0DQ7+ZWU/iRkctpL2vwG9E30C/Tr6kwi+yAFK9hRT0tdeNs5BARuXFurow7Wr/aguaTWnbNk14gjbMdV/QhQZ9planHFjAEt1bxreW9/h02xNA66QcHltsD595t6dmd7q2pBNe3JgGHCRhJ4idhCt3SzijPsiy6ihQJhvfa9TuwidhZZTc3PTY+PRFH7KN3Ri2HY7MwkBYSXdDe64QeoEPBWeI0w42VYkibc1IcBQStd1U9ZrtsaSpF2mlBrcdaN2+5OKAixLLl+q6LJGlBp+ibJN0XKU/G3HEaJJaOOLdb2lFLhusVLbAnt1p5O0kgJ7oYMxUXYJ4AecN4f3rQnpKJUobvVmJ4MA4OTiUowb8/18u4mFJS+c54k/DDgKAIOmWQbLW1UnihiOXgNKqQwCb1R5xMiy2mWq0QgSMJuTUMNRNI8NPRt1YTHPqVXkeVt6wPPQUxiHg+xa+FqI44Wkj23JVZo1XpzNZS1hmHRmisBzNC3+Np17fuA4P+D6YOgEOMO9FeVY/aKQ7vKZMZDc1an+rE8unwNjo99v+FhLHTfXDRBWEghKAEfCcey55Y0cSohq3weQ0rYx8XwAaUkLi6/ZUB5Y4Lh9hBCiiB//Ed6Ar0Im2kSPoacQ6nKUAL6mcbmDJnkEeEs4D0Mxh8Qrs7WDIIrgNm/Qi1lUSmJ4IiGg/7fov9oPl2BxuLQOP8hLap+jkqMfTJVSmHHDdS05xqBUCg8+f0C/e/PmzZuV71uWnyoVRbW5vr4+GgFM/rOCB2DOSrIsSlK44b2cRFmWrGm5tvb39D/yD47TCGxFgDgqLT3v1mWoe4AIso9fg++Br+aPwN0Xd42hPokD4lNjXOf4hXGLK/BYvNWNa8+zglc/YvBtr7zyCuevMLaq849x/jGurzK2uvoMh2kePT8071Xfc+PGDUpvUBoTcs8f540p/eQ4fmpPcpOQm4S+ZW9vD+M9Qv73ZBCiKEQI/hYOUIVW0Cl0obXF8rbqRjXIu7zSQIg4hoG/aetGda8zGBdg6dp7Jx52hoUAbgAJHB4xTzzCsyxYgoPP/3xPXHgi7+iRLd9rrDSbsIQXF7cOl5aWjArO59pkguFAWt7W1tFvLVnSg0XPkkeHW7nnPbK4uAjNsn9maRE+f3s8LluwhCeTaygmY6P/EA7ga1GOPow+C6F8UYGyYigUhzrVeC1kHmab354ubZTAREI+34n/mMWkgTz2CVTm65gUNI3dhghjehYLY4xZLf/opucylHemeLduUPBlbhga3MJw2XScpo2JwBRE+axMYfi2BNNoAsgk0YgpfKPT7oBh6gCM4DhSbcsKiOUYYVZMSm0bUz9OdD4QZwdGI0tirMJAXCVUKFujoHmeDqccQgC/ETTDLKR/9AsRqvHCyl7E2VNDMiZt3/Q9HUyzsJOEE6qVUrYoTYucAjBqWV0n4sKkjPlRTqrV3pxM2m2YxTGlYOjxL2qY5ngcCBmy6Hihr+XZaraFXkJfkmcmEZPp4+VdObhPZhWlLcr8gG/NhB2ubVdt0J4pkUThMmfJApeTaa9mnSE6vF3zqpV4Epdhw2j1APFVi3GGlSMomrCiXLk/fDqkGC+ejuN09FTrB704wqBsL7JtsO0olDYoO4psBbYMX6jv2QpwHHmDxcXhdDZzP+K1Sl+4rpC861NL586dO7uoDKNPJVxX+GXL06QM296CZQl7edkWltV2XPpnZy7iluOWi4sLrlvGwrIINV2n/XoShHrBOcMQkEIPQwxfbqWZFYac0DXtME0btnC/R4WhlaV9mWd0uyg8zkh8YmM2801CKDH8jdmJjYgw7hWFaRhQTEBF1/PQpgRwp7Mqrb4wMfb8RAPgie9hbIq+JVc7HbyGg0BCCoBxCjIIMFLHR8e/gw/gq5CB5tAQPYG+GH0CvQoW3AOfAl8LvwL/h7t4DaFpZ9gZTSfDSTxd6wwGPT4Y1BvY9ZMFursBBoiuudq21Ou0w7VhwsmClR9Ow8gSRzEwLRY8xK8DUfmSqyfDKF5niDAc1Ukg9yaTKA4QzCQ9zpOtcUwUT8ZTxoPBWhgP+LBJCkS9VJMCq2zs9eH3K1KjmNUaT7BfbWfdvFvNq67uKjjqupXOFqXqgoRgxOV+t112m/msFhnWTfYV6ApLiW0r4HSW8sitzf6SxW06gIIzKOcXigl1Tp44qn2T/WYekwairF233Xe7+QqGXGfezeocDpBydU7POrXcXLcFThPB01Z/uUVZwGVGHGyygzIwRNlMb7uV1jt+0J+06hrGGAd7GUzFwViNX8yjwWe3+VejFY4D3Sj9ZZnVqWVBfG4AMUdKRbaweOLdEtL1XvW6W+g/GQwGzNrTV8i9IlDVSrwN+t/nbDyYtVYCv0vd6uF0fnSjOb84Oy/vm8+JLzPnp5MbdxeHq+lgkK4uLkZj/MUfk7+mJt3v2BE98UkSBcu9AEvWWYBEWU8zwVwfK1nVcT7TMC4OzBCc37Au1oebnLJSCkt6wlWmmqSSg2fGMSCP6gAuo9kF2un3CSDWJZSSBEuwzoLB5cMIAGuSDjNhtNKqZ51RYaKCOjOQPQKP7auZKMZOyrRh5ru9QlwXWov5akE6FV96w9o3nCBKwcJFVLRVWqYW5HFro7GDFHFLBOfs/L/Ch4mop5kH7P6uFBJpAuY01dJy1WTKjB5JBcE5uPfIyUkYFnm1StM87+zx0Xp9eHqyHA6A1QxZNihDfHR0OTXSlkFpCBN+OSii1KqzG6O1AgwkIT+HENmAAXvkn1fLGnWdXz2TxqAGXgJcyozUyxLNSseIh28DU5R9YKX1Fvk0jyOlIKGSUPPvK6QUftXb/bu9YAUx/dI5GCSukD0hk9nQtjcVSSO0qmwCw1qDU53DGHCa6xwOSj9uAiNtFEtcpzut9dr0HMfbGWpd+qSEUqkI4WV+jyxZaU6VKqXCB8gLp6SQWR+O+M+ifJ7RW/wiQKGntBIzxaBQjhGaqVgaIWCIxnzers4ubNru7waYmp/PEfZiFEJyxn7+5dNPPz1s2ySOk7Ydfknrvfftl1XV08MWFWCrHf5kImRP8NNV9Yoz+5BRUirzwTT9ihkUw5Gzb4+TtjcY9NokTnvs18l5Qc/XpyLnD4/XSpkPG6WKpinQtLPvn7WJaTIQT6dfnu+xbQdWYxgKFVJyeWorio15ywtqUI6oCnaHgZdhV8VVkpI20ATB9xoVMKYBXSztFNnY35qjq/5LC/w014+UNApBYRobJWQcoyyXgPZ+2JaVWzKMMbmQ3rDgVOfOmUTA6LhprY/jHsu2nQ6NZpNmgghAXTtRsaiESI/G48BUNm1ecEUI8X0U3qBP9vXIjKBsoIcn03Ni4iKnSYAiCbFQ6ux4cdg3BhgHrRFi487pvJCMRzeeb5RKjYzzJOkNeiG2Nk19oVSpiShmUWc5i17ThDZNU8amabO3MTOxNhpLcltGHLOXu16PXhk9Fb0n+vKoEwr+RyBTkWZLu990C/V+UKZSqBwpLdau1ad8AhBZ2e13bc+5h6n5bLl+CA5A2eAmMplSXEfuA7w0+UN3MLnfpumwTlOY0Sggy+pBkuhb51brrKcVIPL77j7/JXfvps9MB4NQNk23uvvQdpcw4P3Zcl+1vdiUZVEo3+tVP8Ztw9y0/AFuGiGahj8HPggu8sEwy4X0DtzU1w57ffWHD93cT4d1jSSt0CQJVdWg2CZxgqIYNb3Hzs+AG9df+PFkOJjfv1lPJsDx8X15eTQe10MwcFxKY4g0Tf1slmVZlmXZA5Jg6UqZTpoXI8TywxCD6+W8kE3wY1jAHTRDm+gp9Eb0YfSFqM1Gea6UWu6WjeXBQKMGjkY8KJf56QDTLAzEovANtt8Tzqcx9WWXUfF3UjpeEeAqfC1qR3E8hUbHT+ZKra/z3VhLiQ5sitN7YHjZMjWHf8eapmUxJKdN87m7Mcbx3edMA5ZTwYMcnx7nG0Vf94bxeAw4oAGGkcaYJJJ1u9ySnLE3TEN4K479z4x71/wYv5UbDw8/8i6t9j0PKo30QahBHr9X15/D0X/H+DldXzuVZik5OU/9xo3bX7+3t0fISoBxsELw64QQ1v33CxBCfP3mFdy8J8JHfzpauobjnWYaj+z2gyU2tYcfjk8l+y/ae3piEc4p7EFYfk8Zd0JxOFAZw6p4XPSAnjSm4AxBnoK21ln+0J07dwxhGfPD0LbZekNKNw5DY9UHYdq2KQl1FaV0/WO6PuyL5qd1/Tfu3Lmj6wsjZtvhOg/DyLPtfOU9pusK07RdV38vl7YY3jYsYdzR9Z82LGGgfE1+LAfFaAc9hp5Az+RyGKWmu1EchVMHA2J/EgzPB4XD4ah1l3vYWr026E2z3qoxXI9AWqnTBx4XYJTzoN+qMxj+u0al70uq/fzR1heSQUGCsAmWzHzHBRBmmWhDm2FOSteN1sgHbNkYVX6sFISDwaBc+3hZlmvN3+GcwSJwxu/GnRRBLa9X2oYpAVxHWmAYgS1Mk1sYlmqEEAvRm/lSfsoqCCt6/afcEJN83jq+C/8GP4R/VJ+037j8UfQZ1knt2AKHaQVnBQBwMgg7HOHYd0fWj0hlg4ubmoSj1GQ6qfuBSbUE6EJEPiBHvTCUh2FLoB9NXwGULu30MHvJxXivht/zhqOr+OxqlmXpijc315lzV9Isy1bPwTPTKWyceOnR6dRPg9ObN96+vQ2wvf32G5un/c84A3B2yV9wFAZyDYNlzWGwrDm15C36/pK/9OCcZQHuWBZxzgKc4VKO/cVRZFlRZFnhO+7v9cjgHGTZ6kqWQccUlqggy1ZWswzODeiJjedfOnGiVz/4UL8PsL399rdvbwP0+w99Hrv3LDSMNMlS6yYPwzBkLAzDiH1ernc6egOGLAzDkLMoDEP2uXD2Hl72atmQVhRlsxzanzP9+I/wLA7vb74JOoueRG/yfllJwjmj2tFysrm4TkgmQcT1MUDvgcbB+iJIH+p66hkO+GDY3VqN51uus/WyUIHGxC60Lp3ZIonjfltnLj3uf+RTP/VTL95e9bzkpkRE1Gq7XiPb+9JWqxXNCb2btdSXvvLKK47GBvj0Le04et34+aOfSdPUTi1haoTrVhiGoRXaQlDMuQQMXwXJg03hgSmPvhRjDJ3AbxOKo7BVBAE7QX5gt9PZ7X72JgMXM0x9X7/2i3MbmuY6nD+1BoZuSUIAMcTRdbwBFUrQMjqBriLyD/rklGI5FYruGU+lStEy39Xh7dOtem1Qnirx+kQ2YzfqUUcYXWOWDLzM0RH5aRlntWua5jJr9DO6IvsLi3+ztra2huM4jjDpBTIBkCAkOAzJPwjC4piMViSN+rGyyZAzAuSdzhuw52PieQRah4eHV65cvHj4jnccAtWCYG0lCDX6uc8++ywYRtU2TDjnhammwSHG0q5algWt1rrREN5K09QDjH0ffLkqa3EYay+jYQ1qUINNHgZOv94qqR4BLT5wy5PPmerwDwqHemVlZXXd9TCE4VJdtGMxL3e12Ww2lUjExwHG3qddvXr16kYjK4oR0C/BjSxqRRF831s5ms7RF/5KTNjNY3n4L38Ft8p6sVlyfs5z2XnPoU9GCPr72I6HQQPZQoZCGYEaRaGNVh2q6jBVp8AllI4Ho3Ggn1y7soL+NrF4xkUjSn7t2Pg96/nY6PzpIgijOKjhkGBuN6RSivG7nFEqhDAJNXVCTM4xGaRaKSUbNsfkfieKDfpMDc1ed2Gn9sKl+fnmUqeTm0ZnYSFcyPOt1RVMif9jN5qeKAoJDdBgbjzQFP7GYI0TLORUivN21X5I1/85NwDAAa/YtI0A/Kqu5yy71SzFcq8HZ6o2Aca6dd2e29jYwBigm+eaT1XJXfjP66B7eMseaIdxVsuRicEAOxVUQk6RxeFar2zapBAxHZ62kCPKBNDmYjhRr0cY8eMNbdz0/s8GKZvllE7LppTaX8EbaN0WBYKJbkZ5YRZFaOoEE6At+yMYyv7QKAZGx1FnR/+xkCQ8/40RSbKgnCjyJQDFfv3UNGQQhgt+oDGmBf5CGAbSABps3Txg24sipxuSolzc/0+tAAKE8Awh8mkI0XmE6D8hpO0jpP0bQmwfIfZfCPHvQ0h/ECH9/xAyvg0h00JIWAiJ70PIyhGyPg8h678QkncQsn8HIfU4Qo6FkPNZCLkBQu6XIeQ5CHl3EKqHyqQps4lkDsl9lL2OsrMol6RcAX/PJnUJqXmUP0SFbCoso2KSirOolE2leVROUaU3VYuptonqnalRiRqryCqiVm+urc2133BdHjeU4Na3uPU/1M6mTpo6u6j7CfXS1BtF/UIaFNIon+xN3J7F7Zu4oxp3deeeLO5tzP1XcP8pHniNB74h5xwPHuOhPB5uz6PZPPoNj/Xn8SE8OYt/vsRzq3ixGi/l8nIBr2R4ZRmNd9FkG00P0aw5r+GtDC0KaDmPVv1pdYq27WnXmPaV6JBDh3N0XEenTXRuT+dCuuXQowQ9b6JXJXoV0HsSfefR7zn6nWLAIQZlkfcW7z3H+3h/FkMuYchrDCliaDbDMgxPMnwa+c3J/4UPujOyGiN/YVR3RhUxujNjMoytxNjejLuJyVcwpTVTxzFtCNNfY0aCGcXMmsTsLObUZ84u5s5ifpqFSRaOY9ElLMpnSW2WjmLZLJa3ZsVNrDhFwRV8dIxP0nyWy+c5rOrN6iLWVmJdhnXr2Jhk4yoK5/HFKP61ii1ptmWx/RA7ctl5E7tKsDuXPdvYm8O+5uxvzIEkB/Mpqs1XGb6exXc38UOKHxP8lOHn1/j1HL/lcXwbJzKcvIKTpzhdgnN5nM/lwhD+GEJxMX+25q9q/NVdRAkRh8TF48SlCXHZdeLy1uLyU6JEoSj5iyidLa64RFyZEYnXxN/uFGV6i+S9omxjUa6+SLUW5XeJCpeICv1FhV2i4i+icn1RJS2qZouq80T1hKhxp6hxTNQcIrLai1o3iVrjxDWPimtT4rr64nrihoy4MV/cVCBuSYraxaLeD6L+ItEwVzSqLW6/TtyRJe7IF3emxV0JcfcQcc8kcW9C3P+JeOCQeHCV+EdSpLuLh1Li4bR4LFs8nhJP5IonrxBPZYunCkVmk3i6UDz3jXjhXvHiS+LlUeKV1uLVe0XjhGh2iWj2i3i9uXhjmXizSLydL94pFM1TonmRaPEf0bKzaN1ctG0v2v5HtOsvuuSKrptEt2LRfZHo8YPo2V/0/Eb0vkT0SYu+x0S/R8XA7mLQFWLQayLvTpF3SLz3ixheW+QnxAf7xIjuYuQqMeoTMTolRk8SY/aJKSXE9HFiRo6Y9ZaYnRBzrhNzF4l5n4hlCbF8lFjRXKzsLD58TXyUJT6aJD6pLT79Rnx2Snz+mlhdSaxpLtYUirWPinXVxLpFYkOW2DhOFN4pvhgnNh8TWxuLbUVie67YkRG7csS+EmL/JWJ/kTh4hTh4SBzOFUcKxNE88WVSfLlJfP2W+Gaa+DYhvp0kvisQ3xeIH4rEz9+IX/aJ3xuLYylxrLM4kStOHhNn8sTZfHG+WFxYJYrT4s9z4j8p8d988f+E+H9vEQ//92FANwysikHdMCwjhrfFqFMYXRFjr2HCjJiwFya8hkkuYYpLmDIrpl6EqV9h2k2Yriam+4OZ9mG2dZjtE2YfhTlyYs6MmLMT5i6KecG8rzB/QSw4DgvNwsK9sMguLBaGxbNi8VdYMiGWKomlB2GZaVhuHFbohBV7YaVxWCUhVkuI1etijV5Y8xzWfoT1wrDeOGwwChsXxSbvsNUzbLcKO2TEjnHY+Qd2L4o9S2LfqtgvK/Z7hf3X4YB+OHAXDnqHQ5Li0Gc4bBoO/4Mj2uHIMBx5C8eE4dikOK0tzj+Hy6JweRyu2Iabc+LmQbg7Je4eh3sy4r4o3H8MDyzDQ0Xx8Cg8mhCPVcXj2/DENzxVFE+dwzNRePETXnqEl1fhlax4bRZe34Y3k+KtrHhnHN69hA+G4cNJ+KgpPk6LTzbhs3X4+ge+eYfvDuGHivhxE35qh5974dc4/NYNv8/CePhhZD+/k/0+CZx2h3EAwHne4gBwXOLzY8088eH3Q31cZ6fcP9yhXQxx8dBuzvPt0H4e8OjQAc7w5dBRTrFHj00j68P17/Ny2M3/POSYytKhjMNu16E+1tz/cv/PQ7uoudlDuxnJvh7azxv38dABfPbp0FHuuRMzP8Zht+tZaKx3y8WaRpPFzZC0F2RMlopyrKVXoUgtjTI+PuoHBie1CJ4pdwa3G4N9Tp6SMT/uh+6+aAbZDJXbSXqaTHLN17vlQlpVjZKCSTnWxFS7nZb5yTqZJ304zvdjWfPtotVomtyp3pWJb30Eo5tmeZoqleoarfyeE3xVe2sa7V879iHdwzchRYbqNlinS5mCNZSIISyyqRRleqVHQBhDWKKgTKRG4hWBgkTrXZ9YhXHGGcUzwCCTjDLMIEOMItwZ8/aNMenUtKo943iGuMsLmkOO2yRQ4TYJoYf+nzLieCFHyec+EVoVxVlESEk25mR+/5VLMBSlS4cWhv+kO8kyKj+cR12eh2ybgtb/fSTUPu93rMpdZCp30zIeOvVxTQwjJzFFiVK4CZKIJW5WYamqXw5Rb1pDlvn2sam8sof3vY8bAwMAAA==",Dp="data:font/ttf;base64,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EzdGGTsrKwwTDgkJYAEgHzAZSj09ShkwHyAB/qAaExMTExoAAAUAAP/AAnYBwAQzBFYHsgfOB/gAABMGBzExBgcVMSMxBgcGBxExFhcWFzExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEzMTExMTExMTExMzExMTExMTExMTMxMTExMTExMTEwMTAxITMwMTAxMzE2NzY1ETE0JyYnIzE1MTQnJicjFzMjMxYXFTEjMQYHFhczMRUxIzEGBxYXMzEVMQYHIzE1MTUhMyMzETEwMTAxMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTExMTExIzExMTExMTExMSMxMTExMTExMTEjMTExMTEx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AU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwtleGNsYW1hdGlvbgdoYXNodGFnC2RvbGxhci1zaWduATABMQEyATMBNAE1ATYBNwE4ATkJbGVzcy10aGFuBmVxdWFscwxncmVhdGVyLXRoYW4BYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6DWZvbGRlci1jbG9zZWQGbm90ZGVmBWhlYXJ0BHN0YXIEdXNlcgVjbG9jaw5yZWN0YW5nbGUtbGlzdARmbGFnCGJvb2ttYXJrBWltYWdlDXBlbi10by1zcXVhcmUMY2lyY2xlLXhtYXJrDGNpcmNsZS1jaGVjaw9jaXJjbGUtcXVlc3Rpb24DZXllCWV5ZS1zbGFzaA1jYWxlbmRhci1kYXlzB2NvbW1lbnQGZm9sZGVyC2ZvbGRlci1vcGVuCWNoYXJ0LWJhcghjb21tZW50cwlzdGFyLWhhbGYFbGVtb24LY3JlZGl0LWNhcmQKaGFyZC1kcml2ZRBoYW5kLXBvaW50LXJpZ2h0D2hhbmQtcG9pbnQtbGVmdA1oYW5kLXBvaW50LXVwD2hhbmQtcG9pbnQtZG93bgRjb3B5C2Zsb3BweS1kaXNrBnNxdWFyZQhlbnZlbG9wZQVwYXN0ZQlsaWdodGJ1bGIEYmVsbAhob3NwaXRhbAtzcXVhcmUtcGx1cwZjaXJjbGUKZmFjZS1zbWlsZQpmYWNlLWZyb3duCGZhY2UtbWVoCGtleWJvYXJkCGNhbGVuZGFyC2NpcmNsZS1wbGF5DHNxdWFyZS1taW51cwxzcXVhcmUtY2hlY2sRc2hhcmUtZnJvbS1zcXVhcmUHY29tcGFzcxFzcXVhcmUtY2FyZXQtZG93bg9zcXVhcmUtY2FyZXQtdXASc3F1YXJlLWNhcmV0LXJpZ2h0BGZpbGUKZmlsZS1saW5lcwl0aHVtYnMtdXALdGh1bWJzLWRvd24Dc3VuBG1vb24Rc3F1YXJlLWNhcmV0LWxlZnQKY2lyY2xlLWRvdAhidWlsZGluZwhmaWxlLXBkZglmaWxlLXdvcmQKZmlsZS1leGNlbA9maWxlLXBvd2VycG9pbnQKZmlsZS1pbWFnZQtmaWxlLXppcHBlcgpmaWxlLWF1ZGlvCmZpbGUtdmlkZW8JZmlsZS1jb2RlCWxpZmUtcmluZwtwYXBlci1wbGFuZQZmdXRib2wJbmV3c3BhcGVyCmJlbGwtc2xhc2gJY29weXJpZ2h0EWNsb3NlZC1jYXB0aW9uaW5nDG9iamVjdC1ncm91cA5vYmplY3QtdW5ncm91cAtub3RlLXN0aWNreQVjbG9uZQ5ob3VyZ2xhc3MtaGFsZglob3VyZ2xhc3MOaGFuZC1iYWNrLWZpc3QEaGFuZA1oYW5kLXNjaXNzb3JzC2hhbmQtbGl6YXJkCmhhbmQtc3BvY2sMaGFuZC1wb2ludGVyCmhhbmQtcGVhY2UKcmVnaXN0ZXJlZA1jYWxlbmRhci1wbHVzDmNhbGVuZGFyLW1pbnVzDmNhbGVuZGFyLXhtYXJrDmNhbGVuZGFyLWNoZWNrA21hcAdtZXNzYWdlDGNpcmNsZS1wYXVzZQtjaXJjbGUtc3RvcAxmb250LWF3ZXNvbWUJaGFuZHNoYWtlDWVudmVsb3BlLW9wZW4MYWRkcmVzcy1ib29rDGFkZHJlc3MtY2FyZAtjaXJjbGUtdXNlcghpZC1iYWRnZQdpZC1jYXJkD3dpbmRvdy1tYXhpbWl6ZQ93aW5kb3ctbWluaW1pemUOd2luZG93LXJlc3RvcmUJc25vd2ZsYWtlCXRyYXNoLWNhbgZpbWFnZXMJY2xpcGJvYXJkC2NpcmNsZS1kb3duC2NpcmNsZS1sZWZ0DGNpcmNsZS1yaWdodAljaXJjbGUtdXADZ2VtDG1vbmV5LWJpbGwtMQ9yZWN0YW5nbGUteG1hcmsMY2hlc3MtYmlzaG9wCmNoZXNzLWtpbmcMY2hlc3Mta25pZ2h0CmNoZXNzLXBhd24LY2hlc3MtcXVlZW4KY2hlc3Mtcm9vawtzcXVhcmUtZnVsbAxjb21tZW50LWRvdHMPZmFjZS1zbWlsZS13aW5rCmZhY2UtYW5ncnkKZmFjZS1kaXp6eQxmYWNlLWZsdXNoZWQPZmFjZS1mcm93bi1vcGVuDGZhY2UtZ3JpbWFjZQlmYWNlLWdyaW4OZmFjZS1ncmluLXdpZGUOZmFjZS1ncmluLWJlYW0UZmFjZS1ncmluLWJlYW0tc3dlYXQQZmFjZS1ncmluLWhlYXJ0cxBmYWNlLWdyaW4tc3F1aW50FmZhY2UtZ3Jpbi1zcXVpbnQtdGVhcnMPZmFjZS1ncmluLXN0YXJzD2ZhY2UtZ3Jpbi10ZWFycxBmYWNlLWdyaW4tdG9uZ3VlF2ZhY2UtZ3Jpbi10b25ndWUtc3F1aW50FWZhY2UtZ3Jpbi10b25ndWUtd2luaw5mYWNlLWdyaW4td2luawlmYWNlLWtpc3MOZmFjZS1raXNzLWJlYW0UZmFjZS1raXNzLXdpbmstaGVhcnQKZmFjZS1sYXVnaA9mYWNlLWxhdWdoLWJlYW0RZmFjZS1sYXVnaC1zcXVpbnQPZmFjZS1sYXVnaC13aW5rDmZhY2UtbWVoLWJsYW5rEWZhY2Utcm9sbGluZy1leWVzDGZhY2Utc2FkLWNyeQ1mYWNlLXNhZC10ZWFyD2ZhY2Utc21pbGUtYmVhbRBzdGFyLWhhbGYtc3Ryb2tlDWZhY2Utc3VycHJpc2UKZmFjZS10aXJlZAAA",mp="data:font/ttf;base64,AAEAAAAKAIAAAwAgT1MvMmFrYlMAAAEoAAAAYGNtYXCkr08aAAAXdAAASPpnbHlmyrT8aAAAdmAABbhgaGVhZCupGqQAAACsAAAANmhoZWEETQemAAAA5AAAACRobXR4C1QOjgAAAYgAABXsbG9jYQ+N9XgAAGBwAAAV8G1heHAFkgeFAAABCAAAACBuYW1lcb56mQAGLsAAAAPtcG9zdIbhlrIABjKwAABN0AABAAADBwUAcdD+eF8PPPUACwIAAAAAAOOCapMAAAAA44Jqk//0/7UCiwHLAAAACAACAAEAAAAAAAEAAAHL/7UAAAKA//T/9QKLAAEAAAAAAAAAAAAAAAAAAAV7AAEAAAV7B4MAFQAAAAAAAQAAAAEAAQAAAAAAAAAAAAAABAIDA4QABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAIACQMAAAAAAAAAAAABEAAAAAAAAAAAAAAAQVdTTQCAACH//wHL/7UAAAHLAEsAAAABAAAAAAFBAa8AAAAgAAABgAAAAIAAEwHAAAABQAAKAYAAAAGA//4BwAAQAUAAAAEA//4BQP/7AUD//gGA//wBQP/+AUAAAAFAAAABQAAAAUAAAAGAAAABwAAQAYD//gFAABACAAAAAYD//gFAAAABgP/5AYAAAAFAAAABQAAAAcAAAAGAAAABQAAAAUAAAAFAAAABQAAgAcAAAAGAAAABwAAAAUAAAAHAAAABQAAAAUD//AGAAAABgAAAAYD//gJA//4BgP//AYD//gGA//sCAAAAAgAAAAJAAAACQAAAAkAAIAJAACACgAAAAoD//gIA//0CAAAAAkAAAAKAAAACQAAgAoD/+QKA//kCgAAAAoD/+QJAACACAAAAAkAAAAKA//sCgAAAAoAAFAKA//kBwAAhAcAAIQIAAA8CAAAAAgAAAAHAABACgP/5AoD/+QKA//kCgP/5AgAAAAKA//kCgAAAAcAAAAHAAAACQAAAAkAAAAHAAAABwAAAAUAAAAFAAAABgAAAAcAAAAKAAEABgAAgAgAAAAIAAAACAAAAAcAAAAIAAAABwAAAAgAAAAGAACABwAAgAkAAAAGAAAACAAAAAkD/+gGAAAACAAAAAUAAAAGAAAACQAAAAgD/+QJAAAABQP/8AYAAAAGAAAABgP/+AYAAAAKAAAABgAAAAoAAAAHAAAABgAAAAoAAAAGAAAABgAAAAgAAAAIAAAACQAAAAoAAAAIAAAABgP/+AkAAAAJAAAACAAAAAcAAAAGA//8CAAAAAYAAHgJAAAACQAAAAkAAAAGAACABgAAAAkAAAwEA//4CAAAAAgAAAAHAAAACAAAAAgAAAAIAAAACAAAAAoD/+QJAAAACgAAAAgAAAAKA//kCgP/5AoD/+QKA//kCgP/5AkAAAAKAAAACgAAAAkD//gJA//4CQAAAAkAAAAKAAAoCgAAAAgAAIAIAAAACgAAAAgAAAAKAAAEBwAAAAgD/9wJAAAACAAAAAUAAIAFAACACAAAAAoAAAAJAAAACgAAgAoAAIAKAACACgAAgAkD//gHAAAACQP/+AoAAAAKAAAACgAAAAoAAAAKAAAACQAAAAYAAAAJAAAABgAAAAoAAAAKAAAACAP/7AgAAGQIAAAACQAAeAoD//wIAAAABgAAAAkD//gKAAAABwAAAAoAAAAJAAAACQP/+AkAAAAJAAAACQAAAAkAAAAKAAAACQP/6AoAAAAGA//8BgP//AgAABwJA//4CgAAAAoAAIAKAAAACgAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAgAAAgIAAAACQAAAAkAAAAKAAAACgAAAAoAAAAKAAAACgP/7AkD//gKAAAACgAAAAoAAAAKAAAACgAAAAoD/+wJA//4BQAAAAUAAAAIAAAABgAAAAkAAAAKAABoCAP/8AoAAAAGA//4CAAAAAkD/+QIAAAACAAAAAoAAAgKAAAACgAAAAUAAAAKAAAACAAAAAgAAAAKAAAACgAAAAkAAGwKA//sCgAAAAkAAAAKAAAACgAAAAkAAAAJAAAgCgP/+AoAAAAKAAAABwP/9AoAAAgHAAB4CgAAeAkD//gJA//4CQP/+AkD//gJA//4CQP/+AoAAAgJA//4CAAA6AoAAAAFA//4CQP/+AkAAIAIAAB0CAAAAAgD/+QJAAA0CAAAAAoAAAAKAAAACgAAAAkAAIgKAAAACgAAAAoAAAAKAAAACAAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAoAAAAKAAAACgAAAAoAAIAKAACACgAAgAoAAIAKAAAACgAAAAgAAAAKAAAACgAAAAoAAAAJAAAACgAAAAYAAAAIAAA8CAAAPAgAADwHAAAABwAAAAcAAAAGAAAACgAAAAkAAAAJAAAACQP//AoAAAAJAAAACQAAAAkAAAQKA//4BQAAAAkAAAAJAAAACAAAAAoAAAAIA//wCAAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKA//kCgAAAAoAAAAIAAAACAAAAAoAAAAIAACACgP/5AUD//wGAAA4CQAAAAkAAAAKAAAACAAAAAoAAAAHA//kCgAAAAoAAAAKAAAACgP/5AoAAAAIAAAACgP/+AYAAAAGAAAABwP/8AkD//AHAAAACAP/7AgAAAAIAAAACAAAAAkAAFAHAAAACAAAAAgAAAAIAAAACAAAAAcAAAAGAACACAAAAAgAAAAIAABACgAAgAgAADAJAAAACAAAAAkAAAAIAAAACAAAAAgAAGQIAABACQAAAAcAAAAHAAAACAAAAAUAAAAHAAAACgAAAAcAAAAIAAAABwAAAAgAAAAHAAAABgAAAAgAAAAIAAAABwAAAAYAAAAGAAAACQAAAAcAAAAHAAAABwAAAAcAAAAHAAAACAAAQAcD/9AHAAAACQAAAAgAAAAGAAAACAAAAAYAAAAIAAAACAAAAAUAAAAIAAAACAAAAAYAAAAFAAAABgAAAAgAAAAIAAAABQAAAAcD/+QFAAAABQABAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAABwAAAAcAAAAGAAAABgAAAAgAAAAHAAAABwAAAAcAAEAIAAAACAAAAAgAAAAHAAAACQP/+AoD/+QIA//sCQAAAAcAAAAIAAAACAP/+AcAAAAIAACACAAAgAkD/+wJAAAACAAAAAkD//AFAACACAAAAAgAAAAIAAAACAAAAAoAAAAKA//4CQAAUAgAAAAGA//0CAAAAAgAAAAJAAAACAAAAAcD//gIAAAABwAAAAcAAAAJAAAABwAAAAgAAAAIAAAACAP/+AgAAAAIAAAABgAAAAYAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIA//kCAP/6AgAAAAIAAAACgAAAAoAAEgKAAAABwAAAAgAAAAHAAAABwAAEAcAAAAHAAAABwAAAAgAACgIAAAECAAAAAcAAAAIAAAACAAAAAoAAAAJAAAABQP/7AUD/+wEAAAABAABAAgAAAAFA//sBQP/7AUD/+wIAAAACAAAQAgAAAAHAABsCQAAAAkAAAgIAAAABgAAQAcAAAAKAAAACgAAAAcAAAAJAACACAAAAAcD/+wKAAAACgAAAAoAAAAIAAAACgAAAAgAAIAHAAAABwAAAAgAAIAIAAEABwAAgAcAAIAFAACABQABAAcAAIAHAACACgAAAAcAAAAGAABABwAAAAcAAAAIA//oCAAAAAgAAAAIAAAACAAAAAoAAAAJAAAABwAAAAkAAAAKAAAACQAATAcAADQIAAAABwAAAAoD/+QDAAAACAAAAAgAAAAJAACcCAAAAAYAAEAKA//kCAAAPAcAAAAIA//sCAP/9AgAAAAIAAAACAAAAAgAAAAJA//kBwAAAAgAAAAHAAAgAgAAAAcAAAAIAAAACQAAAAcAAAAGAAAABgAAAAcAAAAHAAAABwAAAAkAAAAIAAAABwAAAAcAAAAHAAAABQAAAAUD//AHAAAABQP/+AYAAAAIA//4BgAAAAYAAAAJAACcCQAAnAkAABwJAAAcCQAAnAkAAJwIAAAACAAAAAYAAIAGAACACAAAAAgAAAAFA//4BQP/+AgD//gGAAAACAAAAAgAAAAHAAAACAAAAAgAAAAFA//wCgAAAAcAAAAIA//wCgP/+AoAAAAIAAAABgAAAAUD//gIA//4CAAAAAkAAAAIAAAACAAAAAgAAAAHAAAABwAAAAgAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAgAAAAIAAAACAAAAAgAAAAHAAAABwAAgAgAAAAHAAAABwAAAAgAAAAIAAAACAAABAgAAAAGAAAACAAAAAoAAAAGAAAACgP/5AcAAAAIAAAACAP/5AkAAIAHAAAACAAAAAkAAIAIAAAACQAAAAkAAAAKAAAACQAAgAkAAAAHAAAACQAAAAkAAAAIAAAACQP/+AcAAAAKAAAACAAAAAgAAAAGAABABwAAAAYAAEAIAAGACAAAAAoAAEAKAAAACgAAAAgAAIAFAAAACgAAgAYAAEAGAABACAAAAAoAAAAKAAAACgAAAAcAAAAHAAAACQAAAAkAAAAJAAAACQAAAAkAAAAFAAAABAP//AkAAAAKAAAABwAAAAgAAAAKA//4BgAAAAYAAAAGAAAABgAAAAcAAIAIAAAACAAAAAgAAAAJAACABwP/+AgAAHgKAAAACAAAAAoAAAAHAAAABwAAAAcAAAAHAAAACQAAgAUAAEAIAAAICQAAAAgAAAAIAAAACAAAAAcAAAAJAAAACAAAAAgAAHgJAAAACAAAAAoD/9wIAAAACgAAAAgAAAAJAACACgP/5AgAADAKAAAACAAAAAgAAIAJAAAACAAAAAYAAAAJAAAABQAAQAUAAEAFAABABQAAQAUAAEAIAAAACAAAAAcAAAAIAAAACAAAAAgAAAAHAAAACAAAAAcD//gIAAAABwAAAAgAAEAHAAAACAAAQAcAAEAIAAAACAAAAAgAAGQIAAAACQAAAAgD//QIA//0CAP/+AUD//AIAAAACAAAAAUD//QJAAAACAAAgAYAAAAIAAAABAP/8AgAAAAIAAAACAAAAAgAAAAIAAAABwAAAAgAAAAIAAAACgAAAAcAAAAJAAAACAP/7AYAAAAGAAAACQAAAAYAAAAGAABABgAAQAYAAEAGAABACQAAAAoD/+QGAAAACAAAAAgAADwHAAAABwAAAAkAAAAIAAAACAAAAAgD/+QIAAAACAAABAgAAAAIAAAACAAAAAgAAAAFAAAABwAAAAcAAAAHAABABQAAQAgAAAAHAABACgAAAAgAACQGAAAACAAAAAkAAAAIAAAACAAAAAgAAAAIAAAACgAAAAcAAAAJAAAACAAAAAYAAAAJAAAABgAAAAYAAAAJA//8BwAAAAkAAAAKAAAABgAAAAcAAIAJAAAACAAAAAkAAAAIAAAACgAAAAkAAAAGAAAABgAAAAoAAAAKAAAACgAAAAgD/+QKAAAICAP/5AgAAAAIAAAACgAAAAgAAAAIAAAACgAALAgD//gKA//kCgAAAAgAAAAIA//4CQAAAAkAAAAJAAAACQAAAAoAAAAKAAAoCgAAAAgAAAgKA//4CQAAAAcAAEQIAAAACAAAAAgAAAAIAAAACQAAAAoAABgKAAAACgP/5AUAADwKA//kBwAAAAoAAAAKAAAACgAAAAoAAAAKAAAABwP//AoAAAAKAAAABwAAAAoAAAAKA//kCgAAAAcAAAAKAAAACgAAAAoD//wIAAAACQAAAAkAAAAJAAAACQAAAAoAAAAKAAAACAAAAAgAAAAKA//8CQAAAAoAADQHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAABACQAAAAkAAAAIAAAkCQAAAAgAAAAJAAAABwAAAAoAAAwKAAAACQAAAAcAAAAJAAAACgP/5AkAAAAJAAAACQAAAAkAAAAHAABACAAAAAcAAAAJAAAABgAAAAoAAAAIAAAQCAAAAAoAAAAEAAAACgAAAAgAAAAKAAAACAAAAAgAAAAJAAAcCgAAAAgAAAAIAAAACAAAAAoD//wFAAAACAAAAAgAAAAIAAAABwAAAAYD/+wJAAAACgAAAAcAAAAGAAAABwAAAAgAADwHAAAACQP/8AgAAAAIAAAwCAAAMAgAAAAKAAAACAAAAAgAAAAIAAAACQAAAAgAACQGAAAABgAAAAkAAAAIAAAABgAAAAYAAAAGAAAACQAAAAYAAAAIAAAICQAACAgAAAAJA//oCAAAAAgAAAAIA//sCAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgD/+AIAAAACgAAAAgAAAAIAAAACAAAAAgAAAAHAAAABQAAAAgAAAAIAAAACQAAAAgD/9wIAAAACgAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAKAAAACQAAAAkAAAAIA//4CAAAAAgAAAAIAAAABgAAAAgAAAAIAAAABwAAAAgAAAgIA//4CAP/+AoAAAAKAAAABwAAAAgAAAAIAAAACgAAAAoAAAAIAAAACgAADAkAAAAIAAAACAAAAAgAAAAJAABQBgAAAAgAAAAIAAAACQP/+AkD//gKA//kCAAAAAcAAIAJAAAABwAAAAgD//AFAAA8CAAAAAcAAAAIAABsCQAAAAgAAAAIAAAACAAAAAgAAAAKAAAICgAAAAkAAAAIAAAABwAAAAoAAAAJAACACAAAAAoAAAAIAAAACgAAAAgAAAAIAAAACAAAUAgAAAAIAAAACAAAAAgAAAAJAAAACQAAAAoD//gFAAAACgAAAAoAAAAJAAAABQAAAAcAAAAKAAAACgAAAAgD//gKA//4BgAAAAgAAAAIAAAACAAAAAgAAAAJA//oCAAAAAgAAAAJAABkCQAAQAcAAAAJAAAACAAAAAgD//AKAACACgAAAAoAAAAIAAAACgAAAAgAAAAKAAAABwAAAAcAAAAHAACACgAAAAcAAAAIAAAACAAAAAgAAAAJAAAACAAAAAgAAEAKAAAACgAAAAgAAAAKAAAACQAAAAgAAAAJA//gBwAAAAkAAAAJAAB8BwP/8AoAAAAKA//4CgAAAAgAAEAHAAAACQP/+AoD//QIAAAACAAAAAgAAAAHAACABgAAAAkAAAAKAAAACAAAAAYAABQKA//sCQAAAAkAAAAGAAAACQP//AgAAAAKAAAACgAAAAgAAAAHAAAACQAAAAcD//gKA//kCAP/8AoAADAKAAAABwAAAAoAAAAIAAAACAAAAAgAAAAIA//oCQAAAAgAAAAIA//sCgP/+AoAAAAHAAAABgAAAAgD//AIAAAACQAAAAcAAAAKAAAACgAAAAoAAAAIAAAACAAAAAgAAAAHAAAACAAAAAkAAAAJA//4BwAAeAgAAAAJA//8CAAAAAcAAAAHAAAACAP/8AgD//AIAAAACAAAAAkAAAAKAAAACAAAAAoAAAAKA//4CAP/+AgAAAAHAAAAAwAAAAgD/+wIAAAACAAAHAoAAQAIAAAACQAAAAcAAAAIAAAACAAABAgAAAAKA//4CAP/6AgAAAAGAAAABgAAAAcD/+wIA//oCQAAAAoAAAAIA//4CAP/5AgD/+wKAAAABgAAAAcAAAAIA//oCAP/+AYAAAAJA//4BwAAAAgAAAAIAAAACQAAAAYAAAAIA//4CAAAAAgAAAAGAAAACQAAAAgAAEAHAACACQAAAAkAAAAIAAAABwAAgAoAAAAIAAAACAAAAAgD//gIAAAABwAAAAgAAAAHAAAABwAAAAcAAAAKAAAACgAAAAcAAAAHAAAABwAAAAkD//gIAAAACAP//AgD//gHAAAACgAAAAoD/+QJAACcCQAAnAkAABwJAAAcCQAAnAkAAJwJA//4CgAAAAoD//QKAAAABgAAAAgAAAAIAAAABgAAAAoAAAAAAAAQAAAADAAAAJAAAAAQAABiuAAMAAQAAACQAAwAKAAAYrgAEGIoAAAWsBAAACQGsACEAJQArADkAWgBhAGIAYwBkAGUAZgBnAGgAaQBqAGsAbABtAG4AbwBwAHEAcgBzAHQAdQB2AHcAeAB5AHoAowClAKkAqwCuALYAuwDXAPcgEyAcIB0gOSA6IKQgqCCpIKogrCC0ILggvSEiIZAhkSGSIZMhlCGVIZchuiG7IcQiEiIeIwMjBCMbIygjKSMqIysjmSPPI+kj6iPtI+4j8SPzI/gj+SP7I/4kvSWgJbYlzyXQJfsl/CYAJgEmAyYEJhEmFSYdJiAmIiYjJiUmKiYsJi4mLyY4JjkmPyZAJkImWiZbJlwmXSZeJl8mZSZmJnImeiZ7Jn4mgCaBJoImgyaEJoUmkyaWJpkmmyagJqEmoiajJqQmpSamJqcmqCapJqomqyayJr0mvibEJsUmxibfJukm6ib3Jvom/ScAJwInBCcFJwknCicLJwwnDycRJxInEycUJxUnFicdJyEnMSdEJ0YnTCdOJ1MnVCdVJ1cnZCeVJ5Ynlyk0KTUrDSsbKxwrJCtQ4AbgDeAS4EHgduCG4JjgmuCp4KzgtOC34Lvgz+DY4N/g5OEx4TzhQOFS4WPhaeFt4XvhheGP4ZvhqOGw4bzhxOHI4dPh1eHX4e3h8+H24f7iCeIi4i3iPeKJ4pzit+K74sXiyuLO4ubi6+Me46/jsuP15DzkReRI5Gzkc+R35HvkkOSU5KXkreSw5LPkzOTe5Obk6+Tt5O7lA+Ul5S/lT+VY5W/ldOWH5Y/lmuWd5aHlquWv5bTmeOZ65oLmj+aR5pvwAvAD8AXwBvAO8BPwFPAV8BbwGfAa8BvwHPAd8B7wPvBA8ETwRfBG8E7wW/Bc8F3wXvBm8GfwaPBp8G7wfvCA8Ibwh/CI8InwivCL8I7wkfCV8Jbwl/CY8J7wofCi8K7wsvDO8NHw3vDg8OPw5PDl8Obw7vD08PXw9vD38P7xB/EI8QvxDPEO8RHxEvEU8RXxHPEd8R7xIvEj8SfxKPEp8SrxLvE18TrxPvFG8UfxTvFU8VXxWfFe8WXxePGD8YjxjvGQ8ZPxlfGW8ZfxmfGd8a7xsPGx8bPxu/HJ8c7x2PHZ8drx2/He8ebx7PH28ffx+fH68f7yAfIH8gvyHvIt8jbyOfJJ8kryTvJQ8l3ybPJ38njyevJ78oPyi/KM8o3yjvKR8pLylfKa8pzynvKk8qjytvK38rnyuvK78rzyvfK+8sDywvLD8s7y0/LU8tzy5fLn8ury7fLy8vby+fL+8wXzDPMc8x7zKPMy8zjzW/Nd82DzY/OB84Lzh/OQ86Xzv/PB88XzyfPP89Hz3fPg8+Xz7fP78/3z//QG9BD0IvQk9CX0NPQ29Dr0PPQ/9EH0Q/RF9Ef0S/RO9FD0U/RY9F30X/Ri9Gb0bfRy9HT0efR99H/0gvSH9Iv0jvSU9Jf0nvSh9K30s/S69L70wvTE9Mb0zvTT9Nv03/Tj9Ob1CfUr9Sz1MPUx9TX1NvVA9UH1kfWd9aL1p/Wx9bT1uPW99cX1y/XO9dL11/Xa9dz13/Xh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ED0QPBAzAAAQJRAGEAUQAxACAAAAAA/gD9gPxA+sD6sPqA+lD6IPoQ+WD5QPkA+JD30AAA96D3QPaw9aD1kAAA9MD0sPSQ9ID0YPRQ9ED0MPQg8/Dz0PPA86DzYPMw8yDzEPLg8tDysPKg8oAAAPJA8jDyIPHw8eDx0PHA8WAAAPCA8DDv8O/Q78DvsO+g70DvAO7g7sDuoAAA7UDskAAA7IAAAOxwAADsYAAA7FDsQOww7CDsAOvw6+Dr0OvA67DroOuQ61DrMOsg6xDrAOrg6sDqkOpw6aDpcOlQ6KDogOgw5+Dn0Oew54DnUObw5sDmgOZg5kDmIOXg5dDlwOWg5WDlMOUg5QDk8OTg5KDkkOSA5HDkUORA5CDjYONQ4xDiwOKw4oDiAOHQ4bDhoOGA4VDg8ODg4NDgwOCw4KDgcOBA4CDgEN/g38DfUN9A3yDegN5w3iDeEN2w3YDdMN0g3QDcUNww3BDb4NuQ22DbQNsQ2vDaYNpQ2jDaINmg2YDZcNlg2TDY0NjA2HDYUNhA2DDYENgA16DXgNdg11DXQNcw1wDW8Nbg1tDWkNYA1bDVkNVw1WDVUNUw1NDUsAAAAAAAANRg1FDUQNQg1BDT0NNA0wDSINFw0WDRMNEQ0HDQMM+gzvDO4M6wzqDOEM3Ay0DKoMoAyfAAAMigx7AAEAAAAAAAAAAAAABbgFuAW4BbgFuAW4BbgFuAW4BbgFuAW4BbgFuAW4BbgFuAW4BbgFuAW4BbgFuAW4BbgFuAZIBkoGaAYgBpAGXAYcBbYG6AXoBh4GHgYSBhIGQgYsBjAGTAYiBvwHDAYkBmoFxAXGBcIFxAaGBoYGjgXaBY4F2gW4BrgF6AXoBkQF7gWaBZoGrAV+BZAFigWABYgFegZYBi4FegV6BV4F8gZ6BaIFbAXEBWIFmgWYBeAFkAa0BqgFwAaoBYQGnAakBp4GfAaEBn4GfgaEBnYFngXaBdQF1AY2BjoGOgYuBjAGMAUOBcAFsAWuBawGRAY2BjoGNgYuBioGLgV2BcQE/gY4BS4FSAWqBaoFqgWgBagFngWmBaYFVAVSBaIFgAXqBkYGMAY2BSAGJAX0BjgGIgX+BRAFDgUMBT4FDgYYBYgFiAWsBfIF7gSuBKwErASqBfAF+ARWBY4FjASeBYYEVgRUBEAEPgSKBEQExAXABZQFkAWABaIFoATy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AoYAACYVAAAmFQAABTAAACYdAAAmHQAAAhMAACYgAAAmIAAABPYAACYiAAAmIgAABTIAACYjAAAmIwAABRgAACYlAAAmJQAABKoAACYqAAAmKgAABM4AACYsAAAmLAAABLwAACYuAAAmLgAABMMAACYvAAAmLwAABNUAACY4AAAmOAAABLEAACY5AAAmOQAAAmAAACY/AAAmPwAAAu8AACZAAAAmQAAAAu0AACZCAAAmQgAAAu4AACZaAAAmWgAAA4UAACZbAAAmWwAAA4gAACZcAAAmXAAAA4kAACZdAAAmXQAAA4MAACZeAAAmXgAAA4YAACZfAAAmXwAAA4cAACZlAAAmZQAAAZUAACZmAAAmZgAAAucAACZyAAAmcgAAArcAACZ6AAAmegAAArcAACZ7AAAmewAAArcAACZ+AAAmfgAAA/sAACaAAAAmgAAAA+4AACaBAAAmgQAAA/EAACaCAAAmggAAA/AAACaDAAAmgwAAA+0AACaEAAAmhAAAA+wAACaFAAAmhQAAA+8AACaTAAAmkwAAAnsAACaWAAAmlgAAAwsAACaZAAAmmQAAAaIAACabAAAmmwAABIsAACagAAAmoAAAAe4AACahAAAmoQAAAjwAACaiAAAmogAAAvIAACajAAAmowAAAvMAACakAAAmpAAAAvQAACalAAAmpQAAAvAAACamAAAmpgAAAvUAACanAAAmpwAAAvEAACaoAAAmqAAAAvYAACapAAAmqQAAAvcAACaqAAAmqgAAAl4AACarAAAmqwAAAl4AACayAAAmsgAAAvgAACa9AAAmvQAAAs8AACa+AAAmvgAAA38AACbEAAAmxAAABT4AACbFAAAmxQAABNwAACbGAAAmxgAABQIAACbfAAAm3wAAAi8AACbpAAAm6QAABNIAACbqAAAm6gAAA+YAACb3AAAm9wAABTkAACb6AAAm+gAABNgAACb9AAAm/QAAA/cAACcAAAAnAAAAAiMAACcCAAAnAgAAAiMAACcEAAAnBAAAAiMAACcFAAAnBQAAAoYAACcJAAAnCQAAAjkAACcKAAAnCgAABOUAACcLAAAnCwAAAxEAACcMAAAnDAAAAxYAACcPAAAnDwAAA1IAACcRAAAnEQAABG0AACcSAAAnEgAABGwAACcTAAAnEwAAAZwAACcUAAAnFAAAAZwAACcVAAAnFQAAAZ0AACcWAAAnFgAAAZ0AACcdAAAnHQAABLAAACchAAAnIQAABM8AACcxAAAnMQAAAAUAACdEAAAnRAAAA0YAACdGAAAnRgAAA0YAACdMAAAnTAAAAZ0AACdOAAAnTgAAA0QAACdTAAAnUwAAABQAACdUAAAnVAAAABQAACdVAAAnVQAAAAEAACdXAAAnVwAAAAEAACdkAAAnZAAAAZUAACeVAAAnlQAAAAYAACeWAAAnlgAAAecAACeXAAAnlwAAA/IAACk0AAApNAAAA2sAACk1AAApNQAAA2oAACsNAAArDQAAA10AACsbAAArGwAAA48AACscAAArHAAAA48AACskAAArJAAAAl4AACtQAAArUAAAAZYAAOAFAADgBgAAADAAAOANAADgDQAAADIAAOASAADgEgAAADMAAOA/AADgQQAAADQAAOBZAADgdgAAADcAAOCFAADghgAAAFUAAOCXAADgmAAAAFcAAOCaAADgmgAAAFkAAOCpAADgqQAAAFoAAOCsAADgrAAAAFsAAOC0AADgtAAAAFwAAOC3AADgtwAAAF0AAOC7AADguwAAAF4AAODPAADgzwAABUMAAODYAADg2AAAAF8AAODfAADg3wAAAGAAAODjAADg5AAAAGEAAOExAADhMQAAAGMAAOE5AADhPAAAAGQAAOFAAADhQAAAAGgAAOFSAADhUgAAAGkAAOFjAADhYwAAAGoAAOFpAADhaQAAAGsAAOFtAADhbQAAAGwAAOF7AADhewAAAG0AAOGEAADhhQAAAG4AAOGPAADhjwAAAHAAAOGaAADhmwAAAHEAAOGoAADhqAAAAHMAAOGwAADhsAAAAHQAAOG8AADhvAAAAHUAAOHEAADhxAAAAHYAAOHIAADhyAAAAHcAAOHTAADh0wAAAHgAAOHVAADh1QAAAHkAAOHXAADh1wAAAHoAAOHtAADh7QAAAHsAAOHzAADh8wAAAHwAAOH2AADh9gAAAH0AAOH+AADh/gAAAH4AAOIJAADiCQAAAH8AAOIhAADiIgAAAIAAAOItAADiLQAAAIIAAOI9AADiPQAAAIMAAOKJAADiiQAAAIQAAOKcAADinAAAAIUAAOK3AADitwAAAIYAAOK7AADiuwAAAIcAAOLFAADixQAAAIgAAOLKAADiygAAAIkAAOLNAADizgAAAIoAAOLmAADi5gAA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BNsAAPbIAAD2yAAABN0AAPbPAAD2zwAABN4AAPbRAAD20QAABN8AAPbTAAD20wAABOAAAPbVAAD21QAABOEAAPbXAAD21wAABOIAAPbZAAD22QAABOMAAPbdAAD23gAABOQAAPbiAAD24wAABOYAAPbmAAD25gAABOgAAPboAAD26AAABOkAAPbsAAD27QAABOoAAPbwAAD28gAABOwAAPb6AAD2+gAABO8AAPb8AAD2/AAABPAAAPb/AAD3AAAABPEAAPcLAAD3DAAABPMAAPcOAAD3DgAABPUAAPcUAAD3FQAABPYAAPcXAAD3FwAABPgAAPceAAD3HgAABPkAAPciAAD3IgAABPoAAPcoAAD3KQAABPsAAPcrAAD3KwAABP0AAPcuAAD3LwAABP4AAPc7AAD3PQAABQAAAPdAAAD3QAAABQMAAPdDAAD3QwAABQQAAPdHAAD3RwAABQUAAPdNAAD3TQAABQYAAPdRAAD3UwAABQcAAPdWAAD3VgAABQoAAPdaAAD3WwAABQsAAPdeAAD3XwAABQ0AAPdpAAD3aQAABQ8AAPdrAAD3bAAABRAAAPdvAAD3cAAABRIAAPdyAAD3cwAABRQAAPd8AAD3fQAABRYAAPeAAAD3gQAABRgAAPeDAAD3hAAABRoAAPeGAAD3iAAABRwAAPeMAAD3jAAABR8AAPeTAAD3lAAABSAAAPeWAAD3lgAABSIAAPecAAD3nAAABSMAAPefAAD3oAAABSQAAPeiAAD3ogAABSYAAPekAAD3pgAABScAAPepAAD3qwAABSoAAPetAAD3rgAABS0AAPe1AAD3tgAABS8AAPe5AAD3ugAABTEAAPe9AAD3vQAABTMAAPe/AAD3wAAABTQAAPfCAAD3wgAABTYAAPfEAAD3xQAABTcAAPfJAAD3ygAABTkAAPfMAAD3zgAABTsAAPfQAAD30AAABT4AAPfSAAD30gAABT8AAPfXAAD32gAABUAAAPfkAAD35gAABUQAAPfsAAD37AAABUcAAPfvAAD37wAABUgAAPfyAAD38wAABUkAAPf1AAD39QAABUsAAPf3AAD39wAABUwAAPf6AAD3+wAABU0AAPgCAAD4AgAABU8AAPgFAAD4BwAABVAAAPgKAAD4CgAAAaMAAPgLAAD4CwAAAI8AAPgMAAD4DAAAAaMAAPgNAAD4DQAABVMAAPgPAAD4EAAABVQAAPgSAAD4EgAABVYAAPgVAAD4FgAABVcAAPgYAAD4GAAABVkAAPgdAAD4HQAABVoAAPgnAAD4KgAABVsAAPgvAAD4LwAABV8AAPg+AAD4PgAABWAAAPhKAAD4SgAABWEAAPhMAAD4TAAABWIAAPhQAAD4UAAABWMAAPhTAAD4UwAABWQAAPheAAD4XgAABWUAAPhjAAD4YwAABWYAAPhtAAD4bQAABWcAAPh5AAD4eQAABWgAAPh7AAD4fQAABWkAAPiBAAD4ggAABWwAAPiEAAD4hwAABW4AAPiRAAD4kQAABXIAAPiXAAD4lwAABXMAAPjAAAD4wQAABXQAAPjMAAD4zAAABXYAAPjXAAD41wAABXcAAPjZAAD42QAABXgAAPjlAAD45QAAAxkAAPjvAAD47wAABXkAAPj/AAD4/wAABXoAAfF/AAHxfwAABAYAAfMIAAHzCAAABQwAAfMLAAHzCwAABRMAAfMNAAHzDQAABEEAAfMOAAHzDgAABEIAAfMPAAHzDwAABEMAAfMQAAHzEAAAAhkAAfMZAAHzGQAAAqUAAfMhAAHzIQAAAzsAAfMmAAHzJgAABQQAAfMnAAHzJwAABQIAAfMpAAHzKQAABREAAfMqAAHzKgAABRIAAfMtAAHzLQAABVQAAfMxAAHzMQAAA8YAAfMyAAHzMgAAAroAAfM2AAHzNgAABVgAAfNLAAHzSwAAAggAAfNOAAHzTgAABIoAAfNPAAHzTwAABIoAAfNoAAHzaAAABVUAAfNqAAHzagAABCgAAfN0AAHzdAAAA0gAAfN3AAHzdwAAA80AAfN4AAHzeAAABEAAAfOBAAHzgQAAAekAAfOCAAHzggAAAtsAAfOTAAHzkwAAAq8AAfOXAAHzlwAAA8QAAfOZAAHzmQAAA24AAfOeAAHzngAAAZgAAfOfAAHznwAAAoIAAfOnAAHzpwAAAa0AAfOoAAHzqAAABAUAAfOtAAHzrQAABKUAAfOyAAHzsgAAA+sAAfO1AAHztQAAAZMAAfPAAAHzwAAAA4AAAfPBAAHzwQAAAmQAAfPCAAHzwgAABT0AAfPDAAHzwwAABPQAAfPFAAHzxQAABGUAAfPGAAHzxgAAAgYAAfPIAAHzyAAAA4sAAfPKAAHzygAABIAAAfPNAAHzzQAAAuoAAfPQAAHz0AAAA5EAAfPTAAHz0wAAA5AAAfPUAAHz1AAABPAAAfPWAAHz1gAABIUAAfPZAAHz2QAABK0AAfPbAAHz2wAABL0AAfPgAAHz4AAAAaMAAfPiAAHz4gAAArIAAfPlAAHz5QAAAkkAAfPoAAHz6AAABFgAAfPrAAHz6wAABA4AAfP0AAHz9AAAAawAAfP3AAHz9wAAAbMAAfQEAAH0BAAABN0AAfQIAAH0CAAABNkAAfQJAAH0CQAABOEAAfQOAAH0DgAABOwAAfQVAAH0FQAABOAAAfQfAAH0HwAABD0AAfRBAAH0QQAAAewAAfRNAAH0TQAAApwAAfROAAH0TgAAAp0AAfRRAAH0UQAAA+oAAfRVAAH0VQAABBgAAfRkAAH0ZAAAAZcAAfRlAAH0ZQAAA9QAAfR7AAH0ewAABOYAAfSAAAH0gAAABBEAAfSJAAH0iQAAA6wAAfSOAAH0jgAAA2kAAfSUAAH0lAAABSoAAfSZAAH0mQAAAZUAAfSaAAH0mgAAAZUAAfSbAAH0mwAAAZUAAfScAAH0nAAAAZUAAfShAAH0oQAAAkAAAfSjAAH0owAAAs4AAfSnAAH0pwAAAckAAfSpAAH0qQAAA1AAAfSsAAH0rAAAA7UAAfSwAAH0sAAABVoAAfSyAAH0sgAAAAMAAfSzAAH0swAAAgwAAfS7AAH0uwAAAlgAAfS8AAH0vAAAAh0AAfS+AAH0vgAAAiYAAfS/AAH0vwAAA+gAAfTAAAH0wAAAA+gAAfTBAAH0wQAAAfgAAfTCAAH0wgAAAfkAAfTEAAH0xAAAApQAAfTFAAH0xQAAAnQAAfTGAAH0xgAAAnQAAfTLAAH0ywAAA1sAAfTMAAH0zAAAAgMAAfTNAAH0zQAAAx8AAfTOAAH0zgAAAiUAAfTPAAH0zwAABAoAAfTUAAH01AAAAbUAAfTWAAH01gAAA+EAAfTcAAH03AAABPUAAfTdAAH03QAAA1kAAfTeAAH03gAAAgkAAfTfAAH03wAABVcAAfTgAAH04AAAArEAAfThAAH04QAABTUAAfTiAAH04gAAAg8AAfTmAAH05gAAA5QAAfTwAAH08AAAAtMAAfTxAAH08QAAA3AAAfT2AAH09gAAAaEAAfT3AAH09wAAAf0AAfT7AAH0+wAABXcAAfUAAAH1AAAAAfEAAfUBAAH1AQAAA2UAAfUEAAH1BAAAA0sAAfUIAAH1CAAAAa8AAfUKAAH1CgAAAbAAAfULAAH1CwAAAwAAAfUMAAH1DAAAAtIAAfUNAAH1DQAAAZQAAfURAAH1EQAAAf4AAfUSAAH1EgAAAasAAfUTAAH1EwAAAgsAAfUUAAH1FAAAAkcAAfUVAAH1FQAAAtYAAfUWAAH1FgAAAbYAAfUXAAH1FwAAAiAAAfUYAAH1GAAAAqkAAfUlAAH1JQAAAesAAfUnAAH1JwAAAhoAAfUoAAH1KAAABOcAAfUsAAH1LAAABJoAAfU0AAH1NAAAAl4AAfU1AAH1NQAAAl4AAfVHAAH1RwAABLAAAfVJAAH1SQAABMEAAfVKAAH1SgAAA7kAAfVLAAH1SwAABLsAAfVMAAH1TAAABMAAAfVNAAH1TQAABNAAAfVOAAH1TgAABOgAAfVTAAH1UwAAAaQAAfVrAAH1awAAAg8AAfVuAAH1bgAAA+EAAfVxAAH1cQAABPYAAfV1AAH1dQAAAukAAfV3AAH1dwAABPgAAfV7AAH1ewAAAgkAAfV9AAH1fQAABWgAAfWCAAH1ggAAAjkAAfWIAAH1iAAAAgMAAfWKAAH1igAAA1MAAfWLAAH1iwAABGwAAfWMAAH1jAAAAtoAAfWVAAH1lQAABVEAAfWWAAH1lgAAAxQAAfWkAAH1pAAAAZUAAfWlAAH1pQAAA2gAAfWoAAH1qAAAAbcAAfWpAAH1qQAAAtUAAfWqAAH1qgAAAiYAAfWxAAH1sQAABXYAAfW0AAH1tAAAAg4AAfW2AAH1tgAAAbcAAfW3AAH1twAAArEAAfW4AAH1uAAAA+gAAfW5AAH1uQAAApUAAfW7AAH1uwAAAsAAAfW/AAH1vwAAAfgAAfXBAAH1wQAAAfkAAfXLAAH1ywAAApQAAfXOAAH1zgAAApUAAfXVAAH11QAAA0IAAfXWAAH11gAAA0EAAfXYAAH12AAAAakAAfXZAAH12QAAAZ0AAfXpAAH16QAAAfIAAfXqAAH16gAAAgAAAfX6AAH1+gAAAyEAAfYAAAH2AAAABEUAAfYBAAH2AQAABF4AAfYCAAH2AgAABE0AAfYDAAH2AwAABEYAAfYEAAH2BAAABEcAAfYFAAH2BQAABEgAAfYGAAH2BgAABEoAAfYJAAH2CQAAA8gAAfYKAAH2CgAABHYAAfYNAAH2DQAABEkAAfYQAAH2EAAAAmEAAfYXAAH2FwAABFoAAfYYAAH2GAAABFwAAfYZAAH2GQAABFsAAfYbAAH2GwAABE4AAfYcAAH2HAAABFAAAfYdAAH2HQAABE8AAfYgAAH2IAAABBsAAfYiAAH2IgAABHMAAfYmAAH2JgAABD8AAfYrAAH2KwAABIMAAfYsAAH2LAAABEQAAfYtAAH2LQAABHIAAfYuAAH2LgAABH4AAfYzAAH2MwAABD4AAfY2AAH2NgAABGYAAfZCAAH2QgAAAl8AAfZEAAH2RAAABGcAAfaBAAH2gQAAA/oAAfaGAAH2hgAAAv4AAfaKAAH2igAAAYUAAfaNAAH2jQAAAuIAAfaQAAH2kAAABHQAAfaRAAH2kQAAAkoAAfaWAAH2lgAAArkAAfaXAAH2lwAABJIAAfaYAAH2mAAAArgAAfaaAAH2mgAAAi8AAfacAAH2nAAABPoAAfahAAH2oQAABUMAAfaiAAH2ogAAAugAAfamAAH2pgAABKYAAfaqAAH2qgAAA/MAAfarAAH2qwAAAd8AAfasAAH2rAAAA6sAAfatAAH2rQAABBIAAfawAAH2sAAAADEAAfayAAH2sgAAAuEAAfa0AAH2tAAABWEAAfa2AAH2tgAABBkAAfa9AAH2vQAABUEAAfa/AAH2vwAAAz4AAfbBAAH2wQAAAz8AAfbMAAH2zAAAAv0AAfbOAAH2zgAABCcAAfbQAAH20AAABMcAAfbSAAH20gAAAfcAAfbhAAH24QAAAnMAAfbjAAH24wAAAaUAAfbrAAH26wAABHAAAfbsAAH27AAABG8AAfbwAAH28AAABTQAAfb7AAH2+wAABKgAAffgAAH34AAAAl4AAffhAAH34QAAAl4AAffiAAH34gAAAl4AAffjAAH34wAAAl4AAffkAAH35AAAAl4AAfflAAH35QAAA48AAffmAAH35gAAA48AAffnAAH35wAAA48AAffoAAH36AAAA48AAffpAAH36QAAA48AAffqAAH36gAAA48AAffrAAH36wAAA48AAfkNAAH5DQAAAZUAAfkOAAH5DgAAAZUAAfkWAAH5FgAABAkAAfkaAAH5GgAAAxEAAfkdAAH5HQAAA8AAAfkjAAH5IwAABEsAAfkpAAH5KQAABEwAAflBAAH5QQAABC4AAflCAAH5QgAABSQAAflDAAH5QwAABSUAAflEAAH5RAAAA0cAAflOAAH5TgAAA38AAflTAAH5UwAABUUAAflVAAH5VQAABR0AAflaAAH5WgAABU4AAfl3AAH5dwAAA9gAAfmQAAH5kAAAAJYAAfmbAAH5mwAABOsAAfmmAAH5pgAABPIAAfm0AAH5tAAABIwAAfm3AAH5twAABIQAAfnNAAH5zQAAAqMAAfngAAH54AAABI4AAfnhAAH54QAAAZUAAfnmAAH55gAABMwAAfnpAAH56QAAAnAAAfnqAAH56gAAA68AAfnsAAH57AAAA5wAAfntAAH57QAAAooAAfnvAAH57wAAAnUAAfnwAAH58AAABBcAAfnyAAH58gAAAfMAAfnzAAH58wAAAkYAAfn5AAH5+QAAA+MAAfn7AAH5+wAABPkAAfn8AAH5/AAAAEwAAfn+AAH5/gAABAgAAfp5AAH6eQAAA5MAAfp6AAH6egAAAkUAAfqRAAH6kQAABNoAAfqbAAH6mwAABA8AAfq2AAH6tgAAA/UAAfrBAAH6wQAABJkAAAAAAAAAAACkAAABFAAAAjgAAAOMAAAEKAAABPAAAAVsAAAF9AAABmwAAAb4AAAHtAAACEgAAAj8AAAJrAAACgwAAAsMAAALtAAADBwAAAyUAAAM+AAADcQAAA7YAAAPWAAAEAwAABCQAAARFAAAEZwAABIQAAASxAAAE0gAABPIAAAURAAAFNQAABUoAAAVpAAAFhQAABa0AAAXOAAAGAQAABioAAAZ2AAAGjgAABqwAAAbFAAAG6QAABw4AAAcqAAAHRgAAB4UAAAfTAAAIAwAACEwAAAigAAAI9AAACVIAAApEAAAKwQAACv0AAAs9AAALtQAADEgAAAyKAAAM5AAADUYAAA2aAAAN3gAADkEAAA58AAAOswAAD2EAAA/EAAAP9gAAEDQAABBtAAAQxgAAEQwAABFgAAARvAAAEfMAABIwAAASbwAAErUAABMaAAATdwAAFAoAABReAAAUywAAFPAAABUVAAAVTQAAFY0AABXQAAAWGgAAFjgAABZmAAAWrwAAFuMAABcwAAAXcAAAF54AABgAAAAYVgAAGKYAABj8AAAZSgAAGYUAABmwAAAZ7QAAGk0AABqLAAAatwAAGtYAABsBAAAbOAAAG3MAABvTAAAcBwAAHDwAABxrAAAcrwAAHNUAAB0BAAAdVQAAHZQAAB3dAAAeDwAAHjgAAB56AAAeqwAAHu0AAB8WAAAfXAAAH4UAAB/WAAAgGAAAIFgAACCgAAAg9gAAIU8AACGaAAAh1gAAIlIAACKJAAAixwAAIvAAACMjAAAjUwAAI4AAACOoAAAkEwAAJFgAACS+AAAk9QAAJTkAACVzAAAlrQAAJhcAACZmAAAmqQAAJvAAACdlAAAnxAAAKCQAACiHAAAo8QAAKVIAACmbAAAqAAAAKm0AACrPAAArNgAAK7kAACv9AAAshwAALMsAAC0aAAAtVAAALdIAAC40AAAungAALuIAAC87AAAvfwAAL7MAAC/oAAAwJwAAMFoAADCjAAAw4gAAMTgAADGRAAAx8QAAMkgAADKZAAAyxwAAMzYAADO4AAA0NgAANLYAADU9AAA1qAAANiUAADafAAA3EwAAN3cAADftAAA4pAAAONEAADkpAAA5bgAAOcgAADowAAA6WwAAOqgAADsWAAA7bgAAO80AADwQAAA8VQAAPLQAADzzAAA9KwAAPX0AAD20AAA+JwAAPl8AAD6fAAA+vwAAPu4AAD+YAAA/5AAAQHEAAEDGAABBOwAAQZ4AAEHlAABCJgAAQmoAAEKnAABC7wAAQzoAAEN+AABDzAAARBsAAERkAABEqAAARO4AAEU7AABFhgAARbYAAEYkAABGtQAARwEAAEdKAABHlgAAR+gAAEgjAABIpwAASNcAAEkuAABJYwAASZMAAEoHAABKPwAASnQAAEqjAABK1AAASxYAAEtoAABLkQAAS8YAAE38AABOSAAATnIAAE7KAABPMgAAT5EAAFAlAABQfAAAUSEAAFE1AABRmgAAUb4AAFH8AABScAAAUuMAAFNXAABTuAAAVDMAAFSGAABU2QAAVSEAAFV3AABVvQAAVgIAAFZRAABWowAAVu4AAFdEAABXqQAAWAEAAFhgAABYuAAAWPQAAFlWAABZkwAAWf0AAFo4AABaigAAWvIAAFtNAABbkwAAW9UAAFxIAABcrQAAXTUAAF2XAABd2gAAXh8AAF5rAABesAAAXy4AAF+DAABf0wAAYCYAAGBxAABgyAAAYSIAAGFtAABhpwAAYfcAAGJFAABilgAAYu0AAGNBAABjbAAAY7YAAGP1AABkYwAAZNQAAGVLAABlpwAAZhYAAGZFAABmgQAAZsUAAGbxAABnMwAAZ20AAGfGAABoHQAAaJwAAGjDAABpAAAAaR4AAGlRAABpigAAacEAAGoBAABqLwAAalYAAGqdAABrBAAAa08AAGu+AABr4AAAbCoAAGyBAABs1gAAbSMAAG2ZAABt7AAAbksAAG6mAABvFwAAb4AAAG/8AABwOQAAcKUAAHEbAABxVAAAcbIAAHHsAAByJAAAcmEAAHKmAABy8wAAczEAAHNbAABztAAAdAEAAHROAAB0egAAdK8AAHT7AAB1UAAAdaUAAHXQAAB2AwAAdl0AAHbSAAB3KwAAd0wAAHdxAAB3mwAAd7gAAHfWAAB3+QAAeGwAAHiUAAB40wAAeQgAAHkfAAB5QAAAeWsAAHmMAAB5xQAAeg4AAHpbAAB6kAAAerMAAHrnAAB7IQAAe0kAAHt6AAB7ygAAfBsAAHxCAAB8ZQAAfJQAAHyqAAB8zgAAfRUAAH2AAAB9wgAAfeIAAH4UAAB+SwAAfmIAAH6dAAB+ywAAfvUAAH8nAAB/RwAAf4wAAH/QAACACwAAgEYAAICBAACAvQAAgQgAAIFNAACBlAAAgbgAAIHoAACCAAAAgh8AAIJEAACCggAAgs8AAILrAACDDwAAgy0AAIM+AACDYwAAg3gAAIOWAACDugAAg9YAAIP2AACECwAAhCEAAIRLAACEawAAhJcAAIS8AACE+AAAhSwAAIWLAACFtQAAhdEAAIXuAACGCwAAhicAAIZLAACGlAAAht0AAIbuAACHGQAAh2IAAIeNAACHvQAAiAQAAIhEAACIagAAiJEAAIj6AACJPgAAiWUAAImRAACJpwAAibwAAIn2AACKKwAAikUAAIppAACKkQAAiroAAIr7AACLMAAAi1kAAIvwAACMLAAAjEEAAIx5AACMogAAjN4AAI0WAACNYAAAjZwAAI3SAACN8QAAjhwAAI5EAACOcQAAjqkAAI7kAACPGAAAj1kAAI+wAACQBgAAkFwAAJCyAACQ2gAAkQEAAJEpAACRUQAAkZ8AAJHMAACSHQAAkjIAAJJlAACSoAAAkvEAAJNIAACTZwAAk5EAAJPVAACT/QAAlDEAAJRfAACUdAAAlKEAAJTrAACVRAAAlZQAAJXPAACV9wAAlhIAAJZYAACWmAAAlqgAAJa5AACWyQAAltkAAJb5AACXGAAAlygAAJc5AACXWgAAl4sAAJfEAACX2wAAmDEAAJh2AACYqQAAmNk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AAQDRAAEBAwABAVYAAQGHAAEBugABAfkAAQJZAAEChAABAr0AAQLrAAEDFAABA3YAAQOaAAED3gABBB0AAQRuAAEEowABBNEAAQT+AAEFcwABBbkAAQXlAAEGMQABBlwAAQapAAEG0gABBzMAAQeiAAEHzQABCC4AAQhlAAEIoAABCOoAAQkvAAEJVwABCYcAAQmmAAEJ5wABCi0AAQpbAAEKtgABCwEAAQtPAAELjgABC9QAAQwLAAEMWAABDIQAAQyzAAEM4gABDSwAAQ2SAAEN1QABDiwAAQ5XAAEOhQABDsQAAQ88AAEPbgABD7AAAQ/vAAEQEQABEGQAARC2AAERJgABEYIAARHCAAESAwABEmwAARLrAAETOQABE4EAARP6AAEUVAABFO0AARU9AAEVlQABFesAARYrAAEWhgABFuIAARcfAAEXagABF5YAARgEAAEYdgABGNwAARlWAAEZ+gABGosAARrIAAEbKwABG3EAARuuAAEcCAABHEQAARyJAAEcsAABHPUAAR0kAAEdaAABHY4AAR24AAEd7QABHkMAAR5rAAEemAABHt4AAR8jAAEfUgABH4oAAR/SAAEgGgABIGMAASC0AAEhHAABIWAAASGJAAEhuQABIigAASJXAAEiggABIsMAASL8AAEjNgABI4UAASPkAAEkFQABJGQAASSOAAEk0QABJSAAASVJAAEldgABJesAASYXAAEmjAABJsAAASbxAAEnNwABJ4UAASfDAAEoJAABKG4AASjCAAEo6wABKS0AASloAAEpnQABKeUAASozAAEqdAABKqEAASrTAAErBQABKz0AASuUAAEr7QABLBUAASw9AAEsuwABLUoAAS3IAAEt+wABLpkAAS7lAAEvKQABL14AAS+ZAAEv6gABMIkAATDnAAExWAABMX4AATIDAAEySQABMmwAATKZAAEy+QABM1sAATOrAAE0DAABNIUAATUIAAE1XQABNh8AATZNAAE2mAABN2AAATe6AAE4agABOScAATlYAAE5hwABOcQAAToBAAE6MwABOoEAATrSAAE7HgABO1EAATuKAAE7xgABPAYAATxRAAE8mQABPQMAAT1BAAE9twABPeQAAT4mAAE+ewABPtMAAT77AAE/WAABP4wAAT/GAAFAHwABQHsAAUD6AAFBJwABQWUAAUG3AAFB6gABQoA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MTExMTEVMTExMTExMRUxMTExMRUxMTExMRUxMTExMTExFTExMTExFTExMTExFTExMTExMTEVMTExMTEVMTExMTEVMTExMTExMRUxIzEGBxYXMzExMTExMTEVMTExMTExMTExFTExMTExMTExMRUxMTExMTExMTEVMTExMTExMTExFTExMTExMTExMRUxMTExMTExMTEVMTExMTExMTExFTExMTExMTExMRUxMTExMTExMTEVMTExMTExMTExFTExMTExMTExMRUxMTExMTExMTEVMTExMTExMTExFTExMTExMTExMRUxMTExMTExMTEVMTExMTExMTExFTExMTExMTExMRUxMTExMTExMTEVMTExMTExMTExFTExMTExMTExMTExMTEVMTExMTExMTExMTExMTExMTExMRUxMTExMTExMTExMTExMTExMTExFTExMTExMTExMTExMTExMTExMTEVMTExMTExMTExMTExMTExMTExMRUxMTExMTExMTExMTExMTExMTExFTExMTExMTExMTExMTExMTExMTEwMTAVMDEwMTExMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMBUwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAVMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwFTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMBUwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAVMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTMxIzEWFzY3IzEzMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE0MTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTQxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE0MTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDExMTAxMDE0MTAxMTExMTExMTExMTExMTExMTExNTExMTExMTExMTExMTExMTExMTE1MTExMTExMTExMTExMTExMTExMTUxMTExMTExMTExMTExMTExMTExNTExMTExMTExMTExMTExMTExMTE1MTExMTExMTExMTExMTExMTExMTUxMTExMTExMTExMTExNTExMTExMTExMTUxMTExMTExMTE1MTExMTExMTExNTExMTExMTExMTUxMTExMTExMTE1MTExMTExMTExNTExMTExMTExMTUxMTExMTExMTE1MTExMTExMTExNTExMTExMTExMTUxMTExMTExMTE1MTExMTExMTExNTExMTExMTExMTUxMTExMTExMTE1MTExMTExMTExNTExMTExMTExMTUxMTExMTExMTE1MTExMTExMTExNTExMTExMTExMTUxMTExMTExMzE2NyYnIzE1MTExMTExMTUxMTExMTUxMTExMTUxMTExMTExNTExMTExNTExMTExNTExMTExMTE1MTExMTE1MTExMTE1MTExMTExMTUxMTExMTUxMTExMTUxMTE1MTExMTE1MTExNTExMTExNTExMTUxMTExMTUxMTE1MTExMTE1MTExNTExMTExNTExMTUxMTE0NTY3NjcmJzcxFzEWNzY3NTEmJyMHMhcxMRYXFhUUBwYHBiMiJyYnJjU0NzY3NjMnJiMiBwcx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AhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwI4AjkCOgI7AjwCPQI+Aj8CQAJBAkICQwJEAkUCRgJHAkgCSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAlcCWAJZAloCWwJcAl0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeQJ6AnsCfAJ9An4CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsACwQLCAsMCxALFAsYCxwLIAskCygLLAswCzQLOAs8C0ALRAtIC0wLUAtUC1gLXAtgC2QLaAtsC3ALdAt4C3wLgAuEC4gLjAuQC5QLmAucC6ALpAuoC6wLsAu0C7gLvAvAC8QLyAvMC9AL1AvYC9wL4AvkC+gL7AvwC/QL+Av8DAAMBAwIDAwMEAwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxoDGwMcAx0DHgMfAyADIQMiAyMDJAMlAyYDJwMoAykDKgMrAywDLQMuAy8DMAMxAzIDMwM0AzUDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IDYwNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQN2A3cDeAN5A3oDewN8A30DfgN/A4ADgQOCA4MDhAOFA4YDhwOIA4kDigOLA4wDjQOOA48DkAORA5IDkwOUA5UDlgOXA5gDmQOaA5sDnAOdA54DnwOgA6EDogOjA6QDpQOmA6cDqAOpA6oDqwOsA60DrgOvA7ADsQOyA7MDtAO1A7YDtwO4A7kDugO7A7wDvQO+A78DwAPBA8IDwwPEA8UDxgPHA8gDyQPKA8sDzAPNA84DzwPQA9ED0gPTA9QD1QPWA9cD2APZA9oD2wPcA90D3gPfA+AD4QPiA+MD5APlA+YD5wPoA+kD6gPrA+wD7QPuA+8D8APxA/ID8wP0A/UD9gP3A/gD+QP6A/sD/AP9A/4D/wQABAEEAgQDBAQEBQQGBAcECAQJBAoECwQMBA0EDgQPBBAEEQQSBBMEFAQVBBYEFwQYBBkEGgQbBBwEHQQeBB8EIAQhBCIEIwQkBCUEJgQnBCgEKQQqBCsELAQtBC4ELwQwBDEEMgQzBDQENQQ2BDcEOAQ5BDoEOwQ8BD0EPgQ/BEAEQQRCBEMERARFBEYERwRIBEkESgRLBEwETQROBE8EUARRBFIEUwRUBFUEVgRXBFgEWQRaBFsEXARdBF4EXwRgBGEEYgRjBGQEZQRmBGcEaARpBGoEawRsBG0EbgRvBHAEcQRyBHMEdAR1BHYEdwR4BHkEegR7BHwEfQR+BH8EgASBBIIEgwSEBIUEhgSHBIgEiQSKBIsEjASNBI4EjwSQBJEEkgSTBJQElQSWBJcEmASZBJoEmwScBJ0EngSfBKAEoQSiBKMEpASlBKYEpwSoBKkEqgSrBKwErQSuBK8EsASxBLIEswS0BLUEtgS3BLgEuQS6BLsEvAS9BL4EvwTABMEEwgTDBMQExQTGBMcEyATJBMoEywTMBM0EzgTPBNAE0QTSBNME1ATVBNYE1wTYBNkE2gTbBNwE3QTeBN8E4AThBOIE4wTkBOUE5gTnBOgE6QTqBOsE7ATtBO4E7wTwBPEE8gTzBPQE9QT2BPcE+AT5BPoE+wT8BP0E/gT/BQAFAQUCBQMFBAUFBQYFBwUIBQkFCgULBQwFDQUOBQ8FEAURBRIFEwUUBRUFFgUXBRgFGQUaBRsFHAUdBR4FHwUgBSEFIgUjBSQFJQUmBScFKAUpBSoFKwUsBS0FLgUvBTAFMQUyBTMFNAU1BTYFNwU4BTkFOgU7BTwFPQU+BT8FQAVBBUIFQwVEBUUFRgVHBUgFSQVKBUsFTAVNBU4FTwVQBVEFUgVTBVQFVQVWBVcFWAVZBVoFWwVcBV0FXgVfBWAFYQViBWMFZAVlBWYFZwVoBWkFagVrBWwFbQVuBW8FcAVxBXIFcwV0BXUFdgV3BXgFeQV6BXsFfAV9BX4FfwWABYEFggWDBYQFhQWGBYcFiAWJBYoFiwWMBY0FjgWPBZAFkQWSBZMFlAWVBZYFlwWYBZkFmgWbBZwFnQWeBZ8FoAWhBaIFowWkBaUFpgWnBagFqQWqBasFrAWtBa4FrwWwBbEFsgWzBbQFtQW2BbcFuAW5BboFuwW8Bb0FvgW/BcAFwQXCBcMFxAXFBcYFxwXIBckFygXLBcwFzQXOBc8F0AXRBdIF0wXUBdUF1gXXBdgF2QXaBdsF3AXdBd4F3wXgBeEF4gXjBeQF5QXmBecF6AXpBeoF6wXsBe0F7gXvBfAF8QXyBfMF9AX1BfYF9wX4BfkF+gX7BfwF/QX+Bf8GAAYBBgIGAwYEBgUGBgYHBggGCQYKBgsGDAYNBg4GDwYQBhEGEgYTBhQGFQYWBhcGGAYZBhoGGwYcBh0GHgYfBiAGIQYiBiMGJAYlBiYGJwYoBikGKgYrBiwGLQYuBi8GMAYxBjIGMwY0BjUGNgY3BjgGOQY6BjsGPAY9Bj4GPwZABkEGQgZDBkQGRQZGBkcGSAZJBkoGSwZMBk0GTgZPBlAGUQZSBlMGVAZVBlYGVwZYBlkGWgZbBlwGXQZeBl8GYAZhBmIGYwZkBmUGZgZnBmgGaQZqBmsGbAZtBm4GbwZwBnEGcgZzBnQGdQZ2C2V4Y2xhbWF0aW9uB2hhc2h0YWcLZG9sbGFyLXNpZ24BMAExATIBMwE0ATUBNgE3ATgBOQlsZXNzLXRoYW4GZXF1YWxzDGdyZWF0ZXItdGhhbgFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoGZmF1Y2V0C2ZhdWNldC1kcmlwFGhvdXNlLWNoaW1uZXktd2luZG93DGhvdXNlLXNpZ25hbBZ0ZW1wZXJhdHVyZS1hcnJvdy1kb3duFHRlbXBlcmF0dXJlLWFycm93LXVwB3RyYWlsZXIIYmFjdGVyaWEJYmFjdGVyaXVtCmJveC10aXNzdWUUaGFuZC1ob2xkaW5nLW1lZGljYWwNaGFuZC1zcGFya2xlcw1oYW5kcy1idWJibGVzFmhhbmRzaGFrZS1zaW1wbGUtc2xhc2gPaGFuZHNoYWtlLXNsYXNoD2hlYWQtc2lkZS1jb3VnaBVoZWFkLXNpZGUtY291Z2gtc2xhc2gOaGVhZC1zaWRlLW1hc2sPaGVhZC1zaWRlLXZpcnVzEmhvdXNlLWNoaW1uZXktdXNlcgxob3VzZS1sYXB0b3ALbHVuZ3MtdmlydXMNcGVvcGxlLWFycm93cwtwbGFuZS1zbGFzaAxwdW1wLW1lZGljYWwJcHVtcC1zb2FwDHNoaWVsZC12aXJ1cwRzaW5rBHNvYXAMc3RvcHdhdGNoLTIwCnNob3Atc2xhc2gLc3RvcmUtc2xhc2gSdG9pbGV0LXBhcGVyLXNsYXNoC3VzZXJzLXNsYXNoBXZpcnVzC3ZpcnVzLXNsYXNoB3ZpcnVzZXMEdmVzdAx2ZXN0LXBhdGNoZXMQYXJyb3ctdHJlbmQtZG93bg5hcnJvdy10cmVuZC11cBVhcnJvdy11cC1mcm9tLWJyYWNrZXQMYXVzdHJhbC1zaWduCWJhaHQtc2lnbgxiaXRjb2luLXNpZ24OYm9sdC1saWdodG5pbmcNYm9vay1ib29rbWFyaw1jYW1lcmEtcm90YXRlCWNlZGktc2lnbgxjaGFydC1jb2x1bW4LY2hhcnQtZ2FudHQMY2xhcHBlcmJvYXJkBmNsb3Zlcgxjb2RlLWNvbXBhcmUJY29kZS1mb3JrEWNvZGUtcHVsbC1yZXF1ZXN0CmNvbG9uLXNpZ24NY3J1emVpcm8tc2lnbgdkaXNwbGF5CWRvbmctc2lnbghlbGV2YXRvchNmaWx0ZXItY2lyY2xlLXhtYXJrC2Zsb3Jpbi1zaWduDWZvbGRlci1jbG9zZWQKZnJhbmMtc2lnbgxndWFyYW5pLXNpZ24DZ3VuDmhhbmRzLWNsYXBwaW5nCmhvdXNlLXVzZXIRaW5kaWFuLXJ1cGVlLXNpZ24Ia2lwLXNpZ24JbGFyaS1zaWduDWxpdGVjb2luLXNpZ24KbWFuYXQtc2lnbgltYXNrLWZhY2UJbWlsbC1zaWduC21vbmV5LWJpbGxzCm5haXJhLXNpZ24Gbm90ZGVmCHBhbm9yYW1hC3Blc2V0YS1zaWduCXBlc28tc2lnbghwbGFuZS11cAtydXBpYWgtc2lnbgZzdGFpcnMIdGltZWxpbmULdHJ1Y2stZnJvbnQRdHVya2lzaC1saXJhLXNpZ24FdmF1bHQTd2FuZC1tYWdpYy1zcGFya2xlcwl3aGVhdC1hd24Pd2hlZWxjaGFpci1tb3ZlFWJhbmdsYWRlc2hpLXRha2Etc2lnbglib3dsLXJpY2UPcGVyc29uLXByZWduYW50DWhvdXNlLWNoaW1uZXkLaG91c2UtY3JhY2sNaG91c2UtbWVkaWNhbAljZW50LXNpZ24KcGx1cy1taW51cwhzYWlsYm9hdAdzZWN0aW9uBnNocmltcBNicmF6aWxpYW4tcmVhbC1zaWduDGNoYXJ0LXNpbXBsZQxkaWFncmFtLW5leHQTZGlhZ3JhbS1wcmVkZWNlc3NvchFkaWFncmFtLXN1Y2Nlc3Nvcg1lYXJ0aC1vY2VhbmlhCWJ1Zy1zbGFzaBBmaWxlLWNpcmNsZS1wbHVzCXNob3AtbG9jawt2aXJ1cy1jb3ZpZBF2aXJ1cy1jb3ZpZC1zbGFzaBNhbmNob3ItY2lyY2xlLWNoZWNrGWFuY2hvci1jaXJjbGUtZXhjbGFtYXRpb24TYW5jaG9yLWNpcmNsZS14bWFyawthbmNob3ItbG9jaxlhcnJvdy1kb3duLXVwLWFjcm9zcy1saW5lEmFycm93LWRvd24tdXAtbG9jaxNhcnJvdy1yaWdodC10by1jaXR5GmFycm93LXVwLWZyb20tZ3JvdW5kLXdhdGVyGGFycm93LXVwLWZyb20td2F0ZXItcHVtcBNhcnJvdy11cC1yaWdodC1kb3RzE2Fycm93cy1kb3duLXRvLWxpbmUVYXJyb3dzLWRvd24tdG8tcGVvcGxlGWFycm93cy1sZWZ0LXJpZ2h0LXRvLWxpbmULYXJyb3dzLXNwaW4YYXJyb3dzLXNwbGl0LXVwLWFuZC1sZWZ0EGFycm93cy10by1jaXJjbGUNYXJyb3dzLXRvLWRvdA1hcnJvd3MtdG8tZXllEWFycm93cy10dXJuLXJpZ2h0E2Fycm93cy10dXJuLXRvLWRvdHMRYXJyb3dzLXVwLXRvLWxpbmUJYm9yZS1ob2xlDmJvdHRsZS1kcm9wbGV0DGJvdHRsZS13YXRlcglib3dsLWZvb2QNYm94ZXMtcGFja2luZwZicmlkZ2UTYnJpZGdlLWNpcmNsZS1jaGVjaxlicmlkZ2UtY2lyY2xlLWV4Y2xhbWF0aW9uE2JyaWRnZS1jaXJjbGUteG1hcmsLYnJpZGdlLWxvY2sMYnJpZGdlLXdhdGVyBmJ1Y2tldARidWdzG2J1aWxkaW5nLWNpcmNsZS1hcnJvdy1yaWdodBVidWlsZGluZy1jaXJjbGUtY2hlY2sbYnVpbGRpbmctY2lyY2xlLWV4Y2xhbWF0aW9uFWJ1aWxkaW5nLWNpcmNsZS14bWFyaw1idWlsZGluZy1mbGFnDWJ1aWxkaW5nLWxvY2sMYnVpbGRpbmctbmdvD2J1aWxkaW5nLXNoaWVsZAtidWlsZGluZy11bg1idWlsZGluZy11c2VyDmJ1aWxkaW5nLXdoZWF0BWJ1cnN0BmNhci1vbgpjYXItdHVubmVsD2NoaWxkLWNvbWJhdGFudAhjaGlsZHJlbgxjaXJjbGUtbm9kZXMSY2xpcGJvYXJkLXF1ZXN0aW9uE2Nsb3VkLXNob3dlcnMtd2F0ZXIIY29tcHV0ZXINY3ViZXMtc3RhY2tlZBVlbnZlbG9wZS1jaXJjbGUtY2hlY2sJZXhwbG9zaW9uBWZlcnJ5F2ZpbGUtY2lyY2xlLWV4Y2xhbWF0aW9uEWZpbGUtY2lyY2xlLW1pbnVzFGZpbGUtY2lyY2xlLXF1ZXN0aW9uC2ZpbGUtc2hpZWxkC2ZpcmUtYnVybmVyCWZpc2gtZmlucwpmbGFzay12aWFsC2dsYXNzLXdhdGVyE2dsYXNzLXdhdGVyLWRyb3BsZXQTZ3JvdXAtYXJyb3dzLXJvdGF0ZRFoYW5kLWhvbGRpbmctaGFuZAloYW5kY3VmZnMLaGFuZHMtYm91bmQTaGFuZHMtaG9sZGluZy1jaGlsZBRoYW5kcy1ob2xkaW5nLWNpcmNsZRFoZWFydC1jaXJjbGUtYm9sdBJoZWFydC1jaXJjbGUtY2hlY2sYaGVhcnQtY2lyY2xlLWV4Y2xhbWF0aW9uEmhlYXJ0LWNpcmNsZS1taW51cxFoZWFydC1jaXJjbGUtcGx1cxJoZWFydC1jaXJjbGUteG1hcmsRaGVsaWNvcHRlci1zeW1ib2wJaGVsbWV0LXVuDmhpbGwtYXZhbGFuY2hlDmhpbGwtcm9ja3NsaWRlEmhvdXNlLWNpcmNsZS1jaGVjaxhob3VzZS1jaXJjbGUtZXhjbGFtYXRpb24SaG91c2UtY2lyY2xlLXhtYXJrCmhvdXNlLWZpcmUKaG91c2UtZmxhZxFob3VzZS1mbG9vZC13YXRlciRob3VzZS1mbG9vZC13YXRlci1jaXJjbGUtYXJyb3ctcmlnaHQKaG91c2UtbG9jaxpob3VzZS1tZWRpY2FsLWNpcmNsZS1jaGVjayBob3VzZS1tZWRpY2FsLWNpcmNsZS1leGNsYW1hdGlvbhpob3VzZS1tZWRpY2FsLWNpcmNsZS14bWFyaxJob3VzZS1tZWRpY2FsLWZsYWcNaG91c2UtdHN1bmFtaQNqYXIJamFyLXdoZWF0DmpldC1maWdodGVyLXVwDWp1Zy1kZXRlcmdlbnQLa2l0Y2hlbi1zZXQMbGFuZC1taW5lLW9uDWxhbmRtYXJrLWZsYWcLbGFwdG9wLWZpbGUNbGluZXMtbGVhbmluZxFsb2NhdGlvbi1waW4tbG9jawZsb2N1c3QcbWFnbmlmeWluZy1nbGFzcy1hcnJvdy1yaWdodBZtYWduaWZ5aW5nLWdsYXNzLWNoYXJ0FG1hcnMtYW5kLXZlbnVzLWJ1cnN0D21hc2stdmVudGlsYXRvcg9tYXR0cmVzcy1waWxsb3cMbW9iaWxlLXJldHJvE21vbmV5LWJpbGwtdHJhbnNmZXITbW9uZXktYmlsbC10cmVuZC11cBBtb25leS1iaWxsLXdoZWF0CG1vc3F1aXRvDG1vc3F1aXRvLW5ldAVtb3VuZA1tb3VudGFpbi1jaXR5DG1vdW50YWluLXN1bghvaWwtd2VsbAxwZW9wbGUtZ3JvdXALcGVvcGxlLWxpbmUOcGVvcGxlLXB1bGxpbmcOcGVvcGxlLXJvYmJlcnkLcGVvcGxlLXJvb2YZcGVyc29uLWFycm93LWRvd24tdG8tbGluZRlwZXJzb24tYXJyb3ctdXAtZnJvbS1saW5lFHBlcnNvbi1icmVhc3RmZWVkaW5nDHBlcnNvbi1idXJzdAtwZXJzb24tY2FuZRFwZXJzb24tY2hhbGtib2FyZBNwZXJzb24tY2lyY2xlLWNoZWNrGXBlcnNvbi1jaXJjbGUtZXhjbGFtYXRpb24TcGVyc29uLWNpcmNsZS1taW51cxJwZXJzb24tY2lyY2xlLXBsdXMWcGVyc29uLWNpcmNsZS1xdWVzdGlvbhNwZXJzb24tY2lyY2xlLXhtYXJrEnBlcnNvbi1kcmVzcy1idXJzdA9wZXJzb24tZHJvd25pbmcOcGVyc29uLWZhbGxpbmcUcGVyc29uLWZhbGxpbmctYnVyc3QRcGVyc29uLWhhbGYtZHJlc3MQcGVyc29uLWhhcmFzc2luZxhwZXJzb24tbWlsaXRhcnktcG9pbnRpbmcVcGVyc29uLW1pbGl0YXJ5LXJpZmxlGXBlcnNvbi1taWxpdGFyeS10by1wZXJzb24LcGVyc29uLXJheXMMcGVyc29uLXJpZmxlDnBlcnNvbi1zaGVsdGVyHnBlcnNvbi13YWxraW5nLWFycm93LWxvb3AtbGVmdBpwZXJzb24td2Fsa2luZy1hcnJvdy1yaWdodCZwZXJzb24td2Fsa2luZy1kYXNoZWQtbGluZS1hcnJvdy1yaWdodBZwZXJzb24td2Fsa2luZy1sdWdnYWdlEnBsYW5lLWNpcmNsZS1jaGVjaxhwbGFuZS1jaXJjbGUtZXhjbGFtYXRpb24ScGxhbmUtY2lyY2xlLXhtYXJrCnBsYW5lLWxvY2sLcGxhdGUtd2hlYXQQcGx1Zy1jaXJjbGUtYm9sdBFwbHVnLWNpcmNsZS1jaGVjaxdwbHVnLWNpcmNsZS1leGNsYW1hdGlvbhFwbHVnLWNpcmNsZS1taW51cxBwbHVnLWNpcmNsZS1wbHVzEXBsdWctY2lyY2xlLXhtYXJrDHJhbmtpbmctc3Rhcgxyb2FkLWJhcnJpZXILcm9hZC1icmlkZ2URcm9hZC1jaXJjbGUtY2hlY2sXcm9hZC1jaXJjbGUtZXhjbGFtYXRpb24Rcm9hZC1jaXJjbGUteG1hcmsJcm9hZC1sb2NrC3JvYWQtc3Bpa2VzA3J1ZwpzYWNrLXhtYXJrE3NjaG9vbC1jaXJjbGUtY2hlY2sZc2Nob29sLWNpcmNsZS1leGNsYW1hdGlvbhNzY2hvb2wtY2lyY2xlLXhtYXJrC3NjaG9vbC1mbGFnC3NjaG9vbC1sb2NrDXNoZWV0LXBsYXN0aWMKc2hpZWxkLWNhdApzaGllbGQtZG9nDHNoaWVsZC1oZWFydApzcXVhcmUtbmZpFnNxdWFyZS1wZXJzb24tY29uZmluZWQMc3F1YXJlLXZpcnVzC3N0YWZmLXNuYWtlDnN1bi1wbGFudC13aWx0BHRhcnAMdGFycC1kcm9wbGV0BHRlbnQXdGVudC1hcnJvdy1kb3duLXRvLWxpbmUVdGVudC1hcnJvdy1sZWZ0LXJpZ2h0FHRlbnQtYXJyb3ctdHVybi1sZWZ0EHRlbnQtYXJyb3dzLWRvd24FdGVudHMPdG9pbGV0LXBvcnRhYmxlEHRvaWxldHMtcG9ydGFibGUKdG93ZXItY2VsbBF0b3dlci1vYnNlcnZhdGlvbgl0cmVlLWNpdHkGdHJvd2VsDXRyb3dlbC1icmlja3MRdHJ1Y2stYXJyb3ctcmlnaHQNdHJ1Y2stZHJvcGxldAt0cnVjay1maWVsZA50cnVjay1maWVsZC11bgt0cnVjay1wbGFuZRN1c2Vycy1iZXR3ZWVuLWxpbmVzCnVzZXJzLWxpbmUKdXNlcnMtcmF5cw91c2Vycy1yZWN0YW5nbGUQdXNlcnMtdmlld2ZpbmRlchF2aWFsLWNpcmNsZS1jaGVjawp2aWFsLXZpcnVzHHdoZWF0LWF3bi1jaXJjbGUtZXhjbGFtYXRpb24Ed29ybQx4bWFya3MtbGluZXMLY2hpbGQtZHJlc3MOY2hpbGQtcmVhY2hpbmcRZmlsZS1jaXJjbGUtY2hlY2sRZmlsZS1jaXJjbGUteG1hcmsVcGVyc29uLXRocm91Z2gtd2luZG93CnBsYW50LXdpbHQHc3RhcGxlcgp0cmFpbi10cmFtF3RhYmxlLWNlbGxzLWNvbHVtbi1sb2NrFHRhYmxlLWNlbGxzLXJvdy1sb2NrC3dlYi1hd2Vzb21lD3RodW1idGFjay1zbGFzaBZ0YWJsZS1jZWxscy1yb3ctdW5sb2NrDWNoYXJ0LWRpYWdyYW0NY29tbWVudC1ub2Rlcw1maWxlLWZyYWdtZW50EGZpbGUtaGFsZi1kYXNoZWQNaGV4YWdvbi1ub2RlcxJoZXhhZ29uLW5vZGVzLWJvbHQNc3F1YXJlLWJpbmFyeRNtYXJ0aW5pLWdsYXNzLWVtcHR5BW11c2ljEG1hZ25pZnlpbmctZ2xhc3MFaGVhcnQEc3RhcgR1c2VyBGZpbG0RdGFibGUtY2VsbHMtbGFyZ2ULdGFibGUtY2VsbHMKdGFibGUtbGlzdAVjaGVjawV4bWFyaxVtYWduaWZ5aW5nLWdsYXNzLXBsdXMWbWFnbmlmeWluZy1nbGFzcy1taW51cwlwb3dlci1vZmYGc2lnbmFsBGdlYXIFaG91c2UFY2xvY2sEcm9hZAhkb3dubG9hZAVpbmJveBJhcnJvdy1yb3RhdGUtcmlnaHQNYXJyb3dzLXJvdGF0ZQ5yZWN0YW5nbGUtbGlzdARsb2NrBGZsYWcKaGVhZHBob25lcwp2b2x1bWUtb2ZmCnZvbHVtZS1sb3cLdm9sdW1lLWhpZ2gGcXJjb2RlB2JhcmNvZGUDdGFnBHRhZ3MEYm9vawhib29rbWFyawVwcmludAZjYW1lcmEEZm9udARib2xkBml0YWxpYwt0ZXh0LWhlaWdodAp0ZXh0LXdpZHRoCmFsaWduLWxlZnQMYWxpZ24tY2VudGVyC2FsaWduLXJpZ2h0DWFsaWduLWp1c3RpZnkEbGlzdAdvdXRkZW50BmluZGVudAV2aWRlbwVpbWFnZQxsb2NhdGlvbi1waW4SY2lyY2xlLWhhbGYtc3Ryb2tlB2Ryb3BsZXQNcGVuLXRvLXNxdWFyZRlhcnJvd3MtdXAtZG93bi1sZWZ0LXJpZ2h0DWJhY2t3YXJkLXN0ZXANYmFja3dhcmQtZmFzdAhiYWNrd2FyZARwbGF5BXBhdXNlBHN0b3AHZm9yd2FyZAxmb3J3YXJkLWZhc3QMZm9yd2FyZC1zdGVwBWVqZWN0DGNoZXZyb24tbGVmdA1jaGV2cm9uLXJpZ2h0C2NpcmNsZS1wbHVzDGNpcmNsZS1taW51cwxjaXJjbGUteG1hcmsMY2lyY2xlLWNoZWNrD2NpcmNsZS1xdWVzdGlvbgtjaXJjbGUtaW5mbwpjcm9zc2hhaXJzA2JhbgphcnJvdy1sZWZ0C2Fycm93LXJpZ2h0CGFycm93LXVwCmFycm93LWRvd24Fc2hhcmUGZXhwYW5kCGNvbXByZXNzBW1pbnVzEmNpcmNsZS1leGNsYW1hdGlvbgRnaWZ0BGxlYWYEZmlyZQNleWUJZXllLXNsYXNoFHRyaWFuZ2xlLWV4Y2xhbWF0aW9uBXBsYW5lDWNhbGVuZGFyLWRheXMHc2h1ZmZsZQdjb21tZW50Bm1hZ25ldApjaGV2cm9uLXVwDGNoZXZyb24tZG93bgdyZXR3ZWV0DWNhcnQtc2hvcHBpbmcGZm9sZGVyC2ZvbGRlci1vcGVuDmFycm93cy11cC1kb3duEWFycm93cy1sZWZ0LXJpZ2h0CWNoYXJ0LWJhcgxjYW1lcmEtcmV0cm8Da2V5BWdlYXJzCGNvbW1lbnRzCXN0YXItaGFsZhhhcnJvdy1yaWdodC1mcm9tLWJyYWNrZXQJdGh1bWJ0YWNrGmFycm93LXVwLXJpZ2h0LWZyb20tc3F1YXJlFmFycm93LXJpZ2h0LXRvLWJyYWNrZXQGdHJvcGh5BnVwbG9hZAVsZW1vbgVwaG9uZQxzcXVhcmUtcGhvbmUGdW5sb2NrC2NyZWRpdC1jYXJkA3JzcwpoYXJkLWRyaXZlCGJ1bGxob3JuC2NlcnRpZmljYXRlEGhhbmQtcG9pbnQtcmlnaHQPaGFuZC1wb2ludC1sZWZ0DWhhbmQtcG9pbnQtdXAPaGFuZC1wb2ludC1kb3duEWNpcmNsZS1hcnJvdy1sZWZ0EmNpcmNsZS1hcnJvdy1yaWdodA9jaXJjbGUtYXJyb3ctdXARY2lyY2xlLWFycm93LWRvd24FZ2xvYmUGd3JlbmNoCmxpc3QtY2hlY2sGZmlsdGVyCWJyaWVmY2FzZRJ1cC1kb3duLWxlZnQtcmlnaHQFdXNlcnMEbGluawVjbG91ZAVmbGFzawhzY2lzc29ycwRjb3B5CXBhcGVyY2xpcAtmbG9wcHktZGlzawZzcXVhcmUEYmFycwdsaXN0LXVsB2xpc3Qtb2wNc3RyaWtldGhyb3VnaAl1bmRlcmxpbmUFdGFibGUKd2FuZC1tYWdpYwV0cnVjawptb25leS1iaWxsCmNhcmV0LWRvd24IY2FyZXQtdXAKY2FyZXQtbGVmdAtjYXJldC1yaWdodA10YWJsZS1jb2x1bW5zBHNvcnQJc29ydC1kb3duB3NvcnQtdXAIZW52ZWxvcGURYXJyb3ctcm90YXRlLWxlZnQFZ2F2ZWwEYm9sdAdzaXRlbWFwCHVtYnJlbGxhBXBhc3RlCWxpZ2h0YnVsYhZhcnJvdy1yaWdodC1hcnJvdy1sZWZ0EGNsb3VkLWFycm93LWRvd24OY2xvdWQtYXJyb3ctdXALdXNlci1kb2N0b3ILc3RldGhvc2NvcGUIc3VpdGNhc2UEYmVsbAptdWctc2F1Y2VyCGhvc3BpdGFsDXRydWNrLW1lZGljYWwQc3VpdGNhc2UtbWVkaWNhbAtqZXQtZmlnaHRlcg5iZWVyLW11Zy1lbXB0eQhzcXVhcmUtaAtzcXVhcmUtcGx1cwthbmdsZXMtbGVmdAxhbmdsZXMtcmlnaHQJYW5nbGVzLXVwC2FuZ2xlcy1kb3duCmFuZ2xlLWxlZnQLYW5nbGUtcmlnaHQIYW5nbGUtdXAKYW5nbGUtZG93bgZsYXB0b3ANdGFibGV0LWJ1dHRvbg1tb2JpbGUtYnV0dG9uCnF1b3RlLWxlZnQLcXVvdGUtcmlnaHQHc3Bpbm5lcgZjaXJjbGUKZmFjZS1zbWlsZQpmYWNlLWZyb3duCGZhY2UtbWVoB2dhbWVwYWQIa2V5Ym9hcmQOZmxhZy1jaGVja2VyZWQIdGVybWluYWwEY29kZQlyZXBseS1hbGwObG9jYXRpb24tYXJyb3cEY3JvcAtjb2RlLWJyYW5jaApsaW5rLXNsYXNoBGluZm8Lc3VwZXJzY3JpcHQJc3Vic2NyaXB0BmVyYXNlcgxwdXp6bGUtcGllY2UKbWljcm9waG9uZRBtaWNyb3Bob25lLXNsYXNoBnNoaWVsZAhjYWxlbmRhchFmaXJlLWV4dGluZ3Vpc2hlcgZyb2NrZXQTY2lyY2xlLWNoZXZyb24tbGVmdBRjaXJjbGUtY2hldnJvbi1yaWdodBFjaXJjbGUtY2hldnJvbi11cBNjaXJjbGUtY2hldnJvbi1kb3duBmFuY2hvcg51bmxvY2sta2V5aG9sZQhidWxsc2V5ZQhlbGxpcHNpcxFlbGxpcHNpcy12ZXJ0aWNhbApzcXVhcmUtcnNzC2NpcmNsZS1wbGF5BnRpY2tldAxzcXVhcmUtbWludXMNYXJyb3ctdHVybi11cA9hcnJvdy10dXJuLWRvd24Mc3F1YXJlLWNoZWNrCnNxdWFyZS1wZW4Vc3F1YXJlLWFycm93LXVwLXJpZ2h0EXNoYXJlLWZyb20tc3F1YXJlB2NvbXBhc3MRc3F1YXJlLWNhcmV0LWRvd24Pc3F1YXJlLWNhcmV0LXVwEnNxdWFyZS1jYXJldC1yaWdodAlldXJvLXNpZ24Nc3Rlcmxpbmctc2lnbgpydXBlZS1zaWduCHllbi1zaWduCnJ1YmxlLXNpZ24Id29uLXNpZ24EZmlsZQpmaWxlLWxpbmVzDmFycm93LWRvd24tYS16DGFycm93LXVwLWEtehVhcnJvdy1kb3duLXdpZGUtc2hvcnQTYXJyb3ctdXAtd2lkZS1zaG9ydA5hcnJvdy1kb3duLTEtOQxhcnJvdy11cC0xLTkJdGh1bWJzLXVwC3RodW1icy1kb3duD2Fycm93LWRvd24tbG9uZw1hcnJvdy11cC1sb25nD2Fycm93LWxlZnQtbG9uZxBhcnJvdy1yaWdodC1sb25nDHBlcnNvbi1kcmVzcwZwZXJzb24Dc3VuBG1vb24LYm94LWFyY2hpdmUDYnVnEXNxdWFyZS1jYXJldC1sZWZ0CmNpcmNsZS1kb3QKd2hlZWxjaGFpcglsaXJhLXNpZ24Nc2h1dHRsZS1zcGFjZQ9zcXVhcmUtZW52ZWxvcGUQYnVpbGRpbmctY29sdW1ucw5ncmFkdWF0aW9uLWNhcAhsYW5ndWFnZQNmYXgIYnVpbGRpbmcFY2hpbGQDcGF3BGN1YmUFY3ViZXMHcmVjeWNsZQNjYXIEdGF4aQR0cmVlCGRhdGFiYXNlCGZpbGUtcGRmCWZpbGUtd29yZApmaWxlLWV4Y2VsD2ZpbGUtcG93ZXJwb2ludApmaWxlLWltYWdlC2ZpbGUtemlwcGVyCmZpbGUtYXVkaW8KZmlsZS12aWRlbwlmaWxlLWNvZGUJbGlmZS1yaW5nDGNpcmNsZS1ub3RjaAtwYXBlci1wbGFuZRFjbG9jay1yb3RhdGUtbGVmdAdoZWFkaW5nCXBhcmFncmFwaAdzbGlkZXJzC3NoYXJlLW5vZGVzEnNxdWFyZS1zaGFyZS1ub2RlcwRib21iBmZ1dGJvbAN0dHkKYmlub2N1bGFycwRwbHVnCW5ld3NwYXBlcgR3aWZpCmNhbGN1bGF0b3IKYmVsbC1zbGFzaAV0cmFzaAljb3B5cmlnaHQLZXllLWRyb3BwZXIKcGFpbnRicnVzaAxjYWtlLWNhbmRsZXMKY2hhcnQtYXJlYQljaGFydC1waWUKY2hhcnQtbGluZQp0b2dnbGUtb2ZmCXRvZ2dsZS1vbgdiaWN5Y2xlA2J1cxFjbG9zZWQtY2FwdGlvbmluZwtzaGVrZWwtc2lnbgljYXJ0LXBsdXMPY2FydC1hcnJvdy1kb3duB2RpYW1vbmQEc2hpcAt1c2VyLXNlY3JldAptb3RvcmN5Y2xlC3N0cmVldC12aWV3C2hlYXJ0LXB1bHNlBXZlbnVzBG1hcnMHbWVyY3VyeQ5tYXJzLWFuZC12ZW51cwt0cmFuc2dlbmRlcgx2ZW51cy1kb3VibGULbWFycy1kb3VibGUKdmVudXMtbWFycwttYXJzLXN0cm9rZQ5tYXJzLXN0cm9rZS11cBFtYXJzLXN0cm9rZS1yaWdodAZuZXV0ZXIKZ2VuZGVybGVzcwZzZXJ2ZXIJdXNlci1wbHVzCnVzZXIteG1hcmsDYmVkBXRyYWluDHRyYWluLXN1YndheQxiYXR0ZXJ5LWZ1bGwWYmF0dGVyeS10aHJlZS1xdWFydGVycwxiYXR0ZXJ5LWhhbGYPYmF0dGVyeS1xdWFydGVyDWJhdHRlcnktZW1wdHkNYXJyb3ctcG9pbnRlcghpLWN1cnNvcgxvYmplY3QtZ3JvdXAOb2JqZWN0LXVuZ3JvdXALbm90ZS1zdGlja3kFY2xvbmUOc2NhbGUtYmFsYW5jZWQPaG91cmdsYXNzLXN0YXJ0DmhvdXJnbGFzcy1oYWxmDWhvdXJnbGFzcy1lbmQJaG91cmdsYXNzDmhhbmQtYmFjay1maXN0BGhhbmQNaGFuZC1zY2lzc29ycwtoYW5kLWxpemFyZApoYW5kLXNwb2NrDGhhbmQtcG9pbnRlcgpoYW5kLXBlYWNlCXRyYWRlbWFyawpyZWdpc3RlcmVkAnR2DWNhbGVuZGFyLXBsdXMOY2FsZW5kYXItbWludXMOY2FsZW5kYXIteG1hcmsOY2FsZW5kYXItY2hlY2sIaW5kdXN0cnkHbWFwLXBpbgpzaWducy1wb3N0A21hcAdtZXNzYWdlDGNpcmNsZS1wYXVzZQtjaXJjbGUtc3RvcAxiYWctc2hvcHBpbmcPYmFza2V0LXNob3BwaW5nEHVuaXZlcnNhbC1hY2Nlc3MYcGVyc29uLXdhbGtpbmctd2l0aC1jYW5lEWF1ZGlvLWRlc2NyaXB0aW9uDHBob25lLXZvbHVtZQdicmFpbGxlCmVhci1saXN0ZW4WaGFuZHMtYXNsLWludGVycHJldGluZwhlYXItZGVhZgVoYW5kcw5leWUtbG93LXZpc2lvbgxmb250LWF3ZXNvbWUJaGFuZHNoYWtlDWVudmVsb3BlLW9wZW4MYWRkcmVzcy1ib29rDGFkZHJlc3MtY2FyZAtjaXJjbGUtdXNlcghpZC1iYWRnZQdpZC1jYXJkEHRlbXBlcmF0dXJlLWZ1bGwadGVtcGVyYXR1cmUtdGhyZWUtcXVhcnRlcnMQdGVtcGVyYXR1cmUtaGFsZhN0ZW1wZXJhdHVyZS1xdWFydGVyEXRlbXBlcmF0dXJlLWVtcHR5BnNob3dlcgRiYXRoB3BvZGNhc3QPd2luZG93LW1heGltaXplD3dpbmRvdy1taW5pbWl6ZQ53aW5kb3ctcmVzdG9yZQxzcXVhcmUteG1hcmsJbWljcm9jaGlwCXNub3dmbGFrZQVzcG9vbgh1dGVuc2lscwtyb3RhdGUtbGVmdAl0cmFzaC1jYW4Gcm90YXRlCXN0b3B3YXRjaBJyaWdodC1mcm9tLWJyYWNrZXQQcmlnaHQtdG8tYnJhY2tldAxyb3RhdGUtcmlnaHQDcG9vBmltYWdlcwZwZW5jaWwDcGVuCHBlbi1jbGlwCWRvd24tbG9uZwlsZWZ0LWxvbmcKcmlnaHQtbG9uZwd1cC1sb25nCGZpbGUtcGVuCG1heGltaXplCWNsaXBib2FyZApsZWZ0LXJpZ2h0B3VwLWRvd24LY2lyY2xlLWRvd24LY2lyY2xlLWxlZnQMY2lyY2xlLXJpZ2h0CWNpcmNsZS11cBR1cC1yaWdodC1mcm9tLXNxdWFyZQ9zcXVhcmUtdXAtcmlnaHQKcmlnaHQtbGVmdAZyZXBlYXQLY29kZS1jb21taXQKY29kZS1tZXJnZQdkZXNrdG9wA2dlbQl0dXJuLWRvd24HdHVybi11cAlsb2NrLW9wZW4MbG9jYXRpb24tZG90EG1pY3JvcGhvbmUtbGluZXMUbW9iaWxlLXNjcmVlbi1idXR0b24GbW9iaWxlDW1vYmlsZS1zY3JlZW4MbW9uZXktYmlsbC0xC3Bob25lLXNsYXNoDmltYWdlLXBvcnRyYWl0BXJlcGx5DXNoaWVsZC1oYWx2ZWQUdGFibGV0LXNjcmVlbi1idXR0b24GdGFibGV0DXRpY2tldC1zaW1wbGUKdXNlci1sYXJnZQ9yZWN0YW5nbGUteG1hcmsgZG93bi1sZWZ0LWFuZC11cC1yaWdodC10by1jZW50ZXIidXAtcmlnaHQtYW5kLWRvd24tbGVmdC1mcm9tLWNlbnRlchFiYXNlYmFsbC1iYXQtYmFsbAhiYXNlYmFsbApiYXNrZXRiYWxsDGJvd2xpbmctYmFsbAVjaGVzcwxjaGVzcy1iaXNob3ALY2hlc3MtYm9hcmQKY2hlc3Mta2luZwxjaGVzcy1rbmlnaHQKY2hlc3MtcGF3bgtjaGVzcy1xdWVlbgpjaGVzcy1yb29rCGR1bWJiZWxsCGZvb3RiYWxsDWdvbGYtYmFsbC10ZWULaG9ja2V5LXB1Y2sKYnJvb20tYmFsbAtzcXVhcmUtZnVsbBh0YWJsZS10ZW5uaXMtcGFkZGxlLWJhbGwKdm9sbGV5YmFsbAloYW5kLWRvdHMHYmFuZGFnZQNib3gNYm94ZXMtc3RhY2tlZBFicmllZmNhc2UtbWVkaWNhbBFmaXJlLWZsYW1lLXNpbXBsZQhjYXBzdWxlcw9jbGlwYm9hcmQtY2hlY2sOY2xpcGJvYXJkLWxpc3QVcGVyc29uLWRvdHMtZnJvbS1saW5lA2RuYQVkb2xseQxjYXJ0LWZsYXRiZWQMZmlsZS1tZWRpY2FsDWZpbGUtd2F2ZWZvcm0La2l0LW1lZGljYWwIY2lyY2xlLWgMaWQtY2FyZC1jbGlwDW5vdGVzLW1lZGljYWwGcGFsbGV0BXBpbGxzE3ByZXNjcmlwdGlvbi1ib3R0bGUbcHJlc2NyaXB0aW9uLWJvdHRsZS1tZWRpY2FsCWJlZC1wdWxzZQp0cnVjay1mYXN0B3Ntb2tpbmcHc3lyaW5nZQd0YWJsZXRzC3RoZXJtb21ldGVyBHZpYWwFdmlhbHMJd2FyZWhvdXNlDHdlaWdodC1zY2FsZQV4LXJheQhib3gtb3Blbgxjb21tZW50LWRvdHMNY29tbWVudC1zbGFzaAVjb3VjaBVjaXJjbGUtZG9sbGFyLXRvLXNsb3QEZG92ZQxoYW5kLWhvbGRpbmcSaGFuZC1ob2xkaW5nLWhlYXJ0E2hhbmQtaG9sZGluZy1kb2xsYXIUaGFuZC1ob2xkaW5nLWRyb3BsZXQNaGFuZHMtaG9sZGluZw9oYW5kc2hha2UtYW5nbGUQaGFuZHNoYWtlLXNpbXBsZQ1wYXJhY2h1dGUtYm94EHBlb3BsZS1jYXJyeS1ib3gKcGlnZ3ktYmFuawZyaWJib24Fcm91dGUIc2VlZGxpbmcMc2lnbi1oYW5naW5nD2ZhY2Utc21pbGUtd2luawR0YXBlDnRydWNrLXJhbXAtYm94DHRydWNrLW1vdmluZwt2aWRlby1zbGFzaAp3aW5lLWdsYXNzEHVzZXItbGFyZ2Utc2xhc2gOdXNlci1hc3Ryb25hdXQKdXNlci1jaGVjawp1c2VyLWNsb2NrCXVzZXItZ2Vhcgh1c2VyLXBlbgp1c2VyLWdyb3VwDXVzZXItZ3JhZHVhdGUJdXNlci1sb2NrCnVzZXItbWludXMKdXNlci1uaW5qYQt1c2VyLXNoaWVsZAp1c2VyLXNsYXNoCHVzZXItdGFnCHVzZXItdGllCnVzZXJzLWdlYXIQc2NhbGUtdW5iYWxhbmNlZBVzY2FsZS11bmJhbGFuY2VkLWZsaXAHYmxlbmRlcglib29rLW9wZW4PdG93ZXItYnJvYWRjYXN0BWJyb29tCmNoYWxrYm9hcmQPY2hhbGtib2FyZC11c2VyBmNodXJjaAVjb2lucwxjb21wYWN0LWRpc2MEY3JvdwVjcm93bgRkaWNlCWRpY2UtZml2ZQlkaWNlLWZvdXIIZGljZS1vbmUIZGljZS1zaXgKZGljZS10aHJlZQhkaWNlLXR3bwZkaXZpZGULZG9vci1jbG9zZWQJZG9vci1vcGVuB2ZlYXRoZXIEZnJvZwhnYXMtcHVtcAdnbGFzc2VzEmdyZWF0ZXItdGhhbi1lcXVhbApoZWxpY29wdGVyCGluZmluaXR5CWtpd2ktYmlyZA9sZXNzLXRoYW4tZXF1YWwGbWVtb3J5Fm1pY3JvcGhvbmUtbGluZXMtc2xhc2gPbW9uZXktYmlsbC13YXZlEW1vbmV5LWJpbGwtMS13YXZlC21vbmV5LWNoZWNrEm1vbmV5LWNoZWNrLWRvbGxhcglub3QtZXF1YWwHcGFsZXR0ZQ5zcXVhcmUtcGFya2luZw9kaWFncmFtLXByb2plY3QHcmVjZWlwdAVyb2JvdAVydWxlcg5ydWxlci1jb21iaW5lZBBydWxlci1ob3Jpem9udGFsDnJ1bGVyLXZlcnRpY2FsBnNjaG9vbAtzY3Jld2RyaXZlcgtzaG9lLXByaW50cwVza3VsbAtiYW4tc21va2luZwVzdG9yZQRzaG9wDmJhcnMtc3RhZ2dlcmVkC3N0cm9vcHdhZmVsB3Rvb2xib3gFc2hpcnQOcGVyc29uLXdhbGtpbmcGd2FsbGV0CmZhY2UtYW5ncnkHYXJjaHdheQpib29rLWF0bGFzBWF3YXJkC2RlbGV0ZS1sZWZ0DGJlemllci1jdXJ2ZQRib25nBWJydXNoCmJ1cy1zaW1wbGUIY2FubmFiaXMMY2hlY2stZG91YmxlFG1hcnRpbmktZ2xhc3MtY2l0cnVzDmJlbGwtY29uY2llcmdlBmNvb2tpZQtjb29raWUtYml0ZQtjcm9wLXNpbXBsZRJ0YWNob2dyYXBoLWRpZ2l0YWwKZmFjZS1kaXp6eRBjb21wYXNzLWRyYWZ0aW5nBGRydW0NZHJ1bS1zdGVlbHBhbg9mZWF0aGVyLXBvaW50ZWQNZmlsZS1jb250cmFjdA9maWxlLWFycm93LWRvd24LZmlsZS1leHBvcnQLZmlsZS1pbXBvcnQMZmlsZS1pbnZvaWNlE2ZpbGUtaW52b2ljZS1kb2xsYXIRZmlsZS1wcmVzY3JpcHRpb24OZmlsZS1zaWduYXR1cmUNZmlsZS1hcnJvdy11cARmaWxsCWZpbGwtZHJpcAtmaW5nZXJwcmludARmaXNoDGZhY2UtZmx1c2hlZA9mYWNlLWZyb3duLW9wZW4NbWFydGluaS1nbGFzcwxlYXJ0aC1hZnJpY2EOZWFydGgtYW1lcmljYXMKZWFydGgtYXNpYQxmYWNlLWdyaW1hY2UJZmFjZS1ncmluDmZhY2UtZ3Jpbi13aWRlDmZhY2UtZ3Jpbi1iZWFtFGZhY2UtZ3Jpbi1iZWFtLXN3ZWF0EGZhY2UtZ3Jpbi1oZWFydHMQZmFjZS1ncmluLXNxdWludBZmYWNlLWdyaW4tc3F1aW50LXRlYXJzD2ZhY2UtZ3Jpbi1zdGFycw9mYWNlLWdyaW4tdGVhcnMQZmFjZS1ncmluLXRvbmd1ZRdmYWNlLWdyaW4tdG9uZ3VlLXNxdWludBVmYWNlLWdyaW4tdG9uZ3VlLXdpbmsOZmFjZS1ncmluLXdpbmsEZ3JpcA1ncmlwLXZlcnRpY2FsEWhlYWRwaG9uZXMtc2ltcGxlB2hlYWRzZXQLaGlnaGxpZ2h0ZXIOaG90LXR1Yi1wZXJzb24FaG90ZWwFam9pbnQJZmFjZS1raXNzDmZhY2Uta2lzcy1iZWFtFGZhY2Uta2lzcy13aW5rLWhlYXJ0CmZhY2UtbGF1Z2gPZmFjZS1sYXVnaC1iZWFtEWZhY2UtbGF1Z2gtc3F1aW50D2ZhY2UtbGF1Z2gtd2luaxVjYXJ0LWZsYXRiZWQtc3VpdGNhc2UMbWFwLWxvY2F0aW9uEG1hcC1sb2NhdGlvbi1kb3QGbWFya2VyBW1lZGFsDmZhY2UtbWVoLWJsYW5rEWZhY2Utcm9sbGluZy1leWVzCG1vbnVtZW50DW1vcnRhci1wZXN0bGUMcGFpbnQtcm9sbGVyCHBhc3Nwb3J0CXBlbi1mYW5jeQdwZW4tbmliCXBlbi1ydWxlcg1wbGFuZS1hcnJpdmFsD3BsYW5lLWRlcGFydHVyZQxwcmVzY3JpcHRpb24MZmFjZS1zYWQtY3J5DWZhY2Utc2FkLXRlYXILdmFuLXNodXR0bGUJc2lnbmF0dXJlD2ZhY2Utc21pbGUtYmVhbQtzb2xhci1wYW5lbANzcGEHc3Bsb3RjaAlzcHJheS1jYW4Fc3RhbXAQc3Rhci1oYWxmLXN0cm9rZRBzdWl0Y2FzZS1yb2xsaW5nDWZhY2Utc3VycHJpc2UKc3dhdGNoYm9vaw9wZXJzb24tc3dpbW1pbmcMd2F0ZXItbGFkZGVyDWRyb3BsZXQtc2xhc2gKZmFjZS10aXJlZAV0b290aA51bWJyZWxsYS1iZWFjaA12ZWN0b3Itc3F1YXJlDndlaWdodC1oYW5naW5nEHdpbmUtZ2xhc3MtZW1wdHkSc3ByYXktY2FuLXNwYXJrbGVzC2FwcGxlLXdob2xlBGF0b20EYm9uZRBib29rLW9wZW4tcmVhZGVyBWJyYWluCGNhci1yZWFyC2Nhci1iYXR0ZXJ5CWNhci1idXJzdAhjYXItc2lkZRBjaGFyZ2luZy1zdGF0aW9uEmRpYW1vbmQtdHVybi1yaWdodAxkcmF3LXBvbHlnb24LbGFwdG9wLWNvZGULbGF5ZXItZ3JvdXATbG9jYXRpb24tY3Jvc3NoYWlycwVsdW5ncwptaWNyb3Njb3BlB29pbC1jYW4EcG9vcAZzaGFwZXMMc3Rhci1vZi1saWZlBWdhdWdlCmdhdWdlLWhpZ2gMZ2F1Z2Utc2ltcGxlEWdhdWdlLXNpbXBsZS1oaWdoBXRlZXRoCnRlZXRoLW9wZW4NbWFza3MtdGhlYXRlcg10cmFmZmljLWxpZ2h0DXRydWNrLW1vbnN0ZXIMdHJ1Y2stcGlja3VwDHJlY3RhbmdsZS1hZARhbmtoCmJvb2stYmlibGUNYnVzaW5lc3MtdGltZQRjaXR5DmNvbW1lbnQtZG9sbGFyD2NvbW1lbnRzLWRvbGxhcgVjcm9zcwxkaGFybWFjaGFrcmESZW52ZWxvcGUtb3Blbi10ZXh0DGZvbGRlci1taW51cwtmb2xkZXItcGx1cxRmaWx0ZXItY2lyY2xlLWRvbGxhcgdnb3B1cmFtBWhhbXNhBWJhaGFpBGplZGkTYm9vay1qb3VybmFsLXdoaWxscwVrYWFiYQZraGFuZGEIbGFuZG1hcmsOZW52ZWxvcGVzLWJ1bGsHbWVub3JhaAZtb3NxdWUCb20Yc3BhZ2hldHRpLW1vbnN0ZXItZmx5aW5nBXBlYWNlEHBsYWNlLW9mLXdvcnNoaXAUc3F1YXJlLXBvbGwtdmVydGljYWwWc3F1YXJlLXBvbGwtaG9yaXpvbnRhbA5wZXJzb24tcHJheWluZw1oYW5kcy1wcmF5aW5nCmJvb2stcXVyYW4XbWFnbmlmeWluZy1nbGFzcy1kb2xsYXIZbWFnbmlmeWluZy1nbGFzcy1sb2NhdGlvbgVzb2NrcxRzcXVhcmUtcm9vdC12YXJpYWJsZRFzdGFyLWFuZC1jcmVzY2VudA1zdGFyLW9mLWRhdmlkCXN5bmFnb2d1ZQxzY3JvbGwtdG9yYWgKdG9yaWktZ2F0ZQZ2aWhhcmEMdm9sdW1lLXhtYXJrCHlpbi15YW5nDWJsZW5kZXItcGhvbmUKYm9vay1za3VsbApjYW1wZ3JvdW5kA2NhdAVjaGFpcgpjbG91ZC1tb29uCWNsb3VkLXN1bgNjb3cIZGljZS1kMjAHZGljZS1kNgNkb2cGZHJhZ29uDmRydW1zdGljay1iaXRlB2R1bmdlb24IZmlsZS1jc3YJaGFuZC1maXN0BWdob3N0BmhhbW1lcghoYW51a2lhaApoYXQtd2l6YXJkDXBlcnNvbi1oaWtpbmcFaGlwcG8FaG9yc2UTaG91c2UtY2hpbW5leS1jcmFjawxocnl2bmlhLXNpZ24EbWFzawhtb3VudGFpbg1uZXR3b3JrLXdpcmVkBW90dGVyBHJpbmcOcGVyc29uLXJ1bm5pbmcGc2Nyb2xsEHNrdWxsLWNyb3NzYm9uZXMFc2xhc2gGc3BpZGVyDHRvaWxldC1wYXBlcgd0cmFjdG9yDHVzZXItaW5qdXJlZAx2ci1jYXJkYm9hcmQNd2FuZC1zcGFya2xlcwR3aW5kC3dpbmUtYm90dGxlDmNsb3VkLW1lYXRiYWxsD2Nsb3VkLW1vb24tcmFpbgpjbG91ZC1yYWluE2Nsb3VkLXNob3dlcnMtaGVhdnkOY2xvdWQtc3VuLXJhaW4IZGVtb2NyYXQIZmxhZy11c2EJaHVycmljYW5lDWxhbmRtYXJrLWRvbWUGbWV0ZW9yDHBlcnNvbi1ib290aAlwb28tc3Rvcm0HcmFpbmJvdwpyZXB1YmxpY2FuBHNtb2cQdGVtcGVyYXR1cmUtaGlnaA90ZW1wZXJhdHVyZS1sb3cKY2xvdWQtYm9sdAd0b3JuYWRvB3ZvbGNhbm8NY2hlY2stdG8tc2xvdAV3YXRlcgRiYWJ5DWJhYnktY2FycmlhZ2UJYmlvaGF6YXJkBGJsb2cMY2FsZW5kYXItZGF5DWNhbGVuZGFyLXdlZWsKY2FuZHktY2FuZQZjYXJyb3QNY2FzaC1yZWdpc3RlcghtaW5pbWl6ZQhkdW1wc3Rlcg1kdW1wc3Rlci1maXJlCGV0aGVybmV0BWdpZnRzEWNoYW1wYWduZS1nbGFzc2VzDXdoaXNrZXktZ2xhc3MMZWFydGgtZXVyb3BlCmdyaXAtbGluZXMTZ3JpcC1saW5lcy12ZXJ0aWNhbAZndWl0YXILaGVhcnQtY3JhY2sLaG9sbHktYmVycnkKaG9yc2UtaGVhZAdpY2ljbGVzBWlnbG9vBm1pdHRlbgdtdWctaG90CXJhZGlhdGlvbhBjaXJjbGUtcmFkaWF0aW9uCHJlc3Ryb29tCXNhdGVsbGl0ZQ5zYXRlbGxpdGUtZGlzaAdzZC1jYXJkCHNpbS1jYXJkDnBlcnNvbi1za2F0aW5nDXBlcnNvbi1za2lpbmcUcGVyc29uLXNraWluZy1ub3JkaWMGc2xlaWdoC2NvbW1lbnQtc21zE3BlcnNvbi1zbm93Ym9hcmRpbmcHc25vd21hbghzbm93cGxvdwp0ZW5nZS1zaWduBnRvaWxldBJzY3Jld2RyaXZlci13cmVuY2gJY2FibGUtY2FyEWZpcmUtZmxhbWUtY3VydmVkBWJhY29uDGJvb2stbWVkaWNhbAticmVhZC1zbGljZQZjaGVlc2UVaG91c2UtY2hpbW5leS1tZWRpY2FsDmNsaXBib2FyZC11c2VyD2NvbW1lbnQtbWVkaWNhbAZjcnV0Y2gHZGlzZWFzZQNlZ2cLZm9sZGVyLXRyZWUGYnVyZ2VyEmhhbmQtbWlkZGxlLWZpbmdlcg1oZWxtZXQtc2FmZXR5DWhvc3BpdGFsLXVzZXIGaG90ZG9nCWljZS1jcmVhbQ5sYXB0b3AtbWVkaWNhbAVwYWdlcgpwZXBwZXItaG90C3BpenphLXNsaWNlC3NhY2stZG9sbGFyC2Jvb2stdGFuYWtoDWJhcnMtcHJvZ3Jlc3MOdHJhc2gtYXJyb3ctdXASdHJhc2gtY2FuLWFycm93LXVwCnVzZXItbnVyc2ULd2F2ZS1zcXVhcmUNcGVyc29uLWJpa2luZwpib3JkZXItYWxsC2JvcmRlci1ub25lD2JvcmRlci10b3AtbGVmdA5wZXJzb24tZGlnZ2luZwNmYW4FaWNvbnMKcGhvbmUtZmxpcBFzcXVhcmUtcGhvbmUtZmxpcApwaG90by1maWxtCnRleHQtc2xhc2gOYXJyb3ctZG93bi16LWEMYXJyb3ctdXAtei1hFWFycm93LWRvd24tc2hvcnQtd2lkZRNhcnJvdy11cC1zaG9ydC13aWRlDmFycm93LWRvd24tOS0xDGFycm93LXVwLTktMQtzcGVsbC1jaGVjawl2b2ljZW1haWwKaGF0LWNvd2JveQ9oYXQtY293Ym95LXNpZGUOY29tcHV0ZXItbW91c2UFcmFkaW8McmVjb3JkLXZpbnlsDXdhbGtpZS10YWxraWUHY2FyYXZhbg==",Jp="data:font/ttf;base64,AAEAAAAKAIAAAwAgT1MvMl94XncAAAEoAAAAYGNtYXC7HEo7AAAKCAAAE3ZnbHlmP4dM9gAAJgQAAvUUaGVhZCuvGqYAAACsAAAANmhoZWEEVARHAAAA5AAAACRobXR4BkMICQAAAYgAAAiAbG9jYQK+HLAAAB2AAAAIhG1heHACSQRRAAABCAAAACBuYW1lsbXnfwADGxgAAAQdcG9zdKPrI1AAAx84AAAYLgABAAADBwUAz3pYeF8PPPUACwIAAAAAAOOCapMAAAAA44Jqk//1/7YCkAHMAAAACAACAAEAAAAAAAEAAAHM/7YAAAKB//X/7wKQAAEAAAAAAAAAAAAAAAAAAAIgAAEAAAIgBE8AJwAAAAAAAQAAAAEAAQAAAAAAAAAAAAAABAHkAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAIABQMAAAAAAAAAAAABEAAAAAAAAAAAAAAAQVdTTQDAACH//wHM/7YAAAHMAEoAAAABAAAAAAFCAbAAAAAgAAABgAAAAIAAEwHAAAABQAAKAYAAAAGA//4BwAAQAUAAAAEA//4BQP/7AUD//gGA//wBQP/+AUAAAAFAAAABQAAAAUAAAAGAAAABwAAQAYD//gFAABACAAAAAYD//gFAAAABgP/5AYAAAAFAAAABQAAAAcAAAAGAAAABQAAAAUAAAAFAAAABQAAgAcAAAAGAAAABwAAAAUAAAAHAAAABQAAAAUD//AGAAAABgAAAAYD//gJA//4BgP//AYD//gGA//sCAAAMAkAAIAHAAAIBwAAAAcAAAAHAAAABwAAAAgAAHwHAAAUCQAAAAgAAGgKA//UCAAAAAcD//AHAAAACgAAAAcAABQIAAAACgAAAAgAABwIAAAwBwAAAAcAADAIAABACgAAAAYAAAAIAADMCgAAAAoD/+gIAAAACgP//AgAAAAHAAAACAAAAAoAAAAKA//4CAP/4AkAAJAIAAA8CAAAAAcAAAAHAAAACAAAAAcAAAAHAABQCAAAgAcAAEAHAAAABwAAAAgAAGwKAAAICgAAAAcAAAAIAAAACAAAAAcAABgHAAAgBwAAAAoEAAQKAAAACAAAAAgAAAgHAAAABwAAAAoAAAAHAAAABwAAAAgAAAAHAABACAAAKAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAgAAAAIAAAAB8AAAAfAAAAHAAAABwAAAAoAADQHAAAAB4P//AgAAAAGAAAACAAAAAYAABAJAAA8BgP/9AcAAAAIQAAABgAADAcAAAAHAAAAB8AAAAgAABgFAAAgBwAAAAYAABAHAAAACQAAAAcAACQIAAAgBwAAAAXAAAAHAAAAB8AAAAcD//wIAAAACAAAIAYAAAAHAABIBwAAAAcAAAAIAAAgBwAAAAgAADwHoAAACAAAAAcAAAAHwAAgCAAAAAcAAAAIAAAABwAAAAkAABwHAAB4BwAAAAkAAAAHAAAAB8AAAAcAAAAHwAAABQAAAAoD//wGAAAACAAAAAkAAAAIAAAwB8AAAAcAAAAIA//8BwAAAAYAAEQHAAAgCQAANAgAAAgIAABgBgP/9AYAAAAHAAAUCQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACAAAAAcAAAAKAAAABwAAsAcAAAAJAAA4BwAATAcAAAAJAAAcCgAAGAcAAAAIAAAQCgAAAAYAAAAHAAAABgAAAAoAAAAHAAAACQP/6AoAAAAHwAAACQAAAAkAAAAHwAAACAAAAAgAACQFAAAEBwAAAAcAAAAKAAAACAAAIAgAAAAIAAAIB8AAAAgAAAAIAAAABwAAgAcAABQHAABEBwAAAAcAAAAHAAAACAAAAAgAAAAHYAAABwAAIAgAAEgKAAAACAAAIAoAAAAGAAAABwAAgAUAAGgIA//kCAAALAcAAAAHAAAABwAAAAcAAIAHAAAEBwAAAAgAACQHAAAAB4AAgAcAABQHAAAACAP//AgAACAIAAAwBwAALAcAABwJAAAMB8AAAAgAACAIAAAgBgAAAAcAAAAIAAA0BwAAAAcAAAAIAAAACAP/6AcAAAAHAABgCgP/+AgAAAAIA//kCAAAAAcAADwKA//8CAAAIAcAAAAKA//4CQAAAAoAAAAIA//wCgP/+AcAAAAIAAAgB8P/4AgAAAAHAAAABwAAAAcAAAAIAAAIBwAAAAgAAAAJoAAACgP/8AYAAAAG4AAACQAAWAgAAAAHg//8CAAAIAoAAFAHAAAABoAAAAoD//AHgAAABwAAAAaAAAAHg//wCgAAAAUAADgIAAAgBgAAAAYAAAAIAAAgBwP/6AlAACAGQAAABwAAAAYAAHAIAAAACAAAZAYAAIAGAAAIBAAAMAcAAAAIAAAACAAAgAgAAGQHAAAABgP/6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EQYJDgMGBAQLBgcOJwUDBAMEBBMTAwMFBC0CDRYMBQwVBgEICAQFBAUEAwcLBAMEBAMCCQcVHwoFJgUGBQUEAwUEBQcHAgIGBgoKAgEIBgYHCAgEBAwdAwEBAQoIAwQCBQw1EikbHAkWAQEZHzM0NbMDGhsoExMeFh8fISAXGAUBIxMSAgIOAAAJAAD/xgHwAbYAngEFAVwBsQL8A1MDpAPxBD4AABMyMzExMjMyFzIXMjMWMxYzFhcWFxYXFhcWFxYXFhcWFxQXFhUWFRQHFAcUFRQHFBUGBwYHBgcGBwYHIiMGBwYHBgcGIwYjBiMiJyInIiMiJyIjJicmJyYnJic0IyYnJicmJyYnJicwMSY1NDUmNTQ1JjU0NzQ1NDc0NTQ3NDc0NzY3Njc0NzY3Njc2NzY3NjcyMzYzMjM2MzIzNjMyMxciBwYHBgcGBzAHBgcGBwYHBgcGBwYHBhUUFxYXFhUWFxYXFhcWFxYXFjMWFxYXMjMyMxY3MjcyNzIzNjcyMzY3Njc2NzY3Njc2NzY3Njc2NzYnNCc0NSYnJicmJyYnJiciIyYjJgcHNjcGBwYHBgcGBwYHBhcUFxYXFhcWFxYXFhcWBxQxFBUUFRQVFBUWFQYXFBUUFRQVFBUwFRQVIiMmJyYnJicmJyY1Jic0JyYnJic0JzQnJjc2NzY3Njc3FhcxMTIzFhcWFxYXFhcWFxYXFhUUBwYHBgcGBwYHBgcwIyInNDU0NTQ1NjU0NTQ1NDU0NTQ1NDU0NTQ1Njc2NzY3Njc2NzY1JicmJyYnJiciJyYnBzY3BgcGBwYVFBcWFxYXFhcyMxQzFhcWFRQVFBUwFRQVFBcyMRYXFjM2NzY3NDUwNTQ1NDU0NTQ1NDU0NTY1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NRQVFBUWFRQVFhUUFRYVFBcUFxQVFhcWFxYXFhcwMTAzFjc0NzQxNjc2NzY3NjMyFxYzMDEWMzIzNjc2NzY3Njc2NwYHBgcGBwYHBgcGBwYnJicmJyYjJicWFxYXFhcWMzAxBgciMQYHBgciIyIjIicmJyYnJicmIyYnNjc2NzY3BgcGBwYnJicmJyYnJicwMSYnJicWFxYXFhcWFzIXMjMyMzIzMjMyNzIxNjM2FxYXFhcUFxYXFhcwMRYXNjU2NzQ1Njc2NzY1NDc0NTY1Njc0NTQ1NDU0NTQ1NDU0NSY1JicmJyYnJiciIzAnNDc0MTY3Njc2NxcwMTExNjEUFRQVFTEUMRQVMCMmNSYnNDU0JyIjMCMiIyIjIiMiIzAxNDE2MzI1Mjc2NzAzNjM0NSYjIjEmJyYjJiMmIzQxMjMyMzYXMjcwMTI1NDc2NzcyFRYXFBcUFRQXFjcyMxYzMjMwFTAxIgciBwYHBiMwBzAxBhUyFzIXFhcwFzAVMDEiIyIjIiMiIyIxIiMGFRQVBhUGBzAjNDUwNTUxNDU0NQc2NTExNjcGBwYVFhcWFxYXFhcyFxYXFhcyFzIXFhcWFxYXFBUGBwYjIicmJyYnJicmJyYnMDUmJyYnNDUmNTQ1JjU0NzY1NDc2NzY3JRYXMTEUMxQxFhcWFxQVMBUUBwYHBgcGBwYHBgcGIyYnIicmIzQ3MDU2NzY3Njc2MzYzNjc2NzY3Njc2NzY3NDE2NzY1NDU2NTQnJifsBQYGBQYFBgUCAgIDAgEMDBISKB8fEgEBAQEEAwYEAQEBAQEBAQIGDBgrGh8KCQEBBQQKCgcHAQIGBwoKCgoFBQIBAwICAQUFBgYNDQ8PAQMDEBA0GAUDAgEBAQEBAQEBAQUKAQIBDBIeKwsMGBkEBAECAgMBAgMEAgEDAwEBCA0OCwsVExAPAQYFBwgCAgIBKw4DAgEBAQIBAQIJFQ0RGB8LCwEBBwcQEgICAgMUFQIDBAUBAQQEAgEFBSghGBIFAwEBBQQEAwkFBAICAQEDCwkNFBonLwwMAwQCAgsMaRQYAgIDAxENCwYFAgIBCwkNBAMEBAQDBAIBAQEBAQIBEQ8JCAkHCgYBAgEBAQEGAgEBAQYDBQoRCQuwAwMBAQkJFBAQCQEBAQEKAQEEAwUFBgsPEBMGBQECAwEBAwcKCAcMBwQCAQEDAwQGCA8UAQECAWUBAgEBBQICAQEHAwQCAgEBAQQEBAEBAQIBAgIBAgEBAQEBAQECAwEDAwcDAwEBAQEGBwEBAwMEBQkJAQEFBgYFDQwIBxIMAQEBAQICAgEBAQcKBggKDA0NBgUDAwEBBQQEBAcHBgcCAgIBAQ4QICIHBwEBBwYREBAODgsBAQICCgkJBwMDBQYGBwkJDAsGBg4LBgUBAQEBAgEDAw0QCw4DAwECAwMBAQgIBAUBBAMGBQgEAwMBAQECAQECAgMCAwIDAQEBAQEBAQEDAwYFBwUIAgIBAQMEAgMGBx8BAQEBAQECAgEEBAMEAQEBAgECAQMCAwMBAQICAQECAgMDAQEBAgQEAwQDAgMCAQEBAQYBAQEBAQICAgIHCAEBAgIBAQQEAQIBAQIBAwMEBQECAQEBAwMFBAECAgEBAQEBugEBAQIBAQIMBQYJCwcIAQEEBAgIAgIEAwgFBwMCAQoKBwYPDwYFDAsEBA4IAwMCAQEBAQIBAQEBAgUIAWwBAQEDAwsCAwIBBgwNEwkJCQkKCgwLAQECAgECBAMGBAQEBAICCgsPDAEBAQIFBQsGAgIBAgEBAgG2AQEBAQIDBggSHx8nAQICAgoKExMFBAYGDA0HCAUFAgEDAgIBBwYbGjIjFg0EBAIBAwIBAQEBAQEBAQEBAQIDBQYIAQECCgwsQQ0OCQkDAgECAwQCAg8OBQUCAgMDAgEDAgICBAQZFwMDAQIZFiYZBgUKBQEBAQEBGQICAgUKBwoBBAQGBgMCAQEtPA0NDQ4KCwsKAgIFBSMfExEXEAUEAQICBQMCAgEBAQECAQsZEhcGBQEBCAgGBxITEA8UFQMEAgIdGxcUHRUeDAMCAQEBMQ4HAQECAgoOCw4KDAcHFRIQDAIDAwQDBAUGBAQBAwIEBAIDAwIDAgECBQUDBAICAgMBAgIBBgQGBggLDQEBAgICAgICDxABAQUGGBcMDBURCQcVAQIDBQoPDxMCAQMDFhkHBxERCwsKCRALDAMBAQECAgEBAwIDAwUGBQUCAgIBBAQEBAEBAwQDBAoIBggMEAkJBwcMCwgICwkQCwEBATsCAgIBBgcFBQQECwoEAwIBAQIDAwY3Nzc4AQECAgICAgIBAgIDAgMBAwMDBAQEBQQDAwMCAwMDAwQDBgUDAwMCAwMDAwQEBQUCAwMEAgEBAQUGAgIDAwICAwIDAwMEAQEMDQcHDAsDBAEBAQEBDAsCAgICAgEBAQEFBAQLEAEBAQIFBQMDAQEPDQgGCgUFAQECAgEBAwMEBAYFAwIBAQIKBg0DAQEEBAcFCAECAgEFBAcDBAMDAwICAQIHBQUQEgoJAgECAQECAwIOCwgDAQEBAgIDBwQFAgEDAgMDAgEBAgUGAQEKCgwLAwIEAwMCAwMNDQEBAgIDAwMEBAMEBQMDCgoJCQsKCAYHAgEEAwEMCwYGCggCAQIBAQImAQICAwQCAgEBAQIBAQEBAQEBAQEB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BhcWFyYjJgcjMRcxBgcHMRcxNzEGBwYHBgcGBxcxFzEwFQYVBgcGFzcxFBcUFQYXFhcWMzY3Njc2MTA3NjcXMTcxJicmJycVNRUWFxY3MjEnMTcxBic2NzY3NhcWFzcxJjUyFRYXNzEyMTYHFAcmByIxNzEGBwYHJicGMQYXFBcjMSYnNzE2JyYnNhcnFjMxMRYXFiMUMQYHBgcmJwc3Bzc2NzcxBzE3MQcxBzE2NzY3BzEmJzIzMDEyFxYzNTEnMRcxNjc2NzY3NjcGBwcxBzEXMTYXMzEGBwYHNTEnMSYHIiMmIwcxFTEyMxYzBzEzMQcxBhc3MTMxNjc1MRYzMgcWFxYXFhUUBwYHFzE2NzYXMhcHMRcxBzEmJxYXFicmJyIjFhcWFzExFTEwMTIHBgcmJyYnJicXMSYnJicmJzcxJgc3MScxBgciFTQnBzEnMTY3AQYHMTEGIzExBjEmJxcxJicmJyYnFzEnMRYXFhcWFwYnJicmJyIxFhcWNycxFjEWFxYXJicGMTAxFhcmJyYnFhcWNzY3MDMWFxY3MhcWFzcxJzEWFxY3JicmJxYzFhc3MScxNjM2NzI3FhcWFRQHNyMzIxcxMAcGBwYHBgcGBzAVJzEHMRcxJzEXMSMxJzEXMScxBzEXMSY1JicmJxcxBiciNSYnNzEnMRcxBicmJycxBzE2NzY3NjcmJyYnJic2NzY3Nhc2NzQxFjUWFxYnMzE2NzYzNjcHMTcxBzEXMTYXFhcnMRYXFhc3MSYnJjUWFxYXJgc3MQcxNjc1MTcxBzE2NzY3NzE1MScxMzEXMTcxJzEXMTcxBzEVMTMxMhcHMQcxFzEWFyInJiciIxcnBzcHJwcWFwYHFzEWNwcxNjcyNzY3NjcmJyYxNyYHBhcWNzYnJicHFjc1MQcxJjcwMTcxMDEmJyYHNDc2FxYXFgciJycWNzExNjUxMSY3JiMiBwYXFhc3IzMjFTEyFyYnJiMVBxYXMTEWFzExFhcnMTY3Nic3MTQnJgcGBwYHBgcGFSYHBiMXMQYHBgcwMTI3NjcmJyYnNzY3Njc2FxYHFAcGBwYHIicnMScxNDU2NxcGBzExBjExMTAxBicmNzcxJzEmBzAxFhc2NwYXMDEGFxYXFjcjMSY3NhczMScxBzEGBwHoFRUVEA4BAQcCAwMKAQQFCQsTDgwBAhYNDQ4GBiEj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NicmJyYHNTE2NxUxFhcWFwcxMDEmBwYHFTEWFxYVMzE2NzY3MzEUFxUxMCMmBzExFhcWNxUxIgcGBzciBzExBgc1MTYnJic0JzExIgcGByMxJzExMTY3Njc2MTMxFzEVMSYHBiMVMRYXFjcwMRU3MDExMQYHMTE1MSYnJzEGBwcxFhUWFxYzMTEGBwYjMTE2JzQnJicmJyYnMTEyNzY3MTEVMRYXFhUxMTY3MjczMScxJic1MTIzNjcxMQYXFhcWFxYzMDE3FTUVBgcxMTcxJicmJzQnMzE2NxUxFhUyMSMxNgcxMRQXMzE2MzA3MzEUMQYVMTEiIyYHMTEUFxYVMTEyNzY3MzEGBzcGIzAxIicmJyY3Njc2NzY3NicmBycxNzEyMTYXFhcWBzAxFAcGFQYVFBUUFxY3FTEmIyIjJjUmJwYHFyYHMTEGBwYXFjcxMRQHBjEVMQYnJjc2NzYXFTEwFRQVNzUVNTIXFhcHMTQ3Njc2FxYxBzEmBwYHMDEGBwYXFhcHMSYnJic3MTYnMDE0NzY3JiMXJjc2FxYHBicXIicxMSIjNTE3MTQ1NBUmMQYHBgcHMRUxNCMmIzExNzE2NzUxNTEWFxYzMDEwFRQHFBcnNjMxMTIXNzE2JyIxNzEWFxYXBgcGBwYXBzEmJyYnNzEwMQYjJicmNxcmBwYXFhUWBwYjJicwMTA3MzEUFxY3NicmNzYXFTEHFyI1MTEmJzExBgcGFTExJzE3MTcxNjcxMSYxJiMxMTcxMTEWFzExBzcnFycwNTY1NCcmFRQXFhUUByInJicwMTcxFzEUFxYnJicmJyY3MhcWFzAxBzcmJzExJicxMSYnIgcGBzcxBzEXMScxNjc2NwcxNjU3MRcxBgc3MScxFzEXMRYXFhcUNxcxBgcGBycxMjc2JyYnJicmMTcxFzEmNSYnJicHMTcxJzEXMQcxJicmJyYHIgcGMTAxJzE2NzY3FzEGBwYXFhcWFycxNzEXMTcxJzE3MRcxNzEHMTcxJzE3MRcxNzE0JyYnFzE3MScxFzE2NzY3FzEGFxYXMjEnMRcxNjEXMQYHFzE3MQcxNjc2FzIXFhcWJyUyNxcxMDEmBycXJgcxMQYHFzE3JwYHMTEGBxUxFhczMTAxNjc2NxYXFhcWFRUxFDc2NTQnJicmJxc2JyIHBgcGFxYzFjc2NwcmBzExBgcG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dAAgAEEAdwBlAHMAbwBtAGUAIAA2ACAAQgByAGEAbgBkAHMAIABSAGUAZwB1AGwAYQByAC0ANgAuADcALgAyAEYAbwBuAHQAIABBAHcAZQBzAG8AbQBlACAANgAgAEIAcgBhAG4AZABzAFQAaABlACAAdwBlAGIAJwBzACAAbQBvAHMAdAAgAHAAbwBwAHUAbABhAHIAIABpAGMAbwBuACAAcwBlAHQAIABhAG4AZAAgAHQAbwBvAGwAawBpAHQALgBGAG8AbgB0ACAAQQB3AGUAcwBvAG0AZQAgADYAIABCAHIAYQBuAGQAcwAgAFIAZQBnAHUAbABhAHIAaAB0AHQAcABzADoALwAvAGYAbwBuAHQAYQB3AGUAcwBvAG0AZQAuAGMAbwBtAAAAAAIAAAAAAAD/2wAZAAAAAAAAAAAAAAAAAAAAAAAAAAACIAAAAQIBAwEEAAgADQAOAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREAIgAjARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B3wHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+Af8CAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgITAhQCFQIWAhcCGAIZAhoCGwIcAh0CHgIfAiACIQIiAiMCJAIlAiYCJwIoAikCKgIrAiwCLQIuAi8CMAIxAjICMwI0AjUCNgI3AjgCOQI6AjsCPAI9Aj4CPwJAAkECQgJDAkQCRQJGAkcCSAJJAkoCSwJMAk0CTgJPAlACUQJSAlMCVAJVAlYCVwJYAlkCWgJbAlwCXQJeAl8CYAJhAmICYwJkAmUCZgJnAmgCaQJqAmsCbAJtAm4CbwJwAnECcgJzAnQCdQJ2AncCeAJ5AnoCewJ8An0CfgJ/AoACgQKCAoMChAKFAoYChwKIAokCigKLAowCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQKaApsCnAKdAp4CnwKgAqECogKjAqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArYCtwK4ArkCugK7ArwCvQK+Ar8CwALBAsICwwLEAsUCxgLHAsgCyQLKAssCzALNAs4CzwLQAtEC0gLTAtQC1QLWAtcC2ALZAtoC2wLcAt0C3gLfAuAC4QLiAuMC5ALlAuYC5wLoAukC6gLrAuwC7QLuAu8C8ALxAvIC8wL0AvUC9gL3AvgC+QL6AvsC/AL9Av4C/wMAAwEDAgMDAwQDBQMGAwcDCAMJAwoDCwMMAw0DDgMPAxADEQMSAxMDFAMVAxYDFwMYAxkDGgMbC2V4Y2xhbWF0aW9uB2hhc2h0YWcLZG9sbGFyLXNpZ24BMAExATIBMwE0ATUBNgE3ATgBOQlsZXNzLXRoYW4GZXF1YWxzDGdyZWF0ZXItdGhhbgFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoPZmlyZWZveC1icm93c2VyBWlkZWFsCW1pY3JvYmxvZxFzcXVhcmUtcGllZC1waXBlcgV1bml0eQtkYWlseW1vdGlvbhBzcXVhcmUtaW5zdGFncmFtBW1peGVyB3Nob3BpZnkGZGVlemVyC2VkZ2UtbGVnYWN5Cmdvb2dsZS1wYXkEcnVzdAZ0aWt0b2sIdW5zcGxhc2gKY2xvdWRmbGFyZQdndWlsZGVkBGhpdmUINDItZ3JvdXAIaW5zdGFsb2QOb2N0b3B1cy1kZXBsb3kHcGVyYnl0ZQl1bmNoYXJ0ZWQTd2F0Y2htYW4tbW9uaXRvcmluZwR3b2R1Bm5vdGRlZg93aXJzaW5kaGFuZHdlcmsEYm90cwZjbXBsaWQIYmlsaWJpbGkGZ29sYW5nA3BpeAZzaXRyb3gIaGFzaG5vZGUEbWV0YQZwYWRsZXQPbmZjLWRpcmVjdGlvbmFsCm5mYy1zeW1ib2wJc2NyZWVucGFsDXNwYWNlLWF3ZXNvbWUTc3F1YXJlLWZvbnQtYXdlc29tZQ1zcXVhcmUtZ2l0bGFiBm9keXNlZQdzdHViYmVyBmRlYmlhbghzaG9lbGFjZQd0aHJlYWRzDnNxdWFyZS10aHJlYWRzEHNxdWFyZS14LXR3aXR0ZXIJeC10d2l0dGVyCG9wZW5zdXNlCmxldHRlcmJveGQRc3F1YXJlLWxldHRlcmJveGQHbWludGJpdA5nb29nbGUtc2Nob2xhcgVicmF2ZQ1icmF2ZS1yZXZlcnNlBXBpeGl2BnVwd29yawd3ZWJmbG93EHNpZ25hbC1tZXNzZW5nZXIHYmx1ZXNreQNqeGwNc3F1YXJlLXVwd29yawt3ZWItYXdlc29tZRJzcXVhcmUtd2ViLWF3ZXNvbWUZc3F1YXJlLXdlYi1hd2Vzb21lLXN0cm9rZQlkYXJ0LWxhbmcHZmx1dHRlcg5maWxlcy1waW53aGVlbANjc3MOc3F1YXJlLWJsdWVza3kOc3F1YXJlLXR3aXR0ZXIPc3F1YXJlLWZhY2Vib29rCGxpbmtlZGluDXNxdWFyZS1naXRodWIHdHdpdHRlcghmYWNlYm9vawZnaXRodWIJcGludGVyZXN0EHNxdWFyZS1waW50ZXJlc3QSc3F1YXJlLWdvb2dsZS1wbHVzDWdvb2dsZS1wbHVzLWcLbGlua2VkaW4taW4KZ2l0aHViLWFsdAZtYXhjZG4FaHRtbDUEY3NzMwNidGMHeW91dHViZQR4aW5nC3NxdWFyZS14aW5nB2Ryb3Bib3gOc3RhY2stb3ZlcmZsb3cJaW5zdGFncmFtBmZsaWNrcgNhZG4JYml0YnVja2V0BnR1bWJscg1zcXVhcmUtdHVtYmxyBWFwcGxlB3dpbmRvd3MHYW5kcm9pZAVsaW51eAhkcmliYmJsZQVza3lwZQpmb3Vyc3F1YXJlBnRyZWxsbwhncmF0aXBheQJ2awV3ZWlibwZyZW5yZW4JcGFnZWxpbmVzDnN0YWNrLWV4Y2hhbmdlDHNxdWFyZS12aW1lbwVzbGFjawl3b3JkcHJlc3MGb3BlbmlkBXlhaG9vBmdvb2dsZQZyZWRkaXQNc3F1YXJlLXJlZGRpdBJzdHVtYmxldXBvbi1jaXJjbGULc3R1bWJsZXVwb24JZGVsaWNpb3VzBGRpZ2cNcGllZC1waXBlci1wcA5waWVkLXBpcGVyLWFsdAZkcnVwYWwGam9vbWxhB2JlaGFuY2UOc3F1YXJlLWJlaGFuY2UFc3RlYW0Mc3F1YXJlLXN0ZWFtB3Nwb3RpZnkKZGV2aWFudGFydApzb3VuZGNsb3VkBHZpbmUHY29kZXBlbghqc2ZpZGRsZQVyZWJlbAZlbXBpcmUKc3F1YXJlLWdpdANnaXQLaGFja2VyLW5ld3MNdGVuY2VudC13ZWlibwJxcQZ3ZWl4aW4Kc2xpZGVzaGFyZQZ0d2l0Y2gEeWVscAZwYXlwYWwNZ29vZ2xlLXdhbGxldAdjYy12aXNhDWNjLW1hc3RlcmNhcmQLY2MtZGlzY292ZXIHY2MtYW1leAljYy1wYXlwYWwJY2Mtc3RyaXBlBmxhc3RmbQ1zcXVhcmUtbGFzdGZtB2lveGhvc3QJYW5nZWxsaXN0CmJ1eXNlbGxhZHMOY29ubmVjdGRldmVsb3AIZGFzaGN1YmUIZm9ydW1iZWUHbGVhbnB1YgZzZWxsc3kMc2hpcnRzaW5idWxrC3NpbXBseWJ1aWx0CHNreWF0bGFzC3BpbnRlcmVzdC1wCHdoYXRzYXBwB3ZpYWNvaW4GbWVkaXVtDHktY29tYmluYXRvcg1vcHRpbi1tb25zdGVyCG9wZW5jYXJ0DGV4cGVkaXRlZHNzbAZjYy1qY2IOY2MtZGluZXJzLWNsdWIQY3JlYXRpdmUtY29tbW9ucwJnZwlnZy1jaXJjbGUNb2Rub2tsYXNzbmlraRRzcXVhcmUtb2Rub2tsYXNzbmlraQpnZXQtcG9ja2V0C3dpa2lwZWRpYS13BnNhZmFyaQZjaHJvbWUHZmlyZWZveAVvcGVyYRFpbnRlcm5ldC1leHBsb3JlcgZjb250YW8FNTAwcHgGYW1hem9uBWhvdXp6B3ZpbWVvLXYJYmxhY2stdGllCWZvbnRpY29ucwxyZWRkaXQtYWxpZW4EZWRnZQhjb2RpZXBpZQRtb2R4DGZvcnQtYXdlc29tZQN1c2IMcHJvZHVjdC1odW50CG1peGNsb3VkBnNjcmliZAlibHVldG9vdGgLYmx1ZXRvb3RoLWIGZ2l0bGFiCndwYmVnaW5uZXIHd3Bmb3JtcwZlbnZpcmEFZ2xpZGUHZ2xpZGUtZwZ2aWFkZW8Nc3F1YXJlLXZpYWRlbwhzbmFwY2hhdA9zcXVhcmUtc25hcGNoYXQKcGllZC1waXBlcgtmaXJzdC1vcmRlcgV5b2FzdAl0aGVtZWlzbGULZ29vZ2xlLXBsdXMMZm9udC1hd2Vzb21lBmxpbm9kZQVxdW9yYQ5mcmVlLWNvZGUtY2FtcAh0ZWxlZ3JhbQhiYW5kY2FtcARncmF2BGV0c3kEaW1kYgdyYXZlbHJ5CHNlbGxjYXN0C3N1cGVycG93ZXJzCndwZXhwbG9yZXIGbWVldHVwGnNxdWFyZS1mb250LWF3ZXNvbWUtc3Ryb2tlD2FjY2Vzc2libGUtaWNvbghhY2N1c29mdAhhZHZlcnNhbA5hZmZpbGlhdGV0aGVtZQdhbGdvbGlhBmFtaWxpYQ1hbmdyeWNyZWF0aXZlCWFwcC1zdG9yZQ1hcHAtc3RvcmUtaW9zBWFwcGVyCmFzeW1tZXRyaWsHYXVkaWJsZQdhdmlhbmV4A2F3cwliaW1vYmplY3QHYml0Y29pbgRiaXR5CmJsYWNrYmVycnkHYmxvZ2dlcglibG9nZ2VyLWIQYnVyb21vYmVsZXhwZXJ0ZQpjZW50ZXJjb2RlCmNsb3Vkc2NhbGUKY2xvdWRzbWl0aAxjbG91ZHZlcnNpZnkGY3BhbmVsCGNzczMtYWx0CmN1dHRsZWZpc2gHZC1hbmQtZAlkZXBsb3lkb2cHZGVza3Bybw1kaWdpdGFsLW9jZWFuB2Rpc2NvcmQJZGlzY291cnNlBmRvY2h1YgZkb2NrZXINZHJhZnQyZGlnaXRhbA9zcXVhcmUtZHJpYmJibGUGZHlhbG9nCmVhcmx5YmlyZHMGZXJsYW5nCmZhY2Vib29rLWYSZmFjZWJvb2stbWVzc2VuZ2VyCmZpcnN0ZHJhZnQMZm9udGljb25zLWZpEGZvcnQtYXdlc29tZS1hbHQHZnJlZWJzZAlnaXRrcmFrZW4GZ29mb3JlCWdvb2RyZWFkcwtnb29kcmVhZHMtZwxnb29nbGUtZHJpdmULZ29vZ2xlLXBsYXkIZ3JpcGZpcmUFZ3J1bnQEZ3VscBJzcXVhcmUtaGFja2VyLW5ld3MNaGlyZS1hLWhlbHBlcgZob3RqYXIHaHVic3BvdAZpdHVuZXMLaXR1bmVzLW5vdGUHamVua2lucwVqb2dldAJqcwlzcXVhcmUtanMGa2V5Y2RuC2tpY2tzdGFydGVyDWtpY2tzdGFydGVyLWsHbGFyYXZlbARsaW5lBGx5ZnQHbWFnZW50bwdtZWRhcHBzBW1lZHJ0CW1pY3Jvc29mdANtaXgGbWl6dW5pBm1vbmVybwduYXBzdGVyB25vZGUtanMDbnBtA25zOAtudXRyaXRpb25peAVwYWdlNAZwYWxmZWQHcGF0cmVvbglwZXJpc2NvcGULcGhhYnJpY2F0b3IRcGhvZW5peC1mcmFtZXdvcmsLcGxheXN0YXRpb24GcHVzaGVkBnB5dGhvbglyZWQtcml2ZXIHd3ByZXNzcgZyZXBseWQJcmVzb2x2aW5nCnJvY2tldGNoYXQHcm9ja3JtcwZzY2hsaXgLc2VhcmNoZW5naW4Mc2VydmljZXN0YWNrB3Npc3RyaXgHc3BlYWthcApzdGF5bGlua2VkDHN0ZWFtLXN5bWJvbAxzdGlja2VyLW11bGUMc3R1ZGlvdmluYXJpBnN1cHBsZQR1YmVyBXVpa2l0C3VuaXJlZ2lzdHJ5B3VudGFwcGQIdXNzdW5uYWgGdmFhZGluBXZpYmVyBXZpbWVvA3Zudg9zcXVhcmUtd2hhdHNhcHAFd2htY3MQd29yZHByZXNzLXNpbXBsZQR4Ym94BnlhbmRleBR5YW5kZXgtaW50ZXJuYXRpb25hbAlhcHBsZS1wYXkMY2MtYXBwbGUtcGF5A2ZseQRub2RlA29zaQVyZWFjdAxhdXRvcHJlZml4ZXIEbGVzcwRzYXNzBXZ1ZWpzB2FuZ3VsYXIGYXZpYXRvBWVtYmVyBmdpdHRlcgVob29saQZzdHJhdmEGc3RyaXBlCHN0cmlwZS1zBXR5cG8zCmFtYXpvbi1wYXkNY2MtYW1hem9uLXBheQhldGhlcmV1bQZrb3J2dWUJZWxlbWVudG9yDnNxdWFyZS15b3V0dWJlCWZsaXBib2FyZARoaXBzA3BocAlxdWluc2NhcGUGcmVhZG1lBGphdmEOcGllZC1waXBlci1oYXQTY3JlYXRpdmUtY29tbW9ucy1ieRNjcmVhdGl2ZS1jb21tb25zLW5jFmNyZWF0aXZlLWNvbW1vbnMtbmMtZXUWY3JlYXRpdmUtY29tbW9ucy1uYy1qcBNjcmVhdGl2ZS1jb21tb25zLW5kE2NyZWF0aXZlLWNvbW1vbnMtcGQXY3JlYXRpdmUtY29tbW9ucy1wZC1hbHQWY3JlYXRpdmUtY29tbW9ucy1yZW1peBNjcmVhdGl2ZS1jb21tb25zLXNhGWNyZWF0aXZlLWNvbW1vbnMtc2FtcGxpbmceY3JlYXRpdmUtY29tbW9ucy1zYW1wbGluZy1wbHVzFmNyZWF0aXZlLWNvbW1vbnMtc2hhcmUVY3JlYXRpdmUtY29tbW9ucy16ZXJvBGViYXkHa2V5YmFzZQhtYXN0b2RvbglyLXByb2plY3QMcmVzZWFyY2hnYXRlCXRlYW1zcGVhaw9maXJzdC1vcmRlci1hbHQHZnVsY3J1bRFnYWxhY3RpYy1yZXB1YmxpYw9nYWxhY3RpYy1zZW5hdGUKamVkaS1vcmRlcgttYW5kYWxvcmlhbgxvbGQtcmVwdWJsaWMQcGhvZW5peC1zcXVhZHJvbgRzaXRoEHRyYWRlLWZlZGVyYXRpb24Td29sZi1wYWNrLWJhdHRhbGlvbghob3JuYmlsbAltYWlsY2hpbXAIbWVnYXBvcnQGbmltYmxyA3JldghzaG9wd2FyZQtzcXVhcmVzcGFjZQd0aGVtZWNvBndlZWJseQN3aXgEZWxsbwpoYWNrZXJyYW5rBmthZ2dsZQhtYXJrZG93bgRuZW9zBXpoaWh1BmFsaXBheQx0aGUtcmVkLXlldGkNY3JpdGljYWwtcm9sZQ5kLWFuZC1kLWJleW9uZANkZXYUZmFudGFzeS1mbGlnaHQtZ2FtZXMUd2l6YXJkcy1vZi10aGUtY29hc3QLdGhpbmstcGVha3MLcmVhY3RldXJvcGUKYXJ0c3RhdGlvbglhdGxhc3NpYW4TY2FuYWRpYW4tbWFwbGUtbGVhZgZjZW50b3MKY29uZmx1ZW5jZQNkaGwIZGlhc3BvcmEFZmVkZXgGZmVkb3JhBWZpZ21hCGludGVyY29tCGludmlzaW9uBGppcmEIbWVuZGVsZXkMcmFzcGJlcnJ5LXBpBnJlZGhhdAZza2V0Y2gKc291cmNldHJlZQRzdXNlBnVidW50dQN1cHMEdXNwcwR5YXJuBmFpcmJuYgpiYXR0bGUtbmV0CWJvb3RzdHJhcAZidWZmZXIKY2hyb21lY2FzdAhldmVybm90ZQdpdGNoLWlvCnNhbGVzZm9yY2UMc3BlYWtlci1kZWNrB3N5bWZvbnkEd2F6ZQZ5YW1tZXIHZ2l0LWFsdAlzdGFja3BhdGgNY290dG9uLWJ1cmVhdQtidXktbi1sYXJnZQNtZGIFb3JjaWQFc3dpZnQHdW1icmFjbwAA";const Np=`\n @font-face {\n font-family: 'Font Awesome 6 Free';\n font-display: block;\n font-weight: 900;\n src: url(${fp}) format("woff2"), url(${mp}) format("truetype");\n }\n @font-face {\n font-family: 'Font Awesome 6 Free';\n font-display: block;\n font-weight: 400;\n src: url(${Ip}) format("woff2"), url(${Dp}) format("truetype");\n }\n @font-face {\n font-family: 'Font Awesome 5 Free';\n font-display: block;\n font-weight: 900;\n src: url(${fp}) format("woff2"), url(${mp}) format("truetype");\n }\n @font-face {\n font-family: 'Font Awesome 5 Free';\n font-display: block;\n font-weight: 400;\n src: url(${Ip}) format("woff2"), url(${Dp}) format("truetype");\n }\n @font-face {\n font-family: 'Font Awesome 6 Brands';\n font-display: block;\n font-weight: 400;\n src: url(${Yp}) format("woff2"), url(${Jp}) format("truetype");\n }\n @font-face {\n font-family: 'Font Awesome 5 Brands';\n font-display: block;\n font-weight: 400;\n src: url(${Yp}) format("woff2"), url(${Jp}) format("truetype");\n }\n`;class yp extends HTMLElement{static get observedAttributes(){return["projectid","modelid","datadir","tab","configs","openexplorer","enableeditmodels"]}constructor(){super(),this.attachShadow({mode:"open"}),this.shadowRoot.innerHTML='\n \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n',this.bimViewer=null,this.projectId="",this.modelId="",this.dataDir="/app/data",this.tab="",this.configs="",this.openExplorer=!1,this.enableEditModels=!1,this._debounceTimeout=null,this._pendingAttributes=new Map;this.shadowRoot.getElementById("myCanvas").addEventListener("wheel",(A=>{A.preventDefault()}))}static register(A="xeokit-bim-viewer"){customElements.define(A,this)}dispatchEvent(A){super.dispatchEvent(A);const e="on"+A.type,t=this.getAttribute(e);if(t)try{new Function("event",t).call(this,A)}catch(A){console.error("Error executing inline event handler:",A)}}connectedCallback(){const A=document.createElement("style");A.innerHTML=Np,document.getElementsByTagName("head")[0].appendChild(A),this.projectId=this.getAttribute("projectId"),this.modelId=this.getAttribute("modelId"),this.openExplorer=this.getAttribute("openExplorer"),this.setExplorerOpen("true"===this.openExplorer),this.enableEditModels="true"===this.getAttribute("enableEditModels"),this.dataDir=this.getAttribute("dataDir")||"./app/data";const e=new UF({dataDir:this.dataDir}),t=new pp(e,{enableMeasurements:!0,canvasElement:this.shadowRoot.getElementById("myCanvas"),keyboardEventsElement:this.shadowRoot,explorerElement:this.shadowRoot.getElementById("myExplorer"),toolbarElement:this.shadowRoot.getElementById("myToolbar"),inspectorElement:this.shadowRoot.getElementById("myInspector"),navCubeCanvasElement:this.shadowRoot.getElementById("myNavCubeCanvas"),busyModelBackdropElement:this.shadowRoot.getElementById("myViewer"),enableEditModels:this.enableEditModels,containerElement:this.shadowRoot});if(t.viewer.cameraControl.on("picked",(A=>{if(A&&A.entity){const e=A.entity.id,i=t.viewer.metaScene.metaObjects[e];i&&this.dispatchEvent(new CustomEvent("objectSelected",{detail:i,bubbles:!0,composed:!0}))}})),t.setConfigs({showSpaces:!1,selectedGlowThrough:!0,highlightGlowThrough:!0,dtxEnabled:!0}),t.on("openExplorer",(()=>{this.setExplorerOpen(!0)})),t.on("openInspector",(()=>{this.setInspectorOpen(!0)})),t.on("addModel",(A=>{console.log("addModel: "+JSON.stringify(A,null,"\t"))})),t.on("editModel",(A=>{console.log("editModel: "+JSON.stringify(A,null,"\t"))})),t.on("deleteModel",(A=>{console.log("deleteModel: "+JSON.stringify(A,null,"\t"))})),this.bimViewer=t,this.configs=this.getAttribute("configs"),this.configs){const A=this.configs.split(/,(?![^\[\]]*\])/);for(let e=0,i=A.length;e{this.modelId=this.getAttribute("modelId"),this.modelId&&t.loadModel(this.modelId),this.tab=this.getAttribute("tab"),this.tab&&t.openTab(this.tab)}),(A=>{console.error(A)})):console.log("No projectId attribute found")}attributeChangedCallback(A,e,t){if("projectid"===A){if(console.log("projectid changed: "+t),this.projectId=t,!this.bimViewer||!this.projectId)return;this.bimViewer.loadProject(this.projectId,(()=>{this.modelId=this.getAttribute("modelId"),this.modelId&&this.bimViewer.loadModel(this.modelId),this.tab=this.getAttribute("tab"),this.tab&&this.bimViewer.openTab(this.tab)}),(A=>{console.error(A)}))}else if("modelid"===A){if(this.modelId=t,!this.bimViewer||!this.modelId||!this.projectId)return;this.bimViewer.loadProject(this.projectId,(()=>{this.bimViewer.loadModel(this.modelId),this.tab=this.getAttribute("tab"),this.tab&&this.bimViewer.openTab(this.tab)}),(A=>{console.error(A)}))}}setExplorerOpen(A){const e=this.shadowRoot.getElementById("explorer_toggle");e&&(e.checked=A)}setInspectorOpen(A){const e=this.shadowRoot.getElementById("inspector_toggle");e&&(e.checked=A)}}export{pp as BIMViewer,yp as BimViewerWebComponent,G as LocaleService,UF as Server};