From d5c10744953127dafb3058d3887fb4a211755798 Mon Sep 17 00:00:00 2001 From: Andres Felipe Dorado Date: Thu, 26 Dec 2024 18:51:36 +0100 Subject: [PATCH] feat: add initial HTML, CSS, and JavaScript for Raging Sea project --- 22-raging-sea/dist/.gitkeep | 0 22-raging-sea/dist/assets/index-BDruUcP0.js | 4380 +++++++++++++++++ .../dist/assets/index-BDruUcP0.js.map | 1 + 22-raging-sea/dist/assets/index-Fi76PK1B.css | 1 + .../dist/envMaps/autumn_field_puresky_2k.hdr | Bin 0 -> 4434394 bytes 22-raging-sea/dist/index.html | 13 + 22-raging-sea/src/script.js | 2 +- 7 files changed, 4396 insertions(+), 1 deletion(-) create mode 100644 22-raging-sea/dist/.gitkeep create mode 100644 22-raging-sea/dist/assets/index-BDruUcP0.js create mode 100644 22-raging-sea/dist/assets/index-BDruUcP0.js.map create mode 100644 22-raging-sea/dist/assets/index-Fi76PK1B.css create mode 100644 22-raging-sea/dist/envMaps/autumn_field_puresky_2k.hdr create mode 100644 22-raging-sea/dist/index.html diff --git a/22-raging-sea/dist/.gitkeep b/22-raging-sea/dist/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/22-raging-sea/dist/assets/index-BDruUcP0.js b/22-raging-sea/dist/assets/index-BDruUcP0.js new file mode 100644 index 0000000..88b6588 --- /dev/null +++ b/22-raging-sea/dist/assets/index-BDruUcP0.js @@ -0,0 +1,4380 @@ +(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&n(a)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();/** + * @license + * Copyright 2010-2024 Three.js Authors + * SPDX-License-Identifier: MIT + */const Bs="166",Vn={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},kn={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},Ko=0,na=1,jo=2,ao=1,oo=2,Zt=3,En=0,Et=1,Jt=2,Mn=0,li=1,ia=2,ra=3,sa=4,Zo=5,Ln=100,Jo=101,Qo=102,el=103,tl=104,nl=200,il=201,rl=202,sl=203,rs=204,ss=205,al=206,ol=207,ll=208,cl=209,ul=210,hl=211,dl=212,fl=213,pl=214,ml=0,gl=1,_l=2,fr=3,vl=4,xl=5,Ml=6,Sl=7,lo=0,El=1,yl=2,Sn=0,Al=1,Tl=2,bl=3,wl=4,Rl=5,Cl=6,Pl=7,co=300,hi=301,di=302,as=303,os=304,xr=306,ls=1e3,en=1001,cs=1002,St=1003,Ll=1004,Fi=1005,_t=1006,Pr=1007,xn=1008,rn=1009,uo=1010,ho=1011,Ri=1012,zs=1013,Un=1014,Lt=1015,tn=1016,Hs=1017,Vs=1018,fi=1020,fo=35902,po=1021,mo=1022,Ot=1023,go=1024,_o=1025,ci=1026,pi=1027,vo=1028,ks=1029,xo=1030,Gs=1031,Ws=1033,or=33776,lr=33777,cr=33778,ur=33779,us=35840,hs=35841,ds=35842,fs=35843,ps=36196,ms=37492,gs=37496,_s=37808,vs=37809,xs=37810,Ms=37811,Ss=37812,Es=37813,ys=37814,As=37815,Ts=37816,bs=37817,ws=37818,Rs=37819,Cs=37820,Ps=37821,hr=36492,Ls=36494,Ds=36495,Mo=36283,Is=36284,Us=36285,Ns=36286,Dl=3200,Il=3201,Ul=0,Nl=1,_n="",Ft="srgb",on="srgb-linear",Xs="display-p3",Mr="display-p3-linear",pr="linear",$e="srgb",mr="rec709",gr="p3",Gn=7680,aa=519,Fl=512,Ol=513,Bl=514,So=515,zl=516,Hl=517,Vl=518,kl=519,oa=35044,la="300 es",nn=2e3,_r=2001;class Bn{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});const n=this._listeners;n[e]===void 0&&(n[e]=[]),n[e].indexOf(t)===-1&&n[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;const n=this._listeners;return n[e]!==void 0&&n[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;const r=this._listeners[e];if(r!==void 0){const s=r.indexOf(t);s!==-1&&r.splice(s,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const n=this._listeners[e.type];if(n!==void 0){e.target=this;const r=n.slice(0);for(let s=0,a=r.length;s>8&255]+mt[i>>16&255]+mt[i>>24&255]+"-"+mt[e&255]+mt[e>>8&255]+"-"+mt[e>>16&15|64]+mt[e>>24&255]+"-"+mt[t&63|128]+mt[t>>8&255]+"-"+mt[t>>16&255]+mt[t>>24&255]+mt[n&255]+mt[n>>8&255]+mt[n>>16&255]+mt[n>>24&255]).toLowerCase()}function pt(i,e,t){return Math.max(e,Math.min(t,i))}function Ys(i,e){return(i%e+e)%e}function Gl(i,e,t,n,r){return n+(i-e)*(r-n)/(t-e)}function Wl(i,e,t){return i!==e?(t-i)/(e-i):0}function wi(i,e,t){return(1-t)*i+t*e}function Xl(i,e,t,n){return wi(i,e,1-Math.exp(-t*n))}function Yl(i,e=1){return e-Math.abs(Ys(i,e*2)-e)}function ql(i,e,t){return i<=e?0:i>=t?1:(i=(i-e)/(t-e),i*i*(3-2*i))}function $l(i,e,t){return i<=e?0:i>=t?1:(i=(i-e)/(t-e),i*i*i*(i*(i*6-15)+10))}function Kl(i,e){return i+Math.floor(Math.random()*(e-i+1))}function jl(i,e){return i+Math.random()*(e-i)}function Zl(i){return i*(.5-Math.random())}function Jl(i){i!==void 0&&(ca=i);let e=ca+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function Ql(i){return i*bi}function ec(i){return i*Ci}function tc(i){return(i&i-1)===0&&i!==0}function nc(i){return Math.pow(2,Math.ceil(Math.log(i)/Math.LN2))}function ic(i){return Math.pow(2,Math.floor(Math.log(i)/Math.LN2))}function rc(i,e,t,n,r){const s=Math.cos,a=Math.sin,o=s(t/2),l=a(t/2),c=s((e+n)/2),u=a((e+n)/2),d=s((e-n)/2),f=a((e-n)/2),m=s((n-e)/2),x=a((n-e)/2);switch(r){case"XYX":i.set(o*u,l*d,l*f,o*c);break;case"YZY":i.set(l*f,o*u,l*d,o*c);break;case"ZXZ":i.set(l*d,l*f,o*u,o*c);break;case"XZX":i.set(o*u,l*x,l*m,o*c);break;case"YXY":i.set(l*m,o*u,l*x,o*c);break;case"ZYZ":i.set(l*x,l*m,o*u,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function ai(i,e){switch(e.constructor){case Float32Array:return i;case Uint32Array:return i/4294967295;case Uint16Array:return i/65535;case Uint8Array:return i/255;case Int32Array:return Math.max(i/2147483647,-1);case Int16Array:return Math.max(i/32767,-1);case Int8Array:return Math.max(i/127,-1);default:throw new Error("Invalid component type.")}}function vt(i,e){switch(e.constructor){case Float32Array:return i;case Uint32Array:return Math.round(i*4294967295);case Uint16Array:return Math.round(i*65535);case Uint8Array:return Math.round(i*255);case Int32Array:return Math.round(i*2147483647);case Int16Array:return Math.round(i*32767);case Int8Array:return Math.round(i*127);default:throw new Error("Invalid component type.")}}const sc={DEG2RAD:bi,RAD2DEG:Ci,generateUUID:vi,clamp:pt,euclideanModulo:Ys,mapLinear:Gl,inverseLerp:Wl,lerp:wi,damp:Xl,pingpong:Yl,smoothstep:ql,smootherstep:$l,randInt:Kl,randFloat:jl,randFloatSpread:Zl,seededRandom:Jl,degToRad:Ql,radToDeg:ec,isPowerOfTwo:tc,ceilPowerOfTwo:nc,floorPowerOfTwo:ic,setQuaternionFromProperEuler:rc,normalize:vt,denormalize:ai};class De{constructor(e=0,t=0){De.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,n=this.y,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6],this.y=r[1]*t+r[4]*n+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const n=this.dot(e)/t;return Math.acos(pt(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y;return t*t+n*n}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const n=Math.cos(t),r=Math.sin(t),s=this.x-e.x,a=this.y-e.y;return this.x=s*n-a*r+e.x,this.y=s*r+a*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Fe{constructor(e,t,n,r,s,a,o,l,c){Fe.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,n,r,s,a,o,l,c)}set(e,t,n,r,s,a,o,l,c){const u=this.elements;return u[0]=e,u[1]=r,u[2]=o,u[3]=t,u[4]=s,u[5]=l,u[6]=n,u[7]=a,u[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],this}extractBasis(e,t,n){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),n.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements,r=t.elements,s=this.elements,a=n[0],o=n[3],l=n[6],c=n[1],u=n[4],d=n[7],f=n[2],m=n[5],x=n[8],S=r[0],p=r[3],h=r[6],A=r[1],y=r[4],b=r[7],O=r[2],P=r[5],w=r[8];return s[0]=a*S+o*A+l*O,s[3]=a*p+o*y+l*P,s[6]=a*h+o*b+l*w,s[1]=c*S+u*A+d*O,s[4]=c*p+u*y+d*P,s[7]=c*h+u*b+d*w,s[2]=f*S+m*A+x*O,s[5]=f*p+m*y+x*P,s[8]=f*h+m*b+x*w,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],n=e[1],r=e[2],s=e[3],a=e[4],o=e[5],l=e[6],c=e[7],u=e[8];return t*a*u-t*o*c-n*s*u+n*o*l+r*s*c-r*a*l}invert(){const e=this.elements,t=e[0],n=e[1],r=e[2],s=e[3],a=e[4],o=e[5],l=e[6],c=e[7],u=e[8],d=u*a-o*c,f=o*l-u*s,m=c*s-a*l,x=t*d+n*f+r*m;if(x===0)return this.set(0,0,0,0,0,0,0,0,0);const S=1/x;return e[0]=d*S,e[1]=(r*c-u*n)*S,e[2]=(o*n-r*a)*S,e[3]=f*S,e[4]=(u*t-r*l)*S,e[5]=(r*s-o*t)*S,e[6]=m*S,e[7]=(n*l-c*t)*S,e[8]=(a*t-n*s)*S,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,n,r,s,a,o){const l=Math.cos(s),c=Math.sin(s);return this.set(n*l,n*c,-n*(l*a+c*o)+a+e,-r*c,r*l,-r*(-c*a+l*o)+o+t,0,0,1),this}scale(e,t){return this.premultiply(Lr.makeScale(e,t)),this}rotate(e){return this.premultiply(Lr.makeRotation(-e)),this}translate(e,t){return this.premultiply(Lr.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,n,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,n=e.elements;for(let r=0;r<9;r++)if(t[r]!==n[r])return!1;return!0}fromArray(e,t=0){for(let n=0;n<9;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){const n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const Lr=new Fe;function Eo(i){for(let e=i.length-1;e>=0;--e)if(i[e]>=65535)return!0;return!1}function vr(i){return document.createElementNS("http://www.w3.org/1999/xhtml",i)}function ac(){const i=vr("canvas");return i.style.display="block",i}const ua={};function yo(i){i in ua||(ua[i]=!0,console.warn(i))}function oc(i,e,t){return new Promise(function(n,r){function s(){switch(i.clientWaitSync(e,i.SYNC_FLUSH_COMMANDS_BIT,0)){case i.WAIT_FAILED:r();break;case i.TIMEOUT_EXPIRED:setTimeout(s,t);break;default:n()}}setTimeout(s,t)})}const ha=new Fe().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),da=new Fe().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),Oi={[on]:{transfer:pr,primaries:mr,toReference:i=>i,fromReference:i=>i},[Ft]:{transfer:$e,primaries:mr,toReference:i=>i.convertSRGBToLinear(),fromReference:i=>i.convertLinearToSRGB()},[Mr]:{transfer:pr,primaries:gr,toReference:i=>i.applyMatrix3(da),fromReference:i=>i.applyMatrix3(ha)},[Xs]:{transfer:$e,primaries:gr,toReference:i=>i.convertSRGBToLinear().applyMatrix3(da),fromReference:i=>i.applyMatrix3(ha).convertLinearToSRGB()}},lc=new Set([on,Mr]),Ye={enabled:!0,_workingColorSpace:on,get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(i){if(!lc.has(i))throw new Error(`Unsupported working color space, "${i}".`);this._workingColorSpace=i},convert:function(i,e,t){if(this.enabled===!1||e===t||!e||!t)return i;const n=Oi[e].toReference,r=Oi[t].fromReference;return r(n(i))},fromWorkingColorSpace:function(i,e){return this.convert(i,this._workingColorSpace,e)},toWorkingColorSpace:function(i,e){return this.convert(i,e,this._workingColorSpace)},getPrimaries:function(i){return Oi[i].primaries},getTransfer:function(i){return i===_n?pr:Oi[i].transfer}};function ui(i){return i<.04045?i*.0773993808:Math.pow(i*.9478672986+.0521327014,2.4)}function Dr(i){return i<.0031308?i*12.92:1.055*Math.pow(i,.41666)-.055}let Wn;class cc{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{Wn===void 0&&(Wn=vr("canvas")),Wn.width=e.width,Wn.height=e.height;const n=Wn.getContext("2d");e instanceof ImageData?n.putImageData(e,0,0):n.drawImage(e,0,0,e.width,e.height),t=Wn}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const t=vr("canvas");t.width=e.width,t.height=e.height;const n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);const r=n.getImageData(0,0,e.width,e.height),s=r.data;for(let a=0;a0&&(n.userData=this.userData),t||(e.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==co)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case ls:e.x=e.x-Math.floor(e.x);break;case en:e.x=e.x<0?0:1;break;case cs:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case ls:e.y=e.y-Math.floor(e.y);break;case en:e.y=e.y<0?0:1;break;case cs:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){e===!0&&this.pmremVersion++}}Mt.DEFAULT_IMAGE=null;Mt.DEFAULT_MAPPING=co;Mt.DEFAULT_ANISOTROPY=1;class ut{constructor(e=0,t=0,n=0,r=1){ut.prototype.isVector4=!0,this.x=e,this.y=t,this.z=n,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,n,r){return this.x=e,this.y=t,this.z=n,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,n=this.y,r=this.z,s=this.w,a=e.elements;return this.x=a[0]*t+a[4]*n+a[8]*r+a[12]*s,this.y=a[1]*t+a[5]*n+a[9]*r+a[13]*s,this.z=a[2]*t+a[6]*n+a[10]*r+a[14]*s,this.w=a[3]*t+a[7]*n+a[11]*r+a[15]*s,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,n,r,s;const l=e.elements,c=l[0],u=l[4],d=l[8],f=l[1],m=l[5],x=l[9],S=l[2],p=l[6],h=l[10];if(Math.abs(u-f)<.01&&Math.abs(d-S)<.01&&Math.abs(x-p)<.01){if(Math.abs(u+f)<.1&&Math.abs(d+S)<.1&&Math.abs(x+p)<.1&&Math.abs(c+m+h-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;const y=(c+1)/2,b=(m+1)/2,O=(h+1)/2,P=(u+f)/4,w=(d+S)/4,L=(x+p)/4;return y>b&&y>O?y<.01?(n=0,r=.707106781,s=.707106781):(n=Math.sqrt(y),r=P/n,s=w/n):b>O?b<.01?(n=.707106781,r=0,s=.707106781):(r=Math.sqrt(b),n=P/r,s=L/r):O<.01?(n=.707106781,r=.707106781,s=0):(s=Math.sqrt(O),n=w/s,r=L/s),this.set(n,r,s,t),this}let A=Math.sqrt((p-x)*(p-x)+(d-S)*(d-S)+(f-u)*(f-u));return Math.abs(A)<.001&&(A=1),this.x=(p-x)/A,this.y=(d-S)/A,this.z=(f-u)/A,this.w=Math.acos((c+m+h-1)/2),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this.w=t[15],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this.w=e.w+(t.w-e.w)*n,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class dc extends Bn{constructor(e=1,t=1,n={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new ut(0,0,e,t),this.scissorTest=!1,this.viewport=new ut(0,0,e,t);const r={width:e,height:t,depth:1};n=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:_t,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1},n);const s=new Mt(r,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace);s.flipY=!1,s.generateMipmaps=n.generateMipmaps,s.internalFormat=n.internalFormat,this.textures=[];const a=n.count;for(let o=0;o=0?1:-1,y=1-h*h;if(y>Number.EPSILON){const O=Math.sqrt(y),P=Math.atan2(O,h*A);p=Math.sin(p*P)/O,o=Math.sin(o*P)/O}const b=o*A;if(l=l*p+f*b,c=c*p+m*b,u=u*p+x*b,d=d*p+S*b,p===1-o){const O=1/Math.sqrt(l*l+c*c+u*u+d*d);l*=O,c*=O,u*=O,d*=O}}e[t]=l,e[t+1]=c,e[t+2]=u,e[t+3]=d}static multiplyQuaternionsFlat(e,t,n,r,s,a){const o=n[r],l=n[r+1],c=n[r+2],u=n[r+3],d=s[a],f=s[a+1],m=s[a+2],x=s[a+3];return e[t]=o*x+u*d+l*m-c*f,e[t+1]=l*x+u*f+c*d-o*m,e[t+2]=c*x+u*m+o*f-l*d,e[t+3]=u*x-o*d-l*f-c*m,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,n,r){return this._x=e,this._y=t,this._z=n,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t=!0){const n=e._x,r=e._y,s=e._z,a=e._order,o=Math.cos,l=Math.sin,c=o(n/2),u=o(r/2),d=o(s/2),f=l(n/2),m=l(r/2),x=l(s/2);switch(a){case"XYZ":this._x=f*u*d+c*m*x,this._y=c*m*d-f*u*x,this._z=c*u*x+f*m*d,this._w=c*u*d-f*m*x;break;case"YXZ":this._x=f*u*d+c*m*x,this._y=c*m*d-f*u*x,this._z=c*u*x-f*m*d,this._w=c*u*d+f*m*x;break;case"ZXY":this._x=f*u*d-c*m*x,this._y=c*m*d+f*u*x,this._z=c*u*x+f*m*d,this._w=c*u*d-f*m*x;break;case"ZYX":this._x=f*u*d-c*m*x,this._y=c*m*d+f*u*x,this._z=c*u*x-f*m*d,this._w=c*u*d+f*m*x;break;case"YZX":this._x=f*u*d+c*m*x,this._y=c*m*d+f*u*x,this._z=c*u*x-f*m*d,this._w=c*u*d-f*m*x;break;case"XZY":this._x=f*u*d-c*m*x,this._y=c*m*d-f*u*x,this._z=c*u*x+f*m*d,this._w=c*u*d+f*m*x;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return t===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const n=t/2,r=Math.sin(n);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,n=t[0],r=t[4],s=t[8],a=t[1],o=t[5],l=t[9],c=t[2],u=t[6],d=t[10],f=n+o+d;if(f>0){const m=.5/Math.sqrt(f+1);this._w=.25/m,this._x=(u-l)*m,this._y=(s-c)*m,this._z=(a-r)*m}else if(n>o&&n>d){const m=2*Math.sqrt(1+n-o-d);this._w=(u-l)/m,this._x=.25*m,this._y=(r+a)/m,this._z=(s+c)/m}else if(o>d){const m=2*Math.sqrt(1+o-n-d);this._w=(s-c)/m,this._x=(r+a)/m,this._y=.25*m,this._z=(l+u)/m}else{const m=2*Math.sqrt(1+d-n-o);this._w=(a-r)/m,this._x=(s+c)/m,this._y=(l+u)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let n=e.dot(t)+1;return nMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=n):(this._x=0,this._y=-e.z,this._z=e.y,this._w=n)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=n),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(pt(this.dot(e),-1,1)))}rotateTowards(e,t){const n=this.angleTo(e);if(n===0)return this;const r=Math.min(1,t/n);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const n=e._x,r=e._y,s=e._z,a=e._w,o=t._x,l=t._y,c=t._z,u=t._w;return this._x=n*u+a*o+r*c-s*l,this._y=r*u+a*l+s*o-n*c,this._z=s*u+a*c+n*l-r*o,this._w=a*u-n*o-r*l-s*c,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);const n=this._x,r=this._y,s=this._z,a=this._w;let o=a*e._w+n*e._x+r*e._y+s*e._z;if(o<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,o=-o):this.copy(e),o>=1)return this._w=a,this._x=n,this._y=r,this._z=s,this;const l=1-o*o;if(l<=Number.EPSILON){const m=1-t;return this._w=m*a+t*this._w,this._x=m*n+t*this._x,this._y=m*r+t*this._y,this._z=m*s+t*this._z,this.normalize(),this}const c=Math.sqrt(l),u=Math.atan2(c,o),d=Math.sin((1-t)*u)/c,f=Math.sin(t*u)/c;return this._w=a*d+this._w*f,this._x=n*d+this._x*f,this._y=r*d+this._y*f,this._z=s*d+this._z*f,this._onChangeCallback(),this}slerpQuaternions(e,t,n){return this.copy(e).slerp(t,n)}random(){const e=2*Math.PI*Math.random(),t=2*Math.PI*Math.random(),n=Math.random(),r=Math.sqrt(1-n),s=Math.sqrt(n);return this.set(r*Math.sin(e),r*Math.cos(e),s*Math.sin(t),s*Math.cos(t))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class F{constructor(e=0,t=0,n=0){F.prototype.isVector3=!0,this.x=e,this.y=t,this.z=n}set(e,t,n){return n===void 0&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(fa.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(fa.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,n=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[3]*n+s[6]*r,this.y=s[1]*t+s[4]*n+s[7]*r,this.z=s[2]*t+s[5]*n+s[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,n=this.y,r=this.z,s=e.elements,a=1/(s[3]*t+s[7]*n+s[11]*r+s[15]);return this.x=(s[0]*t+s[4]*n+s[8]*r+s[12])*a,this.y=(s[1]*t+s[5]*n+s[9]*r+s[13])*a,this.z=(s[2]*t+s[6]*n+s[10]*r+s[14])*a,this}applyQuaternion(e){const t=this.x,n=this.y,r=this.z,s=e.x,a=e.y,o=e.z,l=e.w,c=2*(a*r-o*n),u=2*(o*t-s*r),d=2*(s*n-a*t);return this.x=t+l*c+a*d-o*u,this.y=n+l*u+o*c-s*d,this.z=r+l*d+s*u-a*c,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,n=this.y,r=this.z,s=e.elements;return this.x=s[0]*t+s[4]*n+s[8]*r,this.y=s[1]*t+s[5]*n+s[9]*r,this.z=s[2]*t+s[6]*n+s[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(e,Math.min(t,n)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,n){return this.x=e.x+(t.x-e.x)*n,this.y=e.y+(t.y-e.y)*n,this.z=e.z+(t.z-e.z)*n,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const n=e.x,r=e.y,s=e.z,a=t.x,o=t.y,l=t.z;return this.x=r*l-s*o,this.y=s*a-n*l,this.z=n*o-r*a,this}projectOnVector(e){const t=e.lengthSq();if(t===0)return this.set(0,0,0);const n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return Ur.copy(this).projectOnVector(e),this.sub(Ur)}reflect(e){return this.sub(Ur.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;const n=this.dot(e)/t;return Math.acos(pt(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y,r=this.z-e.z;return t*t+n*n+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,n){const r=Math.sin(t)*e;return this.x=r*Math.sin(n),this.y=Math.cos(t)*e,this.z=r*Math.cos(n),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,n){return this.x=e*Math.sin(t),this.y=n,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),n=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=Math.random()*Math.PI*2,t=Math.random()*2-1,n=Math.sqrt(1-t*t);return this.x=n*Math.cos(e),this.y=t,this.z=n*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const Ur=new F,fa=new Fn;class Li{constructor(e=new F(1/0,1/0,1/0),t=new F(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,n=e.length;tthis.max.x||e.ythis.max.y||e.zthis.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}intersectsSphere(e){return this.clampPoint(e.center,It),It.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,n;return e.normal.x>0?(t=e.normal.x*this.min.x,n=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,n=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,n+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,n+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,n+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,n+=e.normal.z*this.min.z),t<=-e.constant&&n>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Si),zi.subVectors(this.max,Si),Xn.subVectors(e.a,Si),Yn.subVectors(e.b,Si),qn.subVectors(e.c,Si),un.subVectors(Yn,Xn),hn.subVectors(qn,Yn),An.subVectors(Xn,qn);let t=[0,-un.z,un.y,0,-hn.z,hn.y,0,-An.z,An.y,un.z,0,-un.x,hn.z,0,-hn.x,An.z,0,-An.x,-un.y,un.x,0,-hn.y,hn.x,0,-An.y,An.x,0];return!Nr(t,Xn,Yn,qn,zi)||(t=[1,0,0,0,1,0,0,0,1],!Nr(t,Xn,Yn,qn,zi))?!1:(Hi.crossVectors(un,hn),t=[Hi.x,Hi.y,Hi.z],Nr(t,Xn,Yn,qn,zi))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,It).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(It).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Xt[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Xt[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Xt[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Xt[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Xt[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Xt[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Xt[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Xt[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Xt),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const Xt=[new F,new F,new F,new F,new F,new F,new F,new F],It=new F,Bi=new Li,Xn=new F,Yn=new F,qn=new F,un=new F,hn=new F,An=new F,Si=new F,zi=new F,Hi=new F,Tn=new F;function Nr(i,e,t,n,r){for(let s=0,a=i.length-3;s<=a;s+=3){Tn.fromArray(i,s);const o=r.x*Math.abs(Tn.x)+r.y*Math.abs(Tn.y)+r.z*Math.abs(Tn.z),l=e.dot(Tn),c=t.dot(Tn),u=n.dot(Tn);if(Math.max(-Math.max(l,c,u),Math.min(l,c,u))>o)return!1}return!0}const pc=new Li,Ei=new F,Fr=new F;class qs{constructor(e=new F,t=-1){this.isSphere=!0,this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const n=this.center;t!==void 0?n.copy(t):pc.setFromPoints(e).getCenter(n);let r=0;for(let s=0,a=e.length;sthis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;Ei.subVectors(e,this.center);const t=Ei.lengthSq();if(t>this.radius*this.radius){const n=Math.sqrt(t),r=(n-this.radius)*.5;this.center.addScaledVector(Ei,r/n),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(Fr.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(Ei.copy(e.center).add(Fr)),this.expandByPoint(Ei.copy(e.center).sub(Fr))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const Yt=new F,Or=new F,Vi=new F,dn=new F,Br=new F,ki=new F,zr=new F;class bo{constructor(e=new F,t=new F(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Yt)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const n=t.dot(this.direction);return n<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,n)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Yt.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Yt.copy(this.origin).addScaledVector(this.direction,t),Yt.distanceToSquared(e))}distanceSqToSegment(e,t,n,r){Or.copy(e).add(t).multiplyScalar(.5),Vi.copy(t).sub(e).normalize(),dn.copy(this.origin).sub(Or);const s=e.distanceTo(t)*.5,a=-this.direction.dot(Vi),o=dn.dot(this.direction),l=-dn.dot(Vi),c=dn.lengthSq(),u=Math.abs(1-a*a);let d,f,m,x;if(u>0)if(d=a*l-o,f=a*o-l,x=s*u,d>=0)if(f>=-x)if(f<=x){const S=1/u;d*=S,f*=S,m=d*(d+a*f+2*o)+f*(a*d+f+2*l)+c}else f=s,d=Math.max(0,-(a*f+o)),m=-d*d+f*(f+2*l)+c;else f=-s,d=Math.max(0,-(a*f+o)),m=-d*d+f*(f+2*l)+c;else f<=-x?(d=Math.max(0,-(-a*s+o)),f=d>0?-s:Math.min(Math.max(-s,-l),s),m=-d*d+f*(f+2*l)+c):f<=x?(d=0,f=Math.min(Math.max(-s,-l),s),m=f*(f+2*l)+c):(d=Math.max(0,-(a*s+o)),f=d>0?s:Math.min(Math.max(-s,-l),s),m=-d*d+f*(f+2*l)+c);else f=a>0?-s:s,d=Math.max(0,-(a*f+o)),m=-d*d+f*(f+2*l)+c;return n&&n.copy(this.origin).addScaledVector(this.direction,d),r&&r.copy(Or).addScaledVector(Vi,f),m}intersectSphere(e,t){Yt.subVectors(e.center,this.origin);const n=Yt.dot(this.direction),r=Yt.dot(Yt)-n*n,s=e.radius*e.radius;if(r>s)return null;const a=Math.sqrt(s-r),o=n-a,l=n+a;return l<0?null:o<0?this.at(l,t):this.at(o,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;const n=-(this.origin.dot(e.normal)+e.constant)/t;return n>=0?n:null}intersectPlane(e,t){const n=this.distanceToPlane(e);return n===null?null:this.at(n,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,r,s,a,o,l;const c=1/this.direction.x,u=1/this.direction.y,d=1/this.direction.z,f=this.origin;return c>=0?(n=(e.min.x-f.x)*c,r=(e.max.x-f.x)*c):(n=(e.max.x-f.x)*c,r=(e.min.x-f.x)*c),u>=0?(s=(e.min.y-f.y)*u,a=(e.max.y-f.y)*u):(s=(e.max.y-f.y)*u,a=(e.min.y-f.y)*u),n>a||s>r||((s>n||isNaN(n))&&(n=s),(a=0?(o=(e.min.z-f.z)*d,l=(e.max.z-f.z)*d):(o=(e.max.z-f.z)*d,l=(e.min.z-f.z)*d),n>l||o>r)||((o>n||n!==n)&&(n=o),(l=0?n:r,t)}intersectsBox(e){return this.intersectBox(e,Yt)!==null}intersectTriangle(e,t,n,r,s){Br.subVectors(t,e),ki.subVectors(n,e),zr.crossVectors(Br,ki);let a=this.direction.dot(zr),o;if(a>0){if(r)return null;o=1}else if(a<0)o=-1,a=-a;else return null;dn.subVectors(this.origin,e);const l=o*this.direction.dot(ki.crossVectors(dn,ki));if(l<0)return null;const c=o*this.direction.dot(Br.cross(dn));if(c<0||l+c>a)return null;const u=-o*dn.dot(zr);return u<0?null:this.at(u/a,s)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class at{constructor(e,t,n,r,s,a,o,l,c,u,d,f,m,x,S,p){at.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,n,r,s,a,o,l,c,u,d,f,m,x,S,p)}set(e,t,n,r,s,a,o,l,c,u,d,f,m,x,S,p){const h=this.elements;return h[0]=e,h[4]=t,h[8]=n,h[12]=r,h[1]=s,h[5]=a,h[9]=o,h[13]=l,h[2]=c,h[6]=u,h[10]=d,h[14]=f,h[3]=m,h[7]=x,h[11]=S,h[15]=p,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new at().fromArray(this.elements)}copy(e){const t=this.elements,n=e.elements;return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t[9]=n[9],t[10]=n[10],t[11]=n[11],t[12]=n[12],t[13]=n[13],t[14]=n[14],t[15]=n[15],this}copyPosition(e){const t=this.elements,n=e.elements;return t[12]=n[12],t[13]=n[13],t[14]=n[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,n){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),n.setFromMatrixColumn(this,2),this}makeBasis(e,t,n){return this.set(e.x,t.x,n.x,0,e.y,t.y,n.y,0,e.z,t.z,n.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,n=e.elements,r=1/$n.setFromMatrixColumn(e,0).length(),s=1/$n.setFromMatrixColumn(e,1).length(),a=1/$n.setFromMatrixColumn(e,2).length();return t[0]=n[0]*r,t[1]=n[1]*r,t[2]=n[2]*r,t[3]=0,t[4]=n[4]*s,t[5]=n[5]*s,t[6]=n[6]*s,t[7]=0,t[8]=n[8]*a,t[9]=n[9]*a,t[10]=n[10]*a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,n=e.x,r=e.y,s=e.z,a=Math.cos(n),o=Math.sin(n),l=Math.cos(r),c=Math.sin(r),u=Math.cos(s),d=Math.sin(s);if(e.order==="XYZ"){const f=a*u,m=a*d,x=o*u,S=o*d;t[0]=l*u,t[4]=-l*d,t[8]=c,t[1]=m+x*c,t[5]=f-S*c,t[9]=-o*l,t[2]=S-f*c,t[6]=x+m*c,t[10]=a*l}else if(e.order==="YXZ"){const f=l*u,m=l*d,x=c*u,S=c*d;t[0]=f+S*o,t[4]=x*o-m,t[8]=a*c,t[1]=a*d,t[5]=a*u,t[9]=-o,t[2]=m*o-x,t[6]=S+f*o,t[10]=a*l}else if(e.order==="ZXY"){const f=l*u,m=l*d,x=c*u,S=c*d;t[0]=f-S*o,t[4]=-a*d,t[8]=x+m*o,t[1]=m+x*o,t[5]=a*u,t[9]=S-f*o,t[2]=-a*c,t[6]=o,t[10]=a*l}else if(e.order==="ZYX"){const f=a*u,m=a*d,x=o*u,S=o*d;t[0]=l*u,t[4]=x*c-m,t[8]=f*c+S,t[1]=l*d,t[5]=S*c+f,t[9]=m*c-x,t[2]=-c,t[6]=o*l,t[10]=a*l}else if(e.order==="YZX"){const f=a*l,m=a*c,x=o*l,S=o*c;t[0]=l*u,t[4]=S-f*d,t[8]=x*d+m,t[1]=d,t[5]=a*u,t[9]=-o*u,t[2]=-c*u,t[6]=m*d+x,t[10]=f-S*d}else if(e.order==="XZY"){const f=a*l,m=a*c,x=o*l,S=o*c;t[0]=l*u,t[4]=-d,t[8]=c*u,t[1]=f*d+S,t[5]=a*u,t[9]=m*d-x,t[2]=x*d-m,t[6]=o*u,t[10]=S*d+f}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(mc,e,gc)}lookAt(e,t,n){const r=this.elements;return Tt.subVectors(e,t),Tt.lengthSq()===0&&(Tt.z=1),Tt.normalize(),fn.crossVectors(n,Tt),fn.lengthSq()===0&&(Math.abs(n.z)===1?Tt.x+=1e-4:Tt.z+=1e-4,Tt.normalize(),fn.crossVectors(n,Tt)),fn.normalize(),Gi.crossVectors(Tt,fn),r[0]=fn.x,r[4]=Gi.x,r[8]=Tt.x,r[1]=fn.y,r[5]=Gi.y,r[9]=Tt.y,r[2]=fn.z,r[6]=Gi.z,r[10]=Tt.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements,r=t.elements,s=this.elements,a=n[0],o=n[4],l=n[8],c=n[12],u=n[1],d=n[5],f=n[9],m=n[13],x=n[2],S=n[6],p=n[10],h=n[14],A=n[3],y=n[7],b=n[11],O=n[15],P=r[0],w=r[4],L=r[8],E=r[12],v=r[1],R=r[5],W=r[9],U=r[13],k=r[2],Y=r[6],H=r[10],K=r[14],q=r[3],se=r[7],ae=r[11],fe=r[15];return s[0]=a*P+o*v+l*k+c*q,s[4]=a*w+o*R+l*Y+c*se,s[8]=a*L+o*W+l*H+c*ae,s[12]=a*E+o*U+l*K+c*fe,s[1]=u*P+d*v+f*k+m*q,s[5]=u*w+d*R+f*Y+m*se,s[9]=u*L+d*W+f*H+m*ae,s[13]=u*E+d*U+f*K+m*fe,s[2]=x*P+S*v+p*k+h*q,s[6]=x*w+S*R+p*Y+h*se,s[10]=x*L+S*W+p*H+h*ae,s[14]=x*E+S*U+p*K+h*fe,s[3]=A*P+y*v+b*k+O*q,s[7]=A*w+y*R+b*Y+O*se,s[11]=A*L+y*W+b*H+O*ae,s[15]=A*E+y*U+b*K+O*fe,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],n=e[4],r=e[8],s=e[12],a=e[1],o=e[5],l=e[9],c=e[13],u=e[2],d=e[6],f=e[10],m=e[14],x=e[3],S=e[7],p=e[11],h=e[15];return x*(+s*l*d-r*c*d-s*o*f+n*c*f+r*o*m-n*l*m)+S*(+t*l*m-t*c*f+s*a*f-r*a*m+r*c*u-s*l*u)+p*(+t*c*d-t*o*m-s*a*d+n*a*m+s*o*u-n*c*u)+h*(-r*o*u-t*l*d+t*o*f+r*a*d-n*a*f+n*l*u)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,n){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=n),this}invert(){const e=this.elements,t=e[0],n=e[1],r=e[2],s=e[3],a=e[4],o=e[5],l=e[6],c=e[7],u=e[8],d=e[9],f=e[10],m=e[11],x=e[12],S=e[13],p=e[14],h=e[15],A=d*p*c-S*f*c+S*l*m-o*p*m-d*l*h+o*f*h,y=x*f*c-u*p*c-x*l*m+a*p*m+u*l*h-a*f*h,b=u*S*c-x*d*c+x*o*m-a*S*m-u*o*h+a*d*h,O=x*d*l-u*S*l-x*o*f+a*S*f+u*o*p-a*d*p,P=t*A+n*y+r*b+s*O;if(P===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const w=1/P;return e[0]=A*w,e[1]=(S*f*s-d*p*s-S*r*m+n*p*m+d*r*h-n*f*h)*w,e[2]=(o*p*s-S*l*s+S*r*c-n*p*c-o*r*h+n*l*h)*w,e[3]=(d*l*s-o*f*s-d*r*c+n*f*c+o*r*m-n*l*m)*w,e[4]=y*w,e[5]=(u*p*s-x*f*s+x*r*m-t*p*m-u*r*h+t*f*h)*w,e[6]=(x*l*s-a*p*s-x*r*c+t*p*c+a*r*h-t*l*h)*w,e[7]=(a*f*s-u*l*s+u*r*c-t*f*c-a*r*m+t*l*m)*w,e[8]=b*w,e[9]=(x*d*s-u*S*s-x*n*m+t*S*m+u*n*h-t*d*h)*w,e[10]=(a*S*s-x*o*s+x*n*c-t*S*c-a*n*h+t*o*h)*w,e[11]=(u*o*s-a*d*s-u*n*c+t*d*c+a*n*m-t*o*m)*w,e[12]=O*w,e[13]=(u*S*r-x*d*r+x*n*f-t*S*f-u*n*p+t*d*p)*w,e[14]=(x*o*r-a*S*r-x*n*l+t*S*l+a*n*p-t*o*p)*w,e[15]=(a*d*r-u*o*r+u*n*l-t*d*l-a*n*f+t*o*f)*w,this}scale(e){const t=this.elements,n=e.x,r=e.y,s=e.z;return t[0]*=n,t[4]*=r,t[8]*=s,t[1]*=n,t[5]*=r,t[9]*=s,t[2]*=n,t[6]*=r,t[10]*=s,t[3]*=n,t[7]*=r,t[11]*=s,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],n=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,r))}makeTranslation(e,t,n){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,n,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),n=Math.sin(e);return this.set(1,0,0,0,0,t,-n,0,0,n,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,0,n,0,0,1,0,0,-n,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,0,n,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const n=Math.cos(t),r=Math.sin(t),s=1-n,a=e.x,o=e.y,l=e.z,c=s*a,u=s*o;return this.set(c*a+n,c*o-r*l,c*l+r*o,0,c*o+r*l,u*o+n,u*l-r*a,0,c*l-r*o,u*l+r*a,s*l*l+n,0,0,0,0,1),this}makeScale(e,t,n){return this.set(e,0,0,0,0,t,0,0,0,0,n,0,0,0,0,1),this}makeShear(e,t,n,r,s,a){return this.set(1,n,s,0,e,1,a,0,t,r,1,0,0,0,0,1),this}compose(e,t,n){const r=this.elements,s=t._x,a=t._y,o=t._z,l=t._w,c=s+s,u=a+a,d=o+o,f=s*c,m=s*u,x=s*d,S=a*u,p=a*d,h=o*d,A=l*c,y=l*u,b=l*d,O=n.x,P=n.y,w=n.z;return r[0]=(1-(S+h))*O,r[1]=(m+b)*O,r[2]=(x-y)*O,r[3]=0,r[4]=(m-b)*P,r[5]=(1-(f+h))*P,r[6]=(p+A)*P,r[7]=0,r[8]=(x+y)*w,r[9]=(p-A)*w,r[10]=(1-(f+S))*w,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,n){const r=this.elements;let s=$n.set(r[0],r[1],r[2]).length();const a=$n.set(r[4],r[5],r[6]).length(),o=$n.set(r[8],r[9],r[10]).length();this.determinant()<0&&(s=-s),e.x=r[12],e.y=r[13],e.z=r[14],Ut.copy(this);const c=1/s,u=1/a,d=1/o;return Ut.elements[0]*=c,Ut.elements[1]*=c,Ut.elements[2]*=c,Ut.elements[4]*=u,Ut.elements[5]*=u,Ut.elements[6]*=u,Ut.elements[8]*=d,Ut.elements[9]*=d,Ut.elements[10]*=d,t.setFromRotationMatrix(Ut),n.x=s,n.y=a,n.z=o,this}makePerspective(e,t,n,r,s,a,o=nn){const l=this.elements,c=2*s/(t-e),u=2*s/(n-r),d=(t+e)/(t-e),f=(n+r)/(n-r);let m,x;if(o===nn)m=-(a+s)/(a-s),x=-2*a*s/(a-s);else if(o===_r)m=-a/(a-s),x=-a*s/(a-s);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+o);return l[0]=c,l[4]=0,l[8]=d,l[12]=0,l[1]=0,l[5]=u,l[9]=f,l[13]=0,l[2]=0,l[6]=0,l[10]=m,l[14]=x,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(e,t,n,r,s,a,o=nn){const l=this.elements,c=1/(t-e),u=1/(n-r),d=1/(a-s),f=(t+e)*c,m=(n+r)*u;let x,S;if(o===nn)x=(a+s)*d,S=-2*d;else if(o===_r)x=s*d,S=-1*d;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+o);return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-f,l[1]=0,l[5]=2*u,l[9]=0,l[13]=-m,l[2]=0,l[6]=0,l[10]=S,l[14]=-x,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(e){const t=this.elements,n=e.elements;for(let r=0;r<16;r++)if(t[r]!==n[r])return!1;return!0}fromArray(e,t=0){for(let n=0;n<16;n++)this.elements[n]=e[n+t];return this}toArray(e=[],t=0){const n=this.elements;return e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+3]=n[3],e[t+4]=n[4],e[t+5]=n[5],e[t+6]=n[6],e[t+7]=n[7],e[t+8]=n[8],e[t+9]=n[9],e[t+10]=n[10],e[t+11]=n[11],e[t+12]=n[12],e[t+13]=n[13],e[t+14]=n[14],e[t+15]=n[15],e}}const $n=new F,Ut=new at,mc=new F(0,0,0),gc=new F(1,1,1),fn=new F,Gi=new F,Tt=new F,pa=new at,ma=new Fn;class sn{constructor(e=0,t=0,n=0,r=sn.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=n,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,n,r=this._order){return this._x=e,this._y=t,this._z=n,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,n=!0){const r=e.elements,s=r[0],a=r[4],o=r[8],l=r[1],c=r[5],u=r[9],d=r[2],f=r[6],m=r[10];switch(t){case"XYZ":this._y=Math.asin(pt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-u,m),this._z=Math.atan2(-a,s)):(this._x=Math.atan2(f,c),this._z=0);break;case"YXZ":this._x=Math.asin(-pt(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(o,m),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-d,s),this._z=0);break;case"ZXY":this._x=Math.asin(pt(f,-1,1)),Math.abs(f)<.9999999?(this._y=Math.atan2(-d,m),this._z=Math.atan2(-a,c)):(this._y=0,this._z=Math.atan2(l,s));break;case"ZYX":this._y=Math.asin(-pt(d,-1,1)),Math.abs(d)<.9999999?(this._x=Math.atan2(f,m),this._z=Math.atan2(l,s)):(this._x=0,this._z=Math.atan2(-a,c));break;case"YZX":this._z=Math.asin(pt(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-u,c),this._y=Math.atan2(-d,s)):(this._x=0,this._y=Math.atan2(o,m));break;case"XZY":this._z=Math.asin(-pt(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(f,c),this._y=Math.atan2(o,s)):(this._x=Math.atan2(-u,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,n===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return pa.makeRotationFromQuaternion(e),this.setFromRotationMatrix(pa,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return ma.setFromEuler(this),this.setFromQuaternion(ma,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}sn.DEFAULT_ORDER="XYZ";class wo{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let t=0;t1){for(let n=0;n0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(o=>({boxInitialized:o.boxInitialized,boxMin:o.box.min.toArray(),boxMax:o.box.max.toArray(),sphereInitialized:o.sphereInitialized,sphereRadius:o.sphere.radius,sphereCenter:o.sphere.center.toArray()})),r.maxInstanceCount=this._maxInstanceCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(e),this._colorsTexture!==null&&(r.colorsTexture=this._colorsTexture.toJSON(e)),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function s(o,l){return o[l.uuid]===void 0&&(o[l.uuid]=l.toJSON(e)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=s(e.geometries,this.geometry);const o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){const l=o.shapes;if(Array.isArray(l))for(let c=0,u=l.length;c0){r.children=[];for(let o=0;o0){r.animations=[];for(let o=0;o0&&(n.geometries=o),l.length>0&&(n.materials=l),c.length>0&&(n.textures=c),u.length>0&&(n.images=u),d.length>0&&(n.shapes=d),f.length>0&&(n.skeletons=f),m.length>0&&(n.animations=m),x.length>0&&(n.nodes=x)}return n.object=r,n;function a(o){const l=[];for(const c in o){const u=o[c];delete u.metadata,l.push(u)}return l}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let n=0;n0?r.multiplyScalar(1/Math.sqrt(s)):r.set(0,0,0)}static getBarycoord(e,t,n,r,s){Nt.subVectors(r,t),$t.subVectors(n,t),Vr.subVectors(e,t);const a=Nt.dot(Nt),o=Nt.dot($t),l=Nt.dot(Vr),c=$t.dot($t),u=$t.dot(Vr),d=a*c-o*o;if(d===0)return s.set(0,0,0),null;const f=1/d,m=(c*l-o*u)*f,x=(a*u-o*l)*f;return s.set(1-m-x,x,m)}static containsPoint(e,t,n,r){return this.getBarycoord(e,t,n,r,Kt)===null?!1:Kt.x>=0&&Kt.y>=0&&Kt.x+Kt.y<=1}static getInterpolation(e,t,n,r,s,a,o,l){return this.getBarycoord(e,t,n,r,Kt)===null?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(s,Kt.x),l.addScaledVector(a,Kt.y),l.addScaledVector(o,Kt.z),l)}static isFrontFacing(e,t,n,r){return Nt.subVectors(n,t),$t.subVectors(e,t),Nt.cross($t).dot(r)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,r){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,n,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return Nt.subVectors(this.c,this.b),$t.subVectors(this.a,this.b),Nt.cross($t).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Ht.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Ht.getBarycoord(e,this.a,this.b,this.c,t)}getInterpolation(e,t,n,r,s){return Ht.getInterpolation(e,this.a,this.b,this.c,t,n,r,s)}containsPoint(e){return Ht.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Ht.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const n=this.a,r=this.b,s=this.c;let a,o;Zn.subVectors(r,n),Jn.subVectors(s,n),kr.subVectors(e,n);const l=Zn.dot(kr),c=Jn.dot(kr);if(l<=0&&c<=0)return t.copy(n);Gr.subVectors(e,r);const u=Zn.dot(Gr),d=Jn.dot(Gr);if(u>=0&&d<=u)return t.copy(r);const f=l*d-u*c;if(f<=0&&l>=0&&u<=0)return a=l/(l-u),t.copy(n).addScaledVector(Zn,a);Wr.subVectors(e,s);const m=Zn.dot(Wr),x=Jn.dot(Wr);if(x>=0&&m<=x)return t.copy(s);const S=m*c-l*x;if(S<=0&&c>=0&&x<=0)return o=c/(c-x),t.copy(n).addScaledVector(Jn,o);const p=u*x-m*d;if(p<=0&&d-u>=0&&m-x>=0)return Sa.subVectors(s,r),o=(d-u)/(d-u+(m-x)),t.copy(r).addScaledVector(Sa,o);const h=1/(p+S+f);return a=S*h,o=f*h,t.copy(n).addScaledVector(Zn,a).addScaledVector(Jn,o)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const Ro={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},pn={h:0,s:0,l:0},Xi={h:0,s:0,l:0};function Xr(i,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?i+(e-i)*6*t:t<1/2?e:t<2/3?i+(e-i)*6*(2/3-t):i}class Xe{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,n)}set(e,t,n){if(t===void 0&&n===void 0){const r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,t,n);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=Ft){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,Ye.toWorkingColorSpace(this,t),this}setRGB(e,t,n,r=Ye.workingColorSpace){return this.r=e,this.g=t,this.b=n,Ye.toWorkingColorSpace(this,r),this}setHSL(e,t,n,r=Ye.workingColorSpace){if(e=Ys(e,1),t=pt(t,0,1),n=pt(n,0,1),t===0)this.r=this.g=this.b=n;else{const s=n<=.5?n*(1+t):n+t-n*t,a=2*n-s;this.r=Xr(a,s,e+1/3),this.g=Xr(a,s,e),this.b=Xr(a,s,e-1/3)}return Ye.toWorkingColorSpace(this,r),this}setStyle(e,t=Ft){function n(s){s!==void 0&&parseFloat(s)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let s;const a=r[1],o=r[2];switch(a){case"rgb":case"rgba":if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,t);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,t);break;case"hsl":case"hsla":if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return n(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const s=r[1],a=s.length;if(a===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,t);if(a===6)return this.setHex(parseInt(s,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=Ft){const n=Ro[e.toLowerCase()];return n!==void 0?this.setHex(n,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=ui(e.r),this.g=ui(e.g),this.b=ui(e.b),this}copyLinearToSRGB(e){return this.r=Dr(e.r),this.g=Dr(e.g),this.b=Dr(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Ft){return Ye.fromWorkingColorSpace(gt.copy(this),e),Math.round(pt(gt.r*255,0,255))*65536+Math.round(pt(gt.g*255,0,255))*256+Math.round(pt(gt.b*255,0,255))}getHexString(e=Ft){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Ye.workingColorSpace){Ye.fromWorkingColorSpace(gt.copy(this),t);const n=gt.r,r=gt.g,s=gt.b,a=Math.max(n,r,s),o=Math.min(n,r,s);let l,c;const u=(o+a)/2;if(o===a)l=0,c=0;else{const d=a-o;switch(c=u<=.5?d/(a+o):d/(2-a-o),a){case n:l=(r-s)/d+(r0!=e>0&&this.version++,this._alphaTest=e}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const t in e){const n=e[t];if(n===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];if(r===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(n):r&&r.isVector3&&n&&n.isVector3?r.copy(n):this[t]=n}}toJSON(e){const t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});const n={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};n.uuid=this.uuid,n.type=this.type,this.name!==""&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),this.roughness!==void 0&&(n.roughness=this.roughness),this.metalness!==void 0&&(n.metalness=this.metalness),this.sheen!==void 0&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(n.shininess=this.shininess),this.clearcoat!==void 0&&(n.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(n.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(n.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,n.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.dispersion!==void 0&&(n.dispersion=this.dispersion),this.iridescence!==void 0&&(n.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(n.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(n.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(n.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(n.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(n.combine=this.combine)),this.envMapRotation!==void 0&&(n.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(n.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(n.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(n.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(n.size=this.size),this.shadowSide!==null&&(n.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==li&&(n.blending=this.blending),this.side!==En&&(n.side=this.side),this.vertexColors===!0&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),this.transparent===!0&&(n.transparent=!0),this.blendSrc!==rs&&(n.blendSrc=this.blendSrc),this.blendDst!==ss&&(n.blendDst=this.blendDst),this.blendEquation!==Ln&&(n.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(n.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(n.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(n.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(n.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(n.blendAlpha=this.blendAlpha),this.depthFunc!==fr&&(n.depthFunc=this.depthFunc),this.depthTest===!1&&(n.depthTest=this.depthTest),this.depthWrite===!1&&(n.depthWrite=this.depthWrite),this.colorWrite===!1&&(n.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(n.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==aa&&(n.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(n.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(n.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==Gn&&(n.stencilFail=this.stencilFail),this.stencilZFail!==Gn&&(n.stencilZFail=this.stencilZFail),this.stencilZPass!==Gn&&(n.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(n.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(n.rotation=this.rotation),this.polygonOffset===!0&&(n.polygonOffset=!0),this.polygonOffsetFactor!==0&&(n.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(n.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(n.linewidth=this.linewidth),this.dashSize!==void 0&&(n.dashSize=this.dashSize),this.gapSize!==void 0&&(n.gapSize=this.gapSize),this.scale!==void 0&&(n.scale=this.scale),this.dithering===!0&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),this.alphaHash===!0&&(n.alphaHash=!0),this.alphaToCoverage===!0&&(n.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=!0),this.forceSinglePass===!0&&(n.forceSinglePass=!0),this.wireframe===!0&&(n.wireframe=!0),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(n.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(n.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(n.flatShading=!0),this.visible===!1&&(n.visible=!1),this.toneMapped===!1&&(n.toneMapped=!1),this.fog===!1&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData);function r(s){const a=[];for(const o in s){const l=s[o];delete l.metadata,a.push(l)}return a}if(t){const s=r(e.textures),a=r(e.images);s.length>0&&(n.textures=s),a.length>0&&(n.images=a)}return n}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let n=null;if(t!==null){const r=t.length;n=new Array(r);for(let s=0;s!==r;++s)n[s]=t[s].clone()}return this.clippingPlanes=n,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}onBuild(){console.warn("Material: onBuild() has been removed.")}onBeforeRender(){console.warn("Material: onBeforeRender() has been removed.")}}class Co extends Sr{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Xe(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new sn,this.combine=lo,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const Qt=Ec();function Ec(){const i=new ArrayBuffer(4),e=new Float32Array(i),t=new Uint32Array(i),n=new Uint32Array(512),r=new Uint32Array(512);for(let l=0;l<256;++l){const c=l-127;c<-27?(n[l]=0,n[l|256]=32768,r[l]=24,r[l|256]=24):c<-14?(n[l]=1024>>-c-14,n[l|256]=1024>>-c-14|32768,r[l]=-c-1,r[l|256]=-c-1):c<=15?(n[l]=c+15<<10,n[l|256]=c+15<<10|32768,r[l]=13,r[l|256]=13):c<128?(n[l]=31744,n[l|256]=64512,r[l]=24,r[l|256]=24):(n[l]=31744,n[l|256]=64512,r[l]=13,r[l|256]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let l=1;l<1024;++l){let c=l<<13,u=0;for(;!(c&8388608);)c<<=1,u-=8388608;c&=-8388609,u+=947912704,s[l]=c|u}for(let l=1024;l<2048;++l)s[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)a[l]=l<<23;a[31]=1199570944,a[32]=2147483648;for(let l=33;l<63;++l)a[l]=2147483648+(l-32<<23);a[63]=3347054592;for(let l=1;l<64;++l)l!==32&&(o[l]=1024);return{floatView:e,uint32View:t,baseTable:n,shiftTable:r,mantissaTable:s,exponentTable:a,offsetTable:o}}function yc(i){Math.abs(i)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),i=pt(i,-65504,65504),Qt.floatView[0]=i;const e=Qt.uint32View[0],t=e>>23&511;return Qt.baseTable[t]+((e&8388607)>>Qt.shiftTable[t])}function Ac(i){const e=i>>10;return Qt.uint32View[0]=Qt.mantissaTable[Qt.offsetTable[e]+(i&1023)]+Qt.exponentTable[e],Qt.floatView[0]}const Yi={toHalfFloat:yc,fromHalfFloat:Ac},it=new F,qi=new De;class kt{constructor(e,t,n=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=n,this.usage=oa,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=Lt,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return yo("THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,t){this.updateRanges.push({start:e,count:t})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,n){e*=this.itemSize,n*=t.itemSize;for(let r=0,s=this.itemSize;r0&&(e.userData=this.userData),this.parameters!==void 0){const l=this.parameters;for(const c in l)l[c]!==void 0&&(e[c]=l[c]);return e}e.data={attributes:{}};const t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const n=this.attributes;for(const l in n){const c=n[l];e.data.attributes[l]=c.toJSON(e.data)}const r={};let s=!1;for(const l in this.morphAttributes){const c=this.morphAttributes[l],u=[];for(let d=0,f=c.length;d0&&(r[l]=u,s=!0)}s&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const a=this.groups;a.length>0&&(e.data.groups=JSON.parse(JSON.stringify(a)));const o=this.boundingSphere;return o!==null&&(e.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const t={};this.name=e.name;const n=e.index;n!==null&&this.setIndex(n.clone(t));const r=e.attributes;for(const c in r){const u=r[c];this.setAttribute(c,u.clone(t))}const s=e.morphAttributes;for(const c in s){const u=[],d=s[c];for(let f=0,m=d.length;f0){const r=t[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,a=r.length;s(e.far-e.near)**2))&&(Ea.copy(s).invert(),bn.copy(e.ray).applyMatrix4(Ea),!(n.boundingBox!==null&&bn.intersectsBox(n.boundingBox)===!1)&&this._computeIntersections(e,t,bn)))}_computeIntersections(e,t,n){let r;const s=this.geometry,a=this.material,o=s.index,l=s.attributes.position,c=s.attributes.uv,u=s.attributes.uv1,d=s.attributes.normal,f=s.groups,m=s.drawRange;if(o!==null)if(Array.isArray(a))for(let x=0,S=f.length;xt.far?null:{distance:c,point:er.clone(),object:i}}function tr(i,e,t,n,r,s,a,o,l,c){i.getVertexPosition(o,ei),i.getVertexPosition(l,ti),i.getVertexPosition(c,ni);const u=bc(i,e,t,n,ei,ti,ni,Qi);if(u){r&&(ji.fromBufferAttribute(r,o),Zi.fromBufferAttribute(r,l),Ji.fromBufferAttribute(r,c),u.uv=Ht.getInterpolation(Qi,ei,ti,ni,ji,Zi,Ji,new De)),s&&(ji.fromBufferAttribute(s,o),Zi.fromBufferAttribute(s,l),Ji.fromBufferAttribute(s,c),u.uv1=Ht.getInterpolation(Qi,ei,ti,ni,ji,Zi,Ji,new De)),a&&(Aa.fromBufferAttribute(a,o),Ta.fromBufferAttribute(a,l),ba.fromBufferAttribute(a,c),u.normal=Ht.getInterpolation(Qi,ei,ti,ni,Aa,Ta,ba,new F),u.normal.dot(n.direction)>0&&u.normal.multiplyScalar(-1));const d={a:o,b:l,c,normal:new F,materialIndex:0};Ht.getNormal(ei,ti,ni,d.normal),u.face=d}return u}class Di extends zn{constructor(e=1,t=1,n=1,r=1,s=1,a=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:n,widthSegments:r,heightSegments:s,depthSegments:a};const o=this;r=Math.floor(r),s=Math.floor(s),a=Math.floor(a);const l=[],c=[],u=[],d=[];let f=0,m=0;x("z","y","x",-1,-1,n,t,e,a,s,0),x("z","y","x",1,-1,n,t,-e,a,s,1),x("x","z","y",1,1,e,n,t,r,a,2),x("x","z","y",1,-1,e,n,-t,r,a,3),x("x","y","z",1,-1,e,t,n,r,s,4),x("x","y","z",-1,-1,e,t,-n,r,s,5),this.setIndex(l),this.setAttribute("position",new In(c,3)),this.setAttribute("normal",new In(u,3)),this.setAttribute("uv",new In(d,2));function x(S,p,h,A,y,b,O,P,w,L,E){const v=b/w,R=O/L,W=b/2,U=O/2,k=P/2,Y=w+1,H=L+1;let K=0,q=0;const se=new F;for(let ae=0;ae0?1:-1,u.push(se.x,se.y,se.z),d.push(ye/w),d.push(1-ae/L),K+=1}}for(let ae=0;ae0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const n={};for(const r in this.extensions)this.extensions[r]===!0&&(n[r]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}}class Io extends wt{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new at,this.projectionMatrix=new at,this.projectionMatrixInverse=new at,this.coordinateSystem=nn}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}const mn=new F,wa=new De,Ra=new De;class Pt extends Io{constructor(e=50,t=1,n=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=r,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=Ci*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(bi*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return Ci*2*Math.atan(Math.tan(bi*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,t,n){mn.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),t.set(mn.x,mn.y).multiplyScalar(-e/mn.z),mn.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(mn.x,mn.y).multiplyScalar(-e/mn.z)}getViewSize(e,t){return this.getViewBounds(e,wa,Ra),t.subVectors(Ra,wa)}setViewOffset(e,t,n,r,s,a){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=r,this.view.width=s,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(bi*.5*this.fov)/this.zoom,n=2*t,r=this.aspect*n,s=-.5*r;const a=this.view;if(this.view!==null&&this.view.enabled){const l=a.fullWidth,c=a.fullHeight;s+=a.offsetX*r/l,t-=a.offsetY*n/c,r*=a.width/l,n*=a.height/c}const o=this.filmOffset;o!==0&&(s+=e*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+r,t,t-n,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const ii=-90,ri=1;class Lc extends wt{constructor(e,t,n){super(),this.type="CubeCamera",this.renderTarget=n,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new Pt(ii,ri,e,t);r.layers=this.layers,this.add(r);const s=new Pt(ii,ri,e,t);s.layers=this.layers,this.add(s);const a=new Pt(ii,ri,e,t);a.layers=this.layers,this.add(a);const o=new Pt(ii,ri,e,t);o.layers=this.layers,this.add(o);const l=new Pt(ii,ri,e,t);l.layers=this.layers,this.add(l);const c=new Pt(ii,ri,e,t);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){const e=this.coordinateSystem,t=this.children.concat(),[n,r,s,a,o,l]=t;for(const c of t)this.remove(c);if(e===nn)n.up.set(0,1,0),n.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),a.up.set(0,0,1),a.lookAt(0,-1,0),o.up.set(0,1,0),o.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(e===_r)n.up.set(0,-1,0),n.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),a.up.set(0,0,-1),a.lookAt(0,-1,0),o.up.set(0,-1,0),o.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const c of t)this.add(c),c.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();const{renderTarget:n,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[s,a,o,l,c,u]=this.children,d=e.getRenderTarget(),f=e.getActiveCubeFace(),m=e.getActiveMipmapLevel(),x=e.xr.enabled;e.xr.enabled=!1;const S=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0,r),e.render(t,s),e.setRenderTarget(n,1,r),e.render(t,a),e.setRenderTarget(n,2,r),e.render(t,o),e.setRenderTarget(n,3,r),e.render(t,l),e.setRenderTarget(n,4,r),e.render(t,c),n.texture.generateMipmaps=S,e.setRenderTarget(n,5,r),e.render(t,u),e.setRenderTarget(d,f,m),e.xr.enabled=x,n.texture.needsPMREMUpdate=!0}}class Uo extends Mt{constructor(e,t,n,r,s,a,o,l,c,u){e=e!==void 0?e:[],t=t!==void 0?t:hi,super(e,t,n,r,s,a,o,l,c,u),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class Dc extends Nn{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const n={width:e,height:e,depth:1},r=[n,n,n,n,n,n];this.texture=new Uo(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:_t}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:` + + varying vec3 vWorldDirection; + + vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); + + } + + void main() { + + vWorldDirection = transformDirection( position, modelMatrix ); + + #include + #include + + } + `,fragmentShader:` + + uniform sampler2D tEquirect; + + varying vec3 vWorldDirection; + + #include + + void main() { + + vec3 direction = normalize( vWorldDirection ); + + vec2 sampleUV = equirectUv( direction ); + + gl_FragColor = texture2D( tEquirect, sampleUV ); + + } + `},r=new Di(5,5,5),s=new an({name:"CubemapFromEquirect",uniforms:mi(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:Et,blending:Mn});s.uniforms.tEquirect.value=t;const a=new Vt(r,s),o=t.minFilter;return t.minFilter===xn&&(t.minFilter=_t),new Lc(1,10,this).update(e,a),t.minFilter=o,a.geometry.dispose(),a.material.dispose(),this}clear(e,t,n,r){const s=e.getRenderTarget();for(let a=0;a<6;a++)e.setRenderTarget(this,a),e.clear(t,n,r);e.setRenderTarget(s)}}const $r=new F,Ic=new F,Uc=new Fe;class gn{constructor(e=new F(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,n,r){return this.normal.set(e,t,n),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,n){const r=$r.subVectors(n,t).cross(Ic.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,t){return t.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const n=e.delta($r),r=this.normal.dot(n);if(r===0)return this.distanceToPoint(e.start)===0?t.copy(e.start):null;const s=-(e.start.dot(this.normal)+this.constant)/r;return s<0||s>1?null:t.copy(e.start).addScaledVector(n,s)}intersectsLine(e){const t=this.distanceToPoint(e.start),n=this.distanceToPoint(e.end);return t<0&&n>0||n<0&&t>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,t){const n=t||Uc.getNormalMatrix(e),r=this.coplanarPoint($r).applyMatrix4(e),s=this.normal.applyMatrix3(n).normalize();return this.constant=-r.dot(s),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const wn=new qs,nr=new F;class No{constructor(e=new gn,t=new gn,n=new gn,r=new gn,s=new gn,a=new gn){this.planes=[e,t,n,r,s,a]}set(e,t,n,r,s,a){const o=this.planes;return o[0].copy(e),o[1].copy(t),o[2].copy(n),o[3].copy(r),o[4].copy(s),o[5].copy(a),this}copy(e){const t=this.planes;for(let n=0;n<6;n++)t[n].copy(e.planes[n]);return this}setFromProjectionMatrix(e,t=nn){const n=this.planes,r=e.elements,s=r[0],a=r[1],o=r[2],l=r[3],c=r[4],u=r[5],d=r[6],f=r[7],m=r[8],x=r[9],S=r[10],p=r[11],h=r[12],A=r[13],y=r[14],b=r[15];if(n[0].setComponents(l-s,f-c,p-m,b-h).normalize(),n[1].setComponents(l+s,f+c,p+m,b+h).normalize(),n[2].setComponents(l+a,f+u,p+x,b+A).normalize(),n[3].setComponents(l-a,f-u,p-x,b-A).normalize(),n[4].setComponents(l-o,f-d,p-S,b-y).normalize(),t===nn)n[5].setComponents(l+o,f+d,p+S,b+y).normalize();else if(t===_r)n[5].setComponents(o,d,S,y).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+t);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),wn.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;t.boundingSphere===null&&t.computeBoundingSphere(),wn.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(wn)}intersectsSprite(e){return wn.center.set(0,0,0),wn.radius=.7071067811865476,wn.applyMatrix4(e.matrixWorld),this.intersectsSphere(wn)}intersectsSphere(e){const t=this.planes,n=e.center,r=-e.radius;for(let s=0;s<6;s++)if(t[s].distanceToPoint(n)0?e.max.x:e.min.x,nr.y=r.normal.y>0?e.max.y:e.min.y,nr.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(nr)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let n=0;n<6;n++)if(t[n].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function Fo(){let i=null,e=!1,t=null,n=null;function r(s,a){t(s,a),n=i.requestAnimationFrame(r)}return{start:function(){e!==!0&&t!==null&&(n=i.requestAnimationFrame(r),e=!0)},stop:function(){i.cancelAnimationFrame(n),e=!1},setAnimationLoop:function(s){t=s},setContext:function(s){i=s}}}function Nc(i){const e=new WeakMap;function t(o,l){const c=o.array,u=o.usage,d=c.byteLength,f=i.createBuffer();i.bindBuffer(l,f),i.bufferData(l,c,u),o.onUploadCallback();let m;if(c instanceof Float32Array)m=i.FLOAT;else if(c instanceof Uint16Array)o.isFloat16BufferAttribute?m=i.HALF_FLOAT:m=i.UNSIGNED_SHORT;else if(c instanceof Int16Array)m=i.SHORT;else if(c instanceof Uint32Array)m=i.UNSIGNED_INT;else if(c instanceof Int32Array)m=i.INT;else if(c instanceof Int8Array)m=i.BYTE;else if(c instanceof Uint8Array)m=i.UNSIGNED_BYTE;else if(c instanceof Uint8ClampedArray)m=i.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+c);return{buffer:f,type:m,bytesPerElement:c.BYTES_PER_ELEMENT,version:o.version,size:d}}function n(o,l,c){const u=l.array,d=l._updateRange,f=l.updateRanges;if(i.bindBuffer(c,o),d.count===-1&&f.length===0&&i.bufferSubData(c,0,u),f.length!==0){for(let m=0,x=f.length;m 0 + vec4 plane; + #ifdef ALPHA_TO_COVERAGE + float distanceToPlane, distanceGradient; + float clipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + if ( clipOpacity == 0.0 ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + float unionClipOpacity = 1.0; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; + distanceGradient = fwidth( distanceToPlane ) / 2.0; + unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); + } + #pragma unroll_loop_end + clipOpacity *= 1.0 - unionClipOpacity; + #endif + diffuseColor.a *= clipOpacity; + if ( diffuseColor.a == 0.0 ) discard; + #else + #pragma unroll_loop_start + for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; + } + #pragma unroll_loop_end + #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES + bool clipped = true; + #pragma unroll_loop_start + for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { + plane = clippingPlanes[ i ]; + clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; + } + #pragma unroll_loop_end + if ( clipped ) discard; + #endif + #endif +#endif`,Jc=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; + uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; +#endif`,Qc=`#if NUM_CLIPPING_PLANES > 0 + varying vec3 vClipPosition; +#endif`,eu=`#if NUM_CLIPPING_PLANES > 0 + vClipPosition = - mvPosition.xyz; +#endif`,tu=`#if defined( USE_COLOR_ALPHA ) + diffuseColor *= vColor; +#elif defined( USE_COLOR ) + diffuseColor.rgb *= vColor; +#endif`,nu=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) + varying vec3 vColor; +#endif`,iu=`#if defined( USE_COLOR_ALPHA ) + varying vec4 vColor; +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) + varying vec3 vColor; +#endif`,ru=`#if defined( USE_COLOR_ALPHA ) + vColor = vec4( 1.0 ); +#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) + vColor = vec3( 1.0 ); +#endif +#ifdef USE_COLOR + vColor *= color; +#endif +#ifdef USE_INSTANCING_COLOR + vColor.xyz *= instanceColor.xyz; +#endif +#ifdef USE_BATCHING_COLOR + vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) ); + vColor.xyz *= batchingColor.xyz; +#endif`,su=`#define PI 3.141592653589793 +#define PI2 6.283185307179586 +#define PI_HALF 1.5707963267948966 +#define RECIPROCAL_PI 0.3183098861837907 +#define RECIPROCAL_PI2 0.15915494309189535 +#define EPSILON 1e-6 +#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +#define whiteComplement( a ) ( 1.0 - saturate( a ) ) +float pow2( const in float x ) { return x*x; } +vec3 pow2( const in vec3 x ) { return x*x; } +float pow3( const in float x ) { return x*x*x; } +float pow4( const in float x ) { float x2 = x*x; return x2*x2; } +float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } +float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } +highp float rand( const in vec2 uv ) { + const highp float a = 12.9898, b = 78.233, c = 43758.5453; + highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); + return fract( sin( sn ) * c ); +} +#ifdef HIGH_PRECISION + float precisionSafeLength( vec3 v ) { return length( v ); } +#else + float precisionSafeLength( vec3 v ) { + float maxComponent = max3( abs( v ) ); + return length( v / maxComponent ) * maxComponent; + } +#endif +struct IncidentLight { + vec3 color; + vec3 direction; + bool visible; +}; +struct ReflectedLight { + vec3 directDiffuse; + vec3 directSpecular; + vec3 indirectDiffuse; + vec3 indirectSpecular; +}; +#ifdef USE_ALPHAHASH + varying vec3 vPosition; +#endif +vec3 transformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); +} +vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { + return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); +} +mat3 transposeMat3( const in mat3 m ) { + mat3 tmp; + tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x ); + tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y ); + tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z ); + return tmp; +} +float luminance( const in vec3 rgb ) { + const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 ); + return dot( weights, rgb ); +} +bool isPerspectiveMatrix( mat4 m ) { + return m[ 2 ][ 3 ] == - 1.0; +} +vec2 equirectUv( in vec3 dir ) { + float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; + float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; + return vec2( u, v ); +} +vec3 BRDF_Lambert( const in vec3 diffuseColor ) { + return RECIPROCAL_PI * diffuseColor; +} +vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} +float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { + float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); + return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); +} // validated`,au=`#ifdef ENVMAP_TYPE_CUBE_UV + #define cubeUV_minMipLevel 4.0 + #define cubeUV_minTileSize 16.0 + float getFace( vec3 direction ) { + vec3 absDirection = abs( direction ); + float face = - 1.0; + if ( absDirection.x > absDirection.z ) { + if ( absDirection.x > absDirection.y ) + face = direction.x > 0.0 ? 0.0 : 3.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } else { + if ( absDirection.z > absDirection.y ) + face = direction.z > 0.0 ? 2.0 : 5.0; + else + face = direction.y > 0.0 ? 1.0 : 4.0; + } + return face; + } + vec2 getUV( vec3 direction, float face ) { + vec2 uv; + if ( face == 0.0 ) { + uv = vec2( direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 1.0 ) { + uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); + } else if ( face == 2.0 ) { + uv = vec2( - direction.x, direction.y ) / abs( direction.z ); + } else if ( face == 3.0 ) { + uv = vec2( - direction.z, direction.y ) / abs( direction.x ); + } else if ( face == 4.0 ) { + uv = vec2( - direction.x, direction.z ) / abs( direction.y ); + } else { + uv = vec2( direction.x, direction.y ) / abs( direction.z ); + } + return 0.5 * ( uv + 1.0 ); + } + vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { + float face = getFace( direction ); + float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); + mipInt = max( mipInt, cubeUV_minMipLevel ); + float faceSize = exp2( mipInt ); + highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; + if ( face > 2.0 ) { + uv.y += faceSize; + face -= 3.0; + } + uv.x += face * faceSize; + uv.x += filterInt * 3.0 * cubeUV_minTileSize; + uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); + uv.x *= CUBEUV_TEXEL_WIDTH; + uv.y *= CUBEUV_TEXEL_HEIGHT; + #ifdef texture2DGradEXT + return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; + #else + return texture2D( envMap, uv ).rgb; + #endif + } + #define cubeUV_r0 1.0 + #define cubeUV_m0 - 2.0 + #define cubeUV_r1 0.8 + #define cubeUV_m1 - 1.0 + #define cubeUV_r4 0.4 + #define cubeUV_m4 2.0 + #define cubeUV_r5 0.305 + #define cubeUV_m5 3.0 + #define cubeUV_r6 0.21 + #define cubeUV_m6 4.0 + float roughnessToMip( float roughness ) { + float mip = 0.0; + if ( roughness >= cubeUV_r1 ) { + mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; + } else if ( roughness >= cubeUV_r4 ) { + mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; + } else if ( roughness >= cubeUV_r5 ) { + mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; + } else if ( roughness >= cubeUV_r6 ) { + mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; + } else { + mip = - 2.0 * log2( 1.16 * roughness ); } + return mip; + } + vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { + float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); + float mipF = fract( mip ); + float mipInt = floor( mip ); + vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); + if ( mipF == 0.0 ) { + return vec4( color0, 1.0 ); + } else { + vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); + return vec4( mix( color0, color1, mipF ), 1.0 ); + } + } +#endif`,ou=`vec3 transformedNormal = objectNormal; +#ifdef USE_TANGENT + vec3 transformedTangent = objectTangent; +#endif +#ifdef USE_BATCHING + mat3 bm = mat3( batchingMatrix ); + transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); + transformedNormal = bm * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = bm * transformedTangent; + #endif +#endif +#ifdef USE_INSTANCING + mat3 im = mat3( instanceMatrix ); + transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); + transformedNormal = im * transformedNormal; + #ifdef USE_TANGENT + transformedTangent = im * transformedTangent; + #endif +#endif +transformedNormal = normalMatrix * transformedNormal; +#ifdef FLIP_SIDED + transformedNormal = - transformedNormal; +#endif +#ifdef USE_TANGENT + transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; + #ifdef FLIP_SIDED + transformedTangent = - transformedTangent; + #endif +#endif`,lu=`#ifdef USE_DISPLACEMENTMAP + uniform sampler2D displacementMap; + uniform float displacementScale; + uniform float displacementBias; +#endif`,cu=`#ifdef USE_DISPLACEMENTMAP + transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias ); +#endif`,uu=`#ifdef USE_EMISSIVEMAP + vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); + totalEmissiveRadiance *= emissiveColor.rgb; +#endif`,hu=`#ifdef USE_EMISSIVEMAP + uniform sampler2D emissiveMap; +#endif`,du="gl_FragColor = linearToOutputTexel( gl_FragColor );",fu=` +const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3( + vec3( 0.8224621, 0.177538, 0.0 ), + vec3( 0.0331941, 0.9668058, 0.0 ), + vec3( 0.0170827, 0.0723974, 0.9105199 ) +); +const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3( + vec3( 1.2249401, - 0.2249404, 0.0 ), + vec3( - 0.0420569, 1.0420571, 0.0 ), + vec3( - 0.0196376, - 0.0786361, 1.0982735 ) +); +vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) { + return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a ); +} +vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) { + return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a ); +} +vec4 LinearTransferOETF( in vec4 value ) { + return value; +} +vec4 sRGBTransferOETF( in vec4 value ) { + return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a ); +} +vec4 LinearToLinear( in vec4 value ) { + return value; +} +vec4 LinearTosRGB( in vec4 value ) { + return sRGBTransferOETF( value ); +}`,pu=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vec3 cameraToFrag; + if ( isOrthographic ) { + cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToFrag = normalize( vWorldPosition - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vec3 reflectVec = reflect( cameraToFrag, worldNormal ); + #else + vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); + #endif + #else + vec3 reflectVec = vReflect; + #endif + #ifdef ENVMAP_TYPE_CUBE + vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); + #else + vec4 envColor = vec4( 0.0 ); + #endif + #ifdef ENVMAP_BLENDING_MULTIPLY + outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_MIX ) + outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); + #elif defined( ENVMAP_BLENDING_ADD ) + outgoingLight += envColor.xyz * specularStrength * reflectivity; + #endif +#endif`,mu=`#ifdef USE_ENVMAP + uniform float envMapIntensity; + uniform float flipEnvMap; + uniform mat3 envMapRotation; + #ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; + #else + uniform sampler2D envMap; + #endif + +#endif`,gu=`#ifdef USE_ENVMAP + uniform float reflectivity; + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + varying vec3 vWorldPosition; + uniform float refractionRatio; + #else + varying vec3 vReflect; + #endif +#endif`,_u=`#ifdef USE_ENVMAP + #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) + #define ENV_WORLDPOS + #endif + #ifdef ENV_WORLDPOS + + varying vec3 vWorldPosition; + #else + varying vec3 vReflect; + uniform float refractionRatio; + #endif +#endif`,vu=`#ifdef USE_ENVMAP + #ifdef ENV_WORLDPOS + vWorldPosition = worldPosition.xyz; + #else + vec3 cameraToVertex; + if ( isOrthographic ) { + cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); + } else { + cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); + } + vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + #ifdef ENVMAP_MODE_REFLECTION + vReflect = reflect( cameraToVertex, worldNormal ); + #else + vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); + #endif + #endif +#endif`,xu=`#ifdef USE_FOG + vFogDepth = - mvPosition.z; +#endif`,Mu=`#ifdef USE_FOG + varying float vFogDepth; +#endif`,Su=`#ifdef USE_FOG + #ifdef FOG_EXP2 + float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); + #else + float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); + #endif + gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); +#endif`,Eu=`#ifdef USE_FOG + uniform vec3 fogColor; + varying float vFogDepth; + #ifdef FOG_EXP2 + uniform float fogDensity; + #else + uniform float fogNear; + uniform float fogFar; + #endif +#endif`,yu=`#ifdef USE_GRADIENTMAP + uniform sampler2D gradientMap; +#endif +vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { + float dotNL = dot( normal, lightDirection ); + vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); + #ifdef USE_GRADIENTMAP + return vec3( texture2D( gradientMap, coord ).r ); + #else + vec2 fw = fwidth( coord ) * 0.5; + return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); + #endif +}`,Au=`#ifdef USE_LIGHTMAP + uniform sampler2D lightMap; + uniform float lightMapIntensity; +#endif`,Tu=`LambertMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularStrength = specularStrength;`,bu=`varying vec3 vViewPosition; +struct LambertMaterial { + vec3 diffuseColor; + float specularStrength; +}; +void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Lambert +#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,wu=`uniform bool receiveShadow; +uniform vec3 ambientLightColor; +#if defined( USE_LIGHT_PROBES ) + uniform vec3 lightProbe[ 9 ]; +#endif +vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { + float x = normal.x, y = normal.y, z = normal.z; + vec3 result = shCoefficients[ 0 ] * 0.886227; + result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; + result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; + result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; + result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; + result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; + result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); + result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; + result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); + return result; +} +vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); + return irradiance; +} +vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { + vec3 irradiance = ambientLightColor; + return irradiance; +} +float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { + float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); + if ( cutoffDistance > 0.0 ) { + distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); + } + return distanceFalloff; +} +float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { + return smoothstep( coneCosine, penumbraCosine, angleCosine ); +} +#if NUM_DIR_LIGHTS > 0 + struct DirectionalLight { + vec3 direction; + vec3 color; + }; + uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; + void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { + light.color = directionalLight.color; + light.direction = directionalLight.direction; + light.visible = true; + } +#endif +#if NUM_POINT_LIGHTS > 0 + struct PointLight { + vec3 position; + vec3 color; + float distance; + float decay; + }; + uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; + void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = pointLight.position - geometryPosition; + light.direction = normalize( lVector ); + float lightDistance = length( lVector ); + light.color = pointLight.color; + light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } +#endif +#if NUM_SPOT_LIGHTS > 0 + struct SpotLight { + vec3 position; + vec3 direction; + vec3 color; + float distance; + float decay; + float coneCos; + float penumbraCos; + }; + uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; + void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { + vec3 lVector = spotLight.position - geometryPosition; + light.direction = normalize( lVector ); + float angleCos = dot( light.direction, spotLight.direction ); + float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); + if ( spotAttenuation > 0.0 ) { + float lightDistance = length( lVector ); + light.color = spotLight.color * spotAttenuation; + light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); + light.visible = ( light.color != vec3( 0.0 ) ); + } else { + light.color = vec3( 0.0 ); + light.visible = false; + } + } +#endif +#if NUM_RECT_AREA_LIGHTS > 0 + struct RectAreaLight { + vec3 color; + vec3 position; + vec3 halfWidth; + vec3 halfHeight; + }; + uniform sampler2D ltc_1; uniform sampler2D ltc_2; + uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; +#endif +#if NUM_HEMI_LIGHTS > 0 + struct HemisphereLight { + vec3 direction; + vec3 skyColor; + vec3 groundColor; + }; + uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; + vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { + float dotNL = dot( normal, hemiLight.direction ); + float hemiDiffuseWeight = 0.5 * dotNL + 0.5; + vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); + return irradiance; + } +#endif`,Ru=`#ifdef USE_ENVMAP + vec3 getIBLIrradiance( const in vec3 normal ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 ); + return PI * envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 reflectVec = reflect( - viewDir, normal ); + reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) ); + reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); + vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness ); + return envMapColor.rgb * envMapIntensity; + #else + return vec3( 0.0 ); + #endif + } + #ifdef USE_ANISOTROPY + vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { + #ifdef ENVMAP_TYPE_CUBE_UV + vec3 bentNormal = cross( bitangent, viewDir ); + bentNormal = normalize( cross( bentNormal, bitangent ) ); + bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); + return getIBLRadiance( viewDir, bentNormal, roughness ); + #else + return vec3( 0.0 ); + #endif + } + #endif +#endif`,Cu=`ToonMaterial material; +material.diffuseColor = diffuseColor.rgb;`,Pu=`varying vec3 vViewPosition; +struct ToonMaterial { + vec3 diffuseColor; +}; +void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_Toon +#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,Lu=`BlinnPhongMaterial material; +material.diffuseColor = diffuseColor.rgb; +material.specularColor = specular; +material.specularShininess = shininess; +material.specularStrength = specularStrength;`,Du=`varying vec3 vViewPosition; +struct BlinnPhongMaterial { + vec3 diffuseColor; + vec3 specularColor; + float specularShininess; + float specularStrength; +}; +void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); + reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; +} +void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +#define RE_Direct RE_Direct_BlinnPhong +#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,Iu=`PhysicalMaterial material; +material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor ); +vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); +float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); +material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; +material.roughness = min( material.roughness, 1.0 ); +#ifdef IOR + material.ior = ior; + #ifdef USE_SPECULAR + float specularIntensityFactor = specularIntensity; + vec3 specularColorFactor = specularColor; + #ifdef USE_SPECULAR_COLORMAP + specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; + #endif + material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); + #else + float specularIntensityFactor = 1.0; + vec3 specularColorFactor = vec3( 1.0 ); + material.specularF90 = 1.0; + #endif + material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor ); +#else + material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor ); + material.specularF90 = 1.0; +#endif +#ifdef USE_CLEARCOAT + material.clearcoat = clearcoat; + material.clearcoatRoughness = clearcoatRoughness; + material.clearcoatF0 = vec3( 0.04 ); + material.clearcoatF90 = 1.0; + #ifdef USE_CLEARCOATMAP + material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; + #endif + #ifdef USE_CLEARCOAT_ROUGHNESSMAP + material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; + #endif + material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); + material.clearcoatRoughness += geometryRoughness; + material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); +#endif +#ifdef USE_DISPERSION + material.dispersion = dispersion; +#endif +#ifdef USE_IRIDESCENCE + material.iridescence = iridescence; + material.iridescenceIOR = iridescenceIOR; + #ifdef USE_IRIDESCENCEMAP + material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; + #endif + #ifdef USE_IRIDESCENCE_THICKNESSMAP + material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; + #else + material.iridescenceThickness = iridescenceThicknessMaximum; + #endif +#endif +#ifdef USE_SHEEN + material.sheenColor = sheenColor; + #ifdef USE_SHEEN_COLORMAP + material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; + #endif + material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 ); + #ifdef USE_SHEEN_ROUGHNESSMAP + material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; + #endif +#endif +#ifdef USE_ANISOTROPY + #ifdef USE_ANISOTROPYMAP + mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); + vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; + vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; + #else + vec2 anisotropyV = anisotropyVector; + #endif + material.anisotropy = length( anisotropyV ); + if( material.anisotropy == 0.0 ) { + anisotropyV = vec2( 1.0, 0.0 ); + } else { + anisotropyV /= material.anisotropy; + material.anisotropy = saturate( material.anisotropy ); + } + material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) ); + material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; + material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; +#endif`,Uu=`struct PhysicalMaterial { + vec3 diffuseColor; + float roughness; + vec3 specularColor; + float specularF90; + float dispersion; + #ifdef USE_CLEARCOAT + float clearcoat; + float clearcoatRoughness; + vec3 clearcoatF0; + float clearcoatF90; + #endif + #ifdef USE_IRIDESCENCE + float iridescence; + float iridescenceIOR; + float iridescenceThickness; + vec3 iridescenceFresnel; + vec3 iridescenceF0; + #endif + #ifdef USE_SHEEN + vec3 sheenColor; + float sheenRoughness; + #endif + #ifdef IOR + float ior; + #endif + #ifdef USE_TRANSMISSION + float transmission; + float transmissionAlpha; + float thickness; + float attenuationDistance; + vec3 attenuationColor; + #endif + #ifdef USE_ANISOTROPY + float anisotropy; + float alphaT; + vec3 anisotropyT; + vec3 anisotropyB; + #endif +}; +vec3 clearcoatSpecularDirect = vec3( 0.0 ); +vec3 clearcoatSpecularIndirect = vec3( 0.0 ); +vec3 sheenSpecularDirect = vec3( 0.0 ); +vec3 sheenSpecularIndirect = vec3(0.0 ); +vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { + float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); + float x2 = x * x; + float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); + return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); +} +float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { + float a2 = pow2( alpha ); + float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); + float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); + return 0.5 / max( gv + gl, EPSILON ); +} +float D_GGX( const in float alpha, const in float dotNH ) { + float a2 = pow2( alpha ); + float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; + return RECIPROCAL_PI * a2 / pow2( denom ); +} +#ifdef USE_ANISOTROPY + float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { + float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); + float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); + float v = 0.5 / ( gv + gl ); + return saturate(v); + } + float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { + float a2 = alphaT * alphaB; + highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); + highp float v2 = dot( v, v ); + float w2 = a2 / v2; + return RECIPROCAL_PI * a2 * pow2 ( w2 ); + } +#endif +#ifdef USE_CLEARCOAT + vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { + vec3 f0 = material.clearcoatF0; + float f90 = material.clearcoatF90; + float roughness = material.clearcoatRoughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + return F * ( V * D ); + } +#endif +vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { + vec3 f0 = material.specularColor; + float f90 = material.specularF90; + float roughness = material.roughness; + float alpha = pow2( roughness ); + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float dotVH = saturate( dot( viewDir, halfDir ) ); + vec3 F = F_Schlick( f0, f90, dotVH ); + #ifdef USE_IRIDESCENCE + F = mix( F, material.iridescenceFresnel, material.iridescence ); + #endif + #ifdef USE_ANISOTROPY + float dotTL = dot( material.anisotropyT, lightDir ); + float dotTV = dot( material.anisotropyT, viewDir ); + float dotTH = dot( material.anisotropyT, halfDir ); + float dotBL = dot( material.anisotropyB, lightDir ); + float dotBV = dot( material.anisotropyB, viewDir ); + float dotBH = dot( material.anisotropyB, halfDir ); + float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); + float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); + #else + float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); + float D = D_GGX( alpha, dotNH ); + #endif + return F * ( V * D ); +} +vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { + const float LUT_SIZE = 64.0; + const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; + const float LUT_BIAS = 0.5 / LUT_SIZE; + float dotNV = saturate( dot( N, V ) ); + vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); + uv = uv * LUT_SCALE + LUT_BIAS; + return uv; +} +float LTC_ClippedSphereFormFactor( const in vec3 f ) { + float l = length( f ); + return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); +} +vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { + float x = dot( v1, v2 ); + float y = abs( x ); + float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; + float b = 3.4175940 + ( 4.1616724 + y ) * y; + float v = a / b; + float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; + return cross( v1, v2 ) * theta_sintheta; +} +vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { + vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; + vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; + vec3 lightNormal = cross( v1, v2 ); + if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); + vec3 T1, T2; + T1 = normalize( V - N * dot( V, N ) ); + T2 = - cross( N, T1 ); + mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) ); + vec3 coords[ 4 ]; + coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); + coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); + coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); + coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); + coords[ 0 ] = normalize( coords[ 0 ] ); + coords[ 1 ] = normalize( coords[ 1 ] ); + coords[ 2 ] = normalize( coords[ 2 ] ); + coords[ 3 ] = normalize( coords[ 3 ] ); + vec3 vectorFormFactor = vec3( 0.0 ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); + vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); + float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); + return vec3( result ); +} +#if defined( USE_SHEEN ) +float D_Charlie( float roughness, float dotNH ) { + float alpha = pow2( roughness ); + float invAlpha = 1.0 / alpha; + float cos2h = dotNH * dotNH; + float sin2h = max( 1.0 - cos2h, 0.0078125 ); + return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); +} +float V_Neubelt( float dotNV, float dotNL ) { + return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); +} +vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { + vec3 halfDir = normalize( lightDir + viewDir ); + float dotNL = saturate( dot( normal, lightDir ) ); + float dotNV = saturate( dot( normal, viewDir ) ); + float dotNH = saturate( dot( normal, halfDir ) ); + float D = D_Charlie( sheenRoughness, dotNH ); + float V = V_Neubelt( dotNV, dotNL ); + return sheenColor * ( D * V ); +} +#endif +float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + float r2 = roughness * roughness; + float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95; + float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72; + float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) ); + return saturate( DG * RECIPROCAL_PI ); +} +vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { + float dotNV = saturate( dot( normal, viewDir ) ); + const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 ); + const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 ); + vec4 r = roughness * c0 + c1; + float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y; + vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw; + return fab; +} +vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { + vec2 fab = DFGApprox( normal, viewDir, roughness ); + return specularColor * fab.x + specularF90 * fab.y; +} +#ifdef USE_IRIDESCENCE +void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#else +void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { +#endif + vec2 fab = DFGApprox( normal, viewDir, roughness ); + #ifdef USE_IRIDESCENCE + vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); + #else + vec3 Fr = specularColor; + #endif + vec3 FssEss = Fr * fab.x + specularF90 * fab.y; + float Ess = fab.x + fab.y; + float Ems = 1.0 - Ess; + vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); + singleScatter += FssEss; + multiScatter += Fms * Ems; +} +#if NUM_RECT_AREA_LIGHTS > 0 + void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + vec3 normal = geometryNormal; + vec3 viewDir = geometryViewDir; + vec3 position = geometryPosition; + vec3 lightPos = rectAreaLight.position; + vec3 halfWidth = rectAreaLight.halfWidth; + vec3 halfHeight = rectAreaLight.halfHeight; + vec3 lightColor = rectAreaLight.color; + float roughness = material.roughness; + vec3 rectCoords[ 4 ]; + rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; + rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; + rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; + vec2 uv = LTC_Uv( normal, viewDir, roughness ); + vec4 t1 = texture2D( ltc_1, uv ); + vec4 t2 = texture2D( ltc_2, uv ); + mat3 mInv = mat3( + vec3( t1.x, 0, t1.y ), + vec3( 0, 1, 0 ), + vec3( t1.z, 0, t1.w ) + ); + vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y ); + reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); + reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); + } +#endif +void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); + vec3 irradiance = dotNL * directLight.color; + #ifdef USE_CLEARCOAT + float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); + vec3 ccIrradiance = dotNLcc * directLight.color; + clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); + #endif + #ifdef USE_SHEEN + sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); + #endif + reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material ); + reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { + reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); +} +void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { + #ifdef USE_CLEARCOAT + clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); + #endif + #ifdef USE_SHEEN + sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); + #endif + vec3 singleScattering = vec3( 0.0 ); + vec3 multiScattering = vec3( 0.0 ); + vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; + #ifdef USE_IRIDESCENCE + computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering ); + #else + computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering ); + #endif + vec3 totalScattering = singleScattering + multiScattering; + vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) ); + reflectedLight.indirectSpecular += radiance * singleScattering; + reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance; + reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance; +} +#define RE_Direct RE_Direct_Physical +#define RE_Direct_RectArea RE_Direct_RectArea_Physical +#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical +#define RE_IndirectSpecular RE_IndirectSpecular_Physical +float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { + return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); +}`,Nu=` +vec3 geometryPosition = - vViewPosition; +vec3 geometryNormal = normal; +vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); +vec3 geometryClearcoatNormal = vec3( 0.0 ); +#ifdef USE_CLEARCOAT + geometryClearcoatNormal = clearcoatNormal; +#endif +#ifdef USE_IRIDESCENCE + float dotNVi = saturate( dot( normal, geometryViewDir ) ); + if ( material.iridescenceThickness == 0.0 ) { + material.iridescence = 0.0; + } else { + material.iridescence = saturate( material.iridescence ); + } + if ( material.iridescence > 0.0 ) { + material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); + material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); + } +#endif +IncidentLight directLight; +#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) + PointLight pointLight; + #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { + pointLight = pointLights[ i ]; + getPointLightInfo( pointLight, geometryPosition, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) + pointLightShadow = pointLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) + SpotLight spotLight; + vec4 spotColor; + vec3 spotLightCoord; + bool inSpotLightMap; + #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { + spotLight = spotLights[ i ]; + getSpotLightInfo( spotLight, geometryPosition, directLight ); + #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX + #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS + #else + #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) + #endif + #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) + spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; + inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); + spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); + directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; + #endif + #undef SPOT_LIGHT_MAP_INDEX + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + spotLightShadow = spotLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) + DirectionalLight directionalLight; + #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLightShadow; + #endif + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { + directionalLight = directionalLights[ i ]; + getDirectionalLightInfo( directionalLight, directLight ); + #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) + directionalLightShadow = directionalLightShadows[ i ]; + directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + #endif + RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) + RectAreaLight rectAreaLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { + rectAreaLight = rectAreaLights[ i ]; + RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); + } + #pragma unroll_loop_end +#endif +#if defined( RE_IndirectDiffuse ) + vec3 iblIrradiance = vec3( 0.0 ); + vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); + #if defined( USE_LIGHT_PROBES ) + irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); + #endif + #if ( NUM_HEMI_LIGHTS > 0 ) + #pragma unroll_loop_start + for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { + irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); + } + #pragma unroll_loop_end + #endif +#endif +#if defined( RE_IndirectSpecular ) + vec3 radiance = vec3( 0.0 ); + vec3 clearcoatRadiance = vec3( 0.0 ); +#endif`,Fu=`#if defined( RE_IndirectDiffuse ) + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; + irradiance += lightMapIrradiance; + #endif + #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV ) + iblIrradiance += getIBLIrradiance( geometryNormal ); + #endif +#endif +#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) + #ifdef USE_ANISOTROPY + radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); + #else + radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); + #endif + #ifdef USE_CLEARCOAT + clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); + #endif +#endif`,Ou=`#if defined( RE_IndirectDiffuse ) + RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif +#if defined( RE_IndirectSpecular ) + RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); +#endif`,Bu=`#if defined( USE_LOGDEPTHBUF ) + gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; +#endif`,zu=`#if defined( USE_LOGDEPTHBUF ) + uniform float logDepthBufFC; + varying float vFragDepth; + varying float vIsPerspective; +#endif`,Hu=`#ifdef USE_LOGDEPTHBUF + varying float vFragDepth; + varying float vIsPerspective; +#endif`,Vu=`#ifdef USE_LOGDEPTHBUF + vFragDepth = 1.0 + gl_Position.w; + vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); +#endif`,ku=`#ifdef USE_MAP + vec4 sampledDiffuseColor = texture2D( map, vMapUv ); + #ifdef DECODE_VIDEO_TEXTURE + sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w ); + + #endif + diffuseColor *= sampledDiffuseColor; +#endif`,Gu=`#ifdef USE_MAP + uniform sampler2D map; +#endif`,Wu=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + #if defined( USE_POINTS_UV ) + vec2 uv = vUv; + #else + vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; + #endif +#endif +#ifdef USE_MAP + diffuseColor *= texture2D( map, uv ); +#endif +#ifdef USE_ALPHAMAP + diffuseColor.a *= texture2D( alphaMap, uv ).g; +#endif`,Xu=`#if defined( USE_POINTS_UV ) + varying vec2 vUv; +#else + #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) + uniform mat3 uvTransform; + #endif +#endif +#ifdef USE_MAP + uniform sampler2D map; +#endif +#ifdef USE_ALPHAMAP + uniform sampler2D alphaMap; +#endif`,Yu=`float metalnessFactor = metalness; +#ifdef USE_METALNESSMAP + vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); + metalnessFactor *= texelMetalness.b; +#endif`,qu=`#ifdef USE_METALNESSMAP + uniform sampler2D metalnessMap; +#endif`,$u=`#ifdef USE_INSTANCING_MORPH + float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r; + } +#endif`,Ku=`#if defined( USE_MORPHCOLORS ) + vColor *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + #if defined( USE_COLOR_ALPHA ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; + #elif defined( USE_COLOR ) + if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; + #endif + } +#endif`,ju=`#ifdef USE_MORPHNORMALS + objectNormal *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; + } +#endif`,Zu=`#ifdef USE_MORPHTARGETS + #ifndef USE_INSTANCING_MORPH + uniform float morphTargetBaseInfluence; + uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; + #endif + uniform sampler2DArray morphTargetsTexture; + uniform ivec2 morphTargetsTextureSize; + vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { + int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; + int y = texelIndex / morphTargetsTextureSize.x; + int x = texelIndex - y * morphTargetsTextureSize.x; + ivec3 morphUV = ivec3( x, y, morphTargetIndex ); + return texelFetch( morphTargetsTexture, morphUV, 0 ); + } +#endif`,Ju=`#ifdef USE_MORPHTARGETS + transformed *= morphTargetBaseInfluence; + for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { + if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; + } +#endif`,Qu=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; +#ifdef FLAT_SHADED + vec3 fdx = dFdx( vViewPosition ); + vec3 fdy = dFdy( vViewPosition ); + vec3 normal = normalize( cross( fdx, fdy ) ); +#else + vec3 normal = normalize( vNormal ); + #ifdef DOUBLE_SIDED + normal *= faceDirection; + #endif +#endif +#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) + #ifdef USE_TANGENT + mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn = getTangentFrame( - vViewPosition, normal, + #if defined( USE_NORMALMAP ) + vNormalMapUv + #elif defined( USE_CLEARCOAT_NORMALMAP ) + vClearcoatNormalMapUv + #else + vUv + #endif + ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn[0] *= faceDirection; + tbn[1] *= faceDirection; + #endif +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + #ifdef USE_TANGENT + mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); + #else + mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); + #endif + #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) + tbn2[0] *= faceDirection; + tbn2[1] *= faceDirection; + #endif +#endif +vec3 nonPerturbedNormal = normal;`,eh=`#ifdef USE_NORMALMAP_OBJECTSPACE + normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + #ifdef FLIP_SIDED + normal = - normal; + #endif + #ifdef DOUBLE_SIDED + normal = normal * faceDirection; + #endif + normal = normalize( normalMatrix * normal ); +#elif defined( USE_NORMALMAP_TANGENTSPACE ) + vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; + mapN.xy *= normalScale; + normal = normalize( tbn * mapN ); +#elif defined( USE_BUMPMAP ) + normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); +#endif`,th=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,nh=`#ifndef FLAT_SHADED + varying vec3 vNormal; + #ifdef USE_TANGENT + varying vec3 vTangent; + varying vec3 vBitangent; + #endif +#endif`,ih=`#ifndef FLAT_SHADED + vNormal = normalize( transformedNormal ); + #ifdef USE_TANGENT + vTangent = normalize( transformedTangent ); + vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); + #endif +#endif`,rh=`#ifdef USE_NORMALMAP + uniform sampler2D normalMap; + uniform vec2 normalScale; +#endif +#ifdef USE_NORMALMAP_OBJECTSPACE + uniform mat3 normalMatrix; +#endif +#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) + mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { + vec3 q0 = dFdx( eye_pos.xyz ); + vec3 q1 = dFdy( eye_pos.xyz ); + vec2 st0 = dFdx( uv.st ); + vec2 st1 = dFdy( uv.st ); + vec3 N = surf_norm; + vec3 q1perp = cross( q1, N ); + vec3 q0perp = cross( N, q0 ); + vec3 T = q1perp * st0.x + q0perp * st1.x; + vec3 B = q1perp * st0.y + q0perp * st1.y; + float det = max( dot( T, T ), dot( B, B ) ); + float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); + return mat3( T * scale, B * scale, N ); + } +#endif`,sh=`#ifdef USE_CLEARCOAT + vec3 clearcoatNormal = nonPerturbedNormal; +#endif`,ah=`#ifdef USE_CLEARCOAT_NORMALMAP + vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; + clearcoatMapN.xy *= clearcoatNormalScale; + clearcoatNormal = normalize( tbn2 * clearcoatMapN ); +#endif`,oh=`#ifdef USE_CLEARCOATMAP + uniform sampler2D clearcoatMap; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform sampler2D clearcoatNormalMap; + uniform vec2 clearcoatNormalScale; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform sampler2D clearcoatRoughnessMap; +#endif`,lh=`#ifdef USE_IRIDESCENCEMAP + uniform sampler2D iridescenceMap; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform sampler2D iridescenceThicknessMap; +#endif`,ch=`#ifdef OPAQUE +diffuseColor.a = 1.0; +#endif +#ifdef USE_TRANSMISSION +diffuseColor.a *= material.transmissionAlpha; +#endif +gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,uh=`vec3 packNormalToRGB( const in vec3 normal ) { + return normalize( normal ) * 0.5 + 0.5; +} +vec3 unpackRGBToNormal( const in vec3 rgb ) { + return 2.0 * rgb.xyz - 1.0; +} +const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.; +const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. ); +const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. ); +const float ShiftRight8 = 1. / 256.; +vec4 packDepthToRGBA( const in float v ) { + vec4 r = vec4( fract( v * PackFactors ), v ); + r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale; +} +float unpackRGBAToDepth( const in vec4 v ) { + return dot( v, UnpackFactors ); +} +vec2 packDepthToRG( in highp float v ) { + return packDepthToRGBA( v ).yx; +} +float unpackRGToDepth( const in highp vec2 v ) { + return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) ); +} +vec4 pack2HalfToRGBA( vec2 v ) { + vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); + return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); +} +vec2 unpackRGBATo2Half( vec4 v ) { + return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); +} +float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { + return ( viewZ + near ) / ( near - far ); +} +float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { + return depth * ( near - far ) - near; +} +float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { + return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); +} +float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { + return ( near * far ) / ( ( far - near ) * depth - far ); +}`,hh=`#ifdef PREMULTIPLIED_ALPHA + gl_FragColor.rgb *= gl_FragColor.a; +#endif`,dh=`vec4 mvPosition = vec4( transformed, 1.0 ); +#ifdef USE_BATCHING + mvPosition = batchingMatrix * mvPosition; +#endif +#ifdef USE_INSTANCING + mvPosition = instanceMatrix * mvPosition; +#endif +mvPosition = modelViewMatrix * mvPosition; +gl_Position = projectionMatrix * mvPosition;`,fh=`#ifdef DITHERING + gl_FragColor.rgb = dithering( gl_FragColor.rgb ); +#endif`,ph=`#ifdef DITHERING + vec3 dithering( vec3 color ) { + float grid_position = rand( gl_FragCoord.xy ); + vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); + dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); + return color + dither_shift_RGB; + } +#endif`,mh=`float roughnessFactor = roughness; +#ifdef USE_ROUGHNESSMAP + vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); + roughnessFactor *= texelRoughness.g; +#endif`,gh=`#ifdef USE_ROUGHNESSMAP + uniform sampler2D roughnessMap; +#endif`,_h=`#if NUM_SPOT_LIGHT_COORDS > 0 + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#if NUM_SPOT_LIGHT_MAPS > 0 + uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; + struct SpotLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif + float texture2DCompare( sampler2D depths, vec2 uv, float compare ) { + return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) ); + } + vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) { + return unpackRGBATo2Half( texture2D( shadow, uv ) ); + } + float VSMShadow (sampler2D shadow, vec2 uv, float compare ){ + float occlusion = 1.0; + vec2 distribution = texture2DDistribution( shadow, uv ); + float hard_shadow = step( compare , distribution.x ); + if (hard_shadow != 1.0 ) { + float distance = compare - distribution.x ; + float variance = max( 0.00000, distribution.y * distribution.y ); + float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 ); + } + return occlusion; + } + float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { + float shadow = 1.0; + shadowCoord.xyz /= shadowCoord.w; + shadowCoord.z += shadowBias; + bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; + bool frustumTest = inFrustum && shadowCoord.z <= 1.0; + if ( frustumTest ) { + #if defined( SHADOWMAP_TYPE_PCF ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx0 = - texelSize.x * shadowRadius; + float dy0 = - texelSize.y * shadowRadius; + float dx1 = + texelSize.x * shadowRadius; + float dy1 = + texelSize.y * shadowRadius; + float dx2 = dx0 / 2.0; + float dy2 = dy0 / 2.0; + float dx3 = dx1 / 2.0; + float dy3 = dy1 / 2.0; + shadow = ( + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) + + texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z ) + ) * ( 1.0 / 17.0 ); + #elif defined( SHADOWMAP_TYPE_PCF_SOFT ) + vec2 texelSize = vec2( 1.0 ) / shadowMapSize; + float dx = texelSize.x; + float dy = texelSize.y; + vec2 uv = shadowCoord.xy; + vec2 f = fract( uv * shadowMapSize + 0.5 ); + uv -= f * texelSize; + shadow = ( + texture2DCompare( shadowMap, uv, shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) + + texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ), + f.x ) + + mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ), + f.y ) + + mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ), + f.x ), + mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), + texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ), + f.x ), + f.y ) + ) * ( 1.0 / 9.0 ); + #elif defined( SHADOWMAP_TYPE_VSM ) + shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z ); + #else + shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ); + #endif + } + return mix( 1.0, shadow, shadowIntensity ); + } + vec2 cubeToUV( vec3 v, float texelSizeY ) { + vec3 absV = abs( v ); + float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) ); + absV *= scaleToCube; + v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY ); + vec2 planar = v.xy; + float almostATexel = 1.5 * texelSizeY; + float almostOne = 1.0 - almostATexel; + if ( absV.z >= almostOne ) { + if ( v.z > 0.0 ) + planar.x = 4.0 - v.x; + } else if ( absV.x >= almostOne ) { + float signX = sign( v.x ); + planar.x = v.z * signX + 2.0 * signX; + } else if ( absV.y >= almostOne ) { + float signY = sign( v.y ); + planar.x = v.x + 2.0 * signY + 2.0; + planar.y = v.z * signY - 2.0; + } + return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 ); + } + float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { + float shadow = 1.0; + vec3 lightToPosition = shadowCoord.xyz; + + float lightToPositionLength = length( lightToPosition ); + if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) { + float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias; + vec3 bd3D = normalize( lightToPosition ); + vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) ); + #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM ) + vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y; + shadow = ( + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) + + texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp ) + ) * ( 1.0 / 9.0 ); + #else + shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ); + #endif + } + return mix( 1.0, shadow, shadowIntensity ); + } +#endif`,vh=`#if NUM_SPOT_LIGHT_COORDS > 0 + uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; + varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; +#endif +#ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; + varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; + struct DirectionalLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + struct SpotLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + }; + uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; + varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; + struct PointLightShadow { + float shadowIntensity; + float shadowBias; + float shadowNormalBias; + float shadowRadius; + vec2 shadowMapSize; + float shadowCameraNear; + float shadowCameraFar; + }; + uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; + #endif +#endif`,xh=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) + vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); + vec4 shadowWorldPosition; +#endif +#if defined( USE_SHADOWMAP ) + #if NUM_DIR_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); + vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); + vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end + #endif +#endif +#if NUM_SPOT_LIGHT_COORDS > 0 + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { + shadowWorldPosition = worldPosition; + #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) + shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; + #endif + vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; + } + #pragma unroll_loop_end +#endif`,Mh=`float getShadowMask() { + float shadow = 1.0; + #ifdef USE_SHADOWMAP + #if NUM_DIR_LIGHT_SHADOWS > 0 + DirectionalLightShadow directionalLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { + directionalLight = directionalLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_SPOT_LIGHT_SHADOWS > 0 + SpotLightShadow spotLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { + spotLight = spotLightShadows[ i ]; + shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; + } + #pragma unroll_loop_end + #endif + #if NUM_POINT_LIGHT_SHADOWS > 0 + PointLightShadow pointLight; + #pragma unroll_loop_start + for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { + pointLight = pointLightShadows[ i ]; + shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; + } + #pragma unroll_loop_end + #endif + #endif + return shadow; +}`,Sh=`#ifdef USE_SKINNING + mat4 boneMatX = getBoneMatrix( skinIndex.x ); + mat4 boneMatY = getBoneMatrix( skinIndex.y ); + mat4 boneMatZ = getBoneMatrix( skinIndex.z ); + mat4 boneMatW = getBoneMatrix( skinIndex.w ); +#endif`,Eh=`#ifdef USE_SKINNING + uniform mat4 bindMatrix; + uniform mat4 bindMatrixInverse; + uniform highp sampler2D boneTexture; + mat4 getBoneMatrix( const in float i ) { + int size = textureSize( boneTexture, 0 ).x; + int j = int( i ) * 4; + int x = j % size; + int y = j / size; + vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); + vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); + vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); + vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); + return mat4( v1, v2, v3, v4 ); + } +#endif`,yh=`#ifdef USE_SKINNING + vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); + vec4 skinned = vec4( 0.0 ); + skinned += boneMatX * skinVertex * skinWeight.x; + skinned += boneMatY * skinVertex * skinWeight.y; + skinned += boneMatZ * skinVertex * skinWeight.z; + skinned += boneMatW * skinVertex * skinWeight.w; + transformed = ( bindMatrixInverse * skinned ).xyz; +#endif`,Ah=`#ifdef USE_SKINNING + mat4 skinMatrix = mat4( 0.0 ); + skinMatrix += skinWeight.x * boneMatX; + skinMatrix += skinWeight.y * boneMatY; + skinMatrix += skinWeight.z * boneMatZ; + skinMatrix += skinWeight.w * boneMatW; + skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; + objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; + #ifdef USE_TANGENT + objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; + #endif +#endif`,Th=`float specularStrength; +#ifdef USE_SPECULARMAP + vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); + specularStrength = texelSpecular.r; +#else + specularStrength = 1.0; +#endif`,bh=`#ifdef USE_SPECULARMAP + uniform sampler2D specularMap; +#endif`,wh=`#if defined( TONE_MAPPING ) + gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); +#endif`,Rh=`#ifndef saturate +#define saturate( a ) clamp( a, 0.0, 1.0 ) +#endif +uniform float toneMappingExposure; +vec3 LinearToneMapping( vec3 color ) { + return saturate( toneMappingExposure * color ); +} +vec3 ReinhardToneMapping( vec3 color ) { + color *= toneMappingExposure; + return saturate( color / ( vec3( 1.0 ) + color ) ); +} +vec3 OptimizedCineonToneMapping( vec3 color ) { + color *= toneMappingExposure; + color = max( vec3( 0.0 ), color - 0.004 ); + return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); +} +vec3 RRTAndODTFit( vec3 v ) { + vec3 a = v * ( v + 0.0245786 ) - 0.000090537; + vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; + return a / b; +} +vec3 ACESFilmicToneMapping( vec3 color ) { + const mat3 ACESInputMat = mat3( + vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), + vec3( 0.04823, 0.01566, 0.83777 ) + ); + const mat3 ACESOutputMat = mat3( + vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), + vec3( -0.07367, -0.00605, 1.07602 ) + ); + color *= toneMappingExposure / 0.6; + color = ACESInputMat * color; + color = RRTAndODTFit( color ); + color = ACESOutputMat * color; + return saturate( color ); +} +const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( + vec3( 1.6605, - 0.1246, - 0.0182 ), + vec3( - 0.5876, 1.1329, - 0.1006 ), + vec3( - 0.0728, - 0.0083, 1.1187 ) +); +const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( + vec3( 0.6274, 0.0691, 0.0164 ), + vec3( 0.3293, 0.9195, 0.0880 ), + vec3( 0.0433, 0.0113, 0.8956 ) +); +vec3 agxDefaultContrastApprox( vec3 x ) { + vec3 x2 = x * x; + vec3 x4 = x2 * x2; + return + 15.5 * x4 * x2 + - 40.14 * x4 * x + + 31.96 * x4 + - 6.868 * x2 * x + + 0.4298 * x2 + + 0.1191 * x + - 0.00232; +} +vec3 AgXToneMapping( vec3 color ) { + const mat3 AgXInsetMatrix = mat3( + vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), + vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), + vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) + ); + const mat3 AgXOutsetMatrix = mat3( + vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), + vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), + vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) + ); + const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; + color *= toneMappingExposure; + color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; + color = AgXInsetMatrix * color; + color = max( color, 1e-10 ); color = log2( color ); + color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); + color = clamp( color, 0.0, 1.0 ); + color = agxDefaultContrastApprox( color ); + color = AgXOutsetMatrix * color; + color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); + color = LINEAR_REC2020_TO_LINEAR_SRGB * color; + color = clamp( color, 0.0, 1.0 ); + return color; +} +vec3 NeutralToneMapping( vec3 color ) { + const float StartCompression = 0.8 - 0.04; + const float Desaturation = 0.15; + color *= toneMappingExposure; + float x = min( color.r, min( color.g, color.b ) ); + float offset = x < 0.08 ? x - 6.25 * x * x : 0.04; + color -= offset; + float peak = max( color.r, max( color.g, color.b ) ); + if ( peak < StartCompression ) return color; + float d = 1. - StartCompression; + float newPeak = 1. - d * d / ( peak + d - StartCompression ); + color *= newPeak / peak; + float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. ); + return mix( color, vec3( newPeak ), g ); +} +vec3 CustomToneMapping( vec3 color ) { return color; }`,Ch=`#ifdef USE_TRANSMISSION + material.transmission = transmission; + material.transmissionAlpha = 1.0; + material.thickness = thickness; + material.attenuationDistance = attenuationDistance; + material.attenuationColor = attenuationColor; + #ifdef USE_TRANSMISSIONMAP + material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; + #endif + #ifdef USE_THICKNESSMAP + material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; + #endif + vec3 pos = vWorldPosition; + vec3 v = normalize( cameraPosition - pos ); + vec3 n = inverseTransformDirection( normal, viewMatrix ); + vec4 transmitted = getIBLVolumeRefraction( + n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90, + pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness, + material.attenuationColor, material.attenuationDistance ); + material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); + totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); +#endif`,Ph=`#ifdef USE_TRANSMISSION + uniform float transmission; + uniform float thickness; + uniform float attenuationDistance; + uniform vec3 attenuationColor; + #ifdef USE_TRANSMISSIONMAP + uniform sampler2D transmissionMap; + #endif + #ifdef USE_THICKNESSMAP + uniform sampler2D thicknessMap; + #endif + uniform vec2 transmissionSamplerSize; + uniform sampler2D transmissionSamplerMap; + uniform mat4 modelMatrix; + uniform mat4 projectionMatrix; + varying vec3 vWorldPosition; + float w0( float a ) { + return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); + } + float w1( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); + } + float w2( float a ){ + return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); + } + float w3( float a ) { + return ( 1.0 / 6.0 ) * ( a * a * a ); + } + float g0( float a ) { + return w0( a ) + w1( a ); + } + float g1( float a ) { + return w2( a ) + w3( a ); + } + float h0( float a ) { + return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); + } + float h1( float a ) { + return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); + } + vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { + uv = uv * texelSize.zw + 0.5; + vec2 iuv = floor( uv ); + vec2 fuv = fract( uv ); + float g0x = g0( fuv.x ); + float g1x = g1( fuv.x ); + float h0x = h0( fuv.x ); + float h1x = h1( fuv.x ); + float h0y = h0( fuv.y ); + float h1y = h1( fuv.y ); + vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; + vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; + return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + + g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); + } + vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { + vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); + vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); + vec2 fLodSizeInv = 1.0 / fLodSize; + vec2 cLodSizeInv = 1.0 / cLodSize; + vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); + vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); + return mix( fSample, cSample, fract( lod ) ); + } + vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { + vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); + vec3 modelScale; + modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); + modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); + modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); + return normalize( refractionVector ) * thickness * modelScale; + } + float applyIorToRoughness( const in float roughness, const in float ior ) { + return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); + } + vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { + float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); + return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); + } + vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { + if ( isinf( attenuationDistance ) ) { + return vec3( 1.0 ); + } else { + vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; + vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; + } + } + vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, + const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, + const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness, + const in vec3 attenuationColor, const in float attenuationDistance ) { + vec4 transmittedLight; + vec3 transmittance; + #ifdef USE_DISPERSION + float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion; + vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread ); + for ( int i = 0; i < 3; i ++ ) { + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + + vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] ); + transmittedLight[ i ] = transmissionSample[ i ]; + transmittedLight.a += transmissionSample.a; + transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ]; + } + transmittedLight.a /= 3.0; + + #else + + vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); + vec3 refractedRayExit = position + transmissionRay; + vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); + vec2 refractionCoords = ndcPos.xy / ndcPos.w; + refractionCoords += 1.0; + refractionCoords /= 2.0; + transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); + transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); + + #endif + vec3 attenuatedColor = transmittance * transmittedLight.rgb; + vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); + float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; + return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); + } +#endif`,Lh=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + varying vec2 vNormalMapUv; +#endif +#ifdef USE_EMISSIVEMAP + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_SPECULARMAP + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,Dh=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + varying vec2 vUv; +#endif +#ifdef USE_MAP + uniform mat3 mapTransform; + varying vec2 vMapUv; +#endif +#ifdef USE_ALPHAMAP + uniform mat3 alphaMapTransform; + varying vec2 vAlphaMapUv; +#endif +#ifdef USE_LIGHTMAP + uniform mat3 lightMapTransform; + varying vec2 vLightMapUv; +#endif +#ifdef USE_AOMAP + uniform mat3 aoMapTransform; + varying vec2 vAoMapUv; +#endif +#ifdef USE_BUMPMAP + uniform mat3 bumpMapTransform; + varying vec2 vBumpMapUv; +#endif +#ifdef USE_NORMALMAP + uniform mat3 normalMapTransform; + varying vec2 vNormalMapUv; +#endif +#ifdef USE_DISPLACEMENTMAP + uniform mat3 displacementMapTransform; + varying vec2 vDisplacementMapUv; +#endif +#ifdef USE_EMISSIVEMAP + uniform mat3 emissiveMapTransform; + varying vec2 vEmissiveMapUv; +#endif +#ifdef USE_METALNESSMAP + uniform mat3 metalnessMapTransform; + varying vec2 vMetalnessMapUv; +#endif +#ifdef USE_ROUGHNESSMAP + uniform mat3 roughnessMapTransform; + varying vec2 vRoughnessMapUv; +#endif +#ifdef USE_ANISOTROPYMAP + uniform mat3 anisotropyMapTransform; + varying vec2 vAnisotropyMapUv; +#endif +#ifdef USE_CLEARCOATMAP + uniform mat3 clearcoatMapTransform; + varying vec2 vClearcoatMapUv; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + uniform mat3 clearcoatNormalMapTransform; + varying vec2 vClearcoatNormalMapUv; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + uniform mat3 clearcoatRoughnessMapTransform; + varying vec2 vClearcoatRoughnessMapUv; +#endif +#ifdef USE_SHEEN_COLORMAP + uniform mat3 sheenColorMapTransform; + varying vec2 vSheenColorMapUv; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + uniform mat3 sheenRoughnessMapTransform; + varying vec2 vSheenRoughnessMapUv; +#endif +#ifdef USE_IRIDESCENCEMAP + uniform mat3 iridescenceMapTransform; + varying vec2 vIridescenceMapUv; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + uniform mat3 iridescenceThicknessMapTransform; + varying vec2 vIridescenceThicknessMapUv; +#endif +#ifdef USE_SPECULARMAP + uniform mat3 specularMapTransform; + varying vec2 vSpecularMapUv; +#endif +#ifdef USE_SPECULAR_COLORMAP + uniform mat3 specularColorMapTransform; + varying vec2 vSpecularColorMapUv; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + uniform mat3 specularIntensityMapTransform; + varying vec2 vSpecularIntensityMapUv; +#endif +#ifdef USE_TRANSMISSIONMAP + uniform mat3 transmissionMapTransform; + varying vec2 vTransmissionMapUv; +#endif +#ifdef USE_THICKNESSMAP + uniform mat3 thicknessMapTransform; + varying vec2 vThicknessMapUv; +#endif`,Ih=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) + vUv = vec3( uv, 1 ).xy; +#endif +#ifdef USE_MAP + vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ALPHAMAP + vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_LIGHTMAP + vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_AOMAP + vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_BUMPMAP + vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_NORMALMAP + vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_DISPLACEMENTMAP + vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_EMISSIVEMAP + vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_METALNESSMAP + vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ROUGHNESSMAP + vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_ANISOTROPYMAP + vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOATMAP + vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_NORMALMAP + vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_CLEARCOAT_ROUGHNESSMAP + vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCEMAP + vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_IRIDESCENCE_THICKNESSMAP + vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_COLORMAP + vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SHEEN_ROUGHNESSMAP + vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULARMAP + vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_COLORMAP + vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_SPECULAR_INTENSITYMAP + vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_TRANSMISSIONMAP + vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; +#endif +#ifdef USE_THICKNESSMAP + vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; +#endif`,Uh=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 + vec4 worldPosition = vec4( transformed, 1.0 ); + #ifdef USE_BATCHING + worldPosition = batchingMatrix * worldPosition; + #endif + #ifdef USE_INSTANCING + worldPosition = instanceMatrix * worldPosition; + #endif + worldPosition = modelMatrix * worldPosition; +#endif`;const Nh=`varying vec2 vUv; +uniform mat3 uvTransform; +void main() { + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + gl_Position = vec4( position.xy, 1.0, 1.0 ); +}`,Fh=`uniform sampler2D t2D; +uniform float backgroundIntensity; +varying vec2 vUv; +void main() { + vec4 texColor = texture2D( t2D, vUv ); + #ifdef DECODE_VIDEO_TEXTURE + texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,Oh=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,Bh=`#ifdef ENVMAP_TYPE_CUBE + uniform samplerCube envMap; +#elif defined( ENVMAP_TYPE_CUBE_UV ) + uniform sampler2D envMap; +#endif +uniform float flipEnvMap; +uniform float backgroundBlurriness; +uniform float backgroundIntensity; +uniform mat3 backgroundRotation; +varying vec3 vWorldDirection; +#include +void main() { + #ifdef ENVMAP_TYPE_CUBE + vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); + #elif defined( ENVMAP_TYPE_CUBE_UV ) + vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness ); + #else + vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + #endif + texColor.rgb *= backgroundIntensity; + gl_FragColor = texColor; + #include + #include +}`,zh=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include + gl_Position.z = gl_Position.w; +}`,Hh=`uniform samplerCube tCube; +uniform float tFlip; +uniform float opacity; +varying vec3 vWorldDirection; +void main() { + vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); + gl_FragColor = texColor; + gl_FragColor.a *= opacity; + #include + #include +}`,Vh=`#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + #include + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vHighPrecisionZW = gl_Position.zw; +}`,kh=`#if DEPTH_PACKING == 3200 + uniform float opacity; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +varying vec2 vHighPrecisionZW; +void main() { + vec4 diffuseColor = vec4( 1.0 ); + #include + #if DEPTH_PACKING == 3200 + diffuseColor.a = opacity; + #endif + #include + #include + #include + #include + #include + float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5; + #if DEPTH_PACKING == 3200 + gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); + #elif DEPTH_PACKING == 3201 + gl_FragColor = packDepthToRGBA( fragCoordZ ); + #endif +}`,Gh=`#define DISTANCE +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #ifdef USE_DISPLACEMENTMAP + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + vWorldPosition = worldPosition.xyz; +}`,Wh=`#define DISTANCE +uniform vec3 referencePosition; +uniform float nearDistance; +uniform float farDistance; +varying vec3 vWorldPosition; +#include +#include +#include +#include +#include +#include +#include +#include +void main () { + vec4 diffuseColor = vec4( 1.0 ); + #include + #include + #include + #include + #include + float dist = length( vWorldPosition - referencePosition ); + dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); + dist = saturate( dist ); + gl_FragColor = packDepthToRGBA( dist ); +}`,Xh=`varying vec3 vWorldDirection; +#include +void main() { + vWorldDirection = transformDirection( position, modelMatrix ); + #include + #include +}`,Yh=`uniform sampler2D tEquirect; +varying vec3 vWorldDirection; +#include +void main() { + vec3 direction = normalize( vWorldDirection ); + vec2 sampleUV = equirectUv( direction ); + gl_FragColor = texture2D( tEquirect, sampleUV ); + #include + #include +}`,qh=`uniform float scale; +attribute float lineDistance; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vLineDistance = scale * lineDistance; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,$h=`uniform vec3 diffuse; +uniform float opacity; +uniform float dashSize; +uniform float totalSize; +varying float vLineDistance; +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + if ( mod( vLineDistance, totalSize ) > dashSize ) { + discard; + } + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,Kh=`#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) + #include + #include + #include + #include + #include + #endif + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,jh=`uniform vec3 diffuse; +uniform float opacity; +#ifndef FLAT_SHADED + varying vec3 vNormal; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + #ifdef USE_LIGHTMAP + vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); + reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; + #else + reflectedLight.indirectDiffuse += vec3( 1.0 ); + #endif + #include + reflectedLight.indirectDiffuse *= diffuseColor.rgb; + vec3 outgoingLight = reflectedLight.indirectDiffuse; + #include + #include + #include + #include + #include + #include + #include +}`,Zh=`#define LAMBERT +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,Jh=`#define LAMBERT +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,Qh=`#define MATCAP +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; +}`,ed=`#define MATCAP +uniform vec3 diffuse; +uniform float opacity; +uniform sampler2D matcap; +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 viewDir = normalize( vViewPosition ); + vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); + vec3 y = cross( viewDir, x ); + vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; + #ifdef USE_MATCAP + vec4 matcapColor = texture2D( matcap, uv ); + #else + vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); + #endif + vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; + #include + #include + #include + #include + #include + #include +}`,td=`#define NORMAL +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + vViewPosition = - mvPosition.xyz; +#endif +}`,nd=`#define NORMAL +uniform float opacity; +#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) + varying vec3 vViewPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); + #include + #include + #include + #include + gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a ); + #ifdef OPAQUE + gl_FragColor.a = 1.0; + #endif +}`,id=`#define PHONG +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include + #include +}`,rd=`#define PHONG +uniform vec3 diffuse; +uniform vec3 emissive; +uniform vec3 specular; +uniform float shininess; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include + #include +}`,sd=`#define STANDARD +varying vec3 vViewPosition; +#ifdef USE_TRANSMISSION + varying vec3 vWorldPosition; +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +#ifdef USE_TRANSMISSION + vWorldPosition = worldPosition.xyz; +#endif +}`,ad=`#define STANDARD +#ifdef PHYSICAL + #define IOR + #define USE_SPECULAR +#endif +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float roughness; +uniform float metalness; +uniform float opacity; +#ifdef IOR + uniform float ior; +#endif +#ifdef USE_SPECULAR + uniform float specularIntensity; + uniform vec3 specularColor; + #ifdef USE_SPECULAR_COLORMAP + uniform sampler2D specularColorMap; + #endif + #ifdef USE_SPECULAR_INTENSITYMAP + uniform sampler2D specularIntensityMap; + #endif +#endif +#ifdef USE_CLEARCOAT + uniform float clearcoat; + uniform float clearcoatRoughness; +#endif +#ifdef USE_DISPERSION + uniform float dispersion; +#endif +#ifdef USE_IRIDESCENCE + uniform float iridescence; + uniform float iridescenceIOR; + uniform float iridescenceThicknessMinimum; + uniform float iridescenceThicknessMaximum; +#endif +#ifdef USE_SHEEN + uniform vec3 sheenColor; + uniform float sheenRoughness; + #ifdef USE_SHEEN_COLORMAP + uniform sampler2D sheenColorMap; + #endif + #ifdef USE_SHEEN_ROUGHNESSMAP + uniform sampler2D sheenRoughnessMap; + #endif +#endif +#ifdef USE_ANISOTROPY + uniform vec2 anisotropyVector; + #ifdef USE_ANISOTROPYMAP + uniform sampler2D anisotropyMap; + #endif +#endif +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; + vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; + #include + vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; + #ifdef USE_SHEEN + float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor ); + outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect; + #endif + #ifdef USE_CLEARCOAT + float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); + vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); + outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; + #endif + #include + #include + #include + #include + #include + #include +}`,od=`#define TOON +varying vec3 vViewPosition; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vViewPosition = - mvPosition.xyz; + #include + #include + #include +}`,ld=`#define TOON +uniform vec3 diffuse; +uniform vec3 emissive; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); + vec3 totalEmissiveRadiance = emissive; + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; + #include + #include + #include + #include + #include + #include +}`,cd=`uniform float size; +uniform float scale; +#include +#include +#include +#include +#include +#include +#ifdef USE_POINTS_UV + varying vec2 vUv; + uniform mat3 uvTransform; +#endif +void main() { + #ifdef USE_POINTS_UV + vUv = ( uvTransform * vec3( uv, 1 ) ).xy; + #endif + #include + #include + #include + #include + #include + #include + gl_PointSize = size; + #ifdef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); + #endif + #include + #include + #include + #include +}`,ud=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include + #include +}`,hd=`#include +#include +#include +#include +#include +#include +#include +void main() { + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include +}`,dd=`uniform vec3 color; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + #include + gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); + #include + #include + #include +}`,fd=`uniform float rotation; +uniform vec2 center; +#include +#include +#include +#include +#include +void main() { + #include + vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); + vec2 scale; + scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); + scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); + #ifndef USE_SIZEATTENUATION + bool isPerspective = isPerspectiveMatrix( projectionMatrix ); + if ( isPerspective ) scale *= - mvPosition.z; + #endif + vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; + vec2 rotatedPosition; + rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; + rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; + mvPosition.xy += rotatedPosition; + gl_Position = projectionMatrix * mvPosition; + #include + #include + #include +}`,pd=`uniform vec3 diffuse; +uniform float opacity; +#include +#include +#include +#include +#include +#include +#include +#include +#include +void main() { + vec4 diffuseColor = vec4( diffuse, opacity ); + #include + vec3 outgoingLight = vec3( 0.0 ); + #include + #include + #include + #include + #include + outgoingLight = diffuseColor.rgb; + #include + #include + #include + #include +}`,Ne={alphahash_fragment:Fc,alphahash_pars_fragment:Oc,alphamap_fragment:Bc,alphamap_pars_fragment:zc,alphatest_fragment:Hc,alphatest_pars_fragment:Vc,aomap_fragment:kc,aomap_pars_fragment:Gc,batching_pars_vertex:Wc,batching_vertex:Xc,begin_vertex:Yc,beginnormal_vertex:qc,bsdfs:$c,iridescence_fragment:Kc,bumpmap_pars_fragment:jc,clipping_planes_fragment:Zc,clipping_planes_pars_fragment:Jc,clipping_planes_pars_vertex:Qc,clipping_planes_vertex:eu,color_fragment:tu,color_pars_fragment:nu,color_pars_vertex:iu,color_vertex:ru,common:su,cube_uv_reflection_fragment:au,defaultnormal_vertex:ou,displacementmap_pars_vertex:lu,displacementmap_vertex:cu,emissivemap_fragment:uu,emissivemap_pars_fragment:hu,colorspace_fragment:du,colorspace_pars_fragment:fu,envmap_fragment:pu,envmap_common_pars_fragment:mu,envmap_pars_fragment:gu,envmap_pars_vertex:_u,envmap_physical_pars_fragment:Ru,envmap_vertex:vu,fog_vertex:xu,fog_pars_vertex:Mu,fog_fragment:Su,fog_pars_fragment:Eu,gradientmap_pars_fragment:yu,lightmap_pars_fragment:Au,lights_lambert_fragment:Tu,lights_lambert_pars_fragment:bu,lights_pars_begin:wu,lights_toon_fragment:Cu,lights_toon_pars_fragment:Pu,lights_phong_fragment:Lu,lights_phong_pars_fragment:Du,lights_physical_fragment:Iu,lights_physical_pars_fragment:Uu,lights_fragment_begin:Nu,lights_fragment_maps:Fu,lights_fragment_end:Ou,logdepthbuf_fragment:Bu,logdepthbuf_pars_fragment:zu,logdepthbuf_pars_vertex:Hu,logdepthbuf_vertex:Vu,map_fragment:ku,map_pars_fragment:Gu,map_particle_fragment:Wu,map_particle_pars_fragment:Xu,metalnessmap_fragment:Yu,metalnessmap_pars_fragment:qu,morphinstance_vertex:$u,morphcolor_vertex:Ku,morphnormal_vertex:ju,morphtarget_pars_vertex:Zu,morphtarget_vertex:Ju,normal_fragment_begin:Qu,normal_fragment_maps:eh,normal_pars_fragment:th,normal_pars_vertex:nh,normal_vertex:ih,normalmap_pars_fragment:rh,clearcoat_normal_fragment_begin:sh,clearcoat_normal_fragment_maps:ah,clearcoat_pars_fragment:oh,iridescence_pars_fragment:lh,opaque_fragment:ch,packing:uh,premultiplied_alpha_fragment:hh,project_vertex:dh,dithering_fragment:fh,dithering_pars_fragment:ph,roughnessmap_fragment:mh,roughnessmap_pars_fragment:gh,shadowmap_pars_fragment:_h,shadowmap_pars_vertex:vh,shadowmap_vertex:xh,shadowmask_pars_fragment:Mh,skinbase_vertex:Sh,skinning_pars_vertex:Eh,skinning_vertex:yh,skinnormal_vertex:Ah,specularmap_fragment:Th,specularmap_pars_fragment:bh,tonemapping_fragment:wh,tonemapping_pars_fragment:Rh,transmission_fragment:Ch,transmission_pars_fragment:Ph,uv_pars_fragment:Lh,uv_pars_vertex:Dh,uv_vertex:Ih,worldpos_vertex:Uh,background_vert:Nh,background_frag:Fh,backgroundCube_vert:Oh,backgroundCube_frag:Bh,cube_vert:zh,cube_frag:Hh,depth_vert:Vh,depth_frag:kh,distanceRGBA_vert:Gh,distanceRGBA_frag:Wh,equirect_vert:Xh,equirect_frag:Yh,linedashed_vert:qh,linedashed_frag:$h,meshbasic_vert:Kh,meshbasic_frag:jh,meshlambert_vert:Zh,meshlambert_frag:Jh,meshmatcap_vert:Qh,meshmatcap_frag:ed,meshnormal_vert:td,meshnormal_frag:nd,meshphong_vert:id,meshphong_frag:rd,meshphysical_vert:sd,meshphysical_frag:ad,meshtoon_vert:od,meshtoon_frag:ld,points_vert:cd,points_frag:ud,shadow_vert:hd,shadow_frag:dd,sprite_vert:fd,sprite_frag:pd},re={common:{diffuse:{value:new Xe(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Fe},alphaMap:{value:null},alphaMapTransform:{value:new Fe},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Fe}},envmap:{envMap:{value:null},envMapRotation:{value:new Fe},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Fe}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Fe}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Fe},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Fe},normalScale:{value:new De(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Fe},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Fe}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Fe}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Fe}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Xe(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Xe(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Fe},alphaTest:{value:0},uvTransform:{value:new Fe}},sprite:{diffuse:{value:new Xe(16777215)},opacity:{value:1},center:{value:new De(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Fe},alphaMap:{value:null},alphaMapTransform:{value:new Fe},alphaTest:{value:0}}},Bt={basic:{uniforms:xt([re.common,re.specularmap,re.envmap,re.aomap,re.lightmap,re.fog]),vertexShader:Ne.meshbasic_vert,fragmentShader:Ne.meshbasic_frag},lambert:{uniforms:xt([re.common,re.specularmap,re.envmap,re.aomap,re.lightmap,re.emissivemap,re.bumpmap,re.normalmap,re.displacementmap,re.fog,re.lights,{emissive:{value:new Xe(0)}}]),vertexShader:Ne.meshlambert_vert,fragmentShader:Ne.meshlambert_frag},phong:{uniforms:xt([re.common,re.specularmap,re.envmap,re.aomap,re.lightmap,re.emissivemap,re.bumpmap,re.normalmap,re.displacementmap,re.fog,re.lights,{emissive:{value:new Xe(0)},specular:{value:new Xe(1118481)},shininess:{value:30}}]),vertexShader:Ne.meshphong_vert,fragmentShader:Ne.meshphong_frag},standard:{uniforms:xt([re.common,re.envmap,re.aomap,re.lightmap,re.emissivemap,re.bumpmap,re.normalmap,re.displacementmap,re.roughnessmap,re.metalnessmap,re.fog,re.lights,{emissive:{value:new Xe(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ne.meshphysical_vert,fragmentShader:Ne.meshphysical_frag},toon:{uniforms:xt([re.common,re.aomap,re.lightmap,re.emissivemap,re.bumpmap,re.normalmap,re.displacementmap,re.gradientmap,re.fog,re.lights,{emissive:{value:new Xe(0)}}]),vertexShader:Ne.meshtoon_vert,fragmentShader:Ne.meshtoon_frag},matcap:{uniforms:xt([re.common,re.bumpmap,re.normalmap,re.displacementmap,re.fog,{matcap:{value:null}}]),vertexShader:Ne.meshmatcap_vert,fragmentShader:Ne.meshmatcap_frag},points:{uniforms:xt([re.points,re.fog]),vertexShader:Ne.points_vert,fragmentShader:Ne.points_frag},dashed:{uniforms:xt([re.common,re.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ne.linedashed_vert,fragmentShader:Ne.linedashed_frag},depth:{uniforms:xt([re.common,re.displacementmap]),vertexShader:Ne.depth_vert,fragmentShader:Ne.depth_frag},normal:{uniforms:xt([re.common,re.bumpmap,re.normalmap,re.displacementmap,{opacity:{value:1}}]),vertexShader:Ne.meshnormal_vert,fragmentShader:Ne.meshnormal_frag},sprite:{uniforms:xt([re.sprite,re.fog]),vertexShader:Ne.sprite_vert,fragmentShader:Ne.sprite_frag},background:{uniforms:{uvTransform:{value:new Fe},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Ne.background_vert,fragmentShader:Ne.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Fe}},vertexShader:Ne.backgroundCube_vert,fragmentShader:Ne.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ne.cube_vert,fragmentShader:Ne.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ne.equirect_vert,fragmentShader:Ne.equirect_frag},distanceRGBA:{uniforms:xt([re.common,re.displacementmap,{referencePosition:{value:new F},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ne.distanceRGBA_vert,fragmentShader:Ne.distanceRGBA_frag},shadow:{uniforms:xt([re.lights,re.fog,{color:{value:new Xe(0)},opacity:{value:1}}]),vertexShader:Ne.shadow_vert,fragmentShader:Ne.shadow_frag}};Bt.physical={uniforms:xt([Bt.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Fe},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Fe},clearcoatNormalScale:{value:new De(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Fe},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Fe},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Fe},sheen:{value:0},sheenColor:{value:new Xe(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Fe},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Fe},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Fe},transmissionSamplerSize:{value:new De},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Fe},attenuationDistance:{value:0},attenuationColor:{value:new Xe(0)},specularColor:{value:new Xe(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Fe},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Fe},anisotropyVector:{value:new De},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Fe}}]),vertexShader:Ne.meshphysical_vert,fragmentShader:Ne.meshphysical_frag};const ir={r:0,b:0,g:0},Rn=new sn,md=new at;function gd(i,e,t,n,r,s,a){const o=new Xe(0);let l=s===!0?0:1,c,u,d=null,f=0,m=null;function x(A){let y=A.isScene===!0?A.background:null;return y&&y.isTexture&&(y=(A.backgroundBlurriness>0?t:e).get(y)),y}function S(A){let y=!1;const b=x(A);b===null?h(o,l):b&&b.isColor&&(h(b,1),y=!0);const O=i.xr.getEnvironmentBlendMode();O==="additive"?n.buffers.color.setClear(0,0,0,1,a):O==="alpha-blend"&&n.buffers.color.setClear(0,0,0,0,a),(i.autoClear||y)&&(n.buffers.depth.setTest(!0),n.buffers.depth.setMask(!0),n.buffers.color.setMask(!0),i.clear(i.autoClearColor,i.autoClearDepth,i.autoClearStencil))}function p(A,y){const b=x(y);b&&(b.isCubeTexture||b.mapping===xr)?(u===void 0&&(u=new Vt(new Di(1,1,1),new an({name:"BackgroundCubeMaterial",uniforms:mi(Bt.backgroundCube.uniforms),vertexShader:Bt.backgroundCube.vertexShader,fragmentShader:Bt.backgroundCube.fragmentShader,side:Et,depthTest:!1,depthWrite:!1,fog:!1})),u.geometry.deleteAttribute("normal"),u.geometry.deleteAttribute("uv"),u.onBeforeRender=function(O,P,w){this.matrixWorld.copyPosition(w.matrixWorld)},Object.defineProperty(u.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(u)),Rn.copy(y.backgroundRotation),Rn.x*=-1,Rn.y*=-1,Rn.z*=-1,b.isCubeTexture&&b.isRenderTargetTexture===!1&&(Rn.y*=-1,Rn.z*=-1),u.material.uniforms.envMap.value=b,u.material.uniforms.flipEnvMap.value=b.isCubeTexture&&b.isRenderTargetTexture===!1?-1:1,u.material.uniforms.backgroundBlurriness.value=y.backgroundBlurriness,u.material.uniforms.backgroundIntensity.value=y.backgroundIntensity,u.material.uniforms.backgroundRotation.value.setFromMatrix4(md.makeRotationFromEuler(Rn)),u.material.toneMapped=Ye.getTransfer(b.colorSpace)!==$e,(d!==b||f!==b.version||m!==i.toneMapping)&&(u.material.needsUpdate=!0,d=b,f=b.version,m=i.toneMapping),u.layers.enableAll(),A.unshift(u,u.geometry,u.material,0,0,null)):b&&b.isTexture&&(c===void 0&&(c=new Vt(new Ii(2,2),new an({name:"BackgroundMaterial",uniforms:mi(Bt.background.uniforms),vertexShader:Bt.background.vertexShader,fragmentShader:Bt.background.fragmentShader,side:En,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(c)),c.material.uniforms.t2D.value=b,c.material.uniforms.backgroundIntensity.value=y.backgroundIntensity,c.material.toneMapped=Ye.getTransfer(b.colorSpace)!==$e,b.matrixAutoUpdate===!0&&b.updateMatrix(),c.material.uniforms.uvTransform.value.copy(b.matrix),(d!==b||f!==b.version||m!==i.toneMapping)&&(c.material.needsUpdate=!0,d=b,f=b.version,m=i.toneMapping),c.layers.enableAll(),A.unshift(c,c.geometry,c.material,0,0,null))}function h(A,y){A.getRGB(ir,Do(i)),n.buffers.color.setClear(ir.r,ir.g,ir.b,y,a)}return{getClearColor:function(){return o},setClearColor:function(A,y=1){o.set(A),l=y,h(o,l)},getClearAlpha:function(){return l},setClearAlpha:function(A){l=A,h(o,l)},render:S,addToRenderList:p}}function _d(i,e){const t=i.getParameter(i.MAX_VERTEX_ATTRIBS),n={},r=f(null);let s=r,a=!1;function o(v,R,W,U,k){let Y=!1;const H=d(U,W,R);s!==H&&(s=H,c(s.object)),Y=m(v,U,W,k),Y&&x(v,U,W,k),k!==null&&e.update(k,i.ELEMENT_ARRAY_BUFFER),(Y||a)&&(a=!1,b(v,R,W,U),k!==null&&i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,e.get(k).buffer))}function l(){return i.createVertexArray()}function c(v){return i.bindVertexArray(v)}function u(v){return i.deleteVertexArray(v)}function d(v,R,W){const U=W.wireframe===!0;let k=n[v.id];k===void 0&&(k={},n[v.id]=k);let Y=k[R.id];Y===void 0&&(Y={},k[R.id]=Y);let H=Y[U];return H===void 0&&(H=f(l()),Y[U]=H),H}function f(v){const R=[],W=[],U=[];for(let k=0;k=0){const ae=k[q];let fe=Y[q];if(fe===void 0&&(q==="instanceMatrix"&&v.instanceMatrix&&(fe=v.instanceMatrix),q==="instanceColor"&&v.instanceColor&&(fe=v.instanceColor)),ae===void 0||ae.attribute!==fe||fe&&ae.data!==fe.data)return!0;H++}return s.attributesNum!==H||s.index!==U}function x(v,R,W,U){const k={},Y=R.attributes;let H=0;const K=W.getAttributes();for(const q in K)if(K[q].location>=0){let ae=Y[q];ae===void 0&&(q==="instanceMatrix"&&v.instanceMatrix&&(ae=v.instanceMatrix),q==="instanceColor"&&v.instanceColor&&(ae=v.instanceColor));const fe={};fe.attribute=ae,ae&&ae.data&&(fe.data=ae.data),k[q]=fe,H++}s.attributes=k,s.attributesNum=H,s.index=U}function S(){const v=s.newAttributes;for(let R=0,W=v.length;R=0){let se=k[K];if(se===void 0&&(K==="instanceMatrix"&&v.instanceMatrix&&(se=v.instanceMatrix),K==="instanceColor"&&v.instanceColor&&(se=v.instanceColor)),se!==void 0){const ae=se.normalized,fe=se.itemSize,ye=e.get(se);if(ye===void 0)continue;const Ie=ye.buffer,$=ye.type,ee=ye.bytesPerElement,de=$===i.INT||$===i.UNSIGNED_INT||se.gpuType===zs;if(se.isInterleavedBufferAttribute){const ue=se.data,Pe=ue.stride,Ue=se.offset;if(ue.isInstancedInterleavedBuffer){for(let Oe=0;Oe0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision>0)return"highp";P="mediump"}return P==="mediump"&&i.getShaderPrecisionFormat(i.VERTEX_SHADER,i.MEDIUM_FLOAT).precision>0&&i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let c=t.precision!==void 0?t.precision:"highp";const u=l(c);u!==c&&(console.warn("THREE.WebGLRenderer:",c,"not supported, using",u,"instead."),c=u);const d=t.logarithmicDepthBuffer===!0,f=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),m=i.getParameter(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),x=i.getParameter(i.MAX_TEXTURE_SIZE),S=i.getParameter(i.MAX_CUBE_MAP_TEXTURE_SIZE),p=i.getParameter(i.MAX_VERTEX_ATTRIBS),h=i.getParameter(i.MAX_VERTEX_UNIFORM_VECTORS),A=i.getParameter(i.MAX_VARYING_VECTORS),y=i.getParameter(i.MAX_FRAGMENT_UNIFORM_VECTORS),b=m>0,O=i.getParameter(i.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:s,getMaxPrecision:l,textureFormatReadable:a,textureTypeReadable:o,precision:c,logarithmicDepthBuffer:d,maxTextures:f,maxVertexTextures:m,maxTextureSize:x,maxCubemapSize:S,maxAttributes:p,maxVertexUniforms:h,maxVaryings:A,maxFragmentUniforms:y,vertexTextures:b,maxSamples:O}}function Md(i){const e=this;let t=null,n=0,r=!1,s=!1;const a=new gn,o=new Fe,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(d,f){const m=d.length!==0||f||n!==0||r;return r=f,n=d.length,m},this.beginShadows=function(){s=!0,u(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(d,f){t=u(d,f,0)},this.setState=function(d,f,m){const x=d.clippingPlanes,S=d.clipIntersection,p=d.clipShadows,h=i.get(d);if(!r||x===null||x.length===0||s&&!p)s?u(null):c();else{const A=s?0:n,y=A*4;let b=h.clippingState||null;l.value=b,b=u(x,f,y,m);for(let O=0;O!==y;++O)b[O]=t[O];h.clippingState=b,this.numIntersection=S?this.numPlanes:0,this.numPlanes+=A}};function c(){l.value!==t&&(l.value=t,l.needsUpdate=n>0),e.numPlanes=n,e.numIntersection=0}function u(d,f,m,x){const S=d!==null?d.length:0;let p=null;if(S!==0){if(p=l.value,x!==!0||p===null){const h=m+S*4,A=f.matrixWorldInverse;o.getNormalMatrix(A),(p===null||p.length0){const c=new Dc(l.height);return c.fromEquirectangularTexture(i,a),e.set(a,c),a.addEventListener("dispose",r),t(c.texture,a.mapping)}else return null}}return a}function r(a){const o=a.target;o.removeEventListener("dispose",r);const l=e.get(o);l!==void 0&&(e.delete(o),l.dispose())}function s(){e=new WeakMap}return{get:n,dispose:s}}class Ed extends Io{constructor(e=-1,t=1,n=1,r=-1,s=.1,a=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=n,this.bottom=r,this.near=s,this.far=a,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,n,r,s,a){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=r,this.view.width=s,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),n=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let s=n-e,a=n+e,o=r+t,l=r-t;if(this.view!==null&&this.view.enabled){const c=(this.right-this.left)/this.view.fullWidth/this.zoom,u=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=c*this.view.offsetX,a=s+c*this.view.width,o-=u*this.view.offsetY,l=o-u*this.view.height}this.projectionMatrix.makeOrthographic(s,a,o,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}}const oi=4,Ca=[.125,.215,.35,.446,.526,.582],Dn=20,Kr=new Ed,Pa=new Xe;let jr=null,Zr=0,Jr=0,Qr=!1;const Pn=(1+Math.sqrt(5))/2,si=1/Pn,La=[new F(-Pn,si,0),new F(Pn,si,0),new F(-si,0,Pn),new F(si,0,Pn),new F(0,Pn,-si),new F(0,Pn,si),new F(-1,1,-1),new F(1,1,-1),new F(-1,1,1),new F(1,1,1)];class Da{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,r=100){jr=this._renderer.getRenderTarget(),Zr=this._renderer.getActiveCubeFace(),Jr=this._renderer.getActiveMipmapLevel(),Qr=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(256);const s=this._allocateTargets();return s.depthBuffer=!0,this._sceneToCubeUV(e,n,r,s),t>0&&this._blur(s,0,0,t),this._applyPMREM(s),this._cleanup(s),s}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Na(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Ua(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e2?y:0,y,y),u.setRenderTarget(r),S&&u.render(x,o),u.render(e,o)}x.geometry.dispose(),x.material.dispose(),u.toneMapping=f,u.autoClear=d,e.background=p}_textureToCubeUV(e,t){const n=this._renderer,r=e.mapping===hi||e.mapping===di;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=Na()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Ua());const s=r?this._cubemapMaterial:this._equirectMaterial,a=new Vt(this._lodPlanes[0],s),o=s.uniforms;o.envMap.value=e;const l=this._cubeSize;rr(t,0,0,3*l,2*l),n.setRenderTarget(t),n.render(a,Kr)}_applyPMREM(e){const t=this._renderer,n=t.autoClear;t.autoClear=!1;const r=this._lodPlanes.length;for(let s=1;sDn&&console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${p} samples when the maximum is set to ${Dn}`);const h=[];let A=0;for(let w=0;wy-oi?r-y+oi:0),P=4*(this._cubeSize-b);rr(t,O,P,3*b,2*b),l.setRenderTarget(t),l.render(d,Kr)}}function yd(i){const e=[],t=[],n=[];let r=i;const s=i-oi+1+Ca.length;for(let a=0;ai-oi?l=Ca[a-i+oi-1]:a===0&&(l=0),n.push(l);const c=1/(o-2),u=-c,d=1+c,f=[u,u,d,u,d,d,u,u,d,d,u,d],m=6,x=6,S=3,p=2,h=1,A=new Float32Array(S*x*m),y=new Float32Array(p*x*m),b=new Float32Array(h*x*m);for(let P=0;P2?0:-1,E=[w,L,0,w+2/3,L,0,w+2/3,L+1,0,w,L,0,w+2/3,L+1,0,w,L+1,0];A.set(E,S*x*P),y.set(f,p*x*P);const v=[P,P,P,P,P,P];b.set(v,h*x*P)}const O=new zn;O.setAttribute("position",new kt(A,S)),O.setAttribute("uv",new kt(y,p)),O.setAttribute("faceIndex",new kt(b,h)),e.push(O),r>oi&&r--}return{lodPlanes:e,sizeLods:t,sigmas:n}}function Ia(i,e,t){const n=new Nn(i,e,t);return n.texture.mapping=xr,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function rr(i,e,t,n,r){i.viewport.set(e,t,n,r),i.scissor.set(e,t,n,r)}function Ad(i,e,t){const n=new Float32Array(Dn),r=new F(0,1,0);return new an({name:"SphericalGaussianBlur",defines:{n:Dn,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${i}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:$s(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + uniform int samples; + uniform float weights[ n ]; + uniform bool latitudinal; + uniform float dTheta; + uniform float mipInt; + uniform vec3 poleAxis; + + #define ENVMAP_TYPE_CUBE_UV + #include + + vec3 getSample( float theta, vec3 axis ) { + + float cosTheta = cos( theta ); + // Rodrigues' axis-angle rotation + vec3 sampleDirection = vOutputDirection * cosTheta + + cross( axis, vOutputDirection ) * sin( theta ) + + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); + + return bilinearCubeUV( envMap, sampleDirection, mipInt ); + + } + + void main() { + + vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); + + if ( all( equal( axis, vec3( 0.0 ) ) ) ) { + + axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); + + } + + axis = normalize( axis ); + + gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); + gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); + + for ( int i = 1; i < n; i++ ) { + + if ( i >= samples ) { + + break; + + } + + float theta = dTheta * float( i ); + gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); + gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); + + } + + } + `,blending:Mn,depthTest:!1,depthWrite:!1})}function Ua(){return new an({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:$s(),fragmentShader:` + + precision mediump float; + precision mediump int; + + varying vec3 vOutputDirection; + + uniform sampler2D envMap; + + #include + + void main() { + + vec3 outputDirection = normalize( vOutputDirection ); + vec2 uv = equirectUv( outputDirection ); + + gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); + + } + `,blending:Mn,depthTest:!1,depthWrite:!1})}function Na(){return new an({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:$s(),fragmentShader:` + + precision mediump float; + precision mediump int; + + uniform float flipEnvMap; + + varying vec3 vOutputDirection; + + uniform samplerCube envMap; + + void main() { + + gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); + + } + `,blending:Mn,depthTest:!1,depthWrite:!1})}function $s(){return` + + precision mediump float; + precision mediump int; + + attribute float faceIndex; + + varying vec3 vOutputDirection; + + // RH coordinate system; PMREM face-indexing convention + vec3 getDirection( vec2 uv, float face ) { + + uv = 2.0 * uv - 1.0; + + vec3 direction = vec3( uv, 1.0 ); + + if ( face == 0.0 ) { + + direction = direction.zyx; // ( 1, v, u ) pos x + + } else if ( face == 1.0 ) { + + direction = direction.xzy; + direction.xz *= -1.0; // ( -u, 1, -v ) pos y + + } else if ( face == 2.0 ) { + + direction.x *= -1.0; // ( -u, v, 1 ) pos z + + } else if ( face == 3.0 ) { + + direction = direction.zyx; + direction.xz *= -1.0; // ( -1, v, -u ) neg x + + } else if ( face == 4.0 ) { + + direction = direction.xzy; + direction.xy *= -1.0; // ( -u, -1, v ) neg y + + } else if ( face == 5.0 ) { + + direction.z *= -1.0; // ( u, v, -1 ) neg z + + } + + return direction; + + } + + void main() { + + vOutputDirection = getDirection( uv, faceIndex ); + gl_Position = vec4( position, 1.0 ); + + } + `}function Td(i){let e=new WeakMap,t=null;function n(o){if(o&&o.isTexture){const l=o.mapping,c=l===as||l===os,u=l===hi||l===di;if(c||u){let d=e.get(o);const f=d!==void 0?d.texture.pmremVersion:0;if(o.isRenderTargetTexture&&o.pmremVersion!==f)return t===null&&(t=new Da(i)),d=c?t.fromEquirectangular(o,d):t.fromCubemap(o,d),d.texture.pmremVersion=o.pmremVersion,e.set(o,d),d.texture;if(d!==void 0)return d.texture;{const m=o.image;return c&&m&&m.height>0||u&&m&&r(m)?(t===null&&(t=new Da(i)),d=c?t.fromEquirectangular(o):t.fromCubemap(o),d.texture.pmremVersion=o.pmremVersion,e.set(o,d),o.addEventListener("dispose",s),d.texture):null}}}return o}function r(o){let l=0;const c=6;for(let u=0;ue.maxTextureSize&&(P=Math.ceil(O/e.maxTextureSize),O=e.maxTextureSize);const w=new Float32Array(O*P*4*d),L=new To(w,O,P,d);L.type=Lt,L.needsUpdate=!0;const E=b*4;for(let R=0;R0)return i;const r=e*t;let s=Oa[r];if(s===void 0&&(s=new Float32Array(r),Oa[r]=s),e!==0){n.toArray(s,0);for(let a=1,o=0;a!==e;++a)o+=t,i[a].toArray(s,o)}return s}function ot(i,e){if(i.length!==e.length)return!1;for(let t=0,n=i.length;t":" "} ${o}: ${t[a]}`)}return n.join(` +`)}function bf(i){const e=Ye.getPrimaries(Ye.workingColorSpace),t=Ye.getPrimaries(i);let n;switch(e===t?n="":e===gr&&t===mr?n="LinearDisplayP3ToLinearSRGB":e===mr&&t===gr&&(n="LinearSRGBToLinearDisplayP3"),i){case on:case Mr:return[n,"LinearTransferOETF"];case Ft:case Xs:return[n,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",i),[n,"LinearTransferOETF"]}}function Wa(i,e,t){const n=i.getShaderParameter(e,i.COMPILE_STATUS),r=i.getShaderInfoLog(e).trim();if(n&&r==="")return"";const s=/ERROR: 0:(\d+)/.exec(r);if(s){const a=parseInt(s[1]);return t.toUpperCase()+` + +`+r+` + +`+Tf(i.getShaderSource(e),a)}else return r}function wf(i,e){const t=bf(e);return`vec4 ${i}( vec4 value ) { return ${t[0]}( ${t[1]}( value ) ); }`}function Rf(i,e){let t;switch(e){case Al:t="Linear";break;case Tl:t="Reinhard";break;case bl:t="OptimizedCineon";break;case wl:t="ACESFilmic";break;case Cl:t="AgX";break;case Pl:t="Neutral";break;case Rl:t="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),t="Linear"}return"vec3 "+i+"( vec3 color ) { return "+t+"ToneMapping( color ); }"}function Cf(i){return[i.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",i.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(Ti).join(` +`)}function Pf(i){const e=[];for(const t in i){const n=i[t];n!==!1&&e.push("#define "+t+" "+n)}return e.join(` +`)}function Lf(i,e){const t={},n=i.getProgramParameter(e,i.ACTIVE_ATTRIBUTES);for(let r=0;r/gm;function Fs(i){return i.replace(Df,Uf)}const If=new Map;function Uf(i,e){let t=Ne[e];if(t===void 0){const n=If.get(e);if(n!==void 0)t=Ne[n],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,n);else throw new Error("Can not resolve #include <"+e+">")}return Fs(t)}const Nf=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function qa(i){return i.replace(Nf,Ff)}function Ff(i,e,t,n){let r="";for(let s=parseInt(e);s0&&(p+=` +`),h=["#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x].filter(Ti).join(` +`),h.length>0&&(h+=` +`)):(p=[$a(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x,t.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",t.batching?"#define USE_BATCHING":"",t.batchingColor?"#define USE_BATCHING_COLOR":"",t.instancing?"#define USE_INSTANCING":"",t.instancingColor?"#define USE_INSTANCING_COLOR":"",t.instancingMorph?"#define USE_INSTANCING_MORPH":"",t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.map?"#define USE_MAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+u:"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.displacementMap?"#define USE_DISPLACEMENTMAP":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.mapUv?"#define MAP_UV "+t.mapUv:"",t.alphaMapUv?"#define ALPHAMAP_UV "+t.alphaMapUv:"",t.lightMapUv?"#define LIGHTMAP_UV "+t.lightMapUv:"",t.aoMapUv?"#define AOMAP_UV "+t.aoMapUv:"",t.emissiveMapUv?"#define EMISSIVEMAP_UV "+t.emissiveMapUv:"",t.bumpMapUv?"#define BUMPMAP_UV "+t.bumpMapUv:"",t.normalMapUv?"#define NORMALMAP_UV "+t.normalMapUv:"",t.displacementMapUv?"#define DISPLACEMENTMAP_UV "+t.displacementMapUv:"",t.metalnessMapUv?"#define METALNESSMAP_UV "+t.metalnessMapUv:"",t.roughnessMapUv?"#define ROUGHNESSMAP_UV "+t.roughnessMapUv:"",t.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+t.anisotropyMapUv:"",t.clearcoatMapUv?"#define CLEARCOATMAP_UV "+t.clearcoatMapUv:"",t.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+t.clearcoatNormalMapUv:"",t.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+t.clearcoatRoughnessMapUv:"",t.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+t.iridescenceMapUv:"",t.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+t.iridescenceThicknessMapUv:"",t.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+t.sheenColorMapUv:"",t.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+t.sheenRoughnessMapUv:"",t.specularMapUv?"#define SPECULARMAP_UV "+t.specularMapUv:"",t.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+t.specularColorMapUv:"",t.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+t.specularIntensityMapUv:"",t.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+t.transmissionMapUv:"",t.thicknessMapUv?"#define THICKNESSMAP_UV "+t.thicknessMapUv:"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.flatShading?"#define FLAT_SHADED":"",t.skinning?"#define USE_SKINNING":"",t.morphTargets?"#define USE_MORPHTARGETS":"",t.morphNormals&&t.flatShading===!1?"#define USE_MORPHNORMALS":"",t.morphColors?"#define USE_MORPHCOLORS":"",t.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+t.morphTextureStride:"",t.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+t.morphTargetsCount:"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.sizeAttenuation?"#define USE_SIZEATTENUATION":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` +`].filter(Ti).join(` +`),h=[$a(t),"#define SHADER_TYPE "+t.shaderType,"#define SHADER_NAME "+t.shaderName,x,t.useFog&&t.fog?"#define USE_FOG":"",t.useFog&&t.fogExp2?"#define FOG_EXP2":"",t.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",t.map?"#define USE_MAP":"",t.matcap?"#define USE_MATCAP":"",t.envMap?"#define USE_ENVMAP":"",t.envMap?"#define "+c:"",t.envMap?"#define "+u:"",t.envMap?"#define "+d:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",t.lightMap?"#define USE_LIGHTMAP":"",t.aoMap?"#define USE_AOMAP":"",t.bumpMap?"#define USE_BUMPMAP":"",t.normalMap?"#define USE_NORMALMAP":"",t.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",t.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",t.emissiveMap?"#define USE_EMISSIVEMAP":"",t.anisotropy?"#define USE_ANISOTROPY":"",t.anisotropyMap?"#define USE_ANISOTROPYMAP":"",t.clearcoat?"#define USE_CLEARCOAT":"",t.clearcoatMap?"#define USE_CLEARCOATMAP":"",t.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",t.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",t.dispersion?"#define USE_DISPERSION":"",t.iridescence?"#define USE_IRIDESCENCE":"",t.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",t.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",t.specularMap?"#define USE_SPECULARMAP":"",t.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",t.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",t.roughnessMap?"#define USE_ROUGHNESSMAP":"",t.metalnessMap?"#define USE_METALNESSMAP":"",t.alphaMap?"#define USE_ALPHAMAP":"",t.alphaTest?"#define USE_ALPHATEST":"",t.alphaHash?"#define USE_ALPHAHASH":"",t.sheen?"#define USE_SHEEN":"",t.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",t.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",t.transmission?"#define USE_TRANSMISSION":"",t.transmissionMap?"#define USE_TRANSMISSIONMAP":"",t.thicknessMap?"#define USE_THICKNESSMAP":"",t.vertexTangents&&t.flatShading===!1?"#define USE_TANGENT":"",t.vertexColors||t.instancingColor||t.batchingColor?"#define USE_COLOR":"",t.vertexAlphas?"#define USE_COLOR_ALPHA":"",t.vertexUv1s?"#define USE_UV1":"",t.vertexUv2s?"#define USE_UV2":"",t.vertexUv3s?"#define USE_UV3":"",t.pointsUvs?"#define USE_POINTS_UV":"",t.gradientMap?"#define USE_GRADIENTMAP":"",t.flatShading?"#define FLAT_SHADED":"",t.doubleSided?"#define DOUBLE_SIDED":"",t.flipSided?"#define FLIP_SIDED":"",t.shadowMapEnabled?"#define USE_SHADOWMAP":"",t.shadowMapEnabled?"#define "+l:"",t.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",t.numLightProbes>0?"#define USE_LIGHT_PROBES":"",t.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",t.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",t.toneMapping!==Sn?"#define TONE_MAPPING":"",t.toneMapping!==Sn?Ne.tonemapping_pars_fragment:"",t.toneMapping!==Sn?Rf("toneMapping",t.toneMapping):"",t.dithering?"#define DITHERING":"",t.opaque?"#define OPAQUE":"",Ne.colorspace_pars_fragment,wf("linearToOutputTexel",t.outputColorSpace),t.useDepthPacking?"#define DEPTH_PACKING "+t.depthPacking:"",` +`].filter(Ti).join(` +`)),a=Fs(a),a=Xa(a,t),a=Ya(a,t),o=Fs(o),o=Xa(o,t),o=Ya(o,t),a=qa(a),o=qa(o),t.isRawShaderMaterial!==!0&&(A=`#version 300 es +`,p=[m,"#define attribute in","#define varying out","#define texture2D texture"].join(` +`)+` +`+p,h=["#define varying in",t.glslVersion===la?"":"layout(location = 0) out highp vec4 pc_fragColor;",t.glslVersion===la?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` +`)+` +`+h);const y=A+p+a,b=A+h+o,O=Ga(r,r.VERTEX_SHADER,y),P=Ga(r,r.FRAGMENT_SHADER,b);r.attachShader(S,O),r.attachShader(S,P),t.index0AttributeName!==void 0?r.bindAttribLocation(S,0,t.index0AttributeName):t.morphTargets===!0&&r.bindAttribLocation(S,0,"position"),r.linkProgram(S);function w(R){if(i.debug.checkShaderErrors){const W=r.getProgramInfoLog(S).trim(),U=r.getShaderInfoLog(O).trim(),k=r.getShaderInfoLog(P).trim();let Y=!0,H=!0;if(r.getProgramParameter(S,r.LINK_STATUS)===!1)if(Y=!1,typeof i.debug.onShaderError=="function")i.debug.onShaderError(r,S,O,P);else{const K=Wa(r,O,"vertex"),q=Wa(r,P,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(S,r.VALIDATE_STATUS)+` + +Material Name: `+R.name+` +Material Type: `+R.type+` + +Program Info Log: `+W+` +`+K+` +`+q)}else W!==""?console.warn("THREE.WebGLProgram: Program Info Log:",W):(U===""||k==="")&&(H=!1);H&&(R.diagnostics={runnable:Y,programLog:W,vertexShader:{log:U,prefix:p},fragmentShader:{log:k,prefix:h}})}r.deleteShader(O),r.deleteShader(P),L=new dr(r,S),E=Lf(r,S)}let L;this.getUniforms=function(){return L===void 0&&w(this),L};let E;this.getAttributes=function(){return E===void 0&&w(this),E};let v=t.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return v===!1&&(v=r.getProgramParameter(S,yf)),v},this.destroy=function(){n.releaseStatesOfProgram(this),r.deleteProgram(S),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=Af++,this.cacheKey=e,this.usedTimes=1,this.program=S,this.vertexShader=O,this.fragmentShader=P,this}let Gf=0;class Wf{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,n=e.fragmentShader,r=this._getShaderStage(t),s=this._getShaderStage(n),a=this._getShaderCacheForMaterial(e);return a.has(r)===!1&&(a.add(r),r.usedTimes++),a.has(s)===!1&&(a.add(s),s.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const n of t)n.usedTimes--,n.usedTimes===0&&this.shaderCache.delete(n.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const t=this.materialCache;let n=t.get(e);return n===void 0&&(n=new Set,t.set(e,n)),n}_getShaderStage(e){const t=this.shaderCache;let n=t.get(e);return n===void 0&&(n=new Xf(e),t.set(e,n)),n}}class Xf{constructor(e){this.id=Gf++,this.code=e,this.usedTimes=0}}function Yf(i,e,t,n,r,s,a){const o=new wo,l=new Wf,c=new Set,u=[],d=r.logarithmicDepthBuffer,f=r.vertexTextures;let m=r.precision;const x={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function S(E){return c.add(E),E===0?"uv":`uv${E}`}function p(E,v,R,W,U){const k=W.fog,Y=U.geometry,H=E.isMeshStandardMaterial?W.environment:null,K=(E.isMeshStandardMaterial?t:e).get(E.envMap||H),q=K&&K.mapping===xr?K.image.height:null,se=x[E.type];E.precision!==null&&(m=r.getMaxPrecision(E.precision),m!==E.precision&&console.warn("THREE.WebGLProgram.getParameters:",E.precision,"not supported, using",m,"instead."));const ae=Y.morphAttributes.position||Y.morphAttributes.normal||Y.morphAttributes.color,fe=ae!==void 0?ae.length:0;let ye=0;Y.morphAttributes.position!==void 0&&(ye=1),Y.morphAttributes.normal!==void 0&&(ye=2),Y.morphAttributes.color!==void 0&&(ye=3);let Ie,$,ee,de;if(se){const ze=Bt[se];Ie=ze.vertexShader,$=ze.fragmentShader}else Ie=E.vertexShader,$=E.fragmentShader,l.update(E),ee=l.getVertexShaderID(E),de=l.getFragmentShaderID(E);const ue=i.getRenderTarget(),Pe=U.isInstancedMesh===!0,Ue=U.isBatchedMesh===!0,Oe=!!E.map,qe=!!E.matcap,C=!!K,je=!!E.aoMap,He=!!E.lightMap,Ve=!!E.bumpMap,ge=!!E.normalMap,Ze=!!E.displacementMap,we=!!E.emissiveMap,Ce=!!E.metalnessMap,T=!!E.roughnessMap,_=E.anisotropy>0,G=E.clearcoat>0,Z=E.dispersion>0,Q=E.iridescence>0,j=E.sheen>0,xe=E.transmission>0,ie=_&&!!E.anisotropyMap,le=G&&!!E.clearcoatMap,Le=G&&!!E.clearcoatNormalMap,te=G&&!!E.clearcoatRoughnessMap,ce=Q&&!!E.iridescenceMap,Be=Q&&!!E.iridescenceThicknessMap,Se=j&&!!E.sheenColorMap,he=j&&!!E.sheenRoughnessMap,Ae=!!E.specularMap,Re=!!E.specularColorMap,Ke=!!E.specularIntensityMap,g=xe&&!!E.transmissionMap,N=xe&&!!E.thicknessMap,B=!!E.gradientMap,X=!!E.alphaMap,J=E.alphaTest>0,_e=!!E.alphaHash,Te=!!E.extensions;let et=Sn;E.toneMapped&&(ue===null||ue.isXRRenderTarget===!0)&&(et=i.toneMapping);const rt={shaderID:se,shaderType:E.type,shaderName:E.name,vertexShader:Ie,fragmentShader:$,defines:E.defines,customVertexShaderID:ee,customFragmentShaderID:de,isRawShaderMaterial:E.isRawShaderMaterial===!0,glslVersion:E.glslVersion,precision:m,batching:Ue,batchingColor:Ue&&U._colorsTexture!==null,instancing:Pe,instancingColor:Pe&&U.instanceColor!==null,instancingMorph:Pe&&U.morphTexture!==null,supportsVertexTextures:f,outputColorSpace:ue===null?i.outputColorSpace:ue.isXRRenderTarget===!0?ue.texture.colorSpace:on,alphaToCoverage:!!E.alphaToCoverage,map:Oe,matcap:qe,envMap:C,envMapMode:C&&K.mapping,envMapCubeUVHeight:q,aoMap:je,lightMap:He,bumpMap:Ve,normalMap:ge,displacementMap:f&&Ze,emissiveMap:we,normalMapObjectSpace:ge&&E.normalMapType===Nl,normalMapTangentSpace:ge&&E.normalMapType===Ul,metalnessMap:Ce,roughnessMap:T,anisotropy:_,anisotropyMap:ie,clearcoat:G,clearcoatMap:le,clearcoatNormalMap:Le,clearcoatRoughnessMap:te,dispersion:Z,iridescence:Q,iridescenceMap:ce,iridescenceThicknessMap:Be,sheen:j,sheenColorMap:Se,sheenRoughnessMap:he,specularMap:Ae,specularColorMap:Re,specularIntensityMap:Ke,transmission:xe,transmissionMap:g,thicknessMap:N,gradientMap:B,opaque:E.transparent===!1&&E.blending===li&&E.alphaToCoverage===!1,alphaMap:X,alphaTest:J,alphaHash:_e,combine:E.combine,mapUv:Oe&&S(E.map.channel),aoMapUv:je&&S(E.aoMap.channel),lightMapUv:He&&S(E.lightMap.channel),bumpMapUv:Ve&&S(E.bumpMap.channel),normalMapUv:ge&&S(E.normalMap.channel),displacementMapUv:Ze&&S(E.displacementMap.channel),emissiveMapUv:we&&S(E.emissiveMap.channel),metalnessMapUv:Ce&&S(E.metalnessMap.channel),roughnessMapUv:T&&S(E.roughnessMap.channel),anisotropyMapUv:ie&&S(E.anisotropyMap.channel),clearcoatMapUv:le&&S(E.clearcoatMap.channel),clearcoatNormalMapUv:Le&&S(E.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:te&&S(E.clearcoatRoughnessMap.channel),iridescenceMapUv:ce&&S(E.iridescenceMap.channel),iridescenceThicknessMapUv:Be&&S(E.iridescenceThicknessMap.channel),sheenColorMapUv:Se&&S(E.sheenColorMap.channel),sheenRoughnessMapUv:he&&S(E.sheenRoughnessMap.channel),specularMapUv:Ae&&S(E.specularMap.channel),specularColorMapUv:Re&&S(E.specularColorMap.channel),specularIntensityMapUv:Ke&&S(E.specularIntensityMap.channel),transmissionMapUv:g&&S(E.transmissionMap.channel),thicknessMapUv:N&&S(E.thicknessMap.channel),alphaMapUv:X&&S(E.alphaMap.channel),vertexTangents:!!Y.attributes.tangent&&(ge||_),vertexColors:E.vertexColors,vertexAlphas:E.vertexColors===!0&&!!Y.attributes.color&&Y.attributes.color.itemSize===4,pointsUvs:U.isPoints===!0&&!!Y.attributes.uv&&(Oe||X),fog:!!k,useFog:E.fog===!0,fogExp2:!!k&&k.isFogExp2,flatShading:E.flatShading===!0,sizeAttenuation:E.sizeAttenuation===!0,logarithmicDepthBuffer:d,skinning:U.isSkinnedMesh===!0,morphTargets:Y.morphAttributes.position!==void 0,morphNormals:Y.morphAttributes.normal!==void 0,morphColors:Y.morphAttributes.color!==void 0,morphTargetsCount:fe,morphTextureStride:ye,numDirLights:v.directional.length,numPointLights:v.point.length,numSpotLights:v.spot.length,numSpotLightMaps:v.spotLightMap.length,numRectAreaLights:v.rectArea.length,numHemiLights:v.hemi.length,numDirLightShadows:v.directionalShadowMap.length,numPointLightShadows:v.pointShadowMap.length,numSpotLightShadows:v.spotShadowMap.length,numSpotLightShadowsWithMaps:v.numSpotLightShadowsWithMaps,numLightProbes:v.numLightProbes,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:E.dithering,shadowMapEnabled:i.shadowMap.enabled&&R.length>0,shadowMapType:i.shadowMap.type,toneMapping:et,decodeVideoTexture:Oe&&E.map.isVideoTexture===!0&&Ye.getTransfer(E.map.colorSpace)===$e,premultipliedAlpha:E.premultipliedAlpha,doubleSided:E.side===Jt,flipSided:E.side===Et,useDepthPacking:E.depthPacking>=0,depthPacking:E.depthPacking||0,index0AttributeName:E.index0AttributeName,extensionClipCullDistance:Te&&E.extensions.clipCullDistance===!0&&n.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(Te&&E.extensions.multiDraw===!0||Ue)&&n.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:n.has("KHR_parallel_shader_compile"),customProgramCacheKey:E.customProgramCacheKey()};return rt.vertexUv1s=c.has(1),rt.vertexUv2s=c.has(2),rt.vertexUv3s=c.has(3),c.clear(),rt}function h(E){const v=[];if(E.shaderID?v.push(E.shaderID):(v.push(E.customVertexShaderID),v.push(E.customFragmentShaderID)),E.defines!==void 0)for(const R in E.defines)v.push(R),v.push(E.defines[R]);return E.isRawShaderMaterial===!1&&(A(v,E),y(v,E),v.push(i.outputColorSpace)),v.push(E.customProgramCacheKey),v.join()}function A(E,v){E.push(v.precision),E.push(v.outputColorSpace),E.push(v.envMapMode),E.push(v.envMapCubeUVHeight),E.push(v.mapUv),E.push(v.alphaMapUv),E.push(v.lightMapUv),E.push(v.aoMapUv),E.push(v.bumpMapUv),E.push(v.normalMapUv),E.push(v.displacementMapUv),E.push(v.emissiveMapUv),E.push(v.metalnessMapUv),E.push(v.roughnessMapUv),E.push(v.anisotropyMapUv),E.push(v.clearcoatMapUv),E.push(v.clearcoatNormalMapUv),E.push(v.clearcoatRoughnessMapUv),E.push(v.iridescenceMapUv),E.push(v.iridescenceThicknessMapUv),E.push(v.sheenColorMapUv),E.push(v.sheenRoughnessMapUv),E.push(v.specularMapUv),E.push(v.specularColorMapUv),E.push(v.specularIntensityMapUv),E.push(v.transmissionMapUv),E.push(v.thicknessMapUv),E.push(v.combine),E.push(v.fogExp2),E.push(v.sizeAttenuation),E.push(v.morphTargetsCount),E.push(v.morphAttributeCount),E.push(v.numDirLights),E.push(v.numPointLights),E.push(v.numSpotLights),E.push(v.numSpotLightMaps),E.push(v.numHemiLights),E.push(v.numRectAreaLights),E.push(v.numDirLightShadows),E.push(v.numPointLightShadows),E.push(v.numSpotLightShadows),E.push(v.numSpotLightShadowsWithMaps),E.push(v.numLightProbes),E.push(v.shadowMapType),E.push(v.toneMapping),E.push(v.numClippingPlanes),E.push(v.numClipIntersection),E.push(v.depthPacking)}function y(E,v){o.disableAll(),v.supportsVertexTextures&&o.enable(0),v.instancing&&o.enable(1),v.instancingColor&&o.enable(2),v.instancingMorph&&o.enable(3),v.matcap&&o.enable(4),v.envMap&&o.enable(5),v.normalMapObjectSpace&&o.enable(6),v.normalMapTangentSpace&&o.enable(7),v.clearcoat&&o.enable(8),v.iridescence&&o.enable(9),v.alphaTest&&o.enable(10),v.vertexColors&&o.enable(11),v.vertexAlphas&&o.enable(12),v.vertexUv1s&&o.enable(13),v.vertexUv2s&&o.enable(14),v.vertexUv3s&&o.enable(15),v.vertexTangents&&o.enable(16),v.anisotropy&&o.enable(17),v.alphaHash&&o.enable(18),v.batching&&o.enable(19),v.dispersion&&o.enable(20),v.batchingColor&&o.enable(21),E.push(o.mask),o.disableAll(),v.fog&&o.enable(0),v.useFog&&o.enable(1),v.flatShading&&o.enable(2),v.logarithmicDepthBuffer&&o.enable(3),v.skinning&&o.enable(4),v.morphTargets&&o.enable(5),v.morphNormals&&o.enable(6),v.morphColors&&o.enable(7),v.premultipliedAlpha&&o.enable(8),v.shadowMapEnabled&&o.enable(9),v.doubleSided&&o.enable(10),v.flipSided&&o.enable(11),v.useDepthPacking&&o.enable(12),v.dithering&&o.enable(13),v.transmission&&o.enable(14),v.sheen&&o.enable(15),v.opaque&&o.enable(16),v.pointsUvs&&o.enable(17),v.decodeVideoTexture&&o.enable(18),v.alphaToCoverage&&o.enable(19),E.push(o.mask)}function b(E){const v=x[E.type];let R;if(v){const W=Bt[v];R=Rc.clone(W.uniforms)}else R=E.uniforms;return R}function O(E,v){let R;for(let W=0,U=u.length;W0?n.push(h):m.transparent===!0?r.push(h):t.push(h)}function l(d,f,m,x,S,p){const h=a(d,f,m,x,S,p);m.transmission>0?n.unshift(h):m.transparent===!0?r.unshift(h):t.unshift(h)}function c(d,f){t.length>1&&t.sort(d||$f),n.length>1&&n.sort(f||Ka),r.length>1&&r.sort(f||Ka)}function u(){for(let d=e,f=i.length;d=s.length?(a=new ja,s.push(a)):a=s[r],a}function t(){i=new WeakMap}return{get:e,dispose:t}}function jf(){const i={};return{get:function(e){if(i[e.id]!==void 0)return i[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new F,color:new Xe};break;case"SpotLight":t={position:new F,direction:new F,color:new Xe,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new F,color:new Xe,distance:0,decay:0};break;case"HemisphereLight":t={direction:new F,skyColor:new Xe,groundColor:new Xe};break;case"RectAreaLight":t={color:new Xe,position:new F,halfWidth:new F,halfHeight:new F};break}return i[e.id]=t,t}}}function Zf(){const i={};return{get:function(e){if(i[e.id]!==void 0)return i[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new De};break;case"SpotLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new De};break;case"PointLight":t={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new De,shadowCameraNear:1,shadowCameraFar:1e3};break}return i[e.id]=t,t}}}let Jf=0;function Qf(i,e){return(e.castShadow?2:0)-(i.castShadow?2:0)+(e.map?1:0)-(i.map?1:0)}function ep(i){const e=new jf,t=Zf(),n={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let c=0;c<9;c++)n.probe.push(new F);const r=new F,s=new at,a=new at;function o(c){let u=0,d=0,f=0;for(let E=0;E<9;E++)n.probe[E].set(0,0,0);let m=0,x=0,S=0,p=0,h=0,A=0,y=0,b=0,O=0,P=0,w=0;c.sort(Qf);for(let E=0,v=c.length;E0&&(i.has("OES_texture_float_linear")===!0?(n.rectAreaLTC1=re.LTC_FLOAT_1,n.rectAreaLTC2=re.LTC_FLOAT_2):(n.rectAreaLTC1=re.LTC_HALF_1,n.rectAreaLTC2=re.LTC_HALF_2)),n.ambient[0]=u,n.ambient[1]=d,n.ambient[2]=f;const L=n.hash;(L.directionalLength!==m||L.pointLength!==x||L.spotLength!==S||L.rectAreaLength!==p||L.hemiLength!==h||L.numDirectionalShadows!==A||L.numPointShadows!==y||L.numSpotShadows!==b||L.numSpotMaps!==O||L.numLightProbes!==w)&&(n.directional.length=m,n.spot.length=S,n.rectArea.length=p,n.point.length=x,n.hemi.length=h,n.directionalShadow.length=A,n.directionalShadowMap.length=A,n.pointShadow.length=y,n.pointShadowMap.length=y,n.spotShadow.length=b,n.spotShadowMap.length=b,n.directionalShadowMatrix.length=A,n.pointShadowMatrix.length=y,n.spotLightMatrix.length=b+O-P,n.spotLightMap.length=O,n.numSpotLightShadowsWithMaps=P,n.numLightProbes=w,L.directionalLength=m,L.pointLength=x,L.spotLength=S,L.rectAreaLength=p,L.hemiLength=h,L.numDirectionalShadows=A,L.numPointShadows=y,L.numSpotShadows=b,L.numSpotMaps=O,L.numLightProbes=w,n.version=Jf++)}function l(c,u){let d=0,f=0,m=0,x=0,S=0;const p=u.matrixWorldInverse;for(let h=0,A=c.length;h=a.length?(o=new Za(i),a.push(o)):o=a[s],o}function n(){e=new WeakMap}return{get:t,dispose:n}}class np extends Sr{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Dl,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class ip extends Sr{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const rp=`void main() { + gl_Position = vec4( position, 1.0 ); +}`,sp=`uniform sampler2D shadow_pass; +uniform vec2 resolution; +uniform float radius; +#include +void main() { + const float samples = float( VSM_SAMPLES ); + float mean = 0.0; + float squared_mean = 0.0; + float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); + float uvStart = samples <= 1.0 ? 0.0 : - 1.0; + for ( float i = 0.0; i < samples; i ++ ) { + float uvOffset = uvStart + i * uvStride; + #ifdef HORIZONTAL_PASS + vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) ); + mean += distribution.x; + squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; + #else + float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) ); + mean += depth; + squared_mean += depth * depth; + #endif + } + mean = mean / samples; + squared_mean = squared_mean / samples; + float std_dev = sqrt( squared_mean - mean * mean ); + gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) ); +}`;function ap(i,e,t){let n=new No;const r=new De,s=new De,a=new ut,o=new np({depthPacking:Il}),l=new ip,c={},u=t.maxTextureSize,d={[En]:Et,[Et]:En,[Jt]:Jt},f=new an({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new De},radius:{value:4}},vertexShader:rp,fragmentShader:sp}),m=f.clone();m.defines.HORIZONTAL_PASS=1;const x=new zn;x.setAttribute("position",new kt(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const S=new Vt(x,f),p=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=ao;let h=this.type;this.render=function(P,w,L){if(p.enabled===!1||p.autoUpdate===!1&&p.needsUpdate===!1||P.length===0)return;const E=i.getRenderTarget(),v=i.getActiveCubeFace(),R=i.getActiveMipmapLevel(),W=i.state;W.setBlending(Mn),W.buffers.color.setClear(1,1,1,1),W.buffers.depth.setTest(!0),W.setScissorTest(!1);const U=h!==Zt&&this.type===Zt,k=h===Zt&&this.type!==Zt;for(let Y=0,H=P.length;Yu||r.y>u)&&(r.x>u&&(s.x=Math.floor(u/se.x),r.x=s.x*se.x,q.mapSize.x=s.x),r.y>u&&(s.y=Math.floor(u/se.y),r.y=s.y*se.y,q.mapSize.y=s.y)),q.map===null||U===!0||k===!0){const fe=this.type!==Zt?{minFilter:St,magFilter:St}:{};q.map!==null&&q.map.dispose(),q.map=new Nn(r.x,r.y,fe),q.map.texture.name=K.name+".shadowMap",q.camera.updateProjectionMatrix()}i.setRenderTarget(q.map),i.clear();const ae=q.getViewportCount();for(let fe=0;fe0||w.map&&w.alphaTest>0){const W=v.uuid,U=w.uuid;let k=c[W];k===void 0&&(k={},c[W]=k);let Y=k[U];Y===void 0&&(Y=v.clone(),k[U]=Y,w.addEventListener("dispose",O)),v=Y}if(v.visible=w.visible,v.wireframe=w.wireframe,E===Zt?v.side=w.shadowSide!==null?w.shadowSide:w.side:v.side=w.shadowSide!==null?w.shadowSide:d[w.side],v.alphaMap=w.alphaMap,v.alphaTest=w.alphaTest,v.map=w.map,v.clipShadows=w.clipShadows,v.clippingPlanes=w.clippingPlanes,v.clipIntersection=w.clipIntersection,v.displacementMap=w.displacementMap,v.displacementScale=w.displacementScale,v.displacementBias=w.displacementBias,v.wireframeLinewidth=w.wireframeLinewidth,v.linewidth=w.linewidth,L.isPointLight===!0&&v.isMeshDistanceMaterial===!0){const W=i.properties.get(v);W.light=L}return v}function b(P,w,L,E,v){if(P.visible===!1)return;if(P.layers.test(w.layers)&&(P.isMesh||P.isLine||P.isPoints)&&(P.castShadow||P.receiveShadow&&v===Zt)&&(!P.frustumCulled||n.intersectsObject(P))){P.modelViewMatrix.multiplyMatrices(L.matrixWorldInverse,P.matrixWorld);const U=e.update(P),k=P.material;if(Array.isArray(k)){const Y=U.groups;for(let H=0,K=Y.length;H=1):K.indexOf("OpenGL ES")!==-1&&(H=parseFloat(/^OpenGL ES (\d)/.exec(K)[1]),Y=H>=2);let q=null,se={};const ae=i.getParameter(i.SCISSOR_BOX),fe=i.getParameter(i.VIEWPORT),ye=new ut().fromArray(ae),Ie=new ut().fromArray(fe);function $(g,N,B,X){const J=new Uint8Array(4),_e=i.createTexture();i.bindTexture(g,_e),i.texParameteri(g,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(g,i.TEXTURE_MAG_FILTER,i.NEAREST);for(let Te=0;Te"u"?!1:/OculusBrowser/g.test(navigator.userAgent),c=new De,u=new WeakMap;let d;const f=new WeakMap;let m=!1;try{m=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function x(T,_){return m?new OffscreenCanvas(T,_):vr("canvas")}function S(T,_,G){let Z=1;const Q=Ce(T);if((Q.width>G||Q.height>G)&&(Z=G/Math.max(Q.width,Q.height)),Z<1)if(typeof HTMLImageElement<"u"&&T instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&T instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&T instanceof ImageBitmap||typeof VideoFrame<"u"&&T instanceof VideoFrame){const j=Math.floor(Z*Q.width),xe=Math.floor(Z*Q.height);d===void 0&&(d=x(j,xe));const ie=_?x(j,xe):d;return ie.width=j,ie.height=xe,ie.getContext("2d").drawImage(T,0,0,j,xe),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+Q.width+"x"+Q.height+") to ("+j+"x"+xe+")."),ie}else return"data"in T&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+Q.width+"x"+Q.height+")."),T;return T}function p(T){return T.generateMipmaps&&T.minFilter!==St&&T.minFilter!==_t}function h(T){i.generateMipmap(T)}function A(T,_,G,Z,Q=!1){if(T!==null){if(i[T]!==void 0)return i[T];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+T+"'")}let j=_;if(_===i.RED&&(G===i.FLOAT&&(j=i.R32F),G===i.HALF_FLOAT&&(j=i.R16F),G===i.UNSIGNED_BYTE&&(j=i.R8)),_===i.RED_INTEGER&&(G===i.UNSIGNED_BYTE&&(j=i.R8UI),G===i.UNSIGNED_SHORT&&(j=i.R16UI),G===i.UNSIGNED_INT&&(j=i.R32UI),G===i.BYTE&&(j=i.R8I),G===i.SHORT&&(j=i.R16I),G===i.INT&&(j=i.R32I)),_===i.RG&&(G===i.FLOAT&&(j=i.RG32F),G===i.HALF_FLOAT&&(j=i.RG16F),G===i.UNSIGNED_BYTE&&(j=i.RG8)),_===i.RG_INTEGER&&(G===i.UNSIGNED_BYTE&&(j=i.RG8UI),G===i.UNSIGNED_SHORT&&(j=i.RG16UI),G===i.UNSIGNED_INT&&(j=i.RG32UI),G===i.BYTE&&(j=i.RG8I),G===i.SHORT&&(j=i.RG16I),G===i.INT&&(j=i.RG32I)),_===i.RGB&&G===i.UNSIGNED_INT_5_9_9_9_REV&&(j=i.RGB9_E5),_===i.RGBA){const xe=Q?pr:Ye.getTransfer(Z);G===i.FLOAT&&(j=i.RGBA32F),G===i.HALF_FLOAT&&(j=i.RGBA16F),G===i.UNSIGNED_BYTE&&(j=xe===$e?i.SRGB8_ALPHA8:i.RGBA8),G===i.UNSIGNED_SHORT_4_4_4_4&&(j=i.RGBA4),G===i.UNSIGNED_SHORT_5_5_5_1&&(j=i.RGB5_A1)}return(j===i.R16F||j===i.R32F||j===i.RG16F||j===i.RG32F||j===i.RGBA16F||j===i.RGBA32F)&&e.get("EXT_color_buffer_float"),j}function y(T,_){let G;return T?_===null||_===Un||_===fi?G=i.DEPTH24_STENCIL8:_===Lt?G=i.DEPTH32F_STENCIL8:_===Ri&&(G=i.DEPTH24_STENCIL8,console.warn("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):_===null||_===Un||_===fi?G=i.DEPTH_COMPONENT24:_===Lt?G=i.DEPTH_COMPONENT32F:_===Ri&&(G=i.DEPTH_COMPONENT16),G}function b(T,_){return p(T)===!0||T.isFramebufferTexture&&T.minFilter!==St&&T.minFilter!==_t?Math.log2(Math.max(_.width,_.height))+1:T.mipmaps!==void 0&&T.mipmaps.length>0?T.mipmaps.length:T.isCompressedTexture&&Array.isArray(T.image)?_.mipmaps.length:1}function O(T){const _=T.target;_.removeEventListener("dispose",O),w(_),_.isVideoTexture&&u.delete(_)}function P(T){const _=T.target;_.removeEventListener("dispose",P),E(_)}function w(T){const _=n.get(T);if(_.__webglInit===void 0)return;const G=T.source,Z=f.get(G);if(Z){const Q=Z[_.__cacheKey];Q.usedTimes--,Q.usedTimes===0&&L(T),Object.keys(Z).length===0&&f.delete(G)}n.remove(T)}function L(T){const _=n.get(T);i.deleteTexture(_.__webglTexture);const G=T.source,Z=f.get(G);delete Z[_.__cacheKey],a.memory.textures--}function E(T){const _=n.get(T);if(T.depthTexture&&T.depthTexture.dispose(),T.isWebGLCubeRenderTarget)for(let Z=0;Z<6;Z++){if(Array.isArray(_.__webglFramebuffer[Z]))for(let Q=0;Q<_.__webglFramebuffer[Z].length;Q++)i.deleteFramebuffer(_.__webglFramebuffer[Z][Q]);else i.deleteFramebuffer(_.__webglFramebuffer[Z]);_.__webglDepthbuffer&&i.deleteRenderbuffer(_.__webglDepthbuffer[Z])}else{if(Array.isArray(_.__webglFramebuffer))for(let Z=0;Z<_.__webglFramebuffer.length;Z++)i.deleteFramebuffer(_.__webglFramebuffer[Z]);else i.deleteFramebuffer(_.__webglFramebuffer);if(_.__webglDepthbuffer&&i.deleteRenderbuffer(_.__webglDepthbuffer),_.__webglMultisampledFramebuffer&&i.deleteFramebuffer(_.__webglMultisampledFramebuffer),_.__webglColorRenderbuffer)for(let Z=0;Z<_.__webglColorRenderbuffer.length;Z++)_.__webglColorRenderbuffer[Z]&&i.deleteRenderbuffer(_.__webglColorRenderbuffer[Z]);_.__webglDepthRenderbuffer&&i.deleteRenderbuffer(_.__webglDepthRenderbuffer)}const G=T.textures;for(let Z=0,Q=G.length;Z=r.maxTextures&&console.warn("THREE.WebGLTextures: Trying to use "+T+" texture units while this GPU supports only "+r.maxTextures),v+=1,T}function U(T){const _=[];return _.push(T.wrapS),_.push(T.wrapT),_.push(T.wrapR||0),_.push(T.magFilter),_.push(T.minFilter),_.push(T.anisotropy),_.push(T.internalFormat),_.push(T.format),_.push(T.type),_.push(T.generateMipmaps),_.push(T.premultiplyAlpha),_.push(T.flipY),_.push(T.unpackAlignment),_.push(T.colorSpace),_.join()}function k(T,_){const G=n.get(T);if(T.isVideoTexture&&Ze(T),T.isRenderTargetTexture===!1&&T.version>0&&G.__version!==T.version){const Z=T.image;if(Z===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(Z.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{Ie(G,T,_);return}}t.bindTexture(i.TEXTURE_2D,G.__webglTexture,i.TEXTURE0+_)}function Y(T,_){const G=n.get(T);if(T.version>0&&G.__version!==T.version){Ie(G,T,_);return}t.bindTexture(i.TEXTURE_2D_ARRAY,G.__webglTexture,i.TEXTURE0+_)}function H(T,_){const G=n.get(T);if(T.version>0&&G.__version!==T.version){Ie(G,T,_);return}t.bindTexture(i.TEXTURE_3D,G.__webglTexture,i.TEXTURE0+_)}function K(T,_){const G=n.get(T);if(T.version>0&&G.__version!==T.version){$(G,T,_);return}t.bindTexture(i.TEXTURE_CUBE_MAP,G.__webglTexture,i.TEXTURE0+_)}const q={[ls]:i.REPEAT,[en]:i.CLAMP_TO_EDGE,[cs]:i.MIRRORED_REPEAT},se={[St]:i.NEAREST,[Ll]:i.NEAREST_MIPMAP_NEAREST,[Fi]:i.NEAREST_MIPMAP_LINEAR,[_t]:i.LINEAR,[Pr]:i.LINEAR_MIPMAP_NEAREST,[xn]:i.LINEAR_MIPMAP_LINEAR},ae={[Fl]:i.NEVER,[kl]:i.ALWAYS,[Ol]:i.LESS,[So]:i.LEQUAL,[Bl]:i.EQUAL,[Vl]:i.GEQUAL,[zl]:i.GREATER,[Hl]:i.NOTEQUAL};function fe(T,_){if(_.type===Lt&&e.has("OES_texture_float_linear")===!1&&(_.magFilter===_t||_.magFilter===Pr||_.magFilter===Fi||_.magFilter===xn||_.minFilter===_t||_.minFilter===Pr||_.minFilter===Fi||_.minFilter===xn)&&console.warn("THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),i.texParameteri(T,i.TEXTURE_WRAP_S,q[_.wrapS]),i.texParameteri(T,i.TEXTURE_WRAP_T,q[_.wrapT]),(T===i.TEXTURE_3D||T===i.TEXTURE_2D_ARRAY)&&i.texParameteri(T,i.TEXTURE_WRAP_R,q[_.wrapR]),i.texParameteri(T,i.TEXTURE_MAG_FILTER,se[_.magFilter]),i.texParameteri(T,i.TEXTURE_MIN_FILTER,se[_.minFilter]),_.compareFunction&&(i.texParameteri(T,i.TEXTURE_COMPARE_MODE,i.COMPARE_REF_TO_TEXTURE),i.texParameteri(T,i.TEXTURE_COMPARE_FUNC,ae[_.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){if(_.magFilter===St||_.minFilter!==Fi&&_.minFilter!==xn||_.type===Lt&&e.has("OES_texture_float_linear")===!1)return;if(_.anisotropy>1||n.get(_).__currentAnisotropy){const G=e.get("EXT_texture_filter_anisotropic");i.texParameterf(T,G.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(_.anisotropy,r.getMaxAnisotropy())),n.get(_).__currentAnisotropy=_.anisotropy}}}function ye(T,_){let G=!1;T.__webglInit===void 0&&(T.__webglInit=!0,_.addEventListener("dispose",O));const Z=_.source;let Q=f.get(Z);Q===void 0&&(Q={},f.set(Z,Q));const j=U(_);if(j!==T.__cacheKey){Q[j]===void 0&&(Q[j]={texture:i.createTexture(),usedTimes:0},a.memory.textures++,G=!0),Q[j].usedTimes++;const xe=Q[T.__cacheKey];xe!==void 0&&(Q[T.__cacheKey].usedTimes--,xe.usedTimes===0&&L(_)),T.__cacheKey=j,T.__webglTexture=Q[j].texture}return G}function Ie(T,_,G){let Z=i.TEXTURE_2D;(_.isDataArrayTexture||_.isCompressedArrayTexture)&&(Z=i.TEXTURE_2D_ARRAY),_.isData3DTexture&&(Z=i.TEXTURE_3D);const Q=ye(T,_),j=_.source;t.bindTexture(Z,T.__webglTexture,i.TEXTURE0+G);const xe=n.get(j);if(j.version!==xe.__version||Q===!0){t.activeTexture(i.TEXTURE0+G);const ie=Ye.getPrimaries(Ye.workingColorSpace),le=_.colorSpace===_n?null:Ye.getPrimaries(_.colorSpace),Le=_.colorSpace===_n||ie===le?i.NONE:i.BROWSER_DEFAULT_WEBGL;i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,_.flipY),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,_.premultiplyAlpha),i.pixelStorei(i.UNPACK_ALIGNMENT,_.unpackAlignment),i.pixelStorei(i.UNPACK_COLORSPACE_CONVERSION_WEBGL,Le);let te=S(_.image,!1,r.maxTextureSize);te=we(_,te);const ce=s.convert(_.format,_.colorSpace),Be=s.convert(_.type);let Se=A(_.internalFormat,ce,Be,_.colorSpace,_.isVideoTexture);fe(Z,_);let he;const Ae=_.mipmaps,Re=_.isVideoTexture!==!0,Ke=xe.__version===void 0||Q===!0,g=j.dataReady,N=b(_,te);if(_.isDepthTexture)Se=y(_.format===pi,_.type),Ke&&(Re?t.texStorage2D(i.TEXTURE_2D,1,Se,te.width,te.height):t.texImage2D(i.TEXTURE_2D,0,Se,te.width,te.height,0,ce,Be,null));else if(_.isDataTexture)if(Ae.length>0){Re&&Ke&&t.texStorage2D(i.TEXTURE_2D,N,Se,Ae[0].width,Ae[0].height);for(let B=0,X=Ae.length;B0){const J=Ja(he.width,he.height,_.format,_.type);for(const _e of _.layerUpdates){const Te=he.data.subarray(_e*J/he.data.BYTES_PER_ELEMENT,(_e+1)*J/he.data.BYTES_PER_ELEMENT);t.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,B,0,0,_e,he.width,he.height,1,ce,Te,0,0)}_.clearLayerUpdates()}else t.compressedTexSubImage3D(i.TEXTURE_2D_ARRAY,B,0,0,0,he.width,he.height,te.depth,ce,he.data,0,0)}else t.compressedTexImage3D(i.TEXTURE_2D_ARRAY,B,Se,he.width,he.height,te.depth,0,he.data,0,0);else console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else Re?g&&t.texSubImage3D(i.TEXTURE_2D_ARRAY,B,0,0,0,he.width,he.height,te.depth,ce,Be,he.data):t.texImage3D(i.TEXTURE_2D_ARRAY,B,Se,he.width,he.height,te.depth,0,ce,Be,he.data)}else{Re&&Ke&&t.texStorage2D(i.TEXTURE_2D,N,Se,Ae[0].width,Ae[0].height);for(let B=0,X=Ae.length;B0){const B=Ja(te.width,te.height,_.format,_.type);for(const X of _.layerUpdates){const J=te.data.subarray(X*B/te.data.BYTES_PER_ELEMENT,(X+1)*B/te.data.BYTES_PER_ELEMENT);t.texSubImage3D(i.TEXTURE_2D_ARRAY,0,0,0,X,te.width,te.height,1,ce,Be,J)}_.clearLayerUpdates()}else t.texSubImage3D(i.TEXTURE_2D_ARRAY,0,0,0,0,te.width,te.height,te.depth,ce,Be,te.data)}else t.texImage3D(i.TEXTURE_2D_ARRAY,0,Se,te.width,te.height,te.depth,0,ce,Be,te.data);else if(_.isData3DTexture)Re?(Ke&&t.texStorage3D(i.TEXTURE_3D,N,Se,te.width,te.height,te.depth),g&&t.texSubImage3D(i.TEXTURE_3D,0,0,0,0,te.width,te.height,te.depth,ce,Be,te.data)):t.texImage3D(i.TEXTURE_3D,0,Se,te.width,te.height,te.depth,0,ce,Be,te.data);else if(_.isFramebufferTexture){if(Ke)if(Re)t.texStorage2D(i.TEXTURE_2D,N,Se,te.width,te.height);else{let B=te.width,X=te.height;for(let J=0;J>=1,X>>=1}}else if(Ae.length>0){if(Re&&Ke){const B=Ce(Ae[0]);t.texStorage2D(i.TEXTURE_2D,N,Se,B.width,B.height)}for(let B=0,X=Ae.length;B0&&N++;const X=Ce(ce[0]);t.texStorage2D(i.TEXTURE_CUBE_MAP,N,Ae,X.width,X.height)}for(let X=0;X<6;X++)if(te){Re?g&&t.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+X,0,0,0,ce[X].width,ce[X].height,Se,he,ce[X].data):t.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+X,0,Ae,ce[X].width,ce[X].height,0,Se,he,ce[X].data);for(let J=0;J>j),ce=Math.max(1,_.height>>j);Q===i.TEXTURE_3D||Q===i.TEXTURE_2D_ARRAY?t.texImage3D(Q,j,le,te,ce,_.depth,0,xe,ie,null):t.texImage2D(Q,j,le,te,ce,0,xe,ie,null)}t.bindFramebuffer(i.FRAMEBUFFER,T),ge(_)?o.framebufferTexture2DMultisampleEXT(i.FRAMEBUFFER,Z,Q,n.get(G).__webglTexture,0,Ve(_)):(Q===i.TEXTURE_2D||Q>=i.TEXTURE_CUBE_MAP_POSITIVE_X&&Q<=i.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&i.framebufferTexture2D(i.FRAMEBUFFER,Z,Q,n.get(G).__webglTexture,j),t.bindFramebuffer(i.FRAMEBUFFER,null)}function de(T,_,G){if(i.bindRenderbuffer(i.RENDERBUFFER,T),_.depthBuffer){const Z=_.depthTexture,Q=Z&&Z.isDepthTexture?Z.type:null,j=y(_.stencilBuffer,Q),xe=_.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,ie=Ve(_);ge(_)?o.renderbufferStorageMultisampleEXT(i.RENDERBUFFER,ie,j,_.width,_.height):G?i.renderbufferStorageMultisample(i.RENDERBUFFER,ie,j,_.width,_.height):i.renderbufferStorage(i.RENDERBUFFER,j,_.width,_.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,xe,i.RENDERBUFFER,T)}else{const Z=_.textures;for(let Q=0;Q1;if(xe||(Z.__webglTexture===void 0&&(Z.__webglTexture=i.createTexture()),Z.__version=_.version,a.memory.textures++),j){G.__webglFramebuffer=[];for(let ie=0;ie<6;ie++)if(_.mipmaps&&_.mipmaps.length>0){G.__webglFramebuffer[ie]=[];for(let le=0;le<_.mipmaps.length;le++)G.__webglFramebuffer[ie][le]=i.createFramebuffer()}else G.__webglFramebuffer[ie]=i.createFramebuffer()}else{if(_.mipmaps&&_.mipmaps.length>0){G.__webglFramebuffer=[];for(let ie=0;ie<_.mipmaps.length;ie++)G.__webglFramebuffer[ie]=i.createFramebuffer()}else G.__webglFramebuffer=i.createFramebuffer();if(xe)for(let ie=0,le=Q.length;ie0&&ge(T)===!1){G.__webglMultisampledFramebuffer=i.createFramebuffer(),G.__webglColorRenderbuffer=[],t.bindFramebuffer(i.FRAMEBUFFER,G.__webglMultisampledFramebuffer);for(let ie=0;ie0)for(let le=0;le<_.mipmaps.length;le++)ee(G.__webglFramebuffer[ie][le],T,_,i.COLOR_ATTACHMENT0,i.TEXTURE_CUBE_MAP_POSITIVE_X+ie,le);else ee(G.__webglFramebuffer[ie],T,_,i.COLOR_ATTACHMENT0,i.TEXTURE_CUBE_MAP_POSITIVE_X+ie,0);p(_)&&h(i.TEXTURE_CUBE_MAP),t.unbindTexture()}else if(xe){for(let ie=0,le=Q.length;ie0)for(let le=0;le<_.mipmaps.length;le++)ee(G.__webglFramebuffer[le],T,_,i.COLOR_ATTACHMENT0,ie,le);else ee(G.__webglFramebuffer,T,_,i.COLOR_ATTACHMENT0,ie,0);p(_)&&h(ie),t.unbindTexture()}T.depthBuffer&&Pe(T)}function qe(T){const _=T.textures;for(let G=0,Z=_.length;G0){if(ge(T)===!1){const _=T.textures,G=T.width,Z=T.height;let Q=i.COLOR_BUFFER_BIT;const j=T.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT,xe=n.get(T),ie=_.length>1;if(ie)for(let le=0;le<_.length;le++)t.bindFramebuffer(i.FRAMEBUFFER,xe.__webglMultisampledFramebuffer),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0+le,i.RENDERBUFFER,null),t.bindFramebuffer(i.FRAMEBUFFER,xe.__webglFramebuffer),i.framebufferTexture2D(i.DRAW_FRAMEBUFFER,i.COLOR_ATTACHMENT0+le,i.TEXTURE_2D,null,0);t.bindFramebuffer(i.READ_FRAMEBUFFER,xe.__webglMultisampledFramebuffer),t.bindFramebuffer(i.DRAW_FRAMEBUFFER,xe.__webglFramebuffer);for(let le=0;le<_.length;le++){if(T.resolveDepthBuffer&&(T.depthBuffer&&(Q|=i.DEPTH_BUFFER_BIT),T.stencilBuffer&&T.resolveStencilBuffer&&(Q|=i.STENCIL_BUFFER_BIT)),ie){i.framebufferRenderbuffer(i.READ_FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.RENDERBUFFER,xe.__webglColorRenderbuffer[le]);const Le=n.get(_[le]).__webglTexture;i.framebufferTexture2D(i.DRAW_FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,Le,0)}i.blitFramebuffer(0,0,G,Z,0,0,G,Z,Q,i.NEAREST),l===!0&&(C.length=0,je.length=0,C.push(i.COLOR_ATTACHMENT0+le),T.depthBuffer&&T.resolveDepthBuffer===!1&&(C.push(j),je.push(j),i.invalidateFramebuffer(i.DRAW_FRAMEBUFFER,je)),i.invalidateFramebuffer(i.READ_FRAMEBUFFER,C))}if(t.bindFramebuffer(i.READ_FRAMEBUFFER,null),t.bindFramebuffer(i.DRAW_FRAMEBUFFER,null),ie)for(let le=0;le<_.length;le++){t.bindFramebuffer(i.FRAMEBUFFER,xe.__webglMultisampledFramebuffer),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0+le,i.RENDERBUFFER,xe.__webglColorRenderbuffer[le]);const Le=n.get(_[le]).__webglTexture;t.bindFramebuffer(i.FRAMEBUFFER,xe.__webglFramebuffer),i.framebufferTexture2D(i.DRAW_FRAMEBUFFER,i.COLOR_ATTACHMENT0+le,i.TEXTURE_2D,Le,0)}t.bindFramebuffer(i.DRAW_FRAMEBUFFER,xe.__webglMultisampledFramebuffer)}else if(T.depthBuffer&&T.resolveDepthBuffer===!1&&l){const _=T.stencilBuffer?i.DEPTH_STENCIL_ATTACHMENT:i.DEPTH_ATTACHMENT;i.invalidateFramebuffer(i.DRAW_FRAMEBUFFER,[_])}}}function Ve(T){return Math.min(r.maxSamples,T.samples)}function ge(T){const _=n.get(T);return T.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&_.__useRenderToTexture!==!1}function Ze(T){const _=a.render.frame;u.get(T)!==_&&(u.set(T,_),T.update())}function we(T,_){const G=T.colorSpace,Z=T.format,Q=T.type;return T.isCompressedTexture===!0||T.isVideoTexture===!0||G!==on&&G!==_n&&(Ye.getTransfer(G)===$e?(Z!==Ot||Q!==rn)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",G)),_}function Ce(T){return typeof HTMLImageElement<"u"&&T instanceof HTMLImageElement?(c.width=T.naturalWidth||T.width,c.height=T.naturalHeight||T.height):typeof VideoFrame<"u"&&T instanceof VideoFrame?(c.width=T.displayWidth,c.height=T.displayHeight):(c.width=T.width,c.height=T.height),c}this.allocateTextureUnit=W,this.resetTextureUnits=R,this.setTexture2D=k,this.setTexture2DArray=Y,this.setTexture3D=H,this.setTextureCube=K,this.rebindTextures=Ue,this.setupRenderTarget=Oe,this.updateRenderTargetMipmap=qe,this.updateMultisampleRenderTarget=He,this.setupDepthRenderbuffer=Pe,this.setupFrameBufferTexture=ee,this.useMultisampledRTT=ge}function up(i,e){function t(n,r=_n){let s;const a=Ye.getTransfer(r);if(n===rn)return i.UNSIGNED_BYTE;if(n===Hs)return i.UNSIGNED_SHORT_4_4_4_4;if(n===Vs)return i.UNSIGNED_SHORT_5_5_5_1;if(n===fo)return i.UNSIGNED_INT_5_9_9_9_REV;if(n===uo)return i.BYTE;if(n===ho)return i.SHORT;if(n===Ri)return i.UNSIGNED_SHORT;if(n===zs)return i.INT;if(n===Un)return i.UNSIGNED_INT;if(n===Lt)return i.FLOAT;if(n===tn)return i.HALF_FLOAT;if(n===po)return i.ALPHA;if(n===mo)return i.RGB;if(n===Ot)return i.RGBA;if(n===go)return i.LUMINANCE;if(n===_o)return i.LUMINANCE_ALPHA;if(n===ci)return i.DEPTH_COMPONENT;if(n===pi)return i.DEPTH_STENCIL;if(n===vo)return i.RED;if(n===ks)return i.RED_INTEGER;if(n===xo)return i.RG;if(n===Gs)return i.RG_INTEGER;if(n===Ws)return i.RGBA_INTEGER;if(n===or||n===lr||n===cr||n===ur)if(a===$e)if(s=e.get("WEBGL_compressed_texture_s3tc_srgb"),s!==null){if(n===or)return s.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(n===lr)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(n===cr)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(n===ur)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(s=e.get("WEBGL_compressed_texture_s3tc"),s!==null){if(n===or)return s.COMPRESSED_RGB_S3TC_DXT1_EXT;if(n===lr)return s.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(n===cr)return s.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(n===ur)return s.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(n===us||n===hs||n===ds||n===fs)if(s=e.get("WEBGL_compressed_texture_pvrtc"),s!==null){if(n===us)return s.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(n===hs)return s.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(n===ds)return s.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(n===fs)return s.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(n===ps||n===ms||n===gs)if(s=e.get("WEBGL_compressed_texture_etc"),s!==null){if(n===ps||n===ms)return a===$e?s.COMPRESSED_SRGB8_ETC2:s.COMPRESSED_RGB8_ETC2;if(n===gs)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:s.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(n===_s||n===vs||n===xs||n===Ms||n===Ss||n===Es||n===ys||n===As||n===Ts||n===bs||n===ws||n===Rs||n===Cs||n===Ps)if(s=e.get("WEBGL_compressed_texture_astc"),s!==null){if(n===_s)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:s.COMPRESSED_RGBA_ASTC_4x4_KHR;if(n===vs)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:s.COMPRESSED_RGBA_ASTC_5x4_KHR;if(n===xs)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:s.COMPRESSED_RGBA_ASTC_5x5_KHR;if(n===Ms)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:s.COMPRESSED_RGBA_ASTC_6x5_KHR;if(n===Ss)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:s.COMPRESSED_RGBA_ASTC_6x6_KHR;if(n===Es)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:s.COMPRESSED_RGBA_ASTC_8x5_KHR;if(n===ys)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:s.COMPRESSED_RGBA_ASTC_8x6_KHR;if(n===As)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:s.COMPRESSED_RGBA_ASTC_8x8_KHR;if(n===Ts)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:s.COMPRESSED_RGBA_ASTC_10x5_KHR;if(n===bs)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:s.COMPRESSED_RGBA_ASTC_10x6_KHR;if(n===ws)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:s.COMPRESSED_RGBA_ASTC_10x8_KHR;if(n===Rs)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:s.COMPRESSED_RGBA_ASTC_10x10_KHR;if(n===Cs)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:s.COMPRESSED_RGBA_ASTC_12x10_KHR;if(n===Ps)return a===$e?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:s.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(n===hr||n===Ls||n===Ds)if(s=e.get("EXT_texture_compression_bptc"),s!==null){if(n===hr)return a===$e?s.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:s.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(n===Ls)return s.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(n===Ds)return s.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(n===Mo||n===Is||n===Us||n===Ns)if(s=e.get("EXT_texture_compression_rgtc"),s!==null){if(n===hr)return s.COMPRESSED_RED_RGTC1_EXT;if(n===Is)return s.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(n===Us)return s.COMPRESSED_RED_GREEN_RGTC2_EXT;if(n===Ns)return s.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return n===fi?i.UNSIGNED_INT_24_8:i[n]!==void 0?i[n]:null}return{convert:t}}class hp extends Pt{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class sr extends wt{constructor(){super(),this.isGroup=!0,this.type="Group"}}const dp={type:"move"};class ts{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new sr,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new sr,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new F,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new F),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new sr,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new F,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new F),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const t=this._hand;if(t)for(const n of e.hand.values())this._getHandJoint(t,n)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,n){let r=null,s=null,a=null;const o=this._targetRay,l=this._grip,c=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(c&&e.hand){a=!0;for(const S of e.hand.values()){const p=t.getJointPose(S,n),h=this._getHandJoint(c,S);p!==null&&(h.matrix.fromArray(p.transform.matrix),h.matrix.decompose(h.position,h.rotation,h.scale),h.matrixWorldNeedsUpdate=!0,h.jointRadius=p.radius),h.visible=p!==null}const u=c.joints["index-finger-tip"],d=c.joints["thumb-tip"],f=u.position.distanceTo(d.position),m=.02,x=.005;c.inputState.pinching&&f>m+x?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&f<=m-x&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else l!==null&&e.gripSpace&&(s=t.getPose(e.gripSpace,n),s!==null&&(l.matrix.fromArray(s.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,s.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(s.linearVelocity)):l.hasLinearVelocity=!1,s.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(s.angularVelocity)):l.hasAngularVelocity=!1));o!==null&&(r=t.getPose(e.targetRaySpace,n),r===null&&s!==null&&(r=s),r!==null&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(dp)))}return o!==null&&(o.visible=r!==null),l!==null&&(l.visible=s!==null),c!==null&&(c.visible=a!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){const n=new sr;n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n)}return e.joints[t.jointName]}}const fp=` +void main() { + + gl_Position = vec4( position, 1.0 ); + +}`,pp=` +uniform sampler2DArray depthColor; +uniform float depthWidth; +uniform float depthHeight; + +void main() { + + vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); + + if ( coord.x >= 1.0 ) { + + gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; + + } else { + + gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; + + } + +}`;class mp{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,t,n){if(this.texture===null){const r=new Mt,s=e.properties.get(r);s.__webglTexture=t.texture,(t.depthNear!=n.depthNear||t.depthFar!=n.depthFar)&&(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=r}}getMesh(e){if(this.texture!==null&&this.mesh===null){const t=e.cameras[0].viewport,n=new an({vertexShader:fp,fragmentShader:pp,uniforms:{depthColor:{value:this.texture},depthWidth:{value:t.z},depthHeight:{value:t.w}}});this.mesh=new Vt(new Ii(20,20),n)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class gp extends Bn{constructor(e,t){super();const n=this;let r=null,s=1,a=null,o="local-floor",l=1,c=null,u=null,d=null,f=null,m=null,x=null;const S=new mp,p=t.getContextAttributes();let h=null,A=null;const y=[],b=[],O=new De;let P=null;const w=new Pt;w.layers.enable(1),w.viewport=new ut;const L=new Pt;L.layers.enable(2),L.viewport=new ut;const E=[w,L],v=new hp;v.layers.enable(1),v.layers.enable(2);let R=null,W=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function($){let ee=y[$];return ee===void 0&&(ee=new ts,y[$]=ee),ee.getTargetRaySpace()},this.getControllerGrip=function($){let ee=y[$];return ee===void 0&&(ee=new ts,y[$]=ee),ee.getGripSpace()},this.getHand=function($){let ee=y[$];return ee===void 0&&(ee=new ts,y[$]=ee),ee.getHandSpace()};function U($){const ee=b.indexOf($.inputSource);if(ee===-1)return;const de=y[ee];de!==void 0&&(de.update($.inputSource,$.frame,c||a),de.dispatchEvent({type:$.type,data:$.inputSource}))}function k(){r.removeEventListener("select",U),r.removeEventListener("selectstart",U),r.removeEventListener("selectend",U),r.removeEventListener("squeeze",U),r.removeEventListener("squeezestart",U),r.removeEventListener("squeezeend",U),r.removeEventListener("end",k),r.removeEventListener("inputsourceschange",Y);for(let $=0;$=0&&(b[ue]=null,y[ue].disconnect(de))}for(let ee=0;ee<$.added.length;ee++){const de=$.added[ee];let ue=b.indexOf(de);if(ue===-1){for(let Ue=0;Ue=b.length){b.push(de),ue=Ue;break}else if(b[Ue]===null){b[Ue]=de,ue=Ue;break}if(ue===-1)break}const Pe=y[ue];Pe&&Pe.connect(de)}}const H=new F,K=new F;function q($,ee,de){H.setFromMatrixPosition(ee.matrixWorld),K.setFromMatrixPosition(de.matrixWorld);const ue=H.distanceTo(K),Pe=ee.projectionMatrix.elements,Ue=de.projectionMatrix.elements,Oe=Pe[14]/(Pe[10]-1),qe=Pe[14]/(Pe[10]+1),C=(Pe[9]+1)/Pe[5],je=(Pe[9]-1)/Pe[5],He=(Pe[8]-1)/Pe[0],Ve=(Ue[8]+1)/Ue[0],ge=Oe*He,Ze=Oe*Ve,we=ue/(-He+Ve),Ce=we*-He;ee.matrixWorld.decompose($.position,$.quaternion,$.scale),$.translateX(Ce),$.translateZ(we),$.matrixWorld.compose($.position,$.quaternion,$.scale),$.matrixWorldInverse.copy($.matrixWorld).invert();const T=Oe+we,_=qe+we,G=ge-Ce,Z=Ze+(ue-Ce),Q=C*qe/_*T,j=je*qe/_*T;$.projectionMatrix.makePerspective(G,Z,Q,j,T,_),$.projectionMatrixInverse.copy($.projectionMatrix).invert()}function se($,ee){ee===null?$.matrixWorld.copy($.matrix):$.matrixWorld.multiplyMatrices(ee.matrixWorld,$.matrix),$.matrixWorldInverse.copy($.matrixWorld).invert()}this.updateCamera=function($){if(r===null)return;S.texture!==null&&($.near=S.depthNear,$.far=S.depthFar),v.near=L.near=w.near=$.near,v.far=L.far=w.far=$.far,(R!==v.near||W!==v.far)&&(r.updateRenderState({depthNear:v.near,depthFar:v.far}),R=v.near,W=v.far,w.near=R,w.far=W,L.near=R,L.far=W,w.updateProjectionMatrix(),L.updateProjectionMatrix(),$.updateProjectionMatrix());const ee=$.parent,de=v.cameras;se(v,ee);for(let ue=0;ue0&&(p.alphaTest.value=h.alphaTest);const A=e.get(h),y=A.envMap,b=A.envMapRotation;y&&(p.envMap.value=y,Cn.copy(b),Cn.x*=-1,Cn.y*=-1,Cn.z*=-1,y.isCubeTexture&&y.isRenderTargetTexture===!1&&(Cn.y*=-1,Cn.z*=-1),p.envMapRotation.value.setFromMatrix4(_p.makeRotationFromEuler(Cn)),p.flipEnvMap.value=y.isCubeTexture&&y.isRenderTargetTexture===!1?-1:1,p.reflectivity.value=h.reflectivity,p.ior.value=h.ior,p.refractionRatio.value=h.refractionRatio),h.lightMap&&(p.lightMap.value=h.lightMap,p.lightMapIntensity.value=h.lightMapIntensity,t(h.lightMap,p.lightMapTransform)),h.aoMap&&(p.aoMap.value=h.aoMap,p.aoMapIntensity.value=h.aoMapIntensity,t(h.aoMap,p.aoMapTransform))}function a(p,h){p.diffuse.value.copy(h.color),p.opacity.value=h.opacity,h.map&&(p.map.value=h.map,t(h.map,p.mapTransform))}function o(p,h){p.dashSize.value=h.dashSize,p.totalSize.value=h.dashSize+h.gapSize,p.scale.value=h.scale}function l(p,h,A,y){p.diffuse.value.copy(h.color),p.opacity.value=h.opacity,p.size.value=h.size*A,p.scale.value=y*.5,h.map&&(p.map.value=h.map,t(h.map,p.uvTransform)),h.alphaMap&&(p.alphaMap.value=h.alphaMap,t(h.alphaMap,p.alphaMapTransform)),h.alphaTest>0&&(p.alphaTest.value=h.alphaTest)}function c(p,h){p.diffuse.value.copy(h.color),p.opacity.value=h.opacity,p.rotation.value=h.rotation,h.map&&(p.map.value=h.map,t(h.map,p.mapTransform)),h.alphaMap&&(p.alphaMap.value=h.alphaMap,t(h.alphaMap,p.alphaMapTransform)),h.alphaTest>0&&(p.alphaTest.value=h.alphaTest)}function u(p,h){p.specular.value.copy(h.specular),p.shininess.value=Math.max(h.shininess,1e-4)}function d(p,h){h.gradientMap&&(p.gradientMap.value=h.gradientMap)}function f(p,h){p.metalness.value=h.metalness,h.metalnessMap&&(p.metalnessMap.value=h.metalnessMap,t(h.metalnessMap,p.metalnessMapTransform)),p.roughness.value=h.roughness,h.roughnessMap&&(p.roughnessMap.value=h.roughnessMap,t(h.roughnessMap,p.roughnessMapTransform)),h.envMap&&(p.envMapIntensity.value=h.envMapIntensity)}function m(p,h,A){p.ior.value=h.ior,h.sheen>0&&(p.sheenColor.value.copy(h.sheenColor).multiplyScalar(h.sheen),p.sheenRoughness.value=h.sheenRoughness,h.sheenColorMap&&(p.sheenColorMap.value=h.sheenColorMap,t(h.sheenColorMap,p.sheenColorMapTransform)),h.sheenRoughnessMap&&(p.sheenRoughnessMap.value=h.sheenRoughnessMap,t(h.sheenRoughnessMap,p.sheenRoughnessMapTransform))),h.clearcoat>0&&(p.clearcoat.value=h.clearcoat,p.clearcoatRoughness.value=h.clearcoatRoughness,h.clearcoatMap&&(p.clearcoatMap.value=h.clearcoatMap,t(h.clearcoatMap,p.clearcoatMapTransform)),h.clearcoatRoughnessMap&&(p.clearcoatRoughnessMap.value=h.clearcoatRoughnessMap,t(h.clearcoatRoughnessMap,p.clearcoatRoughnessMapTransform)),h.clearcoatNormalMap&&(p.clearcoatNormalMap.value=h.clearcoatNormalMap,t(h.clearcoatNormalMap,p.clearcoatNormalMapTransform),p.clearcoatNormalScale.value.copy(h.clearcoatNormalScale),h.side===Et&&p.clearcoatNormalScale.value.negate())),h.dispersion>0&&(p.dispersion.value=h.dispersion),h.iridescence>0&&(p.iridescence.value=h.iridescence,p.iridescenceIOR.value=h.iridescenceIOR,p.iridescenceThicknessMinimum.value=h.iridescenceThicknessRange[0],p.iridescenceThicknessMaximum.value=h.iridescenceThicknessRange[1],h.iridescenceMap&&(p.iridescenceMap.value=h.iridescenceMap,t(h.iridescenceMap,p.iridescenceMapTransform)),h.iridescenceThicknessMap&&(p.iridescenceThicknessMap.value=h.iridescenceThicknessMap,t(h.iridescenceThicknessMap,p.iridescenceThicknessMapTransform))),h.transmission>0&&(p.transmission.value=h.transmission,p.transmissionSamplerMap.value=A.texture,p.transmissionSamplerSize.value.set(A.width,A.height),h.transmissionMap&&(p.transmissionMap.value=h.transmissionMap,t(h.transmissionMap,p.transmissionMapTransform)),p.thickness.value=h.thickness,h.thicknessMap&&(p.thicknessMap.value=h.thicknessMap,t(h.thicknessMap,p.thicknessMapTransform)),p.attenuationDistance.value=h.attenuationDistance,p.attenuationColor.value.copy(h.attenuationColor)),h.anisotropy>0&&(p.anisotropyVector.value.set(h.anisotropy*Math.cos(h.anisotropyRotation),h.anisotropy*Math.sin(h.anisotropyRotation)),h.anisotropyMap&&(p.anisotropyMap.value=h.anisotropyMap,t(h.anisotropyMap,p.anisotropyMapTransform))),p.specularIntensity.value=h.specularIntensity,p.specularColor.value.copy(h.specularColor),h.specularColorMap&&(p.specularColorMap.value=h.specularColorMap,t(h.specularColorMap,p.specularColorMapTransform)),h.specularIntensityMap&&(p.specularIntensityMap.value=h.specularIntensityMap,t(h.specularIntensityMap,p.specularIntensityMapTransform))}function x(p,h){h.matcap&&(p.matcap.value=h.matcap)}function S(p,h){const A=e.get(h).light;p.referencePosition.value.setFromMatrixPosition(A.matrixWorld),p.nearDistance.value=A.shadow.camera.near,p.farDistance.value=A.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:r}}function xp(i,e,t,n){let r={},s={},a=[];const o=i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS);function l(A,y){const b=y.program;n.uniformBlockBinding(A,b)}function c(A,y){let b=r[A.id];b===void 0&&(x(A),b=u(A),r[A.id]=b,A.addEventListener("dispose",p));const O=y.program;n.updateUBOMapping(A,O);const P=e.render.frame;s[A.id]!==P&&(f(A),s[A.id]=P)}function u(A){const y=d();A.__bindingPointIndex=y;const b=i.createBuffer(),O=A.__size,P=A.usage;return i.bindBuffer(i.UNIFORM_BUFFER,b),i.bufferData(i.UNIFORM_BUFFER,O,P),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,y,b),b}function d(){for(let A=0;A0&&(b+=O-P),A.__size=b,A.__cache={},this}function S(A){const y={boundary:0,storage:0};return typeof A=="number"||typeof A=="boolean"?(y.boundary=4,y.storage=4):A.isVector2?(y.boundary=8,y.storage=8):A.isVector3||A.isColor?(y.boundary=16,y.storage=12):A.isVector4?(y.boundary=16,y.storage=16):A.isMatrix3?(y.boundary=48,y.storage=48):A.isMatrix4?(y.boundary=64,y.storage=64):A.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",A),y}function p(A){const y=A.target;y.removeEventListener("dispose",p);const b=a.indexOf(y.__bindingPointIndex);a.splice(b,1),i.deleteBuffer(r[y.id]),delete r[y.id],delete s[y.id]}function h(){for(const A in r)i.deleteBuffer(r[A]);a=[],r={},s={}}return{bind:l,update:c,dispose:h}}class Mp{constructor(e={}){const{canvas:t=ac(),context:n=null,depth:r=!0,stencil:s=!1,alpha:a=!1,antialias:o=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:u="default",failIfMajorPerformanceCaveat:d=!1}=e;this.isWebGLRenderer=!0;let f;if(n!==null){if(typeof WebGLRenderingContext<"u"&&n instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");f=n.getContextAttributes().alpha}else f=a;const m=new Uint32Array(4),x=new Int32Array(4);let S=null,p=null;const h=[],A=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=Ft,this.toneMapping=Sn,this.toneMappingExposure=1;const y=this;let b=!1,O=0,P=0,w=null,L=-1,E=null;const v=new ut,R=new ut;let W=null;const U=new Xe(0);let k=0,Y=t.width,H=t.height,K=1,q=null,se=null;const ae=new ut(0,0,Y,H),fe=new ut(0,0,Y,H);let ye=!1;const Ie=new No;let $=!1,ee=!1;const de=new at,ue=new F,Pe=new ut,Ue={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let Oe=!1;function qe(){return w===null?K:1}let C=n;function je(M,D){return t.getContext(M,D)}try{const M={alpha:!0,depth:r,stencil:s,antialias:o,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:u,failIfMajorPerformanceCaveat:d};if("setAttribute"in t&&t.setAttribute("data-engine",`three.js r${Bs}`),t.addEventListener("webglcontextlost",B,!1),t.addEventListener("webglcontextrestored",X,!1),t.addEventListener("webglcontextcreationerror",J,!1),C===null){const D="webgl2";if(C=je(D,M),C===null)throw je(D)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(M){throw console.error("THREE.WebGLRenderer: "+M.message),M}let He,Ve,ge,Ze,we,Ce,T,_,G,Z,Q,j,xe,ie,le,Le,te,ce,Be,Se,he,Ae,Re,Ke;function g(){He=new bd(C),He.init(),Ae=new up(C,He),Ve=new xd(C,He,e,Ae),ge=new op(C),Ze=new Cd(C),we=new qf,Ce=new cp(C,He,ge,we,Ve,Ae,Ze),T=new Sd(y),_=new Td(y),G=new Nc(C),Re=new _d(C,G),Z=new wd(C,G,Ze,Re),Q=new Ld(C,Z,G,Ze),Be=new Pd(C,Ve,Ce),Le=new Md(we),j=new Yf(y,T,_,He,Ve,Re,Le),xe=new vp(y,we),ie=new Kf,le=new tp(He),ce=new gd(y,T,_,ge,Q,f,l),te=new ap(y,Q,Ve),Ke=new xp(C,Ze,Ve,ge),Se=new vd(C,He,Ze),he=new Rd(C,He,Ze),Ze.programs=j.programs,y.capabilities=Ve,y.extensions=He,y.properties=we,y.renderLists=ie,y.shadowMap=te,y.state=ge,y.info=Ze}g();const N=new gp(y,C);this.xr=N,this.getContext=function(){return C},this.getContextAttributes=function(){return C.getContextAttributes()},this.forceContextLoss=function(){const M=He.get("WEBGL_lose_context");M&&M.loseContext()},this.forceContextRestore=function(){const M=He.get("WEBGL_lose_context");M&&M.restoreContext()},this.getPixelRatio=function(){return K},this.setPixelRatio=function(M){M!==void 0&&(K=M,this.setSize(Y,H,!1))},this.getSize=function(M){return M.set(Y,H)},this.setSize=function(M,D,z=!0){if(N.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}Y=M,H=D,t.width=Math.floor(M*K),t.height=Math.floor(D*K),z===!0&&(t.style.width=M+"px",t.style.height=D+"px"),this.setViewport(0,0,M,D)},this.getDrawingBufferSize=function(M){return M.set(Y*K,H*K).floor()},this.setDrawingBufferSize=function(M,D,z){Y=M,H=D,K=z,t.width=Math.floor(M*z),t.height=Math.floor(D*z),this.setViewport(0,0,M,D)},this.getCurrentViewport=function(M){return M.copy(v)},this.getViewport=function(M){return M.copy(ae)},this.setViewport=function(M,D,z,V){M.isVector4?ae.set(M.x,M.y,M.z,M.w):ae.set(M,D,z,V),ge.viewport(v.copy(ae).multiplyScalar(K).round())},this.getScissor=function(M){return M.copy(fe)},this.setScissor=function(M,D,z,V){M.isVector4?fe.set(M.x,M.y,M.z,M.w):fe.set(M,D,z,V),ge.scissor(R.copy(fe).multiplyScalar(K).round())},this.getScissorTest=function(){return ye},this.setScissorTest=function(M){ge.setScissorTest(ye=M)},this.setOpaqueSort=function(M){q=M},this.setTransparentSort=function(M){se=M},this.getClearColor=function(M){return M.copy(ce.getClearColor())},this.setClearColor=function(){ce.setClearColor.apply(ce,arguments)},this.getClearAlpha=function(){return ce.getClearAlpha()},this.setClearAlpha=function(){ce.setClearAlpha.apply(ce,arguments)},this.clear=function(M=!0,D=!0,z=!0){let V=0;if(M){let I=!1;if(w!==null){const ne=w.texture.format;I=ne===Ws||ne===Gs||ne===ks}if(I){const ne=w.texture.type,oe=ne===rn||ne===Un||ne===Ri||ne===fi||ne===Hs||ne===Vs,pe=ce.getClearColor(),me=ce.getClearAlpha(),Ee=pe.r,be=pe.g,Me=pe.b;oe?(m[0]=Ee,m[1]=be,m[2]=Me,m[3]=me,C.clearBufferuiv(C.COLOR,0,m)):(x[0]=Ee,x[1]=be,x[2]=Me,x[3]=me,C.clearBufferiv(C.COLOR,0,x))}else V|=C.COLOR_BUFFER_BIT}D&&(V|=C.DEPTH_BUFFER_BIT),z&&(V|=C.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),C.clear(V)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){t.removeEventListener("webglcontextlost",B,!1),t.removeEventListener("webglcontextrestored",X,!1),t.removeEventListener("webglcontextcreationerror",J,!1),ie.dispose(),le.dispose(),we.dispose(),T.dispose(),_.dispose(),Q.dispose(),Re.dispose(),Ke.dispose(),j.dispose(),N.dispose(),N.removeEventListener("sessionstart",tt),N.removeEventListener("sessionend",ln),dt.stop()};function B(M){M.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),b=!0}function X(){console.log("THREE.WebGLRenderer: Context Restored."),b=!1;const M=Ze.autoReset,D=te.enabled,z=te.autoUpdate,V=te.needsUpdate,I=te.type;g(),Ze.autoReset=M,te.enabled=D,te.autoUpdate=z,te.needsUpdate=V,te.type=I}function J(M){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",M.statusMessage)}function _e(M){const D=M.target;D.removeEventListener("dispose",_e),Te(D)}function Te(M){et(M),we.remove(M)}function et(M){const D=we.get(M).programs;D!==void 0&&(D.forEach(function(z){j.releaseProgram(z)}),M.isShaderMaterial&&j.releaseShaderCache(M))}this.renderBufferDirect=function(M,D,z,V,I,ne){D===null&&(D=Ue);const oe=I.isMesh&&I.matrixWorld.determinant()<0,pe=Xo(M,D,z,V,I);ge.setMaterial(V,oe);let me=z.index,Ee=1;if(V.wireframe===!0){if(me=Z.getWireframeAttribute(z),me===void 0)return;Ee=2}const be=z.drawRange,Me=z.attributes.position;let ke=be.start*Ee,Je=(be.start+be.count)*Ee;ne!==null&&(ke=Math.max(ke,ne.start*Ee),Je=Math.min(Je,(ne.start+ne.count)*Ee)),me!==null?(ke=Math.max(ke,0),Je=Math.min(Je,me.count)):Me!=null&&(ke=Math.max(ke,0),Je=Math.min(Je,Me.count));const Qe=Je-ke;if(Qe<0||Qe===1/0)return;Re.setup(I,V,pe,z,me);let yt,Ge=Se;if(me!==null&&(yt=G.get(me),Ge=he,Ge.setIndex(yt)),I.isMesh)V.wireframe===!0?(ge.setLineWidth(V.wireframeLinewidth*qe()),Ge.setMode(C.LINES)):Ge.setMode(C.TRIANGLES);else if(I.isLine){let ve=V.linewidth;ve===void 0&&(ve=1),ge.setLineWidth(ve*qe()),I.isLineSegments?Ge.setMode(C.LINES):I.isLineLoop?Ge.setMode(C.LINE_LOOP):Ge.setMode(C.LINE_STRIP)}else I.isPoints?Ge.setMode(C.POINTS):I.isSprite&&Ge.setMode(C.TRIANGLES);if(I.isBatchedMesh)if(I._multiDrawInstances!==null)Ge.renderMultiDrawInstances(I._multiDrawStarts,I._multiDrawCounts,I._multiDrawCount,I._multiDrawInstances);else if(He.get("WEBGL_multi_draw"))Ge.renderMultiDraw(I._multiDrawStarts,I._multiDrawCounts,I._multiDrawCount);else{const ve=I._multiDrawStarts,ft=I._multiDrawCounts,We=I._multiDrawCount,Dt=me?G.get(me).bytesPerElement:1,Hn=we.get(V).currentProgram.getUniforms();for(let At=0;At{function ne(){if(V.forEach(function(oe){we.get(oe).currentProgram.isReady()&&V.delete(oe)}),V.size===0){I(M);return}setTimeout(ne,10)}He.get("KHR_parallel_shader_compile")!==null?ne():setTimeout(ne,10)})};let ze=null;function st(M){ze&&ze(M)}function tt(){dt.stop()}function ln(){dt.start()}const dt=new Fo;dt.setAnimationLoop(st),typeof self<"u"&&dt.setContext(self),this.setAnimationLoop=function(M){ze=M,N.setAnimationLoop(M),M===null?dt.stop():dt.start()},N.addEventListener("sessionstart",tt),N.addEventListener("sessionend",ln),this.render=function(M,D){if(D!==void 0&&D.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(b===!0)return;if(M.matrixWorldAutoUpdate===!0&&M.updateMatrixWorld(),D.parent===null&&D.matrixWorldAutoUpdate===!0&&D.updateMatrixWorld(),N.enabled===!0&&N.isPresenting===!0&&(N.cameraAutoUpdate===!0&&N.updateCamera(D),D=N.getCamera()),M.isScene===!0&&M.onBeforeRender(y,M,D,w),p=le.get(M,A.length),p.init(D),A.push(p),de.multiplyMatrices(D.projectionMatrix,D.matrixWorldInverse),Ie.setFromProjectionMatrix(de),ee=this.localClippingEnabled,$=Le.init(this.clippingPlanes,ee),S=ie.get(M,h.length),S.init(),h.push(S),N.enabled===!0&&N.isPresenting===!0){const ne=y.xr.getDepthSensingMesh();ne!==null&&Wt(ne,D,-1/0,y.sortObjects)}Wt(M,D,0,y.sortObjects),S.finish(),y.sortObjects===!0&&S.sort(q,se),Oe=N.enabled===!1||N.isPresenting===!1||N.hasDepthSensing()===!1,Oe&&ce.addToRenderList(S,M),this.info.render.frame++,$===!0&&Le.beginShadows();const z=p.state.shadowsArray;te.render(z,M,D),$===!0&&Le.endShadows(),this.info.autoReset===!0&&this.info.reset();const V=S.opaque,I=S.transmissive;if(p.setupLights(),D.isArrayCamera){const ne=D.cameras;if(I.length>0)for(let oe=0,pe=ne.length;oe0&&Mi(V,I,M,D),Oe&&ce.render(M),yn(S,M,D);w!==null&&(Ce.updateMultisampleRenderTarget(w),Ce.updateRenderTargetMipmap(w)),M.isScene===!0&&M.onAfterRender(y,M,D),Re.resetDefaultState(),L=-1,E=null,A.pop(),A.length>0?(p=A[A.length-1],$===!0&&Le.setGlobalState(y.clippingPlanes,p.state.camera)):p=null,h.pop(),h.length>0?S=h[h.length-1]:S=null};function Wt(M,D,z,V){if(M.visible===!1)return;if(M.layers.test(D.layers)){if(M.isGroup)z=M.renderOrder;else if(M.isLOD)M.autoUpdate===!0&&M.update(D);else if(M.isLight)p.pushLight(M),M.castShadow&&p.pushShadow(M);else if(M.isSprite){if(!M.frustumCulled||Ie.intersectsSprite(M)){V&&Pe.setFromMatrixPosition(M.matrixWorld).applyMatrix4(de);const oe=Q.update(M),pe=M.material;pe.visible&&S.push(M,oe,pe,z,Pe.z,null)}}else if((M.isMesh||M.isLine||M.isPoints)&&(!M.frustumCulled||Ie.intersectsObject(M))){const oe=Q.update(M),pe=M.material;if(V&&(M.boundingSphere!==void 0?(M.boundingSphere===null&&M.computeBoundingSphere(),Pe.copy(M.boundingSphere.center)):(oe.boundingSphere===null&&oe.computeBoundingSphere(),Pe.copy(oe.boundingSphere.center)),Pe.applyMatrix4(M.matrixWorld).applyMatrix4(de)),Array.isArray(pe)){const me=oe.groups;for(let Ee=0,be=me.length;Ee0&&Ui(I,D,z),ne.length>0&&Ui(ne,D,z),oe.length>0&&Ui(oe,D,z),ge.buffers.depth.setTest(!0),ge.buffers.depth.setMask(!0),ge.buffers.color.setMask(!0),ge.setPolygonOffset(!1)}function Mi(M,D,z,V){if((z.isScene===!0?z.overrideMaterial:null)!==null)return;p.state.transmissionRenderTarget[V.id]===void 0&&(p.state.transmissionRenderTarget[V.id]=new Nn(1,1,{generateMipmaps:!0,type:He.has("EXT_color_buffer_half_float")||He.has("EXT_color_buffer_float")?tn:rn,minFilter:xn,samples:4,stencilBuffer:s,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:Ye.workingColorSpace}));const ne=p.state.transmissionRenderTarget[V.id],oe=V.viewport||v;ne.setSize(oe.z,oe.w);const pe=y.getRenderTarget();y.setRenderTarget(ne),y.getClearColor(U),k=y.getClearAlpha(),k<1&&y.setClearColor(16777215,.5),Oe?ce.render(z):y.clear();const me=y.toneMapping;y.toneMapping=Sn;const Ee=V.viewport;if(V.viewport!==void 0&&(V.viewport=void 0),p.setupLightsView(V),$===!0&&Le.setGlobalState(y.clippingPlanes,V),Ui(M,z,V),Ce.updateMultisampleRenderTarget(ne),Ce.updateRenderTargetMipmap(ne),He.has("WEBGL_multisampled_render_to_texture")===!1){let be=!1;for(let Me=0,ke=D.length;Me0),Me=!!z.morphAttributes.position,ke=!!z.morphAttributes.normal,Je=!!z.morphAttributes.color;let Qe=Sn;V.toneMapped&&(w===null||w.isXRRenderTarget===!0)&&(Qe=y.toneMapping);const yt=z.morphAttributes.position||z.morphAttributes.normal||z.morphAttributes.color,Ge=yt!==void 0?yt.length:0,ve=we.get(V),ft=p.state.lights;if($===!0&&(ee===!0||M!==E)){const Rt=M===E&&V.id===L;Le.setState(V,M,Rt)}let We=!1;V.version===ve.__version?(ve.needsLights&&ve.lightsStateVersion!==ft.state.version||ve.outputColorSpace!==pe||I.isBatchedMesh&&ve.batching===!1||!I.isBatchedMesh&&ve.batching===!0||I.isBatchedMesh&&ve.batchingColor===!0&&I.colorTexture===null||I.isBatchedMesh&&ve.batchingColor===!1&&I.colorTexture!==null||I.isInstancedMesh&&ve.instancing===!1||!I.isInstancedMesh&&ve.instancing===!0||I.isSkinnedMesh&&ve.skinning===!1||!I.isSkinnedMesh&&ve.skinning===!0||I.isInstancedMesh&&ve.instancingColor===!0&&I.instanceColor===null||I.isInstancedMesh&&ve.instancingColor===!1&&I.instanceColor!==null||I.isInstancedMesh&&ve.instancingMorph===!0&&I.morphTexture===null||I.isInstancedMesh&&ve.instancingMorph===!1&&I.morphTexture!==null||ve.envMap!==me||V.fog===!0&&ve.fog!==ne||ve.numClippingPlanes!==void 0&&(ve.numClippingPlanes!==Le.numPlanes||ve.numIntersection!==Le.numIntersection)||ve.vertexAlphas!==Ee||ve.vertexTangents!==be||ve.morphTargets!==Me||ve.morphNormals!==ke||ve.morphColors!==Je||ve.toneMapping!==Qe||ve.morphTargetsCount!==Ge)&&(We=!0):(We=!0,ve.__version=V.version);let Dt=ve.currentProgram;We===!0&&(Dt=Ni(V,D,I));let Hn=!1,At=!1,wr=!1;const nt=Dt.getUniforms(),cn=ve.uniforms;if(ge.useProgram(Dt.program)&&(Hn=!0,At=!0,wr=!0),V.id!==L&&(L=V.id,At=!0),Hn||E!==M){nt.setValue(C,"projectionMatrix",M.projectionMatrix),nt.setValue(C,"viewMatrix",M.matrixWorldInverse);const Rt=nt.map.cameraPosition;Rt!==void 0&&Rt.setValue(C,ue.setFromMatrixPosition(M.matrixWorld)),Ve.logarithmicDepthBuffer&&nt.setValue(C,"logDepthBufFC",2/(Math.log(M.far+1)/Math.LN2)),(V.isMeshPhongMaterial||V.isMeshToonMaterial||V.isMeshLambertMaterial||V.isMeshBasicMaterial||V.isMeshStandardMaterial||V.isShaderMaterial)&&nt.setValue(C,"isOrthographic",M.isOrthographicCamera===!0),E!==M&&(E=M,At=!0,wr=!0)}if(I.isSkinnedMesh){nt.setOptional(C,I,"bindMatrix"),nt.setOptional(C,I,"bindMatrixInverse");const Rt=I.skeleton;Rt&&(Rt.boneTexture===null&&Rt.computeBoneTexture(),nt.setValue(C,"boneTexture",Rt.boneTexture,Ce))}I.isBatchedMesh&&(nt.setOptional(C,I,"batchingTexture"),nt.setValue(C,"batchingTexture",I._matricesTexture,Ce),nt.setOptional(C,I,"batchingIdTexture"),nt.setValue(C,"batchingIdTexture",I._indirectTexture,Ce),nt.setOptional(C,I,"batchingColorTexture"),I._colorsTexture!==null&&nt.setValue(C,"batchingColorTexture",I._colorsTexture,Ce));const Rr=z.morphAttributes;if((Rr.position!==void 0||Rr.normal!==void 0||Rr.color!==void 0)&&Be.update(I,z,Dt),(At||ve.receiveShadow!==I.receiveShadow)&&(ve.receiveShadow=I.receiveShadow,nt.setValue(C,"receiveShadow",I.receiveShadow)),V.isMeshGouraudMaterial&&V.envMap!==null&&(cn.envMap.value=me,cn.flipEnvMap.value=me.isCubeTexture&&me.isRenderTargetTexture===!1?-1:1),V.isMeshStandardMaterial&&V.envMap===null&&D.environment!==null&&(cn.envMapIntensity.value=D.environmentIntensity),At&&(nt.setValue(C,"toneMappingExposure",y.toneMappingExposure),ve.needsLights&&Yo(cn,wr),ne&&V.fog===!0&&xe.refreshFogUniforms(cn,ne),xe.refreshMaterialUniforms(cn,V,K,H,p.state.transmissionRenderTarget[M.id]),dr.upload(C,Qs(ve),cn,Ce)),V.isShaderMaterial&&V.uniformsNeedUpdate===!0&&(dr.upload(C,Qs(ve),cn,Ce),V.uniformsNeedUpdate=!1),V.isSpriteMaterial&&nt.setValue(C,"center",I.center),nt.setValue(C,"modelViewMatrix",I.modelViewMatrix),nt.setValue(C,"normalMatrix",I.normalMatrix),nt.setValue(C,"modelMatrix",I.matrixWorld),V.isShaderMaterial||V.isRawShaderMaterial){const Rt=V.uniformsGroups;for(let Cr=0,$o=Rt.length;Cr<$o;Cr++){const ta=Rt[Cr];Ke.update(ta,Dt),Ke.bind(ta,Dt)}}return Dt}function Yo(M,D){M.ambientLightColor.needsUpdate=D,M.lightProbe.needsUpdate=D,M.directionalLights.needsUpdate=D,M.directionalLightShadows.needsUpdate=D,M.pointLights.needsUpdate=D,M.pointLightShadows.needsUpdate=D,M.spotLights.needsUpdate=D,M.spotLightShadows.needsUpdate=D,M.rectAreaLights.needsUpdate=D,M.hemisphereLights.needsUpdate=D}function qo(M){return M.isMeshLambertMaterial||M.isMeshToonMaterial||M.isMeshPhongMaterial||M.isMeshStandardMaterial||M.isShadowMaterial||M.isShaderMaterial&&M.lights===!0}this.getActiveCubeFace=function(){return O},this.getActiveMipmapLevel=function(){return P},this.getRenderTarget=function(){return w},this.setRenderTargetTextures=function(M,D,z){we.get(M.texture).__webglTexture=D,we.get(M.depthTexture).__webglTexture=z;const V=we.get(M);V.__hasExternalTextures=!0,V.__autoAllocateDepthBuffer=z===void 0,V.__autoAllocateDepthBuffer||He.has("WEBGL_multisampled_render_to_texture")===!0&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),V.__useRenderToTexture=!1)},this.setRenderTargetFramebuffer=function(M,D){const z=we.get(M);z.__webglFramebuffer=D,z.__useDefaultFramebuffer=D===void 0},this.setRenderTarget=function(M,D=0,z=0){w=M,O=D,P=z;let V=!0,I=null,ne=!1,oe=!1;if(M){const me=we.get(M);me.__useDefaultFramebuffer!==void 0?(ge.bindFramebuffer(C.FRAMEBUFFER,null),V=!1):me.__webglFramebuffer===void 0?Ce.setupRenderTarget(M):me.__hasExternalTextures&&Ce.rebindTextures(M,we.get(M.texture).__webglTexture,we.get(M.depthTexture).__webglTexture);const Ee=M.texture;(Ee.isData3DTexture||Ee.isDataArrayTexture||Ee.isCompressedArrayTexture)&&(oe=!0);const be=we.get(M).__webglFramebuffer;M.isWebGLCubeRenderTarget?(Array.isArray(be[D])?I=be[D][z]:I=be[D],ne=!0):M.samples>0&&Ce.useMultisampledRTT(M)===!1?I=we.get(M).__webglMultisampledFramebuffer:Array.isArray(be)?I=be[z]:I=be,v.copy(M.viewport),R.copy(M.scissor),W=M.scissorTest}else v.copy(ae).multiplyScalar(K).floor(),R.copy(fe).multiplyScalar(K).floor(),W=ye;if(ge.bindFramebuffer(C.FRAMEBUFFER,I)&&V&&ge.drawBuffers(M,I),ge.viewport(v),ge.scissor(R),ge.setScissorTest(W),ne){const me=we.get(M.texture);C.framebufferTexture2D(C.FRAMEBUFFER,C.COLOR_ATTACHMENT0,C.TEXTURE_CUBE_MAP_POSITIVE_X+D,me.__webglTexture,z)}else if(oe){const me=we.get(M.texture),Ee=D||0;C.framebufferTextureLayer(C.FRAMEBUFFER,C.COLOR_ATTACHMENT0,me.__webglTexture,z||0,Ee)}L=-1},this.readRenderTargetPixels=function(M,D,z,V,I,ne,oe){if(!(M&&M.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let pe=we.get(M).__webglFramebuffer;if(M.isWebGLCubeRenderTarget&&oe!==void 0&&(pe=pe[oe]),pe){ge.bindFramebuffer(C.FRAMEBUFFER,pe);try{const me=M.texture,Ee=me.format,be=me.type;if(!Ve.textureFormatReadable(Ee)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!Ve.textureTypeReadable(be)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}D>=0&&D<=M.width-V&&z>=0&&z<=M.height-I&&C.readPixels(D,z,V,I,Ae.convert(Ee),Ae.convert(be),ne)}finally{const me=w!==null?we.get(w).__webglFramebuffer:null;ge.bindFramebuffer(C.FRAMEBUFFER,me)}}},this.readRenderTargetPixelsAsync=async function(M,D,z,V,I,ne,oe){if(!(M&&M.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let pe=we.get(M).__webglFramebuffer;if(M.isWebGLCubeRenderTarget&&oe!==void 0&&(pe=pe[oe]),pe){ge.bindFramebuffer(C.FRAMEBUFFER,pe);try{const me=M.texture,Ee=me.format,be=me.type;if(!Ve.textureFormatReadable(Ee))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!Ve.textureTypeReadable(be))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");if(D>=0&&D<=M.width-V&&z>=0&&z<=M.height-I){const Me=C.createBuffer();C.bindBuffer(C.PIXEL_PACK_BUFFER,Me),C.bufferData(C.PIXEL_PACK_BUFFER,ne.byteLength,C.STREAM_READ),C.readPixels(D,z,V,I,Ae.convert(Ee),Ae.convert(be),0),C.flush();const ke=C.fenceSync(C.SYNC_GPU_COMMANDS_COMPLETE,0);await oc(C,ke,4);try{C.bindBuffer(C.PIXEL_PACK_BUFFER,Me),C.getBufferSubData(C.PIXEL_PACK_BUFFER,0,ne)}finally{C.deleteBuffer(Me),C.deleteSync(ke)}return ne}}finally{const me=w!==null?we.get(w).__webglFramebuffer:null;ge.bindFramebuffer(C.FRAMEBUFFER,me)}}},this.copyFramebufferToTexture=function(M,D=null,z=0){M.isTexture!==!0&&(console.warn("WebGLRenderer: copyFramebufferToTexture function signature has changed."),D=arguments[0]||null,M=arguments[1]);const V=Math.pow(2,-z),I=Math.floor(M.image.width*V),ne=Math.floor(M.image.height*V),oe=D!==null?D.x:0,pe=D!==null?D.y:0;Ce.setTexture2D(M,0),C.copyTexSubImage2D(C.TEXTURE_2D,z,0,0,oe,pe,I,ne),ge.unbindTexture()},this.copyTextureToTexture=function(M,D,z=null,V=null,I=0){M.isTexture!==!0&&(console.warn("WebGLRenderer: copyTextureToTexture function signature has changed."),V=arguments[0]||null,M=arguments[1],D=arguments[2],I=arguments[3]||0,z=null);let ne,oe,pe,me,Ee,be;z!==null?(ne=z.max.x-z.min.x,oe=z.max.y-z.min.y,pe=z.min.x,me=z.min.y):(ne=M.image.width,oe=M.image.height,pe=0,me=0),V!==null?(Ee=V.x,be=V.y):(Ee=0,be=0);const Me=Ae.convert(D.format),ke=Ae.convert(D.type);Ce.setTexture2D(D,0),C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,D.flipY),C.pixelStorei(C.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),C.pixelStorei(C.UNPACK_ALIGNMENT,D.unpackAlignment);const Je=C.getParameter(C.UNPACK_ROW_LENGTH),Qe=C.getParameter(C.UNPACK_IMAGE_HEIGHT),yt=C.getParameter(C.UNPACK_SKIP_PIXELS),Ge=C.getParameter(C.UNPACK_SKIP_ROWS),ve=C.getParameter(C.UNPACK_SKIP_IMAGES),ft=M.isCompressedTexture?M.mipmaps[I]:M.image;C.pixelStorei(C.UNPACK_ROW_LENGTH,ft.width),C.pixelStorei(C.UNPACK_IMAGE_HEIGHT,ft.height),C.pixelStorei(C.UNPACK_SKIP_PIXELS,pe),C.pixelStorei(C.UNPACK_SKIP_ROWS,me),M.isDataTexture?C.texSubImage2D(C.TEXTURE_2D,I,Ee,be,ne,oe,Me,ke,ft.data):M.isCompressedTexture?C.compressedTexSubImage2D(C.TEXTURE_2D,I,Ee,be,ft.width,ft.height,Me,ft.data):C.texSubImage2D(C.TEXTURE_2D,I,Ee,be,ne,oe,Me,ke,ft),C.pixelStorei(C.UNPACK_ROW_LENGTH,Je),C.pixelStorei(C.UNPACK_IMAGE_HEIGHT,Qe),C.pixelStorei(C.UNPACK_SKIP_PIXELS,yt),C.pixelStorei(C.UNPACK_SKIP_ROWS,Ge),C.pixelStorei(C.UNPACK_SKIP_IMAGES,ve),I===0&&D.generateMipmaps&&C.generateMipmap(C.TEXTURE_2D),ge.unbindTexture()},this.copyTextureToTexture3D=function(M,D,z=null,V=null,I=0){M.isTexture!==!0&&(console.warn("WebGLRenderer: copyTextureToTexture3D function signature has changed."),z=arguments[0]||null,V=arguments[1]||null,M=arguments[2],D=arguments[3],I=arguments[4]||0);let ne,oe,pe,me,Ee,be,Me,ke,Je;const Qe=M.isCompressedTexture?M.mipmaps[I]:M.image;z!==null?(ne=z.max.x-z.min.x,oe=z.max.y-z.min.y,pe=z.max.z-z.min.z,me=z.min.x,Ee=z.min.y,be=z.min.z):(ne=Qe.width,oe=Qe.height,pe=Qe.depth,me=0,Ee=0,be=0),V!==null?(Me=V.x,ke=V.y,Je=V.z):(Me=0,ke=0,Je=0);const yt=Ae.convert(D.format),Ge=Ae.convert(D.type);let ve;if(D.isData3DTexture)Ce.setTexture3D(D,0),ve=C.TEXTURE_3D;else if(D.isDataArrayTexture||D.isCompressedArrayTexture)Ce.setTexture2DArray(D,0),ve=C.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,D.flipY),C.pixelStorei(C.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),C.pixelStorei(C.UNPACK_ALIGNMENT,D.unpackAlignment);const ft=C.getParameter(C.UNPACK_ROW_LENGTH),We=C.getParameter(C.UNPACK_IMAGE_HEIGHT),Dt=C.getParameter(C.UNPACK_SKIP_PIXELS),Hn=C.getParameter(C.UNPACK_SKIP_ROWS),At=C.getParameter(C.UNPACK_SKIP_IMAGES);C.pixelStorei(C.UNPACK_ROW_LENGTH,Qe.width),C.pixelStorei(C.UNPACK_IMAGE_HEIGHT,Qe.height),C.pixelStorei(C.UNPACK_SKIP_PIXELS,me),C.pixelStorei(C.UNPACK_SKIP_ROWS,Ee),C.pixelStorei(C.UNPACK_SKIP_IMAGES,be),M.isDataTexture||M.isData3DTexture?C.texSubImage3D(ve,I,Me,ke,Je,ne,oe,pe,yt,Ge,Qe.data):D.isCompressedArrayTexture?C.compressedTexSubImage3D(ve,I,Me,ke,Je,ne,oe,pe,yt,Qe.data):C.texSubImage3D(ve,I,Me,ke,Je,ne,oe,pe,yt,Ge,Qe),C.pixelStorei(C.UNPACK_ROW_LENGTH,ft),C.pixelStorei(C.UNPACK_IMAGE_HEIGHT,We),C.pixelStorei(C.UNPACK_SKIP_PIXELS,Dt),C.pixelStorei(C.UNPACK_SKIP_ROWS,Hn),C.pixelStorei(C.UNPACK_SKIP_IMAGES,At),I===0&&D.generateMipmaps&&C.generateMipmap(ve),ge.unbindTexture()},this.initRenderTarget=function(M){we.get(M).__webglFramebuffer===void 0&&Ce.setupRenderTarget(M)},this.initTexture=function(M){M.isCubeTexture?Ce.setTextureCube(M,0):M.isData3DTexture?Ce.setTexture3D(M,0):M.isDataArrayTexture||M.isCompressedArrayTexture?Ce.setTexture2DArray(M,0):Ce.setTexture2D(M,0),ge.unbindTexture()},this.resetState=function(){O=0,P=0,w=null,ge.reset(),Re.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return nn}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const t=this.getContext();t.drawingBufferColorSpace=e===Xs?"display-p3":"srgb",t.unpackColorSpace=Ye.workingColorSpace===Mr?"display-p3":"srgb"}}class Sp extends wt{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new sn,this.environmentIntensity=1,this.environmentRotation=new sn,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(t.object.environmentIntensity=this.environmentIntensity),t.object.environmentRotation=this.environmentRotation.toArray(),t}}class Ep extends Mt{constructor(e=null,t=1,n=1,r,s,a,o,l,c=St,u=St,d,f){super(null,a,o,l,c,u,r,s,d,f),this.isDataTexture=!0,this.image={data:e,width:t,height:n},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}const Qa={enabled:!1,files:{},add:function(i,e){this.enabled!==!1&&(this.files[i]=e)},get:function(i){if(this.enabled!==!1)return this.files[i]},remove:function(i){delete this.files[i]},clear:function(){this.files={}}};class yp{constructor(e,t,n){const r=this;let s=!1,a=0,o=0,l;const c=[];this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=n,this.itemStart=function(u){o++,s===!1&&r.onStart!==void 0&&r.onStart(u,a,o),s=!0},this.itemEnd=function(u){a++,r.onProgress!==void 0&&r.onProgress(u,a,o),a===o&&(s=!1,r.onLoad!==void 0&&r.onLoad())},this.itemError=function(u){r.onError!==void 0&&r.onError(u)},this.resolveURL=function(u){return l?l(u):u},this.setURLModifier=function(u){return l=u,this},this.addHandler=function(u,d){return c.push(u,d),this},this.removeHandler=function(u){const d=c.indexOf(u);return d!==-1&&c.splice(d,2),this},this.getHandler=function(u){for(let d=0,f=c.length;d{t&&t(s),this.manager.itemEnd(e)},0),s;if(jt[e]!==void 0){jt[e].push({onLoad:t,onProgress:n,onError:r});return}jt[e]=[],jt[e].push({onLoad:t,onProgress:n,onError:r});const a=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),o=this.mimeType,l=this.responseType;fetch(a).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||c.body===void 0||c.body.getReader===void 0)return c;const u=jt[e],d=c.body.getReader(),f=c.headers.get("X-File-Size")||c.headers.get("Content-Length"),m=f?parseInt(f):0,x=m!==0;let S=0;const p=new ReadableStream({start(h){A();function A(){d.read().then(({done:y,value:b})=>{if(y)h.close();else{S+=b.byteLength;const O=new ProgressEvent("progress",{lengthComputable:x,loaded:S,total:m});for(let P=0,w=u.length;P{h.error(y)})}}});return new Response(p)}else throw new Tp(`fetch for "${c.url}" responded with ${c.status}: ${c.statusText}`,c)}).then(c=>{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(u=>new DOMParser().parseFromString(u,o));case"json":return c.json();default:if(o===void 0)return c.text();{const d=/charset="?([^;"\s]*)"?/i.exec(o),f=d&&d[1]?d[1].toLowerCase():void 0,m=new TextDecoder(f);return c.arrayBuffer().then(x=>m.decode(x))}}}).then(c=>{Qa.add(e,c);const u=jt[e];delete jt[e];for(let d=0,f=u.length;d{const u=jt[e];if(u===void 0)throw this.manager.itemError(e),c;delete jt[e];for(let d=0,f=u.length;d{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class wp extends Ks{constructor(e){super(e)}load(e,t,n,r){const s=this,a=new Ep,o=new bp(this.manager);return o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setPath(this.path),o.setWithCredentials(s.withCredentials),o.load(e,function(l){let c;try{c=s.parse(l)}catch(u){if(r!==void 0)r(u);else{console.error(u);return}}c.image!==void 0?a.image=c.image:c.data!==void 0&&(a.image.width=c.width,a.image.height=c.height,a.image.data=c.data),a.wrapS=c.wrapS!==void 0?c.wrapS:en,a.wrapT=c.wrapT!==void 0?c.wrapT:en,a.magFilter=c.magFilter!==void 0?c.magFilter:_t,a.minFilter=c.minFilter!==void 0?c.minFilter:_t,a.anisotropy=c.anisotropy!==void 0?c.anisotropy:1,c.colorSpace!==void 0&&(a.colorSpace=c.colorSpace),c.flipY!==void 0&&(a.flipY=c.flipY),c.format!==void 0&&(a.format=c.format),c.type!==void 0&&(a.type=c.type),c.mipmaps!==void 0&&(a.mipmaps=c.mipmaps,a.minFilter=xn),c.mipmapCount===1&&(a.minFilter=_t),c.generateMipmaps!==void 0&&(a.generateMipmaps=c.generateMipmaps),a.needsUpdate=!0,t&&t(a,c)},n,r),a}}class Rp{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=eo(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=eo();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function eo(){return(typeof performance>"u"?Date:performance).now()}class to{constructor(e=1,t=0,n=0){return this.radius=e,this.phi=t,this.theta=n,this}set(e,t,n){return this.radius=e,this.phi=t,this.theta=n,this}copy(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this}makeSafe(){return this.phi=Math.max(1e-6,Math.min(Math.PI-1e-6,this.phi)),this}setFromVector3(e){return this.setFromCartesianCoords(e.x,e.y,e.z)}setFromCartesianCoords(e,t,n){return this.radius=Math.sqrt(e*e+t*t+n*n),this.radius===0?(this.theta=0,this.phi=0):(this.theta=Math.atan2(e,n),this.phi=Math.acos(pt(t/this.radius,-1,1))),this}clone(){return new this.constructor().copy(this)}}typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:Bs}}));typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=Bs);const no={type:"change"},ns={type:"start"},io={type:"end"},ar=new bo,ro=new gn,Cp=Math.cos(70*sc.DEG2RAD);class Pp extends Bn{constructor(e,t){super(),this.object=e,this.domElement=t,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new F,this.cursor=new F,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:Vn.ROTATE,MIDDLE:Vn.DOLLY,RIGHT:Vn.PAN},this.touches={ONE:kn.ROTATE,TWO:kn.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return o.phi},this.getAzimuthalAngle=function(){return o.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(g){g.addEventListener("keydown",le),this._domElementKeyEvents=g},this.stopListenToKeyEvents=function(){this._domElementKeyEvents.removeEventListener("keydown",le),this._domElementKeyEvents=null},this.saveState=function(){n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=function(){n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent(no),n.update(),s=r.NONE},this.update=function(){const g=new F,N=new Fn().setFromUnitVectors(e.up,new F(0,1,0)),B=N.clone().invert(),X=new F,J=new Fn,_e=new F,Te=2*Math.PI;return function(rt=null){const ze=n.object.position;g.copy(ze).sub(n.target),g.applyQuaternion(N),o.setFromVector3(g),n.autoRotate&&s===r.NONE&&W(v(rt)),n.enableDamping?(o.theta+=l.theta*n.dampingFactor,o.phi+=l.phi*n.dampingFactor):(o.theta+=l.theta,o.phi+=l.phi);let st=n.minAzimuthAngle,tt=n.maxAzimuthAngle;isFinite(st)&&isFinite(tt)&&(st<-Math.PI?st+=Te:st>Math.PI&&(st-=Te),tt<-Math.PI?tt+=Te:tt>Math.PI&&(tt-=Te),st<=tt?o.theta=Math.max(st,Math.min(tt,o.theta)):o.theta=o.theta>(st+tt)/2?Math.max(st,o.theta):Math.min(tt,o.theta)),o.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,o.phi)),o.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(u,n.dampingFactor):n.target.add(u),n.target.sub(n.cursor),n.target.clampLength(n.minTargetRadius,n.maxTargetRadius),n.target.add(n.cursor);let ln=!1;if(n.zoomToCursor&&P||n.object.isOrthographicCamera)o.radius=ae(o.radius);else{const dt=o.radius;o.radius=ae(o.radius*c),ln=dt!=o.radius}if(g.setFromSpherical(o),g.applyQuaternion(B),ze.copy(n.target).add(g),n.object.lookAt(n.target),n.enableDamping===!0?(l.theta*=1-n.dampingFactor,l.phi*=1-n.dampingFactor,u.multiplyScalar(1-n.dampingFactor)):(l.set(0,0,0),u.set(0,0,0)),n.zoomToCursor&&P){let dt=null;if(n.object.isPerspectiveCamera){const Wt=g.length();dt=ae(Wt*c);const yn=Wt-dt;n.object.position.addScaledVector(b,yn),n.object.updateMatrixWorld(),ln=!!yn}else if(n.object.isOrthographicCamera){const Wt=new F(O.x,O.y,0);Wt.unproject(n.object);const yn=n.object.zoom;n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/c)),n.object.updateProjectionMatrix(),ln=yn!==n.object.zoom;const Mi=new F(O.x,O.y,0);Mi.unproject(n.object),n.object.position.sub(Mi).add(Wt),n.object.updateMatrixWorld(),dt=g.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;dt!==null&&(this.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(dt).add(n.object.position):(ar.origin.copy(n.object.position),ar.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(ar.direction))a||8*(1-J.dot(n.object.quaternion))>a||_e.distanceToSquared(n.target)>a?(n.dispatchEvent(no),X.copy(n.object.position),J.copy(n.object.quaternion),_e.copy(n.target),!0):!1}}(),this.dispose=function(){n.domElement.removeEventListener("contextmenu",ce),n.domElement.removeEventListener("pointerdown",Ce),n.domElement.removeEventListener("pointercancel",_),n.domElement.removeEventListener("wheel",Q),n.domElement.removeEventListener("pointermove",T),n.domElement.removeEventListener("pointerup",_),n.domElement.getRootNode().removeEventListener("keydown",xe,{capture:!0}),n._domElementKeyEvents!==null&&(n._domElementKeyEvents.removeEventListener("keydown",le),n._domElementKeyEvents=null)};const n=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=r.NONE;const a=1e-6,o=new to,l=new to;let c=1;const u=new F,d=new De,f=new De,m=new De,x=new De,S=new De,p=new De,h=new De,A=new De,y=new De,b=new F,O=new De;let P=!1;const w=[],L={};let E=!1;function v(g){return g!==null?2*Math.PI/60*n.autoRotateSpeed*g:2*Math.PI/60/60*n.autoRotateSpeed}function R(g){const N=Math.abs(g*.01);return Math.pow(.95,n.zoomSpeed*N)}function W(g){l.theta-=g}function U(g){l.phi-=g}const k=function(){const g=new F;return function(B,X){g.setFromMatrixColumn(X,0),g.multiplyScalar(-B),u.add(g)}}(),Y=function(){const g=new F;return function(B,X){n.screenSpacePanning===!0?g.setFromMatrixColumn(X,1):(g.setFromMatrixColumn(X,0),g.crossVectors(n.object.up,g)),g.multiplyScalar(B),u.add(g)}}(),H=function(){const g=new F;return function(B,X){const J=n.domElement;if(n.object.isPerspectiveCamera){const _e=n.object.position;g.copy(_e).sub(n.target);let Te=g.length();Te*=Math.tan(n.object.fov/2*Math.PI/180),k(2*B*Te/J.clientHeight,n.object.matrix),Y(2*X*Te/J.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(k(B*(n.object.right-n.object.left)/n.object.zoom/J.clientWidth,n.object.matrix),Y(X*(n.object.top-n.object.bottom)/n.object.zoom/J.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function K(g){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c/=g:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function q(g){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c*=g:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function se(g,N){if(!n.zoomToCursor)return;P=!0;const B=n.domElement.getBoundingClientRect(),X=g-B.left,J=N-B.top,_e=B.width,Te=B.height;O.x=X/_e*2-1,O.y=-(J/Te)*2+1,b.set(O.x,O.y,1).unproject(n.object).sub(n.object.position).normalize()}function ae(g){return Math.max(n.minDistance,Math.min(n.maxDistance,g))}function fe(g){d.set(g.clientX,g.clientY)}function ye(g){se(g.clientX,g.clientX),h.set(g.clientX,g.clientY)}function Ie(g){x.set(g.clientX,g.clientY)}function $(g){f.set(g.clientX,g.clientY),m.subVectors(f,d).multiplyScalar(n.rotateSpeed);const N=n.domElement;W(2*Math.PI*m.x/N.clientHeight),U(2*Math.PI*m.y/N.clientHeight),d.copy(f),n.update()}function ee(g){A.set(g.clientX,g.clientY),y.subVectors(A,h),y.y>0?K(R(y.y)):y.y<0&&q(R(y.y)),h.copy(A),n.update()}function de(g){S.set(g.clientX,g.clientY),p.subVectors(S,x).multiplyScalar(n.panSpeed),H(p.x,p.y),x.copy(S),n.update()}function ue(g){se(g.clientX,g.clientY),g.deltaY<0?q(R(g.deltaY)):g.deltaY>0&&K(R(g.deltaY)),n.update()}function Pe(g){let N=!1;switch(g.code){case n.keys.UP:g.ctrlKey||g.metaKey||g.shiftKey?U(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):H(0,n.keyPanSpeed),N=!0;break;case n.keys.BOTTOM:g.ctrlKey||g.metaKey||g.shiftKey?U(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):H(0,-n.keyPanSpeed),N=!0;break;case n.keys.LEFT:g.ctrlKey||g.metaKey||g.shiftKey?W(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):H(n.keyPanSpeed,0),N=!0;break;case n.keys.RIGHT:g.ctrlKey||g.metaKey||g.shiftKey?W(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):H(-n.keyPanSpeed,0),N=!0;break}N&&(g.preventDefault(),n.update())}function Ue(g){if(w.length===1)d.set(g.pageX,g.pageY);else{const N=Re(g),B=.5*(g.pageX+N.x),X=.5*(g.pageY+N.y);d.set(B,X)}}function Oe(g){if(w.length===1)x.set(g.pageX,g.pageY);else{const N=Re(g),B=.5*(g.pageX+N.x),X=.5*(g.pageY+N.y);x.set(B,X)}}function qe(g){const N=Re(g),B=g.pageX-N.x,X=g.pageY-N.y,J=Math.sqrt(B*B+X*X);h.set(0,J)}function C(g){n.enableZoom&&qe(g),n.enablePan&&Oe(g)}function je(g){n.enableZoom&&qe(g),n.enableRotate&&Ue(g)}function He(g){if(w.length==1)f.set(g.pageX,g.pageY);else{const B=Re(g),X=.5*(g.pageX+B.x),J=.5*(g.pageY+B.y);f.set(X,J)}m.subVectors(f,d).multiplyScalar(n.rotateSpeed);const N=n.domElement;W(2*Math.PI*m.x/N.clientHeight),U(2*Math.PI*m.y/N.clientHeight),d.copy(f)}function Ve(g){if(w.length===1)S.set(g.pageX,g.pageY);else{const N=Re(g),B=.5*(g.pageX+N.x),X=.5*(g.pageY+N.y);S.set(B,X)}p.subVectors(S,x).multiplyScalar(n.panSpeed),H(p.x,p.y),x.copy(S)}function ge(g){const N=Re(g),B=g.pageX-N.x,X=g.pageY-N.y,J=Math.sqrt(B*B+X*X);A.set(0,J),y.set(0,Math.pow(A.y/h.y,n.zoomSpeed)),K(y.y),h.copy(A);const _e=(g.pageX+N.x)*.5,Te=(g.pageY+N.y)*.5;se(_e,Te)}function Ze(g){n.enableZoom&&ge(g),n.enablePan&&Ve(g)}function we(g){n.enableZoom&&ge(g),n.enableRotate&&He(g)}function Ce(g){n.enabled!==!1&&(w.length===0&&(n.domElement.setPointerCapture(g.pointerId),n.domElement.addEventListener("pointermove",T),n.domElement.addEventListener("pointerup",_)),!he(g)&&(Be(g),g.pointerType==="touch"?Le(g):G(g)))}function T(g){n.enabled!==!1&&(g.pointerType==="touch"?te(g):Z(g))}function _(g){switch(Se(g),w.length){case 0:n.domElement.releasePointerCapture(g.pointerId),n.domElement.removeEventListener("pointermove",T),n.domElement.removeEventListener("pointerup",_),n.dispatchEvent(io),s=r.NONE;break;case 1:const N=w[0],B=L[N];Le({pointerId:N,pageX:B.x,pageY:B.y});break}}function G(g){let N;switch(g.button){case 0:N=n.mouseButtons.LEFT;break;case 1:N=n.mouseButtons.MIDDLE;break;case 2:N=n.mouseButtons.RIGHT;break;default:N=-1}switch(N){case Vn.DOLLY:if(n.enableZoom===!1)return;ye(g),s=r.DOLLY;break;case Vn.ROTATE:if(g.ctrlKey||g.metaKey||g.shiftKey){if(n.enablePan===!1)return;Ie(g),s=r.PAN}else{if(n.enableRotate===!1)return;fe(g),s=r.ROTATE}break;case Vn.PAN:if(g.ctrlKey||g.metaKey||g.shiftKey){if(n.enableRotate===!1)return;fe(g),s=r.ROTATE}else{if(n.enablePan===!1)return;Ie(g),s=r.PAN}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(ns)}function Z(g){switch(s){case r.ROTATE:if(n.enableRotate===!1)return;$(g);break;case r.DOLLY:if(n.enableZoom===!1)return;ee(g);break;case r.PAN:if(n.enablePan===!1)return;de(g);break}}function Q(g){n.enabled===!1||n.enableZoom===!1||s!==r.NONE||(g.preventDefault(),n.dispatchEvent(ns),ue(j(g)),n.dispatchEvent(io))}function j(g){const N=g.deltaMode,B={clientX:g.clientX,clientY:g.clientY,deltaY:g.deltaY};switch(N){case 1:B.deltaY*=16;break;case 2:B.deltaY*=100;break}return g.ctrlKey&&!E&&(B.deltaY*=10),B}function xe(g){g.key==="Control"&&(E=!0,n.domElement.getRootNode().addEventListener("keyup",ie,{passive:!0,capture:!0}))}function ie(g){g.key==="Control"&&(E=!1,n.domElement.getRootNode().removeEventListener("keyup",ie,{passive:!0,capture:!0}))}function le(g){n.enabled===!1||n.enablePan===!1||Pe(g)}function Le(g){switch(Ae(g),w.length){case 1:switch(n.touches.ONE){case kn.ROTATE:if(n.enableRotate===!1)return;Ue(g),s=r.TOUCH_ROTATE;break;case kn.PAN:if(n.enablePan===!1)return;Oe(g),s=r.TOUCH_PAN;break;default:s=r.NONE}break;case 2:switch(n.touches.TWO){case kn.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;C(g),s=r.TOUCH_DOLLY_PAN;break;case kn.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;je(g),s=r.TOUCH_DOLLY_ROTATE;break;default:s=r.NONE}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(ns)}function te(g){switch(Ae(g),s){case r.TOUCH_ROTATE:if(n.enableRotate===!1)return;He(g),n.update();break;case r.TOUCH_PAN:if(n.enablePan===!1)return;Ve(g),n.update();break;case r.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;Ze(g),n.update();break;case r.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;we(g),n.update();break;default:s=r.NONE}}function ce(g){n.enabled!==!1&&g.preventDefault()}function Be(g){w.push(g.pointerId)}function Se(g){delete L[g.pointerId];for(let N=0;Na.stopPropagation()),this.domElement.addEventListener("keyup",a=>a.stopPropagation()),this.parent.children.push(this),this.parent.controllers.push(this),this.parent.$children.appendChild(this.domElement),this._listenCallback=this._listenCallback.bind(this),this.name(n)}name(e){return this._name=e,this.$name.textContent=e,this}onChange(e){return this._onChange=e,this}_callOnChange(){this.parent._callOnChange(this),this._onChange!==void 0&&this._onChange.call(this,this.getValue()),this._changed=!0}onFinishChange(e){return this._onFinishChange=e,this}_callOnFinishChange(){this._changed&&(this.parent._callOnFinishChange(this),this._onFinishChange!==void 0&&this._onFinishChange.call(this,this.getValue())),this._changed=!1}reset(){return this.setValue(this.initialValue),this._callOnFinishChange(),this}enable(e=!0){return this.disable(!e)}disable(e=!0){return e===this._disabled?this:(this._disabled=e,this.domElement.classList.toggle("disabled",e),this.$disable.toggleAttribute("disabled",e),this)}show(e=!0){return this._hidden=!e,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}options(e){const t=this.parent.add(this.object,this.property,e);return t.name(this._name),this.destroy(),t}min(e){return this}max(e){return this}step(e){return this}decimals(e){return this}listen(e=!0){return this._listening=e,this._listenCallbackID!==void 0&&(cancelAnimationFrame(this._listenCallbackID),this._listenCallbackID=void 0),this._listening&&this._listenCallback(),this}_listenCallback(){this._listenCallbackID=requestAnimationFrame(this._listenCallback);const e=this.save();e!==this._listenPrevValue&&this.updateDisplay(),this._listenPrevValue=e}getValue(){return this.object[this.property]}setValue(e){return this.getValue()!==e&&(this.object[this.property]=e,this._callOnChange(),this.updateDisplay()),this}updateDisplay(){return this}load(e){return this.setValue(e),this._callOnFinishChange(),this}save(){return this.getValue()}destroy(){this.listen(!1),this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.controllers.splice(this.parent.controllers.indexOf(this),1),this.parent.$children.removeChild(this.domElement)}}class Lp extends Gt{constructor(e,t,n){super(e,t,n,"boolean","label"),this.$input=document.createElement("input"),this.$input.setAttribute("type","checkbox"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$widget.appendChild(this.$input),this.$input.addEventListener("change",()=>{this.setValue(this.$input.checked),this._callOnFinishChange()}),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.checked=this.getValue(),this}}function Os(i){let e,t;return(e=i.match(/(#|0x)?([a-f0-9]{6})/i))?t=e[2]:(e=i.match(/rgb\(\s*(\d*)\s*,\s*(\d*)\s*,\s*(\d*)\s*\)/))?t=parseInt(e[1]).toString(16).padStart(2,0)+parseInt(e[2]).toString(16).padStart(2,0)+parseInt(e[3]).toString(16).padStart(2,0):(e=i.match(/^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i))&&(t=e[1]+e[1]+e[2]+e[2]+e[3]+e[3]),t?"#"+t:!1}const Dp={isPrimitive:!0,match:i=>typeof i=="string",fromHexString:Os,toHexString:Os},Pi={isPrimitive:!0,match:i=>typeof i=="number",fromHexString:i=>parseInt(i.substring(1),16),toHexString:i=>"#"+i.toString(16).padStart(6,0)},Ip={isPrimitive:!1,match:i=>Array.isArray(i),fromHexString(i,e,t=1){const n=Pi.fromHexString(i);e[0]=(n>>16&255)/255*t,e[1]=(n>>8&255)/255*t,e[2]=(n&255)/255*t},toHexString([i,e,t],n=1){n=255/n;const r=i*n<<16^e*n<<8^t*n<<0;return Pi.toHexString(r)}},Up={isPrimitive:!1,match:i=>Object(i)===i,fromHexString(i,e,t=1){const n=Pi.fromHexString(i);e.r=(n>>16&255)/255*t,e.g=(n>>8&255)/255*t,e.b=(n&255)/255*t},toHexString({r:i,g:e,b:t},n=1){n=255/n;const r=i*n<<16^e*n<<8^t*n<<0;return Pi.toHexString(r)}},Np=[Dp,Pi,Ip,Up];function Fp(i){return Np.find(e=>e.match(i))}class Op extends Gt{constructor(e,t,n,r){super(e,t,n,"color"),this.$input=document.createElement("input"),this.$input.setAttribute("type","color"),this.$input.setAttribute("tabindex",-1),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$text=document.createElement("input"),this.$text.setAttribute("type","text"),this.$text.setAttribute("spellcheck","false"),this.$text.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this.$display.appendChild(this.$input),this.$widget.appendChild(this.$display),this.$widget.appendChild(this.$text),this._format=Fp(this.initialValue),this._rgbScale=r,this._initialValueHexString=this.save(),this._textFocused=!1,this.$input.addEventListener("input",()=>{this._setValueFromHexString(this.$input.value)}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$text.addEventListener("input",()=>{const s=Os(this.$text.value);s&&this._setValueFromHexString(s)}),this.$text.addEventListener("focus",()=>{this._textFocused=!0,this.$text.select()}),this.$text.addEventListener("blur",()=>{this._textFocused=!1,this.updateDisplay(),this._callOnFinishChange()}),this.$disable=this.$text,this.updateDisplay()}reset(){return this._setValueFromHexString(this._initialValueHexString),this}_setValueFromHexString(e){if(this._format.isPrimitive){const t=this._format.fromHexString(e);this.setValue(t)}else this._format.fromHexString(e,this.getValue(),this._rgbScale),this._callOnChange(),this.updateDisplay()}save(){return this._format.toHexString(this.getValue(),this._rgbScale)}load(e){return this._setValueFromHexString(e),this._callOnFinishChange(),this}updateDisplay(){return this.$input.value=this._format.toHexString(this.getValue(),this._rgbScale),this._textFocused||(this.$text.value=this.$input.value.substring(1)),this.$display.style.backgroundColor=this.$input.value,this}}class is extends Gt{constructor(e,t,n){super(e,t,n,"function"),this.$button=document.createElement("button"),this.$button.appendChild(this.$name),this.$widget.appendChild(this.$button),this.$button.addEventListener("click",r=>{r.preventDefault(),this.getValue().call(this.object),this._callOnChange()}),this.$button.addEventListener("touchstart",()=>{},{passive:!0}),this.$disable=this.$button}}class Bp extends Gt{constructor(e,t,n,r,s,a){super(e,t,n,"number"),this._initInput(),this.min(r),this.max(s);const o=a!==void 0;this.step(o?a:this._getImplicitStep(),o),this.updateDisplay()}decimals(e){return this._decimals=e,this.updateDisplay(),this}min(e){return this._min=e,this._onUpdateMinMax(),this}max(e){return this._max=e,this._onUpdateMinMax(),this}step(e,t=!0){return this._step=e,this._stepExplicit=t,this}updateDisplay(){const e=this.getValue();if(this._hasSlider){let t=(e-this._min)/(this._max-this._min);t=Math.max(0,Math.min(t,1)),this.$fill.style.width=t*100+"%"}return this._inputFocused||(this.$input.value=this._decimals===void 0?e:e.toFixed(this._decimals)),this}_initInput(){this.$input=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("aria-labelledby",this.$name.id),window.matchMedia("(pointer: coarse)").matches&&(this.$input.setAttribute("type","number"),this.$input.setAttribute("step","any")),this.$widget.appendChild(this.$input),this.$disable=this.$input;const t=()=>{let A=parseFloat(this.$input.value);isNaN(A)||(this._stepExplicit&&(A=this._snap(A)),this.setValue(this._clamp(A)))},n=A=>{const y=parseFloat(this.$input.value);isNaN(y)||(this._snapClampSetValue(y+A),this.$input.value=this.getValue())},r=A=>{A.key==="Enter"&&this.$input.blur(),A.code==="ArrowUp"&&(A.preventDefault(),n(this._step*this._arrowKeyMultiplier(A))),A.code==="ArrowDown"&&(A.preventDefault(),n(this._step*this._arrowKeyMultiplier(A)*-1))},s=A=>{this._inputFocused&&(A.preventDefault(),n(this._step*this._normalizeMouseWheel(A)))};let a=!1,o,l,c,u,d;const f=5,m=A=>{o=A.clientX,l=c=A.clientY,a=!0,u=this.getValue(),d=0,window.addEventListener("mousemove",x),window.addEventListener("mouseup",S)},x=A=>{if(a){const y=A.clientX-o,b=A.clientY-l;Math.abs(b)>f?(A.preventDefault(),this.$input.blur(),a=!1,this._setDraggingStyle(!0,"vertical")):Math.abs(y)>f&&S()}if(!a){const y=A.clientY-c;d-=y*this._step*this._arrowKeyMultiplier(A),u+d>this._max?d=this._max-u:u+d{this._setDraggingStyle(!1,"vertical"),this._callOnFinishChange(),window.removeEventListener("mousemove",x),window.removeEventListener("mouseup",S)},p=()=>{this._inputFocused=!0},h=()=>{this._inputFocused=!1,this.updateDisplay(),this._callOnFinishChange()};this.$input.addEventListener("input",t),this.$input.addEventListener("keydown",r),this.$input.addEventListener("wheel",s,{passive:!1}),this.$input.addEventListener("mousedown",m),this.$input.addEventListener("focus",p),this.$input.addEventListener("blur",h)}_initSlider(){this._hasSlider=!0,this.$slider=document.createElement("div"),this.$slider.classList.add("slider"),this.$fill=document.createElement("div"),this.$fill.classList.add("fill"),this.$slider.appendChild(this.$fill),this.$widget.insertBefore(this.$slider,this.$input),this.domElement.classList.add("hasSlider");const e=(h,A,y,b,O)=>(h-A)/(y-A)*(O-b)+b,t=h=>{const A=this.$slider.getBoundingClientRect();let y=e(h,A.left,A.right,this._min,this._max);this._snapClampSetValue(y)},n=h=>{this._setDraggingStyle(!0),t(h.clientX),window.addEventListener("mousemove",r),window.addEventListener("mouseup",s)},r=h=>{t(h.clientX)},s=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("mousemove",r),window.removeEventListener("mouseup",s)};let a=!1,o,l;const c=h=>{h.preventDefault(),this._setDraggingStyle(!0),t(h.touches[0].clientX),a=!1},u=h=>{h.touches.length>1||(this._hasScrollBar?(o=h.touches[0].clientX,l=h.touches[0].clientY,a=!0):c(h),window.addEventListener("touchmove",d,{passive:!1}),window.addEventListener("touchend",f))},d=h=>{if(a){const A=h.touches[0].clientX-o,y=h.touches[0].clientY-l;Math.abs(A)>Math.abs(y)?c(h):(window.removeEventListener("touchmove",d),window.removeEventListener("touchend",f))}else h.preventDefault(),t(h.touches[0].clientX)},f=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("touchmove",d),window.removeEventListener("touchend",f)},m=this._callOnFinishChange.bind(this),x=400;let S;const p=h=>{if(Math.abs(h.deltaX)this._max&&(e=this._max),e}_snapClampSetValue(e){this.setValue(this._clamp(this._snap(e)))}get _hasScrollBar(){const e=this.parent.root.$children;return e.scrollHeight>e.clientHeight}get _hasMin(){return this._min!==void 0}get _hasMax(){return this._max!==void 0}}class zp extends Gt{constructor(e,t,n,r){super(e,t,n,"option"),this.$select=document.createElement("select"),this.$select.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this.$select.addEventListener("change",()=>{this.setValue(this._values[this.$select.selectedIndex]),this._callOnFinishChange()}),this.$select.addEventListener("focus",()=>{this.$display.classList.add("focus")}),this.$select.addEventListener("blur",()=>{this.$display.classList.remove("focus")}),this.$widget.appendChild(this.$select),this.$widget.appendChild(this.$display),this.$disable=this.$select,this.options(r)}options(e){return this._values=Array.isArray(e)?e:Object.values(e),this._names=Array.isArray(e)?e:Object.keys(e),this.$select.replaceChildren(),this._names.forEach(t=>{const n=document.createElement("option");n.textContent=t,this.$select.appendChild(n)}),this.updateDisplay(),this}updateDisplay(){const e=this.getValue(),t=this._values.indexOf(e);return this.$select.selectedIndex=t,this.$display.textContent=t===-1?e:this._names[t],this}}class Hp extends Gt{constructor(e,t,n){super(e,t,n,"string"),this.$input=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("spellcheck","false"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$input.addEventListener("input",()=>{this.setValue(this.$input.value)}),this.$input.addEventListener("keydown",r=>{r.code==="Enter"&&this.$input.blur()}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$widget.appendChild(this.$input),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.value=this.getValue(),this}}const Vp=`.lil-gui { + font-family: var(--font-family); + font-size: var(--font-size); + line-height: 1; + font-weight: normal; + font-style: normal; + text-align: left; + color: var(--text-color); + user-select: none; + -webkit-user-select: none; + touch-action: manipulation; + --background-color: #1f1f1f; + --text-color: #ebebeb; + --title-background-color: #111111; + --title-text-color: #ebebeb; + --widget-color: #424242; + --hover-color: #4f4f4f; + --focus-color: #595959; + --number-color: #2cc9ff; + --string-color: #a2db3c; + --font-size: 11px; + --input-font-size: 11px; + --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; + --font-family-mono: Menlo, Monaco, Consolas, "Droid Sans Mono", monospace; + --padding: 4px; + --spacing: 4px; + --widget-height: 20px; + --title-height: calc(var(--widget-height) + var(--spacing) * 1.25); + --name-width: 45%; + --slider-knob-width: 2px; + --slider-input-width: 27%; + --color-input-width: 27%; + --slider-input-min-width: 45px; + --color-input-min-width: 45px; + --folder-indent: 7px; + --widget-padding: 0 0 0 3px; + --widget-border-radius: 2px; + --checkbox-size: calc(0.75 * var(--widget-height)); + --scrollbar-width: 5px; +} +.lil-gui, .lil-gui * { + box-sizing: border-box; + margin: 0; + padding: 0; +} +.lil-gui.root { + width: var(--width, 245px); + display: flex; + flex-direction: column; + background: var(--background-color); +} +.lil-gui.root > .title { + background: var(--title-background-color); + color: var(--title-text-color); +} +.lil-gui.root > .children { + overflow-x: hidden; + overflow-y: auto; +} +.lil-gui.root > .children::-webkit-scrollbar { + width: var(--scrollbar-width); + height: var(--scrollbar-width); + background: var(--background-color); +} +.lil-gui.root > .children::-webkit-scrollbar-thumb { + border-radius: var(--scrollbar-width); + background: var(--focus-color); +} +@media (pointer: coarse) { + .lil-gui.allow-touch-styles, .lil-gui.allow-touch-styles .lil-gui { + --widget-height: 28px; + --padding: 6px; + --spacing: 6px; + --font-size: 13px; + --input-font-size: 16px; + --folder-indent: 10px; + --scrollbar-width: 7px; + --slider-input-min-width: 50px; + --color-input-min-width: 65px; + } +} +.lil-gui.force-touch-styles, .lil-gui.force-touch-styles .lil-gui { + --widget-height: 28px; + --padding: 6px; + --spacing: 6px; + --font-size: 13px; + --input-font-size: 16px; + --folder-indent: 10px; + --scrollbar-width: 7px; + --slider-input-min-width: 50px; + --color-input-min-width: 65px; +} +.lil-gui.autoPlace { + max-height: 100%; + position: fixed; + top: 0; + right: 15px; + z-index: 1001; +} + +.lil-gui .controller { + display: flex; + align-items: center; + padding: 0 var(--padding); + margin: var(--spacing) 0; +} +.lil-gui .controller.disabled { + opacity: 0.5; +} +.lil-gui .controller.disabled, .lil-gui .controller.disabled * { + pointer-events: none !important; +} +.lil-gui .controller > .name { + min-width: var(--name-width); + flex-shrink: 0; + white-space: pre; + padding-right: var(--spacing); + line-height: var(--widget-height); +} +.lil-gui .controller .widget { + position: relative; + display: flex; + align-items: center; + width: 100%; + min-height: var(--widget-height); +} +.lil-gui .controller.string input { + color: var(--string-color); +} +.lil-gui .controller.boolean { + cursor: pointer; +} +.lil-gui .controller.color .display { + width: 100%; + height: var(--widget-height); + border-radius: var(--widget-border-radius); + position: relative; +} +@media (hover: hover) { + .lil-gui .controller.color .display:hover:before { + content: " "; + display: block; + position: absolute; + border-radius: var(--widget-border-radius); + border: 1px solid #fff9; + top: 0; + right: 0; + bottom: 0; + left: 0; + } +} +.lil-gui .controller.color input[type=color] { + opacity: 0; + width: 100%; + height: 100%; + cursor: pointer; +} +.lil-gui .controller.color input[type=text] { + margin-left: var(--spacing); + font-family: var(--font-family-mono); + min-width: var(--color-input-min-width); + width: var(--color-input-width); + flex-shrink: 0; +} +.lil-gui .controller.option select { + opacity: 0; + position: absolute; + width: 100%; + max-width: 100%; +} +.lil-gui .controller.option .display { + position: relative; + pointer-events: none; + border-radius: var(--widget-border-radius); + height: var(--widget-height); + line-height: var(--widget-height); + max-width: 100%; + overflow: hidden; + word-break: break-all; + padding-left: 0.55em; + padding-right: 1.75em; + background: var(--widget-color); +} +@media (hover: hover) { + .lil-gui .controller.option .display.focus { + background: var(--focus-color); + } +} +.lil-gui .controller.option .display.active { + background: var(--focus-color); +} +.lil-gui .controller.option .display:after { + font-family: "lil-gui"; + content: "↕"; + position: absolute; + top: 0; + right: 0; + bottom: 0; + padding-right: 0.375em; +} +.lil-gui .controller.option .widget, +.lil-gui .controller.option select { + cursor: pointer; +} +@media (hover: hover) { + .lil-gui .controller.option .widget:hover .display { + background: var(--hover-color); + } +} +.lil-gui .controller.number input { + color: var(--number-color); +} +.lil-gui .controller.number.hasSlider input { + margin-left: var(--spacing); + width: var(--slider-input-width); + min-width: var(--slider-input-min-width); + flex-shrink: 0; +} +.lil-gui .controller.number .slider { + width: 100%; + height: var(--widget-height); + background: var(--widget-color); + border-radius: var(--widget-border-radius); + padding-right: var(--slider-knob-width); + overflow: hidden; + cursor: ew-resize; + touch-action: pan-y; +} +@media (hover: hover) { + .lil-gui .controller.number .slider:hover { + background: var(--hover-color); + } +} +.lil-gui .controller.number .slider.active { + background: var(--focus-color); +} +.lil-gui .controller.number .slider.active .fill { + opacity: 0.95; +} +.lil-gui .controller.number .fill { + height: 100%; + border-right: var(--slider-knob-width) solid var(--number-color); + box-sizing: content-box; +} + +.lil-gui-dragging .lil-gui { + --hover-color: var(--widget-color); +} +.lil-gui-dragging * { + cursor: ew-resize !important; +} + +.lil-gui-dragging.lil-gui-vertical * { + cursor: ns-resize !important; +} + +.lil-gui .title { + height: var(--title-height); + line-height: calc(var(--title-height) - 4px); + font-weight: 600; + padding: 0 var(--padding); + -webkit-tap-highlight-color: transparent; + cursor: pointer; + outline: none; + text-decoration-skip: objects; +} +.lil-gui .title:before { + font-family: "lil-gui"; + content: "▾"; + padding-right: 2px; + display: inline-block; +} +.lil-gui .title:active { + background: var(--title-background-color); + opacity: 0.75; +} +@media (hover: hover) { + body:not(.lil-gui-dragging) .lil-gui .title:hover { + background: var(--title-background-color); + opacity: 0.85; + } + .lil-gui .title:focus { + text-decoration: underline var(--focus-color); + } +} +.lil-gui.root > .title:focus { + text-decoration: none !important; +} +.lil-gui.closed > .title:before { + content: "▸"; +} +.lil-gui.closed > .children { + transform: translateY(-7px); + opacity: 0; +} +.lil-gui.closed:not(.transition) > .children { + display: none; +} +.lil-gui.transition > .children { + transition-duration: 300ms; + transition-property: height, opacity, transform; + transition-timing-function: cubic-bezier(0.2, 0.6, 0.35, 1); + overflow: hidden; + pointer-events: none; +} +.lil-gui .children:empty:before { + content: "Empty"; + padding: 0 var(--padding); + margin: var(--spacing) 0; + display: block; + height: var(--widget-height); + font-style: italic; + line-height: var(--widget-height); + opacity: 0.5; +} +.lil-gui.root > .children > .lil-gui > .title { + border: 0 solid var(--widget-color); + border-width: 1px 0; + transition: border-color 300ms; +} +.lil-gui.root > .children > .lil-gui.closed > .title { + border-bottom-color: transparent; +} +.lil-gui + .controller { + border-top: 1px solid var(--widget-color); + margin-top: 0; + padding-top: var(--spacing); +} +.lil-gui .lil-gui .lil-gui > .title { + border: none; +} +.lil-gui .lil-gui .lil-gui > .children { + border: none; + margin-left: var(--folder-indent); + border-left: 2px solid var(--widget-color); +} +.lil-gui .lil-gui .controller { + border: none; +} + +.lil-gui label, .lil-gui input, .lil-gui button { + -webkit-tap-highlight-color: transparent; +} +.lil-gui input { + border: 0; + outline: none; + font-family: var(--font-family); + font-size: var(--input-font-size); + border-radius: var(--widget-border-radius); + height: var(--widget-height); + background: var(--widget-color); + color: var(--text-color); + width: 100%; +} +@media (hover: hover) { + .lil-gui input:hover { + background: var(--hover-color); + } + .lil-gui input:active { + background: var(--focus-color); + } +} +.lil-gui input:disabled { + opacity: 1; +} +.lil-gui input[type=text], +.lil-gui input[type=number] { + padding: var(--widget-padding); + -moz-appearance: textfield; +} +.lil-gui input[type=text]:focus, +.lil-gui input[type=number]:focus { + background: var(--focus-color); +} +.lil-gui input[type=checkbox] { + appearance: none; + width: var(--checkbox-size); + height: var(--checkbox-size); + border-radius: var(--widget-border-radius); + text-align: center; + cursor: pointer; +} +.lil-gui input[type=checkbox]:checked:before { + font-family: "lil-gui"; + content: "✓"; + font-size: var(--checkbox-size); + line-height: var(--checkbox-size); +} +@media (hover: hover) { + .lil-gui input[type=checkbox]:focus { + box-shadow: inset 0 0 0 1px var(--focus-color); + } +} +.lil-gui button { + outline: none; + cursor: pointer; + font-family: var(--font-family); + font-size: var(--font-size); + color: var(--text-color); + width: 100%; + height: var(--widget-height); + text-transform: none; + background: var(--widget-color); + border-radius: var(--widget-border-radius); + border: none; +} +@media (hover: hover) { + .lil-gui button:hover { + background: var(--hover-color); + } + .lil-gui button:focus { + box-shadow: inset 0 0 0 1px var(--focus-color); + } +} +.lil-gui button:active { + background: var(--focus-color); +} + +@font-face { + font-family: "lil-gui"; + src: url("data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAUsAAsAAAAACJwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAH4AAADAImwmYE9TLzIAAAGIAAAAPwAAAGBKqH5SY21hcAAAAcgAAAD0AAACrukyyJBnbHlmAAACvAAAAF8AAACEIZpWH2hlYWQAAAMcAAAAJwAAADZfcj2zaGhlYQAAA0QAAAAYAAAAJAC5AHhobXR4AAADXAAAABAAAABMAZAAAGxvY2EAAANsAAAAFAAAACgCEgIybWF4cAAAA4AAAAAeAAAAIAEfABJuYW1lAAADoAAAASIAAAIK9SUU/XBvc3QAAATEAAAAZgAAAJCTcMc2eJxVjbEOgjAURU+hFRBK1dGRL+ALnAiToyMLEzFpnPz/eAshwSa97517c/MwwJmeB9kwPl+0cf5+uGPZXsqPu4nvZabcSZldZ6kfyWnomFY/eScKqZNWupKJO6kXN3K9uCVoL7iInPr1X5baXs3tjuMqCtzEuagm/AAlzQgPAAB4nGNgYRBlnMDAysDAYM/gBiT5oLQBAwuDJAMDEwMrMwNWEJDmmsJwgCFeXZghBcjlZMgFCzOiKOIFAB71Bb8AeJy1kjFuwkAQRZ+DwRAwBtNQRUGKQ8OdKCAWUhAgKLhIuAsVSpWz5Bbkj3dEgYiUIszqWdpZe+Z7/wB1oCYmIoboiwiLT2WjKl/jscrHfGg/pKdMkyklC5Zs2LEfHYpjcRoPzme9MWWmk3dWbK9ObkWkikOetJ554fWyoEsmdSlt+uR0pCJR34b6t/TVg1SY3sYvdf8vuiKrpyaDXDISiegp17p7579Gp3p++y7HPAiY9pmTibljrr85qSidtlg4+l25GLCaS8e6rRxNBmsnERunKbaOObRz7N72ju5vdAjYpBXHgJylOAVsMseDAPEP8LYoUHicY2BiAAEfhiAGJgZWBgZ7RnFRdnVJELCQlBSRlATJMoLV2DK4glSYs6ubq5vbKrJLSbGrgEmovDuDJVhe3VzcXFwNLCOILB/C4IuQ1xTn5FPilBTj5FPmBAB4WwoqAHicY2BkYGAA4sk1sR/j+W2+MnAzpDBgAyEMQUCSg4EJxAEAwUgFHgB4nGNgZGBgSGFggJMhDIwMqEAYAByHATJ4nGNgAIIUNEwmAABl3AGReJxjYAACIQYlBiMGJ3wQAEcQBEV4nGNgZGBgEGZgY2BiAAEQyQWEDAz/wXwGAAsPATIAAHicXdBNSsNAHAXwl35iA0UQXYnMShfS9GPZA7T7LgIu03SSpkwzYTIt1BN4Ak/gKTyAeCxfw39jZkjymzcvAwmAW/wgwHUEGDb36+jQQ3GXGot79L24jxCP4gHzF/EIr4jEIe7wxhOC3g2TMYy4Q7+Lu/SHuEd/ivt4wJd4wPxbPEKMX3GI5+DJFGaSn4qNzk8mcbKSR6xdXdhSzaOZJGtdapd4vVPbi6rP+cL7TGXOHtXKll4bY1Xl7EGnPtp7Xy2n00zyKLVHfkHBa4IcJ2oD3cgggWvt/V/FbDrUlEUJhTn/0azVWbNTNr0Ens8de1tceK9xZmfB1CPjOmPH4kitmvOubcNpmVTN3oFJyjzCvnmrwhJTzqzVj9jiSX911FjeAAB4nG3HMRKCMBBA0f0giiKi4DU8k0V2GWbIZDOh4PoWWvq6J5V8If9NVNQcaDhyouXMhY4rPTcG7jwYmXhKq8Wz+p762aNaeYXom2n3m2dLTVgsrCgFJ7OTmIkYbwIbC6vIB7WmFfAAAA==") format("woff"); +}`;function kp(i){const e=document.createElement("style");e.innerHTML=i;const t=document.querySelector("head link[rel=stylesheet], head style");t?document.head.insertBefore(e,t):document.head.appendChild(e)}let so=!1;class js{constructor({parent:e,autoPlace:t=e===void 0,container:n,width:r,title:s="Controls",closeFolders:a=!1,injectStyles:o=!0,touchStyles:l=!0}={}){if(this.parent=e,this.root=e?e.root:this,this.children=[],this.controllers=[],this.folders=[],this._closed=!1,this._hidden=!1,this.domElement=document.createElement("div"),this.domElement.classList.add("lil-gui"),this.$title=document.createElement("div"),this.$title.classList.add("title"),this.$title.setAttribute("role","button"),this.$title.setAttribute("aria-expanded",!0),this.$title.setAttribute("tabindex",0),this.$title.addEventListener("click",()=>this.openAnimated(this._closed)),this.$title.addEventListener("keydown",c=>{(c.code==="Enter"||c.code==="Space")&&(c.preventDefault(),this.$title.click())}),this.$title.addEventListener("touchstart",()=>{},{passive:!0}),this.$children=document.createElement("div"),this.$children.classList.add("children"),this.domElement.appendChild(this.$title),this.domElement.appendChild(this.$children),this.title(s),this.parent){this.parent.children.push(this),this.parent.folders.push(this),this.parent.$children.appendChild(this.domElement);return}this.domElement.classList.add("root"),l&&this.domElement.classList.add("allow-touch-styles"),!so&&o&&(kp(Vp),so=!0),n?n.appendChild(this.domElement):t&&(this.domElement.classList.add("autoPlace"),document.body.appendChild(this.domElement)),r&&this.domElement.style.setProperty("--width",r+"px"),this._closeFolders=a}add(e,t,n,r,s){if(Object(n)===n)return new zp(this,e,t,n);const a=e[t];switch(typeof a){case"number":return new Bp(this,e,t,n,r,s);case"boolean":return new Lp(this,e,t);case"string":return new Hp(this,e,t);case"function":return new is(this,e,t)}console.error(`gui.add failed + property:`,t,` + object:`,e,` + value:`,a)}addColor(e,t,n=1){return new Op(this,e,t,n)}addFolder(e){const t=new js({parent:this,title:e});return this.root._closeFolders&&t.close(),t}load(e,t=!0){return e.controllers&&this.controllers.forEach(n=>{n instanceof is||n._name in e.controllers&&n.load(e.controllers[n._name])}),t&&e.folders&&this.folders.forEach(n=>{n._title in e.folders&&n.load(e.folders[n._title])}),this}save(e=!0){const t={controllers:{},folders:{}};return this.controllers.forEach(n=>{if(!(n instanceof is)){if(n._name in t.controllers)throw new Error(`Cannot save GUI with duplicate property "${n._name}"`);t.controllers[n._name]=n.save()}}),e&&this.folders.forEach(n=>{if(n._title in t.folders)throw new Error(`Cannot save GUI with duplicate folder "${n._title}"`);t.folders[n._title]=n.save()}),t}open(e=!0){return this._setClosed(!e),this.$title.setAttribute("aria-expanded",!this._closed),this.domElement.classList.toggle("closed",this._closed),this}close(){return this.open(!1)}_setClosed(e){this._closed!==e&&(this._closed=e,this._callOnOpenClose(this))}show(e=!0){return this._hidden=!e,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}openAnimated(e=!0){return this._setClosed(!e),this.$title.setAttribute("aria-expanded",!this._closed),requestAnimationFrame(()=>{const t=this.$children.clientHeight;this.$children.style.height=t+"px",this.domElement.classList.add("transition");const n=s=>{s.target===this.$children&&(this.$children.style.height="",this.domElement.classList.remove("transition"),this.$children.removeEventListener("transitionend",n))};this.$children.addEventListener("transitionend",n);const r=e?this.$children.scrollHeight:0;this.domElement.classList.toggle("closed",!e),requestAnimationFrame(()=>{this.$children.style.height=r+"px"})}),this}title(e){return this._title=e,this.$title.textContent=e,this}reset(e=!0){return(e?this.controllersRecursive():this.controllers).forEach(n=>n.reset()),this}onChange(e){return this._onChange=e,this}_callOnChange(e){this.parent&&this.parent._callOnChange(e),this._onChange!==void 0&&this._onChange.call(this,{object:e.object,property:e.property,value:e.getValue(),controller:e})}onFinishChange(e){return this._onFinishChange=e,this}_callOnFinishChange(e){this.parent&&this.parent._callOnFinishChange(e),this._onFinishChange!==void 0&&this._onFinishChange.call(this,{object:e.object,property:e.property,value:e.getValue(),controller:e})}onOpenClose(e){return this._onOpenClose=e,this}_callOnOpenClose(e){this.parent&&this.parent._callOnOpenClose(e),this._onOpenClose!==void 0&&this._onOpenClose.call(this,e)}destroy(){this.parent&&(this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.folders.splice(this.parent.folders.indexOf(this),1)),this.domElement.parentElement&&this.domElement.parentElement.removeChild(this.domElement),Array.from(this.children).forEach(e=>e.destroy())}controllersRecursive(){let e=Array.from(this.controllers);return this.folders.forEach(t=>{e=e.concat(t.controllersRecursive())}),e}foldersRecursive(){let e=Array.from(this.folders);return this.folders.forEach(t=>{e=e.concat(t.foldersRecursive())}),e}}var Gp=`vec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}\r +vec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}\r +vec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);} + +float cnoise(vec3 P){\r + vec3 Pi0 = floor(P); + vec3 Pi1 = Pi0 + vec3(1.0); + Pi0 = mod(Pi0, 289.0);\r + Pi1 = mod(Pi1, 289.0);\r + vec3 Pf0 = fract(P); + vec3 Pf1 = Pf0 - vec3(1.0); + vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\r + vec4 iy = vec4(Pi0.yy, Pi1.yy);\r + vec4 iz0 = Pi0.zzzz;\r + vec4 iz1 = Pi1.zzzz; + + vec4 ixy = permute(permute(ix) + iy);\r + vec4 ixy0 = permute(ixy + iz0);\r + vec4 ixy1 = permute(ixy + iz1); + + vec4 gx0 = ixy0 / 7.0;\r + vec4 gy0 = fract(floor(gx0) / 7.0) - 0.5;\r + gx0 = fract(gx0);\r + vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\r + vec4 sz0 = step(gz0, vec4(0.0));\r + gx0 -= sz0 * (step(0.0, gx0) - 0.5);\r + gy0 -= sz0 * (step(0.0, gy0) - 0.5); + + vec4 gx1 = ixy1 / 7.0;\r + vec4 gy1 = fract(floor(gx1) / 7.0) - 0.5;\r + gx1 = fract(gx1);\r + vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\r + vec4 sz1 = step(gz1, vec4(0.0));\r + gx1 -= sz1 * (step(0.0, gx1) - 0.5);\r + gy1 -= sz1 * (step(0.0, gy1) - 0.5); + + vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);\r + vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);\r + vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);\r + vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);\r + vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);\r + vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);\r + vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);\r + vec3 g111 = vec3(gx1.w,gy1.w,gz1.w); + + vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\r + g000 *= norm0.x;\r + g010 *= norm0.y;\r + g100 *= norm0.z;\r + g110 *= norm0.w;\r + vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\r + g001 *= norm1.x;\r + g011 *= norm1.y;\r + g101 *= norm1.z;\r + g111 *= norm1.w; + + float n000 = dot(g000, Pf0);\r + float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\r + float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\r + float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\r + float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\r + float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\r + float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\r + float n111 = dot(g111, Pf1); + + vec3 fade_xyz = fade(Pf0);\r + vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\r + vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\r + float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x); \r + return 2.2 * n_xyz;\r +} + +uniform float uBigWavesElevation;\r +uniform vec2 uBigWavesFrequency;\r +uniform float uTime;\r +uniform float uBigWavesSpeed;\r +uniform float uSmallWavesSpeed;\r +uniform float uSmallWavesFrequency;\r +uniform float uSmallWavesElevation;\r +uniform float uSmallWavesIterations; + +varying float vElevation; + +void main() {\r + + + + + + vec4 modelPosition = modelMatrix * vec4(position, 1.0); + + + float elevation = sin(modelPosition.x * uBigWavesFrequency.x + uTime * uBigWavesSpeed) *\r + sin(modelPosition.z * uBigWavesFrequency.y + uTime * uBigWavesSpeed) *\r + uBigWavesElevation; + + for(float i = 1.0; i <= uSmallWavesIterations; i++) {\r + + + + elevation -= abs(cnoise(vec3(modelPosition.xz * uSmallWavesFrequency * i, uTime * uSmallWavesSpeed)) * uSmallWavesElevation / i);\r + } + + modelPosition.y += elevation; + + vec4 viewPosition = viewMatrix * modelPosition;\r + vec4 projectedPosition = projectionMatrix * viewPosition; + + gl_Position = projectedPosition; + + + vElevation = elevation; + +}`,Wp=`uniform vec3 uDepthColor;\r +uniform vec3 uSurfaceColor;\r +uniform float uColorOffset;\r +uniform float uColorMultiplier; + +varying float vElevation; + +void main(){ + + float mixStrength = (vElevation + uColorOffset) * uColorMultiplier;\r + vec3 finalColor = mix(uDepthColor, uSurfaceColor, mixStrength); + + gl_FragColor = vec4(finalColor, 1.0);\r + #include \r +}`;class Xp extends wp{constructor(e){super(e),this.type=tn}parse(e){const a=function(L,E){switch(L){case 1:throw new Error("THREE.RGBELoader: Read Error: "+(E||""));case 2:throw new Error("THREE.RGBELoader: Write Error: "+(E||""));case 3:throw new Error("THREE.RGBELoader: Bad File Format: "+(E||""));default:case 4:throw new Error("THREE.RGBELoader: Memory Error: "+(E||""))}},u=` +`,d=function(L,E,v){E=E||1024;let W=L.pos,U=-1,k=0,Y="",H=String.fromCharCode.apply(null,new Uint16Array(L.subarray(W,W+128)));for(;0>(U=H.indexOf(u))&&k=L.byteLength||!(Y=d(L)))&&a(1,"no header found"),(H=Y.match(E))||a(3,"bad initial token"),k.valid|=1,k.programtype=H[1],k.string+=Y+` +`;Y=d(L),Y!==!1;){if(k.string+=Y+` +`,Y.charAt(0)==="#"){k.comments+=Y+` +`;continue}if((H=Y.match(v))&&(k.gamma=parseFloat(H[1])),(H=Y.match(R))&&(k.exposure=parseFloat(H[1])),(H=Y.match(W))&&(k.valid|=2,k.format=H[1]),(H=Y.match(U))&&(k.valid|=4,k.height=parseInt(H[1],10),k.width=parseInt(H[2],10)),k.valid&2&&k.valid&4)break}return k.valid&2||a(3,"missing format specifier"),k.valid&4||a(3,"missing image size specifier"),k},m=function(L,E,v){const R=E;if(R<8||R>32767||L[0]!==2||L[1]!==2||L[2]&128)return new Uint8Array(L);R!==(L[2]<<8|L[3])&&a(3,"wrong scanline width");const W=new Uint8Array(4*E*v);W.length||a(4,"unable to allocate buffer space");let U=0,k=0;const Y=4*R,H=new Uint8Array(4),K=new Uint8Array(Y);let q=v;for(;q>0&&kL.byteLength&&a(1),H[0]=L[k++],H[1]=L[k++],H[2]=L[k++],H[3]=L[k++],(H[0]!=2||H[1]!=2||(H[2]<<8|H[3])!=R)&&a(3,"bad rgbe scanline format");let se=0,ae;for(;se128;if(ye&&(ae-=128),(ae===0||se+ae>Y)&&a(3,"bad scanline data"),ye){const Ie=L[k++];for(let $=0;${i.colorSpace=Ft,vn.environment=i,vn.background=i,vn.environmentIntensity=2,vn.backgroundBlurriness=0,vn.position.y=-.5});const qp=new Ii(20,10,512,512),ht=new an;ht.vertexShader=Gp;ht.fragmentShader=Wp;ht.uniforms={uTime:{value:0},uBigWavesElevation:{value:.2},uBigWavesFrequency:{value:new De(4,1.5)},uBigWavesSpeed:{value:.75},uSmallWavesElevation:{value:.15},uSmallWavesFrequency:{value:3},uSmallWavesSpeed:{value:.2},uSmallWavesIterations:{value:5},uDepthColor:{value:new Xe(gi.depthColor)},uSurfaceColor:{value:new Xe(gi.surfaceColor)},uColorOffset:{value:.02},uColorMultiplier:{value:2}};ht.transparent=!0;const yr=Zs.addFolder("Waves");yr.add(ht.uniforms.uBigWavesElevation,"value").min(0).max(1).step(.001).name("wavesElevation");yr.add(ht.uniforms.uBigWavesFrequency.value,"x").min(0).max(10).step(.001).name("wavesFrequencyX");yr.add(ht.uniforms.uBigWavesFrequency.value,"y").min(0).max(10).step(.001).name("wavesFrequencyY");yr.add(ht.uniforms.uBigWavesSpeed,"value").min(0).max(10).step(.001).name("wavesSpeed");const Ar=Zs.addFolder("Color");Ar.addColor(gi,"depthColor").onChange(()=>{ht.uniforms.uDepthColor.value.set(gi.depthColor)});Ar.addColor(gi,"surfaceColor").onChange(()=>{ht.uniforms.uSurfaceColor.value.set(gi.surfaceColor)});Ar.add(ht.uniforms.uColorOffset,"value").min(0).max(.1).step(.001).name("colorOffset");Ar.add(ht.uniforms.uColorMultiplier,"value").min(0).max(5).step(.001).name("colorMultiplier");const Tr=Zs.addFolder("Perlin Noise");Tr.add(ht.uniforms.uSmallWavesElevation,"value").min(0).max(1).step(.001).name("smallWavesElevation");Tr.add(ht.uniforms.uSmallWavesFrequency,"value").min(0).max(30).step(.001).name("smallWavesFrequency");Tr.add(ht.uniforms.uSmallWavesSpeed,"value").min(0).max(4).step(.001).name("smallWavesSpeed");Tr.add(ht.uniforms.uSmallWavesIterations,"value").min(0).max(5).step(1).name("smallWavesIterations");const br=new Vt(qp,ht);br.rotation.x=-Math.PI*.5;br.receiveShadow=!0;br.castShadow=!0;vn.add(br);const zt={width:window.innerWidth,height:window.innerHeight};window.addEventListener("resize",()=>{zt.width=window.innerWidth,zt.height=window.innerHeight,_i.aspect=zt.width/zt.height,_i.updateProjectionMatrix(),On.setSize(zt.width,zt.height),On.setPixelRatio(Math.min(window.devicePixelRatio,2))});const _i=new Pt(75,zt.width/zt.height,.1,100);_i.position.set(0,.75,5);vn.add(_i);const Go=new Pp(_i,ko);Go.enableDamping=!0;const On=new Mp({canvas:ko,antialias:!0});On.setSize(zt.width,zt.height);On.setPixelRatio(Math.min(window.devicePixelRatio,2));On.shadowMap.enabled=!0;On.shadowMap.type=oo;const $p=new Rp,Wo=()=>{const i=$p.getElapsedTime();ht.uniforms.uTime.value=i,Go.update(),On.render(vn,_i),window.requestAnimationFrame(Wo)};Wo(); +//# sourceMappingURL=index-BDruUcP0.js.map diff --git a/22-raging-sea/dist/assets/index-BDruUcP0.js.map b/22-raging-sea/dist/assets/index-BDruUcP0.js.map new file mode 100644 index 0000000..4556ab1 --- /dev/null +++ b/22-raging-sea/dist/assets/index-BDruUcP0.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-BDruUcP0.js","sources":["../../node_modules/three/build/three.module.js","../../node_modules/three/examples/jsm/controls/OrbitControls.js","../../node_modules/lil-gui/dist/lil-gui.esm.js","../../src/shaders/water/vertex.glsl","../../src/shaders/water/fragment.glsl","../../node_modules/three/examples/jsm/loaders/RGBELoader.js","../../src/script.js"],"sourcesContent":["/**\n * @license\n * Copyright 2010-2024 Three.js Authors\n * SPDX-License-Identifier: MIT\n */\nconst REVISION = '166';\n\nconst MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };\nconst TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };\nconst CullFaceNone = 0;\nconst CullFaceBack = 1;\nconst CullFaceFront = 2;\nconst CullFaceFrontBack = 3;\nconst BasicShadowMap = 0;\nconst PCFShadowMap = 1;\nconst PCFSoftShadowMap = 2;\nconst VSMShadowMap = 3;\nconst FrontSide = 0;\nconst BackSide = 1;\nconst DoubleSide = 2;\nconst NoBlending = 0;\nconst NormalBlending = 1;\nconst AdditiveBlending = 2;\nconst SubtractiveBlending = 3;\nconst MultiplyBlending = 4;\nconst CustomBlending = 5;\nconst AddEquation = 100;\nconst SubtractEquation = 101;\nconst ReverseSubtractEquation = 102;\nconst MinEquation = 103;\nconst MaxEquation = 104;\nconst ZeroFactor = 200;\nconst OneFactor = 201;\nconst SrcColorFactor = 202;\nconst OneMinusSrcColorFactor = 203;\nconst SrcAlphaFactor = 204;\nconst OneMinusSrcAlphaFactor = 205;\nconst DstAlphaFactor = 206;\nconst OneMinusDstAlphaFactor = 207;\nconst DstColorFactor = 208;\nconst OneMinusDstColorFactor = 209;\nconst SrcAlphaSaturateFactor = 210;\nconst ConstantColorFactor = 211;\nconst OneMinusConstantColorFactor = 212;\nconst ConstantAlphaFactor = 213;\nconst OneMinusConstantAlphaFactor = 214;\nconst NeverDepth = 0;\nconst AlwaysDepth = 1;\nconst LessDepth = 2;\nconst LessEqualDepth = 3;\nconst EqualDepth = 4;\nconst GreaterEqualDepth = 5;\nconst GreaterDepth = 6;\nconst NotEqualDepth = 7;\nconst MultiplyOperation = 0;\nconst MixOperation = 1;\nconst AddOperation = 2;\nconst NoToneMapping = 0;\nconst LinearToneMapping = 1;\nconst ReinhardToneMapping = 2;\nconst CineonToneMapping = 3;\nconst ACESFilmicToneMapping = 4;\nconst CustomToneMapping = 5;\nconst AgXToneMapping = 6;\nconst NeutralToneMapping = 7;\nconst AttachedBindMode = 'attached';\nconst DetachedBindMode = 'detached';\n\nconst UVMapping = 300;\nconst CubeReflectionMapping = 301;\nconst CubeRefractionMapping = 302;\nconst EquirectangularReflectionMapping = 303;\nconst EquirectangularRefractionMapping = 304;\nconst CubeUVReflectionMapping = 306;\nconst RepeatWrapping = 1000;\nconst ClampToEdgeWrapping = 1001;\nconst MirroredRepeatWrapping = 1002;\nconst NearestFilter = 1003;\nconst NearestMipmapNearestFilter = 1004;\nconst NearestMipMapNearestFilter = 1004;\nconst NearestMipmapLinearFilter = 1005;\nconst NearestMipMapLinearFilter = 1005;\nconst LinearFilter = 1006;\nconst LinearMipmapNearestFilter = 1007;\nconst LinearMipMapNearestFilter = 1007;\nconst LinearMipmapLinearFilter = 1008;\nconst LinearMipMapLinearFilter = 1008;\nconst UnsignedByteType = 1009;\nconst ByteType = 1010;\nconst ShortType = 1011;\nconst UnsignedShortType = 1012;\nconst IntType = 1013;\nconst UnsignedIntType = 1014;\nconst FloatType = 1015;\nconst HalfFloatType = 1016;\nconst UnsignedShort4444Type = 1017;\nconst UnsignedShort5551Type = 1018;\nconst UnsignedInt248Type = 1020;\nconst UnsignedInt5999Type = 35902;\nconst AlphaFormat = 1021;\nconst RGBFormat = 1022;\nconst RGBAFormat = 1023;\nconst LuminanceFormat = 1024;\nconst LuminanceAlphaFormat = 1025;\nconst DepthFormat = 1026;\nconst DepthStencilFormat = 1027;\nconst RedFormat = 1028;\nconst RedIntegerFormat = 1029;\nconst RGFormat = 1030;\nconst RGIntegerFormat = 1031;\nconst RGBIntegerFormat = 1032;\nconst RGBAIntegerFormat = 1033;\n\nconst RGB_S3TC_DXT1_Format = 33776;\nconst RGBA_S3TC_DXT1_Format = 33777;\nconst RGBA_S3TC_DXT3_Format = 33778;\nconst RGBA_S3TC_DXT5_Format = 33779;\nconst RGB_PVRTC_4BPPV1_Format = 35840;\nconst RGB_PVRTC_2BPPV1_Format = 35841;\nconst RGBA_PVRTC_4BPPV1_Format = 35842;\nconst RGBA_PVRTC_2BPPV1_Format = 35843;\nconst RGB_ETC1_Format = 36196;\nconst RGB_ETC2_Format = 37492;\nconst RGBA_ETC2_EAC_Format = 37496;\nconst RGBA_ASTC_4x4_Format = 37808;\nconst RGBA_ASTC_5x4_Format = 37809;\nconst RGBA_ASTC_5x5_Format = 37810;\nconst RGBA_ASTC_6x5_Format = 37811;\nconst RGBA_ASTC_6x6_Format = 37812;\nconst RGBA_ASTC_8x5_Format = 37813;\nconst RGBA_ASTC_8x6_Format = 37814;\nconst RGBA_ASTC_8x8_Format = 37815;\nconst RGBA_ASTC_10x5_Format = 37816;\nconst RGBA_ASTC_10x6_Format = 37817;\nconst RGBA_ASTC_10x8_Format = 37818;\nconst RGBA_ASTC_10x10_Format = 37819;\nconst RGBA_ASTC_12x10_Format = 37820;\nconst RGBA_ASTC_12x12_Format = 37821;\nconst RGBA_BPTC_Format = 36492;\nconst RGB_BPTC_SIGNED_Format = 36494;\nconst RGB_BPTC_UNSIGNED_Format = 36495;\nconst RED_RGTC1_Format = 36283;\nconst SIGNED_RED_RGTC1_Format = 36284;\nconst RED_GREEN_RGTC2_Format = 36285;\nconst SIGNED_RED_GREEN_RGTC2_Format = 36286;\nconst LoopOnce = 2200;\nconst LoopRepeat = 2201;\nconst LoopPingPong = 2202;\nconst InterpolateDiscrete = 2300;\nconst InterpolateLinear = 2301;\nconst InterpolateSmooth = 2302;\nconst ZeroCurvatureEnding = 2400;\nconst ZeroSlopeEnding = 2401;\nconst WrapAroundEnding = 2402;\nconst NormalAnimationBlendMode = 2500;\nconst AdditiveAnimationBlendMode = 2501;\nconst TrianglesDrawMode = 0;\nconst TriangleStripDrawMode = 1;\nconst TriangleFanDrawMode = 2;\nconst BasicDepthPacking = 3200;\nconst RGBADepthPacking = 3201;\nconst TangentSpaceNormalMap = 0;\nconst ObjectSpaceNormalMap = 1;\n\n// Color space string identifiers, matching CSS Color Module Level 4 and WebGPU names where available.\nconst NoColorSpace = '';\nconst SRGBColorSpace = 'srgb';\nconst LinearSRGBColorSpace = 'srgb-linear';\nconst DisplayP3ColorSpace = 'display-p3';\nconst LinearDisplayP3ColorSpace = 'display-p3-linear';\n\nconst LinearTransfer = 'linear';\nconst SRGBTransfer = 'srgb';\n\nconst Rec709Primaries = 'rec709';\nconst P3Primaries = 'p3';\n\nconst ZeroStencilOp = 0;\nconst KeepStencilOp = 7680;\nconst ReplaceStencilOp = 7681;\nconst IncrementStencilOp = 7682;\nconst DecrementStencilOp = 7683;\nconst IncrementWrapStencilOp = 34055;\nconst DecrementWrapStencilOp = 34056;\nconst InvertStencilOp = 5386;\n\nconst NeverStencilFunc = 512;\nconst LessStencilFunc = 513;\nconst EqualStencilFunc = 514;\nconst LessEqualStencilFunc = 515;\nconst GreaterStencilFunc = 516;\nconst NotEqualStencilFunc = 517;\nconst GreaterEqualStencilFunc = 518;\nconst AlwaysStencilFunc = 519;\n\nconst NeverCompare = 512;\nconst LessCompare = 513;\nconst EqualCompare = 514;\nconst LessEqualCompare = 515;\nconst GreaterCompare = 516;\nconst NotEqualCompare = 517;\nconst GreaterEqualCompare = 518;\nconst AlwaysCompare = 519;\n\nconst StaticDrawUsage = 35044;\nconst DynamicDrawUsage = 35048;\nconst StreamDrawUsage = 35040;\nconst StaticReadUsage = 35045;\nconst DynamicReadUsage = 35049;\nconst StreamReadUsage = 35041;\nconst StaticCopyUsage = 35046;\nconst DynamicCopyUsage = 35050;\nconst StreamCopyUsage = 35042;\n\nconst GLSL1 = '100';\nconst GLSL3 = '300 es';\n\nconst WebGLCoordinateSystem = 2000;\nconst WebGPUCoordinateSystem = 2001;\n\n/**\n * https://github.com/mrdoob/eventdispatcher.js/\n */\n\nclass EventDispatcher {\n\n\taddEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) this._listeners = {};\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners[ type ] === undefined ) {\n\n\t\t\tlisteners[ type ] = [];\n\n\t\t}\n\n\t\tif ( listeners[ type ].indexOf( listener ) === - 1 ) {\n\n\t\t\tlisteners[ type ].push( listener );\n\n\t\t}\n\n\t}\n\n\thasEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return false;\n\n\t\tconst listeners = this._listeners;\n\n\t\treturn listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;\n\n\t}\n\n\tremoveEventListener( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tconst index = listenerArray.indexOf( listener );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\tlistenerArray.splice( index, 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ event.type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tevent.target = this;\n\n\t\t\t// Make a copy, in case listeners are removed while iterating.\n\t\t\tconst array = listenerArray.slice( 0 );\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tarray[ i ].call( this, event );\n\n\t\t\t}\n\n\t\t\tevent.target = null;\n\n\t\t}\n\n\t}\n\n}\n\nconst _lut = [ '00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '0a', '0b', '0c', '0d', '0e', '0f', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '1a', '1b', '1c', '1d', '1e', '1f', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '2a', '2b', '2c', '2d', '2e', '2f', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '3a', '3b', '3c', '3d', '3e', '3f', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '4a', '4b', '4c', '4d', '4e', '4f', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '5a', '5b', '5c', '5d', '5e', '5f', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '6a', '6b', '6c', '6d', '6e', '6f', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '7a', '7b', '7c', '7d', '7e', '7f', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '8a', '8b', '8c', '8d', '8e', '8f', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '9a', '9b', '9c', '9d', '9e', '9f', 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'aa', 'ab', 'ac', 'ad', 'ae', 'af', 'b0', 'b1', 'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'b9', 'ba', 'bb', 'bc', 'bd', 'be', 'bf', 'c0', 'c1', 'c2', 'c3', 'c4', 'c5', 'c6', 'c7', 'c8', 'c9', 'ca', 'cb', 'cc', 'cd', 'ce', 'cf', 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd8', 'd9', 'da', 'db', 'dc', 'dd', 'de', 'df', 'e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'e9', 'ea', 'eb', 'ec', 'ed', 'ee', 'ef', 'f0', 'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'fa', 'fb', 'fc', 'fd', 'fe', 'ff' ];\n\nlet _seed = 1234567;\n\n\nconst DEG2RAD = Math.PI / 180;\nconst RAD2DEG = 180 / Math.PI;\n\n// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\nfunction generateUUID() {\n\n\tconst d0 = Math.random() * 0xffffffff | 0;\n\tconst d1 = Math.random() * 0xffffffff | 0;\n\tconst d2 = Math.random() * 0xffffffff | 0;\n\tconst d3 = Math.random() * 0xffffffff | 0;\n\tconst uuid = _lut[ d0 & 0xff ] + _lut[ d0 >> 8 & 0xff ] + _lut[ d0 >> 16 & 0xff ] + _lut[ d0 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d1 & 0xff ] + _lut[ d1 >> 8 & 0xff ] + '-' + _lut[ d1 >> 16 & 0x0f | 0x40 ] + _lut[ d1 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d2 & 0x3f | 0x80 ] + _lut[ d2 >> 8 & 0xff ] + '-' + _lut[ d2 >> 16 & 0xff ] + _lut[ d2 >> 24 & 0xff ] +\n\t\t\t_lut[ d3 & 0xff ] + _lut[ d3 >> 8 & 0xff ] + _lut[ d3 >> 16 & 0xff ] + _lut[ d3 >> 24 & 0xff ];\n\n\t// .toLowerCase() here flattens concatenated strings to save heap memory space.\n\treturn uuid.toLowerCase();\n\n}\n\nfunction clamp( value, min, max ) {\n\n\treturn Math.max( min, Math.min( max, value ) );\n\n}\n\n// compute euclidean modulo of m % n\n// https://en.wikipedia.org/wiki/Modulo_operation\nfunction euclideanModulo( n, m ) {\n\n\treturn ( ( n % m ) + m ) % m;\n\n}\n\n// Linear mapping from range to range \nfunction mapLinear( x, a1, a2, b1, b2 ) {\n\n\treturn b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 );\n\n}\n\n// https://www.gamedev.net/tutorials/programming/general-and-gameplay-programming/inverse-lerp-a-super-useful-yet-often-overlooked-function-r5230/\nfunction inverseLerp( x, y, value ) {\n\n\tif ( x !== y ) {\n\n\t\treturn ( value - x ) / ( y - x );\n\n\t} else {\n\n\t\treturn 0;\n\n\t}\n\n}\n\n// https://en.wikipedia.org/wiki/Linear_interpolation\nfunction lerp( x, y, t ) {\n\n\treturn ( 1 - t ) * x + t * y;\n\n}\n\n// http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/\nfunction damp( x, y, lambda, dt ) {\n\n\treturn lerp( x, y, 1 - Math.exp( - lambda * dt ) );\n\n}\n\n// https://www.desmos.com/calculator/vcsjnyz7x4\nfunction pingpong( x, length = 1 ) {\n\n\treturn length - Math.abs( euclideanModulo( x, length * 2 ) - length );\n\n}\n\n// http://en.wikipedia.org/wiki/Smoothstep\nfunction smoothstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * ( 3 - 2 * x );\n\n}\n\nfunction smootherstep( x, min, max ) {\n\n\tif ( x <= min ) return 0;\n\tif ( x >= max ) return 1;\n\n\tx = ( x - min ) / ( max - min );\n\n\treturn x * x * x * ( x * ( x * 6 - 15 ) + 10 );\n\n}\n\n// Random integer from interval\nfunction randInt( low, high ) {\n\n\treturn low + Math.floor( Math.random() * ( high - low + 1 ) );\n\n}\n\n// Random float from interval\nfunction randFloat( low, high ) {\n\n\treturn low + Math.random() * ( high - low );\n\n}\n\n// Random float from <-range/2, range/2> interval\nfunction randFloatSpread( range ) {\n\n\treturn range * ( 0.5 - Math.random() );\n\n}\n\n// Deterministic pseudo-random float in the interval [ 0, 1 ]\nfunction seededRandom( s ) {\n\n\tif ( s !== undefined ) _seed = s;\n\n\t// Mulberry32 generator\n\n\tlet t = _seed += 0x6D2B79F5;\n\n\tt = Math.imul( t ^ t >>> 15, t | 1 );\n\n\tt ^= t + Math.imul( t ^ t >>> 7, t | 61 );\n\n\treturn ( ( t ^ t >>> 14 ) >>> 0 ) / 4294967296;\n\n}\n\nfunction degToRad( degrees ) {\n\n\treturn degrees * DEG2RAD;\n\n}\n\nfunction radToDeg( radians ) {\n\n\treturn radians * RAD2DEG;\n\n}\n\nfunction isPowerOfTwo( value ) {\n\n\treturn ( value & ( value - 1 ) ) === 0 && value !== 0;\n\n}\n\nfunction ceilPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.ceil( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction floorPowerOfTwo( value ) {\n\n\treturn Math.pow( 2, Math.floor( Math.log( value ) / Math.LN2 ) );\n\n}\n\nfunction setQuaternionFromProperEuler( q, a, b, c, order ) {\n\n\t// Intrinsic Proper Euler Angles - see https://en.wikipedia.org/wiki/Euler_angles\n\n\t// rotations are applied to the axes in the order specified by 'order'\n\t// rotation by angle 'a' is applied first, then by angle 'b', then by angle 'c'\n\t// angles are in radians\n\n\tconst cos = Math.cos;\n\tconst sin = Math.sin;\n\n\tconst c2 = cos( b / 2 );\n\tconst s2 = sin( b / 2 );\n\n\tconst c13 = cos( ( a + c ) / 2 );\n\tconst s13 = sin( ( a + c ) / 2 );\n\n\tconst c1_3 = cos( ( a - c ) / 2 );\n\tconst s1_3 = sin( ( a - c ) / 2 );\n\n\tconst c3_1 = cos( ( c - a ) / 2 );\n\tconst s3_1 = sin( ( c - a ) / 2 );\n\n\tswitch ( order ) {\n\n\t\tcase 'XYX':\n\t\t\tq.set( c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YZY':\n\t\t\tq.set( s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZXZ':\n\t\t\tq.set( s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'XZX':\n\t\t\tq.set( c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'YXY':\n\t\t\tq.set( s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13 );\n\t\t\tbreak;\n\n\t\tcase 'ZYZ':\n\t\t\tq.set( s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13 );\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + order );\n\n\t}\n\n}\n\nfunction denormalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint32Array:\n\n\t\t\treturn value / 4294967295.0;\n\n\t\tcase Uint16Array:\n\n\t\t\treturn value / 65535.0;\n\n\t\tcase Uint8Array:\n\n\t\t\treturn value / 255.0;\n\n\t\tcase Int32Array:\n\n\t\t\treturn Math.max( value / 2147483647.0, - 1.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.max( value / 32767.0, - 1.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.max( value / 127.0, - 1.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nfunction normalize( value, array ) {\n\n\tswitch ( array.constructor ) {\n\n\t\tcase Float32Array:\n\n\t\t\treturn value;\n\n\t\tcase Uint32Array:\n\n\t\t\treturn Math.round( value * 4294967295.0 );\n\n\t\tcase Uint16Array:\n\n\t\t\treturn Math.round( value * 65535.0 );\n\n\t\tcase Uint8Array:\n\n\t\t\treturn Math.round( value * 255.0 );\n\n\t\tcase Int32Array:\n\n\t\t\treturn Math.round( value * 2147483647.0 );\n\n\t\tcase Int16Array:\n\n\t\t\treturn Math.round( value * 32767.0 );\n\n\t\tcase Int8Array:\n\n\t\t\treturn Math.round( value * 127.0 );\n\n\t\tdefault:\n\n\t\t\tthrow new Error( 'Invalid component type.' );\n\n\t}\n\n}\n\nconst MathUtils = {\n\tDEG2RAD: DEG2RAD,\n\tRAD2DEG: RAD2DEG,\n\tgenerateUUID: generateUUID,\n\tclamp: clamp,\n\teuclideanModulo: euclideanModulo,\n\tmapLinear: mapLinear,\n\tinverseLerp: inverseLerp,\n\tlerp: lerp,\n\tdamp: damp,\n\tpingpong: pingpong,\n\tsmoothstep: smoothstep,\n\tsmootherstep: smootherstep,\n\trandInt: randInt,\n\trandFloat: randFloat,\n\trandFloatSpread: randFloatSpread,\n\tseededRandom: seededRandom,\n\tdegToRad: degToRad,\n\tradToDeg: radToDeg,\n\tisPowerOfTwo: isPowerOfTwo,\n\tceilPowerOfTwo: ceilPowerOfTwo,\n\tfloorPowerOfTwo: floorPowerOfTwo,\n\tsetQuaternionFromProperEuler: setQuaternionFromProperEuler,\n\tnormalize: normalize,\n\tdenormalize: denormalize\n};\n\nclass Vector2 {\n\n\tconstructor( x = 0, y = 0 ) {\n\n\t\tVector2.prototype.isVector2 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.x;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.x = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.y;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.y = value;\n\n\t}\n\n\tset( x, y ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ];\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.x * v.y - this.y * v.x;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tangle() {\n\n\t\t// computes the angle in radians with respect to the positive x-axis\n\n\t\tconst angle = Math.atan2( - this.y, - this.x ) + Math.PI;\n\n\t\treturn angle;\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y;\n\t\treturn dx * dx + dy * dy;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\n\t\treturn this;\n\n\t}\n\n\trotateAround( center, angle ) {\n\n\t\tconst c = Math.cos( angle ), s = Math.sin( angle );\n\n\t\tconst x = this.x - center.x;\n\t\tconst y = this.y - center.y;\n\n\t\tthis.x = x * c - y * s + center.x;\n\t\tthis.y = x * s + y * c + center.y;\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\n\t}\n\n}\n\nclass Matrix3 {\n\n\tconstructor( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tMatrix3.prototype.isMatrix3 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n13, n21, n22, n23, n31, n32, n33 );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 1 ] = n21; te[ 2 ] = n31;\n\t\tte[ 3 ] = n12; te[ 4 ] = n22; te[ 5 ] = n32;\n\t\tte[ 6 ] = n13; te[ 7 ] = n23; te[ 8 ] = n33;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ];\n\t\tte[ 3 ] = me[ 3 ]; te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ];\n\t\tte[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ]; te[ 8 ] = me[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrix3Column( this, 0 );\n\t\tyAxis.setFromMatrix3Column( this, 1 );\n\t\tzAxis.setFromMatrix3Column( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix4( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 4 ], me[ 8 ],\n\t\t\tme[ 1 ], me[ 5 ], me[ 9 ],\n\t\t\tme[ 2 ], me[ 6 ], me[ 10 ]\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 3 ], a13 = ae[ 6 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 4 ], a23 = ae[ 7 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 5 ], a33 = ae[ 8 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 3 ], b13 = be[ 6 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 4 ], b23 = be[ 7 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 5 ], b33 = be[ 8 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31;\n\t\tte[ 3 ] = a11 * b12 + a12 * b22 + a13 * b32;\n\t\tte[ 6 ] = a11 * b13 + a12 * b23 + a13 * b33;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31;\n\t\tte[ 4 ] = a21 * b12 + a22 * b22 + a23 * b32;\n\t\tte[ 7 ] = a21 * b13 + a22 * b23 + a23 * b33;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31;\n\t\tte[ 5 ] = a31 * b12 + a32 * b22 + a33 * b32;\n\t\tte[ 8 ] = a31 * b13 + a32 * b23 + a33 * b33;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s;\n\t\tte[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s;\n\t\tte[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst a = te[ 0 ], b = te[ 1 ], c = te[ 2 ],\n\t\t\td = te[ 3 ], e = te[ 4 ], f = te[ 5 ],\n\t\t\tg = te[ 6 ], h = te[ 7 ], i = te[ 8 ];\n\n\t\treturn a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n\n\t}\n\n\tinvert() {\n\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ],\n\t\t\tn12 = te[ 3 ], n22 = te[ 4 ], n32 = te[ 5 ],\n\t\t\tn13 = te[ 6 ], n23 = te[ 7 ], n33 = te[ 8 ],\n\n\t\t\tt11 = n33 * n22 - n32 * n23,\n\t\t\tt12 = n32 * n13 - n33 * n12,\n\t\t\tt13 = n23 * n12 - n22 * n13,\n\n\t\t\tdet = n11 * t11 + n21 * t12 + n31 * t13;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n31 * n23 - n33 * n21 ) * detInv;\n\t\tte[ 2 ] = ( n32 * n21 - n31 * n22 ) * detInv;\n\n\t\tte[ 3 ] = t12 * detInv;\n\t\tte[ 4 ] = ( n33 * n11 - n31 * n13 ) * detInv;\n\t\tte[ 5 ] = ( n31 * n12 - n32 * n11 ) * detInv;\n\n\t\tte[ 6 ] = t13 * detInv;\n\t\tte[ 7 ] = ( n21 * n13 - n23 * n11 ) * detInv;\n\t\tte[ 8 ] = ( n22 * n11 - n21 * n12 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\ttranspose() {\n\n\t\tlet tmp;\n\t\tconst m = this.elements;\n\n\t\ttmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp;\n\t\ttmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp;\n\t\ttmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tgetNormalMatrix( matrix4 ) {\n\n\t\treturn this.setFromMatrix4( matrix4 ).invert().transpose();\n\n\t}\n\n\ttransposeIntoArray( r ) {\n\n\t\tconst m = this.elements;\n\n\t\tr[ 0 ] = m[ 0 ];\n\t\tr[ 1 ] = m[ 3 ];\n\t\tr[ 2 ] = m[ 6 ];\n\t\tr[ 3 ] = m[ 1 ];\n\t\tr[ 4 ] = m[ 4 ];\n\t\tr[ 5 ] = m[ 7 ];\n\t\tr[ 6 ] = m[ 2 ];\n\t\tr[ 7 ] = m[ 5 ];\n\t\tr[ 8 ] = m[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetUvTransform( tx, ty, sx, sy, rotation, cx, cy ) {\n\n\t\tconst c = Math.cos( rotation );\n\t\tconst s = Math.sin( rotation );\n\n\t\tthis.set(\n\t\t\tsx * c, sx * s, - sx * ( c * cx + s * cy ) + cx + tx,\n\t\t\t- sy * s, sy * c, - sy * ( - s * cx + c * cy ) + cy + ty,\n\t\t\t0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tscale( sx, sy ) {\n\n\t\tthis.premultiply( _m3.makeScale( sx, sy ) );\n\n\t\treturn this;\n\n\t}\n\n\trotate( theta ) {\n\n\t\tthis.premultiply( _m3.makeRotation( - theta ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( tx, ty ) {\n\n\t\tthis.premultiply( _m3.makeTranslation( tx, ty ) );\n\n\t\treturn this;\n\n\t}\n\n\t// for 2D Transforms\n\n\tmakeTranslation( x, y ) {\n\n\t\tif ( x.isVector2 ) {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, x.x,\n\t\t\t\t0, 1, x.y,\n\t\t\t\t0, 0, 1\n\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, x,\n\t\t\t\t0, 1, y,\n\t\t\t\t0, 0, 1\n\n\t\t\t);\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotation( theta ) {\n\n\t\t// counterclockwise\n\n\t\tconst c = Math.cos( theta );\n\t\tconst s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0,\n\t\t\ts, c, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0,\n\t\t\t0, y, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\t//\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\n\t\treturn array;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().fromArray( this.elements );\n\n\t}\n\n}\n\nconst _m3 = /*@__PURE__*/ new Matrix3();\n\nfunction arrayNeedsUint32( array ) {\n\n\t// assumes larger values usually on last\n\n\tfor ( let i = array.length - 1; i >= 0; -- i ) {\n\n\t\tif ( array[ i ] >= 65535 ) return true; // account for PRIMITIVE_RESTART_FIXED_INDEX, #24565\n\n\t}\n\n\treturn false;\n\n}\n\nconst TYPED_ARRAYS = {\n\tInt8Array: Int8Array,\n\tUint8Array: Uint8Array,\n\tUint8ClampedArray: Uint8ClampedArray,\n\tInt16Array: Int16Array,\n\tUint16Array: Uint16Array,\n\tInt32Array: Int32Array,\n\tUint32Array: Uint32Array,\n\tFloat32Array: Float32Array,\n\tFloat64Array: Float64Array\n};\n\nfunction getTypedArray( type, buffer ) {\n\n\treturn new TYPED_ARRAYS[ type ]( buffer );\n\n}\n\nfunction createElementNS( name ) {\n\n\treturn document.createElementNS( 'http://www.w3.org/1999/xhtml', name );\n\n}\n\nfunction createCanvasElement() {\n\n\tconst canvas = createElementNS( 'canvas' );\n\tcanvas.style.display = 'block';\n\treturn canvas;\n\n}\n\nconst _cache = {};\n\nfunction warnOnce( message ) {\n\n\tif ( message in _cache ) return;\n\n\t_cache[ message ] = true;\n\n\tconsole.warn( message );\n\n}\n\nfunction probeAsync( gl, sync, interval ) {\n\n\treturn new Promise( function ( resolve, reject ) {\n\n\t\tfunction probe() {\n\n\t\t\tswitch ( gl.clientWaitSync( sync, gl.SYNC_FLUSH_COMMANDS_BIT, 0 ) ) {\n\n\t\t\t\tcase gl.WAIT_FAILED:\n\t\t\t\t\treject();\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase gl.TIMEOUT_EXPIRED:\n\t\t\t\t\tsetTimeout( probe, interval );\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tresolve();\n\n\t\t\t}\n\n\t\t}\n\n\t\tsetTimeout( probe, interval );\n\n\t} );\n\n}\n\n/**\n * Matrices converting P3 <-> Rec. 709 primaries, without gamut mapping\n * or clipping. Based on W3C specifications for sRGB and Display P3,\n * and ICC specifications for the D50 connection space. Values in/out\n * are _linear_ sRGB and _linear_ Display P3.\n *\n * Note that both sRGB and Display P3 use the sRGB transfer functions.\n *\n * Reference:\n * - http://www.russellcottrell.com/photo/matrixCalculator.htm\n */\n\nconst LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = /*@__PURE__*/ new Matrix3().set(\n\t0.8224621, 0.177538, 0.0,\n\t0.0331941, 0.9668058, 0.0,\n\t0.0170827, 0.0723974, 0.9105199,\n);\n\nconst LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = /*@__PURE__*/ new Matrix3().set(\n\t1.2249401, - 0.2249404, 0.0,\n\t- 0.0420569, 1.0420571, 0.0,\n\t- 0.0196376, - 0.0786361, 1.0982735\n);\n\n/**\n * Defines supported color spaces by transfer function and primaries,\n * and provides conversions to/from the Linear-sRGB reference space.\n */\nconst COLOR_SPACES = {\n\t[ LinearSRGBColorSpace ]: {\n\t\ttransfer: LinearTransfer,\n\t\tprimaries: Rec709Primaries,\n\t\ttoReference: ( color ) => color,\n\t\tfromReference: ( color ) => color,\n\t},\n\t[ SRGBColorSpace ]: {\n\t\ttransfer: SRGBTransfer,\n\t\tprimaries: Rec709Primaries,\n\t\ttoReference: ( color ) => color.convertSRGBToLinear(),\n\t\tfromReference: ( color ) => color.convertLinearToSRGB(),\n\t},\n\t[ LinearDisplayP3ColorSpace ]: {\n\t\ttransfer: LinearTransfer,\n\t\tprimaries: P3Primaries,\n\t\ttoReference: ( color ) => color.applyMatrix3( LINEAR_DISPLAY_P3_TO_LINEAR_SRGB ),\n\t\tfromReference: ( color ) => color.applyMatrix3( LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 ),\n\t},\n\t[ DisplayP3ColorSpace ]: {\n\t\ttransfer: SRGBTransfer,\n\t\tprimaries: P3Primaries,\n\t\ttoReference: ( color ) => color.convertSRGBToLinear().applyMatrix3( LINEAR_DISPLAY_P3_TO_LINEAR_SRGB ),\n\t\tfromReference: ( color ) => color.applyMatrix3( LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 ).convertLinearToSRGB(),\n\t},\n};\n\nconst SUPPORTED_WORKING_COLOR_SPACES = new Set( [ LinearSRGBColorSpace, LinearDisplayP3ColorSpace ] );\n\nconst ColorManagement = {\n\n\tenabled: true,\n\n\t_workingColorSpace: LinearSRGBColorSpace,\n\n\tget workingColorSpace() {\n\n\t\treturn this._workingColorSpace;\n\n\t},\n\n\tset workingColorSpace( colorSpace ) {\n\n\t\tif ( ! SUPPORTED_WORKING_COLOR_SPACES.has( colorSpace ) ) {\n\n\t\t\tthrow new Error( `Unsupported working color space, \"${ colorSpace }\".` );\n\n\t\t}\n\n\t\tthis._workingColorSpace = colorSpace;\n\n\t},\n\n\tconvert: function ( color, sourceColorSpace, targetColorSpace ) {\n\n\t\tif ( this.enabled === false || sourceColorSpace === targetColorSpace || ! sourceColorSpace || ! targetColorSpace ) {\n\n\t\t\treturn color;\n\n\t\t}\n\n\t\tconst sourceToReference = COLOR_SPACES[ sourceColorSpace ].toReference;\n\t\tconst targetFromReference = COLOR_SPACES[ targetColorSpace ].fromReference;\n\n\t\treturn targetFromReference( sourceToReference( color ) );\n\n\t},\n\n\tfromWorkingColorSpace: function ( color, targetColorSpace ) {\n\n\t\treturn this.convert( color, this._workingColorSpace, targetColorSpace );\n\n\t},\n\n\ttoWorkingColorSpace: function ( color, sourceColorSpace ) {\n\n\t\treturn this.convert( color, sourceColorSpace, this._workingColorSpace );\n\n\t},\n\n\tgetPrimaries: function ( colorSpace ) {\n\n\t\treturn COLOR_SPACES[ colorSpace ].primaries;\n\n\t},\n\n\tgetTransfer: function ( colorSpace ) {\n\n\t\tif ( colorSpace === NoColorSpace ) return LinearTransfer;\n\n\t\treturn COLOR_SPACES[ colorSpace ].transfer;\n\n\t},\n\n};\n\n\nfunction SRGBToLinear( c ) {\n\n\treturn ( c < 0.04045 ) ? c * 0.0773993808 : Math.pow( c * 0.9478672986 + 0.0521327014, 2.4 );\n\n}\n\nfunction LinearToSRGB( c ) {\n\n\treturn ( c < 0.0031308 ) ? c * 12.92 : 1.055 * ( Math.pow( c, 0.41666 ) ) - 0.055;\n\n}\n\nlet _canvas;\n\nclass ImageUtils {\n\n\tstatic getDataURL( image ) {\n\n\t\tif ( /^data:/i.test( image.src ) ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tif ( typeof HTMLCanvasElement === 'undefined' ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tlet canvas;\n\n\t\tif ( image instanceof HTMLCanvasElement ) {\n\n\t\t\tcanvas = image;\n\n\t\t} else {\n\n\t\t\tif ( _canvas === undefined ) _canvas = createElementNS( 'canvas' );\n\n\t\t\t_canvas.width = image.width;\n\t\t\t_canvas.height = image.height;\n\n\t\t\tconst context = _canvas.getContext( '2d' );\n\n\t\t\tif ( image instanceof ImageData ) {\n\n\t\t\t\tcontext.putImageData( image, 0, 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\t}\n\n\t\t\tcanvas = _canvas;\n\n\t\t}\n\n\t\tif ( canvas.width > 2048 || canvas.height > 2048 ) {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons', image );\n\n\t\t\treturn canvas.toDataURL( 'image/jpeg', 0.6 );\n\n\t\t} else {\n\n\t\t\treturn canvas.toDataURL( 'image/png' );\n\n\t\t}\n\n\t}\n\n\tstatic sRGBToLinear( image ) {\n\n\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t\tconst canvas = createElementNS( 'canvas' );\n\n\t\t\tcanvas.width = image.width;\n\t\t\tcanvas.height = image.height;\n\n\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\tconst imageData = context.getImageData( 0, 0, image.width, image.height );\n\t\t\tconst data = imageData.data;\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] / 255 ) * 255;\n\n\t\t\t}\n\n\t\t\tcontext.putImageData( imageData, 0, 0 );\n\n\t\t\treturn canvas;\n\n\t\t} else if ( image.data ) {\n\n\t\t\tconst data = image.data.slice( 0 );\n\n\t\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\t\tif ( data instanceof Uint8Array || data instanceof Uint8ClampedArray ) {\n\n\t\t\t\t\tdata[ i ] = Math.floor( SRGBToLinear( data[ i ] / 255 ) * 255 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// assuming float\n\n\t\t\t\t\tdata[ i ] = SRGBToLinear( data[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tdata: data,\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.' );\n\t\t\treturn image;\n\n\t\t}\n\n\t}\n\n}\n\nlet _sourceId = 0;\n\nclass Source {\n\n\tconstructor( data = null ) {\n\n\t\tthis.isSource = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _sourceId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.data = data;\n\t\tthis.dataReady = true;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.images[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.images[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\t\t\tuuid: this.uuid,\n\t\t\turl: ''\n\t\t};\n\n\t\tconst data = this.data;\n\n\t\tif ( data !== null ) {\n\n\t\t\tlet url;\n\n\t\t\tif ( Array.isArray( data ) ) {\n\n\t\t\t\t// cube texture\n\n\t\t\t\turl = [];\n\n\t\t\t\tfor ( let i = 0, l = data.length; i < l; i ++ ) {\n\n\t\t\t\t\tif ( data[ i ].isDataTexture ) {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ].image ) );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\turl.push( serializeImage( data[ i ] ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// texture\n\n\t\t\t\turl = serializeImage( data );\n\n\t\t\t}\n\n\t\t\toutput.url = url;\n\n\t\t}\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.images[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n}\n\nfunction serializeImage( image ) {\n\n\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t// default images\n\n\t\treturn ImageUtils.getDataURL( image );\n\n\t} else {\n\n\t\tif ( image.data ) {\n\n\t\t\t// images of DataTexture\n\n\t\t\treturn {\n\t\t\t\tdata: Array.from( image.data ),\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height,\n\t\t\t\ttype: image.data.constructor.name\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.Texture: Unable to serialize Texture.' );\n\t\t\treturn {};\n\n\t\t}\n\n\t}\n\n}\n\nlet _textureId = 0;\n\nclass Texture extends EventDispatcher {\n\n\tconstructor( image = Texture.DEFAULT_IMAGE, mapping = Texture.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = Texture.DEFAULT_ANISOTROPY, colorSpace = NoColorSpace ) {\n\n\t\tsuper();\n\n\t\tthis.isTexture = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _textureId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\n\t\tthis.source = new Source( image );\n\t\tthis.mipmaps = [];\n\n\t\tthis.mapping = mapping;\n\t\tthis.channel = 0;\n\n\t\tthis.wrapS = wrapS;\n\t\tthis.wrapT = wrapT;\n\n\t\tthis.magFilter = magFilter;\n\t\tthis.minFilter = minFilter;\n\n\t\tthis.anisotropy = anisotropy;\n\n\t\tthis.format = format;\n\t\tthis.internalFormat = null;\n\t\tthis.type = type;\n\n\t\tthis.offset = new Vector2( 0, 0 );\n\t\tthis.repeat = new Vector2( 1, 1 );\n\t\tthis.center = new Vector2( 0, 0 );\n\t\tthis.rotation = 0;\n\n\t\tthis.matrixAutoUpdate = true;\n\t\tthis.matrix = new Matrix3();\n\n\t\tthis.generateMipmaps = true;\n\t\tthis.premultiplyAlpha = false;\n\t\tthis.flipY = true;\n\t\tthis.unpackAlignment = 4;\t// valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)\n\n\t\tthis.colorSpace = colorSpace;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\t\tthis.onUpdate = null;\n\n\t\tthis.isRenderTargetTexture = false; // indicates whether a texture belongs to a render target or not\n\t\tthis.pmremVersion = 0; // indicates whether this texture should be processed by PMREMGenerator or not (only relevant for render target textures)\n\n\t}\n\n\tget image() {\n\n\t\treturn this.source.data;\n\n\t}\n\n\tset image( value = null ) {\n\n\t\tthis.source.data = value;\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.setUvTransform( this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.source = source.source;\n\t\tthis.mipmaps = source.mipmaps.slice( 0 );\n\n\t\tthis.mapping = source.mapping;\n\t\tthis.channel = source.channel;\n\n\t\tthis.wrapS = source.wrapS;\n\t\tthis.wrapT = source.wrapT;\n\n\t\tthis.magFilter = source.magFilter;\n\t\tthis.minFilter = source.minFilter;\n\n\t\tthis.anisotropy = source.anisotropy;\n\n\t\tthis.format = source.format;\n\t\tthis.internalFormat = source.internalFormat;\n\t\tthis.type = source.type;\n\n\t\tthis.offset.copy( source.offset );\n\t\tthis.repeat.copy( source.repeat );\n\t\tthis.center.copy( source.center );\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\t\tthis.matrix.copy( source.matrix );\n\n\t\tthis.generateMipmaps = source.generateMipmaps;\n\t\tthis.premultiplyAlpha = source.premultiplyAlpha;\n\t\tthis.flipY = source.flipY;\n\t\tthis.unpackAlignment = source.unpackAlignment;\n\t\tthis.colorSpace = source.colorSpace;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tthis.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.textures[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.textures[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Texture',\n\t\t\t\tgenerator: 'Texture.toJSON'\n\t\t\t},\n\n\t\t\tuuid: this.uuid,\n\t\t\tname: this.name,\n\n\t\t\timage: this.source.toJSON( meta ).uuid,\n\n\t\t\tmapping: this.mapping,\n\t\t\tchannel: this.channel,\n\n\t\t\trepeat: [ this.repeat.x, this.repeat.y ],\n\t\t\toffset: [ this.offset.x, this.offset.y ],\n\t\t\tcenter: [ this.center.x, this.center.y ],\n\t\t\trotation: this.rotation,\n\n\t\t\twrap: [ this.wrapS, this.wrapT ],\n\n\t\t\tformat: this.format,\n\t\t\tinternalFormat: this.internalFormat,\n\t\t\ttype: this.type,\n\t\t\tcolorSpace: this.colorSpace,\n\n\t\t\tminFilter: this.minFilter,\n\t\t\tmagFilter: this.magFilter,\n\t\t\tanisotropy: this.anisotropy,\n\n\t\t\tflipY: this.flipY,\n\n\t\t\tgenerateMipmaps: this.generateMipmaps,\n\t\t\tpremultiplyAlpha: this.premultiplyAlpha,\n\t\t\tunpackAlignment: this.unpackAlignment\n\n\t\t};\n\n\t\tif ( Object.keys( this.userData ).length > 0 ) output.userData = this.userData;\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.textures[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\ttransformUv( uv ) {\n\n\t\tif ( this.mapping !== UVMapping ) return uv;\n\n\t\tuv.applyMatrix3( this.matrix );\n\n\t\tif ( uv.x < 0 || uv.x > 1 ) {\n\n\t\t\tswitch ( this.wrapS ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.x = uv.x < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.x ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.x = Math.ceil( uv.x ) - uv.x;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( uv.y < 0 || uv.y > 1 ) {\n\n\t\t\tswitch ( this.wrapT ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.y = uv.y < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.y ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.y = Math.ceil( uv.y ) - uv.y;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.flipY ) {\n\n\t\t\tuv.y = 1 - uv.y;\n\n\t\t}\n\n\t\treturn uv;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) {\n\n\t\t\tthis.version ++;\n\t\t\tthis.source.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tset needsPMREMUpdate( value ) {\n\n\t\tif ( value === true ) {\n\n\t\t\tthis.pmremVersion ++;\n\n\t\t}\n\n\t}\n\n}\n\nTexture.DEFAULT_IMAGE = null;\nTexture.DEFAULT_MAPPING = UVMapping;\nTexture.DEFAULT_ANISOTROPY = 1;\n\nclass Vector4 {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tVector4.prototype.isVector4 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.z;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.z = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.w;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.w = value;\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\t\tthis.w = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( w ) {\n\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tcase 3: this.w = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tcase 3: return this.w;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z, this.w );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\t\tthis.w = ( v.w !== undefined ) ? v.w : 1;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\t\tthis.w += v.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\t\tthis.w += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\t\tthis.w = a.w + b.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\t\tthis.w += v.w * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\t\tthis.w -= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\t\tthis.w -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\t\tthis.w = a.w - b.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\t\tthis.w *= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\tthis.w *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z, w = this.w;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] * w;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] * w;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] * w;\n\t\tthis.w = e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] * w;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tsetAxisAngleFromQuaternion( q ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\n\n\t\t// q is assumed to be normalized\n\n\t\tthis.w = 2 * Math.acos( q.w );\n\n\t\tconst s = Math.sqrt( 1 - q.w * q.w );\n\n\t\tif ( s < 0.0001 ) {\n\n\t\t\tthis.x = 1;\n\t\t\tthis.y = 0;\n\t\t\tthis.z = 0;\n\n\t\t} else {\n\n\t\t\tthis.x = q.x / s;\n\t\t\tthis.y = q.y / s;\n\t\t\tthis.z = q.z / s;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetAxisAngleFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tlet angle, x, y, z; // variables for result\n\t\tconst epsilon = 0.01,\t\t// margin to allow for rounding errors\n\t\t\tepsilon2 = 0.1,\t\t// margin to distinguish between 0 and 180 degrees\n\n\t\t\tte = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tif ( ( Math.abs( m12 - m21 ) < epsilon ) &&\n\t\t ( Math.abs( m13 - m31 ) < epsilon ) &&\n\t\t ( Math.abs( m23 - m32 ) < epsilon ) ) {\n\n\t\t\t// singularity found\n\t\t\t// first check for identity matrix which must have +1 for all terms\n\t\t\t// in leading diagonal and zero in other terms\n\n\t\t\tif ( ( Math.abs( m12 + m21 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m13 + m31 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m23 + m32 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m11 + m22 + m33 - 3 ) < epsilon2 ) ) {\n\n\t\t\t\t// this singularity is identity matrix so angle = 0\n\n\t\t\t\tthis.set( 1, 0, 0, 0 );\n\n\t\t\t\treturn this; // zero angle, arbitrary axis\n\n\t\t\t}\n\n\t\t\t// otherwise this singularity is angle = 180\n\n\t\t\tangle = Math.PI;\n\n\t\t\tconst xx = ( m11 + 1 ) / 2;\n\t\t\tconst yy = ( m22 + 1 ) / 2;\n\t\t\tconst zz = ( m33 + 1 ) / 2;\n\t\t\tconst xy = ( m12 + m21 ) / 4;\n\t\t\tconst xz = ( m13 + m31 ) / 4;\n\t\t\tconst yz = ( m23 + m32 ) / 4;\n\n\t\t\tif ( ( xx > yy ) && ( xx > zz ) ) {\n\n\t\t\t\t// m11 is the largest diagonal term\n\n\t\t\t\tif ( xx < epsilon ) {\n\n\t\t\t\t\tx = 0;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tx = Math.sqrt( xx );\n\t\t\t\t\ty = xy / x;\n\t\t\t\t\tz = xz / x;\n\n\t\t\t\t}\n\n\t\t\t} else if ( yy > zz ) {\n\n\t\t\t\t// m22 is the largest diagonal term\n\n\t\t\t\tif ( yy < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ty = Math.sqrt( yy );\n\t\t\t\t\tx = xy / y;\n\t\t\t\t\tz = yz / y;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// m33 is the largest diagonal term so base result on this\n\n\t\t\t\tif ( zz < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tz = Math.sqrt( zz );\n\t\t\t\t\tx = xz / z;\n\t\t\t\t\ty = yz / z;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.set( x, y, z, angle );\n\n\t\t\treturn this; // return 180 deg rotation\n\n\t\t}\n\n\t\t// as we have reached here there are no singularities so we can handle normally\n\n\t\tlet s = Math.sqrt( ( m32 - m23 ) * ( m32 - m23 ) +\n\t\t\t( m13 - m31 ) * ( m13 - m31 ) +\n\t\t\t( m21 - m12 ) * ( m21 - m12 ) ); // used to normalize\n\n\t\tif ( Math.abs( s ) < 0.001 ) s = 1;\n\n\t\t// prevent divide by zero, should not happen if matrix is orthogonal and should be\n\t\t// caught by singularity test above, but I've left it in just in case\n\n\t\tthis.x = ( m32 - m23 ) / s;\n\t\tthis.y = ( m13 - m31 ) / s;\n\t\tthis.z = ( m21 - m12 ) / s;\n\t\tthis.w = Math.acos( ( m11 + m22 + m33 - 1 ) / 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\t\tthis.w = e[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\t\tthis.w = Math.min( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\t\tthis.w = Math.max( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\t\tthis.w = Math.max( min.w, Math.min( max.w, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\t\tthis.w = Math.max( minVal, Math.min( maxVal, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\t\tthis.w = Math.floor( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\t\tthis.w = Math.ceil( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\t\tthis.w = Math.round( this.w );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\t\tthis.z = Math.trunc( this.z );\n\t\tthis.w = Math.trunc( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\t\tthis.w = - this.w;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ) + Math.abs( this.w );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\t\tthis.w += ( v.w - this.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\t\tthis.w = v1.w + ( v2.w - v1.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) && ( v.w === this.w ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\t\tthis.w = array[ offset + 3 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\t\tarray[ offset + 3 ] = this.w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\t\tthis.w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\t\tthis.w = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\t\tyield this.w;\n\n\t}\n\n}\n\n/*\n In options, we can specify:\n * Texture parameters for an auto-generated target texture\n * depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers\n*/\nclass RenderTarget extends EventDispatcher {\n\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper();\n\n\t\tthis.isRenderTarget = true;\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t\tthis.depth = 1;\n\n\t\tthis.scissor = new Vector4( 0, 0, width, height );\n\t\tthis.scissorTest = false;\n\n\t\tthis.viewport = new Vector4( 0, 0, width, height );\n\n\t\tconst image = { width: width, height: height, depth: 1 };\n\n\t\toptions = Object.assign( {\n\t\t\tgenerateMipmaps: false,\n\t\t\tinternalFormat: null,\n\t\t\tminFilter: LinearFilter,\n\t\t\tdepthBuffer: true,\n\t\t\tstencilBuffer: false,\n\t\t\tresolveDepthBuffer: true,\n\t\t\tresolveStencilBuffer: true,\n\t\t\tdepthTexture: null,\n\t\t\tsamples: 0,\n\t\t\tcount: 1\n\t\t}, options );\n\n\t\tconst texture = new Texture( image, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace );\n\n\t\ttexture.flipY = false;\n\t\ttexture.generateMipmaps = options.generateMipmaps;\n\t\ttexture.internalFormat = options.internalFormat;\n\n\t\tthis.textures = [];\n\n\t\tconst count = options.count;\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.textures[ i ] = texture.clone();\n\t\t\tthis.textures[ i ].isRenderTargetTexture = true;\n\n\t\t}\n\n\t\tthis.depthBuffer = options.depthBuffer;\n\t\tthis.stencilBuffer = options.stencilBuffer;\n\n\t\tthis.resolveDepthBuffer = options.resolveDepthBuffer;\n\t\tthis.resolveStencilBuffer = options.resolveStencilBuffer;\n\n\t\tthis.depthTexture = options.depthTexture;\n\n\t\tthis.samples = options.samples;\n\n\t}\n\n\tget texture() {\n\n\t\treturn this.textures[ 0 ];\n\n\t}\n\n\tset texture( value ) {\n\n\t\tthis.textures[ 0 ] = value;\n\n\t}\n\n\tsetSize( width, height, depth = 1 ) {\n\n\t\tif ( this.width !== width || this.height !== height || this.depth !== depth ) {\n\n\t\t\tthis.width = width;\n\t\t\tthis.height = height;\n\t\t\tthis.depth = depth;\n\n\t\t\tfor ( let i = 0, il = this.textures.length; i < il; i ++ ) {\n\n\t\t\t\tthis.textures[ i ].image.width = width;\n\t\t\t\tthis.textures[ i ].image.height = height;\n\t\t\t\tthis.textures[ i ].image.depth = depth;\n\n\t\t\t}\n\n\t\t\tthis.dispose();\n\n\t\t}\n\n\t\tthis.viewport.set( 0, 0, width, height );\n\t\tthis.scissor.set( 0, 0, width, height );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\t\tthis.depth = source.depth;\n\n\t\tthis.scissor.copy( source.scissor );\n\t\tthis.scissorTest = source.scissorTest;\n\n\t\tthis.viewport.copy( source.viewport );\n\n\t\tthis.textures.length = 0;\n\n\t\tfor ( let i = 0, il = source.textures.length; i < il; i ++ ) {\n\n\t\t\tthis.textures[ i ] = source.textures[ i ].clone();\n\t\t\tthis.textures[ i ].isRenderTargetTexture = true;\n\n\t\t}\n\n\t\t// ensure image object is not shared, see #20328\n\n\t\tconst image = Object.assign( {}, source.texture.image );\n\t\tthis.texture.source = new Source( image );\n\n\t\tthis.depthBuffer = source.depthBuffer;\n\t\tthis.stencilBuffer = source.stencilBuffer;\n\n\t\tthis.resolveDepthBuffer = source.resolveDepthBuffer;\n\t\tthis.resolveStencilBuffer = source.resolveStencilBuffer;\n\n\t\tif ( source.depthTexture !== null ) this.depthTexture = source.depthTexture.clone();\n\n\t\tthis.samples = source.samples;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nclass WebGLRenderTarget extends RenderTarget {\n\n\tconstructor( width = 1, height = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGLRenderTarget = true;\n\n\t}\n\n}\n\nclass DataArrayTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\tsuper( null );\n\n\t\tthis.isDataArrayTexture = true;\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t\tthis.layerUpdates = new Set();\n\n\t}\n\n\taddLayerUpdate( layerIndex ) {\n\n\t\tthis.layerUpdates.add( layerIndex );\n\n\t}\n\n\tclearLayerUpdates() {\n\n\t\tthis.layerUpdates.clear();\n\n\t}\n\n}\n\nclass WebGLArrayRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGLArrayRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new DataArrayTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nclass Data3DTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, depth = 1 ) {\n\n\t\t// We're going to add .setXXX() methods for setting properties later.\n\t\t// Users can still set in DataTexture3D directly.\n\t\t//\n\t\t//\tconst texture = new THREE.DataTexture3D( data, width, height, depth );\n\t\t// \ttexture.anisotropy = 16;\n\t\t//\n\t\t// See #14839\n\n\t\tsuper( null );\n\n\t\tthis.isData3DTexture = true;\n\n\t\tthis.image = { data, width, height, depth };\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nclass WebGL3DRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width = 1, height = 1, depth = 1, options = {} ) {\n\n\t\tsuper( width, height, options );\n\n\t\tthis.isWebGL3DRenderTarget = true;\n\n\t\tthis.depth = depth;\n\n\t\tthis.texture = new Data3DTexture( null, width, height, depth );\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t}\n\n}\n\nclass Quaternion {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tthis.isQuaternion = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t}\n\n\tstatic slerpFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) {\n\n\t\t// fuzz-free, array-based Quaternion SLERP operation\n\n\t\tlet x0 = src0[ srcOffset0 + 0 ],\n\t\t\ty0 = src0[ srcOffset0 + 1 ],\n\t\t\tz0 = src0[ srcOffset0 + 2 ],\n\t\t\tw0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 + 0 ],\n\t\t\ty1 = src1[ srcOffset1 + 1 ],\n\t\t\tz1 = src1[ srcOffset1 + 2 ],\n\t\t\tw1 = src1[ srcOffset1 + 3 ];\n\n\t\tif ( t === 0 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x0;\n\t\t\tdst[ dstOffset + 1 ] = y0;\n\t\t\tdst[ dstOffset + 2 ] = z0;\n\t\t\tdst[ dstOffset + 3 ] = w0;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( t === 1 ) {\n\n\t\t\tdst[ dstOffset + 0 ] = x1;\n\t\t\tdst[ dstOffset + 1 ] = y1;\n\t\t\tdst[ dstOffset + 2 ] = z1;\n\t\t\tdst[ dstOffset + 3 ] = w1;\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) {\n\n\t\t\tlet s = 1 - t;\n\t\t\tconst cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n\t\t\t\tdir = ( cos >= 0 ? 1 : - 1 ),\n\t\t\t\tsqrSin = 1 - cos * cos;\n\n\t\t\t// Skip the Slerp for tiny steps to avoid numeric problems:\n\t\t\tif ( sqrSin > Number.EPSILON ) {\n\n\t\t\t\tconst sin = Math.sqrt( sqrSin ),\n\t\t\t\t\tlen = Math.atan2( sin, cos * dir );\n\n\t\t\t\ts = Math.sin( s * len ) / sin;\n\t\t\t\tt = Math.sin( t * len ) / sin;\n\n\t\t\t}\n\n\t\t\tconst tDir = t * dir;\n\n\t\t\tx0 = x0 * s + x1 * tDir;\n\t\t\ty0 = y0 * s + y1 * tDir;\n\t\t\tz0 = z0 * s + z1 * tDir;\n\t\t\tw0 = w0 * s + w1 * tDir;\n\n\t\t\t// Normalize in case we just did a lerp:\n\t\t\tif ( s === 1 - t ) {\n\n\t\t\t\tconst f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 );\n\n\t\t\t\tx0 *= f;\n\t\t\t\ty0 *= f;\n\t\t\t\tz0 *= f;\n\t\t\t\tw0 *= f;\n\n\t\t\t}\n\n\t\t}\n\n\t\tdst[ dstOffset ] = x0;\n\t\tdst[ dstOffset + 1 ] = y0;\n\t\tdst[ dstOffset + 2 ] = z0;\n\t\tdst[ dstOffset + 3 ] = w0;\n\n\t}\n\n\tstatic multiplyQuaternionsFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1 ) {\n\n\t\tconst x0 = src0[ srcOffset0 ];\n\t\tconst y0 = src0[ srcOffset0 + 1 ];\n\t\tconst z0 = src0[ srcOffset0 + 2 ];\n\t\tconst w0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 ];\n\t\tconst y1 = src1[ srcOffset1 + 1 ];\n\t\tconst z1 = src1[ srcOffset1 + 2 ];\n\t\tconst w1 = src1[ srcOffset1 + 3 ];\n\n\t\tdst[ dstOffset ] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n\t\tdst[ dstOffset + 1 ] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n\t\tdst[ dstOffset + 2 ] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n\t\tdst[ dstOffset + 3 ] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n\n\t\treturn dst;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget w() {\n\n\t\treturn this._w;\n\n\t}\n\n\tset w( value ) {\n\n\t\tthis._w = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._w );\n\n\t}\n\n\tcopy( quaternion ) {\n\n\t\tthis._x = quaternion.x;\n\t\tthis._y = quaternion.y;\n\t\tthis._z = quaternion.z;\n\t\tthis._w = quaternion.w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromEuler( euler, update = true ) {\n\n\t\tconst x = euler._x, y = euler._y, z = euler._z, order = euler._order;\n\n\t\t// http://www.mathworks.com/matlabcentral/fileexchange/\n\t\t// \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\n\t\t//\tcontent/SpinCalc.m\n\n\t\tconst cos = Math.cos;\n\t\tconst sin = Math.sin;\n\n\t\tconst c1 = cos( x / 2 );\n\t\tconst c2 = cos( y / 2 );\n\t\tconst c3 = cos( z / 2 );\n\n\t\tconst s1 = sin( x / 2 );\n\t\tconst s2 = sin( y / 2 );\n\t\tconst s3 = sin( z / 2 );\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.warn( 'THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAxisAngle( axis, angle ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n\n\t\t// assumes axis is normalized\n\n\t\tconst halfAngle = angle / 2, s = Math.sin( halfAngle );\n\n\t\tthis._x = axis.x * s;\n\t\tthis._y = axis.y * s;\n\t\tthis._z = axis.z * s;\n\t\tthis._w = Math.cos( halfAngle );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ],\n\n\t\t\ttrace = m11 + m22 + m33;\n\n\t\tif ( trace > 0 ) {\n\n\t\t\tconst s = 0.5 / Math.sqrt( trace + 1.0 );\n\n\t\t\tthis._w = 0.25 / s;\n\t\t\tthis._x = ( m32 - m23 ) * s;\n\t\t\tthis._y = ( m13 - m31 ) * s;\n\t\t\tthis._z = ( m21 - m12 ) * s;\n\n\t\t} else if ( m11 > m22 && m11 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 );\n\n\t\t\tthis._w = ( m32 - m23 ) / s;\n\t\t\tthis._x = 0.25 * s;\n\t\t\tthis._y = ( m12 + m21 ) / s;\n\t\t\tthis._z = ( m13 + m31 ) / s;\n\n\t\t} else if ( m22 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 );\n\n\t\t\tthis._w = ( m13 - m31 ) / s;\n\t\t\tthis._x = ( m12 + m21 ) / s;\n\t\t\tthis._y = 0.25 * s;\n\t\t\tthis._z = ( m23 + m32 ) / s;\n\n\t\t} else {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 );\n\n\t\t\tthis._w = ( m21 - m12 ) / s;\n\t\t\tthis._x = ( m13 + m31 ) / s;\n\t\t\tthis._y = ( m23 + m32 ) / s;\n\t\t\tthis._z = 0.25 * s;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromUnitVectors( vFrom, vTo ) {\n\n\t\t// assumes direction vectors vFrom and vTo are normalized\n\n\t\tlet r = vFrom.dot( vTo ) + 1;\n\n\t\tif ( r < Number.EPSILON ) {\n\n\t\t\t// vFrom and vTo point in opposite directions\n\n\t\t\tr = 0;\n\n\t\t\tif ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) {\n\n\t\t\t\tthis._x = - vFrom.y;\n\t\t\t\tthis._y = vFrom.x;\n\t\t\t\tthis._z = 0;\n\t\t\t\tthis._w = r;\n\n\t\t\t} else {\n\n\t\t\t\tthis._x = 0;\n\t\t\t\tthis._y = - vFrom.z;\n\t\t\t\tthis._z = vFrom.y;\n\t\t\t\tthis._w = r;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n\n\t\t\tthis._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n\t\t\tthis._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n\t\t\tthis._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n\t\t\tthis._w = r;\n\n\t\t}\n\n\t\treturn this.normalize();\n\n\t}\n\n\tangleTo( q ) {\n\n\t\treturn 2 * Math.acos( Math.abs( clamp( this.dot( q ), - 1, 1 ) ) );\n\n\t}\n\n\trotateTowards( q, step ) {\n\n\t\tconst angle = this.angleTo( q );\n\n\t\tif ( angle === 0 ) return this;\n\n\t\tconst t = Math.min( 1, step / angle );\n\n\t\tthis.slerp( q, t );\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\treturn this.set( 0, 0, 0, 1 );\n\n\t}\n\n\tinvert() {\n\n\t\t// quaternion is assumed to have unit length\n\n\t\treturn this.conjugate();\n\n\t}\n\n\tconjugate() {\n\n\t\tthis._x *= - 1;\n\t\tthis._y *= - 1;\n\t\tthis._z *= - 1;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w );\n\n\t}\n\n\tnormalize() {\n\n\t\tlet l = this.length();\n\n\t\tif ( l === 0 ) {\n\n\t\t\tthis._x = 0;\n\t\t\tthis._y = 0;\n\t\t\tthis._z = 0;\n\t\t\tthis._w = 1;\n\n\t\t} else {\n\n\t\t\tl = 1 / l;\n\n\t\t\tthis._x = this._x * l;\n\t\t\tthis._y = this._y * l;\n\t\t\tthis._z = this._z * l;\n\t\t\tthis._w = this._w * l;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( this, q );\n\n\t}\n\n\tpremultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( q, this );\n\n\t}\n\n\tmultiplyQuaternions( a, b ) {\n\n\t\t// from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n\n\t\tconst qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n\t\tconst qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n\n\t\tthis._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n\t\tthis._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n\t\tthis._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n\t\tthis._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerp( qb, t ) {\n\n\t\tif ( t === 0 ) return this;\n\t\tif ( t === 1 ) return this.copy( qb );\n\n\t\tconst x = this._x, y = this._y, z = this._z, w = this._w;\n\n\t\t// http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n\t\tlet cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n\n\t\tif ( cosHalfTheta < 0 ) {\n\n\t\t\tthis._w = - qb._w;\n\t\t\tthis._x = - qb._x;\n\t\t\tthis._y = - qb._y;\n\t\t\tthis._z = - qb._z;\n\n\t\t\tcosHalfTheta = - cosHalfTheta;\n\n\t\t} else {\n\n\t\t\tthis.copy( qb );\n\n\t\t}\n\n\t\tif ( cosHalfTheta >= 1.0 ) {\n\n\t\t\tthis._w = w;\n\t\t\tthis._x = x;\n\t\t\tthis._y = y;\n\t\t\tthis._z = z;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n\n\t\tif ( sqrSinHalfTheta <= Number.EPSILON ) {\n\n\t\t\tconst s = 1 - t;\n\t\t\tthis._w = s * w + t * this._w;\n\t\t\tthis._x = s * x + t * this._x;\n\t\t\tthis._y = s * y + t * this._y;\n\t\t\tthis._z = s * z + t * this._z;\n\n\t\t\tthis.normalize(); // normalize calls _onChangeCallback()\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sinHalfTheta = Math.sqrt( sqrSinHalfTheta );\n\t\tconst halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta );\n\t\tconst ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta,\n\t\t\tratioB = Math.sin( t * halfTheta ) / sinHalfTheta;\n\n\t\tthis._w = ( w * ratioA + this._w * ratioB );\n\t\tthis._x = ( x * ratioA + this._x * ratioB );\n\t\tthis._y = ( y * ratioA + this._y * ratioB );\n\t\tthis._z = ( z * ratioA + this._z * ratioB );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerpQuaternions( qa, qb, t ) {\n\n\t\treturn this.copy( qa ).slerp( qb, t );\n\n\t}\n\n\trandom() {\n\n\t\t// sets this quaternion to a uniform random unit quaternnion\n\n\t\t// Ken Shoemake\n\t\t// Uniform random rotations\n\t\t// D. Kirk, editor, Graphics Gems III, pages 124-132. Academic Press, New York, 1992.\n\n\t\tconst theta1 = 2 * Math.PI * Math.random();\n\t\tconst theta2 = 2 * Math.PI * Math.random();\n\n\t\tconst x0 = Math.random();\n\t\tconst r1 = Math.sqrt( 1 - x0 );\n\t\tconst r2 = Math.sqrt( x0 );\n\n\t\treturn this.set(\n\t\t\tr1 * Math.sin( theta1 ),\n\t\t\tr1 * Math.cos( theta1 ),\n\t\t\tr2 * Math.sin( theta2 ),\n\t\t\tr2 * Math.cos( theta2 ),\n\t\t);\n\n\t}\n\n\tequals( quaternion ) {\n\n\t\treturn ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis._x = array[ offset ];\n\t\tthis._y = array[ offset + 1 ];\n\t\tthis._z = array[ offset + 2 ];\n\t\tthis._w = array[ offset + 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis._x = attribute.getX( index );\n\t\tthis._y = attribute.getY( index );\n\t\tthis._z = attribute.getZ( index );\n\t\tthis._w = attribute.getW( index );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.toArray();\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this._x;\n\t\tyield this._y;\n\t\tyield this._z;\n\t\tyield this._w;\n\n\t}\n\n}\n\nclass Vector3 {\n\n\tconstructor( x = 0, y = 0, z = 0 ) {\n\n\t\tVector3.prototype.isVector3 = true;\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t}\n\n\tset( x, y, z ) {\n\n\t\tif ( z === undefined ) z = this.z; // sprite.scale.set(x,y)\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v ) {\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v ) {\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyVectors( a, b ) {\n\n\t\tthis.x = a.x * b.x;\n\t\tthis.y = a.y * b.y;\n\t\tthis.z = a.z * b.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyEuler( euler ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromEuler( euler ) );\n\n\t}\n\n\tapplyAxisAngle( axis, angle ) {\n\n\t\treturn this.applyQuaternion( _quaternion$4.setFromAxisAngle( axis, angle ) );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\treturn this.applyMatrix3( m ).normalize();\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tconst w = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] );\n\n\t\tthis.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * w;\n\t\tthis.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * w;\n\t\tthis.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * w;\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t// quaternion q is assumed to have unit length\n\n\t\tconst vx = this.x, vy = this.y, vz = this.z;\n\t\tconst qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n\n\t\t// t = 2 * cross( q.xyz, v );\n\t\tconst tx = 2 * ( qy * vz - qz * vy );\n\t\tconst ty = 2 * ( qz * vx - qx * vz );\n\t\tconst tz = 2 * ( qx * vy - qy * vx );\n\n\t\t// v + q.w * t + cross( q.xyz, t );\n\t\tthis.x = vx + qw * tx + qy * tz - qz * ty;\n\t\tthis.y = vy + qw * ty + qz * tx - qx * tz;\n\t\tthis.z = vz + qw * tz + qx * ty - qy * tx;\n\n\t\treturn this;\n\n\t}\n\n\tproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix );\n\n\t}\n\n\tunproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld );\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\t// input: THREE.Matrix4 affine matrix\n\t\t// vector interpreted as a direction\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z;\n\n\t\treturn this.normalize();\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = Math.trunc( this.x );\n\t\tthis.y = Math.trunc( this.y );\n\t\tthis.z = Math.trunc( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z;\n\n\t}\n\n\t// TODO lengthSquared?\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.crossVectors( this, v );\n\n\t}\n\n\tcrossVectors( a, b ) {\n\n\t\tconst ax = a.x, ay = a.y, az = a.z;\n\t\tconst bx = b.x, by = b.y, bz = b.z;\n\n\t\tthis.x = ay * bz - az * by;\n\t\tthis.y = az * bx - ax * bz;\n\t\tthis.z = ax * by - ay * bx;\n\n\t\treturn this;\n\n\t}\n\n\tprojectOnVector( v ) {\n\n\t\tconst denominator = v.lengthSq();\n\n\t\tif ( denominator === 0 ) return this.set( 0, 0, 0 );\n\n\t\tconst scalar = v.dot( this ) / denominator;\n\n\t\treturn this.copy( v ).multiplyScalar( scalar );\n\n\t}\n\n\tprojectOnPlane( planeNormal ) {\n\n\t\t_vector$c.copy( this ).projectOnVector( planeNormal );\n\n\t\treturn this.sub( _vector$c );\n\n\t}\n\n\treflect( normal ) {\n\n\t\t// reflect incident vector off plane orthogonal to normal\n\t\t// normal is assumed to have unit length\n\n\t\treturn this.sub( _vector$c.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) );\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n\n\t\treturn dx * dx + dy * dy + dz * dz;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z );\n\n\t}\n\n\tsetFromSpherical( s ) {\n\n\t\treturn this.setFromSphericalCoords( s.radius, s.phi, s.theta );\n\n\t}\n\n\tsetFromSphericalCoords( radius, phi, theta ) {\n\n\t\tconst sinPhiRadius = Math.sin( phi ) * radius;\n\n\t\tthis.x = sinPhiRadius * Math.sin( theta );\n\t\tthis.y = Math.cos( phi ) * radius;\n\t\tthis.z = sinPhiRadius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCylindrical( c ) {\n\n\t\treturn this.setFromCylindricalCoords( c.radius, c.theta, c.y );\n\n\t}\n\n\tsetFromCylindricalCoords( radius, theta, y ) {\n\n\t\tthis.x = radius * Math.sin( theta );\n\t\tthis.y = y;\n\t\tthis.z = radius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixScale( m ) {\n\n\t\tconst sx = this.setFromMatrixColumn( m, 0 ).length();\n\t\tconst sy = this.setFromMatrixColumn( m, 1 ).length();\n\t\tconst sz = this.setFromMatrixColumn( m, 2 ).length();\n\n\t\tthis.x = sx;\n\t\tthis.y = sy;\n\t\tthis.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixColumn( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 4 );\n\n\t}\n\n\tsetFromMatrix3Column( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 3 );\n\n\t}\n\n\tsetFromEuler( e ) {\n\n\t\tthis.x = e._x;\n\t\tthis.y = e._y;\n\t\tthis.z = e._z;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromColor( c ) {\n\n\t\tthis.x = c.r;\n\t\tthis.y = c.g;\n\t\tthis.z = c.b;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\n\t\treturn this;\n\n\t}\n\n\trandomDirection() {\n\n\t\t// https://mathworld.wolfram.com/SpherePointPicking.html\n\n\t\tconst theta = Math.random() * Math.PI * 2;\n\t\tconst u = Math.random() * 2 - 1;\n\t\tconst c = Math.sqrt( 1 - u * u );\n\n\t\tthis.x = c * Math.cos( theta );\n\t\tthis.y = u;\n\t\tthis.z = c * Math.sin( theta );\n\n\t\treturn this;\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.x;\n\t\tyield this.y;\n\t\tyield this.z;\n\n\t}\n\n}\n\nconst _vector$c = /*@__PURE__*/ new Vector3();\nconst _quaternion$4 = /*@__PURE__*/ new Quaternion();\n\nclass Box3 {\n\n\tconstructor( min = new Vector3( + Infinity, + Infinity, + Infinity ), max = new Vector3( - Infinity, - Infinity, - Infinity ) ) {\n\n\t\tthis.isBox3 = true;\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromArray( array ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = array.length; i < il; i += 3 ) {\n\n\t\t\tthis.expandByPoint( _vector$b.fromArray( array, i ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromBufferAttribute( attribute ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = attribute.count; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( _vector$b.fromBufferAttribute( attribute, i ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$b.copy( size ).multiplyScalar( 0.5 );\n\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromObject( object, precise = false ) {\n\n\t\tthis.makeEmpty();\n\n\t\treturn this.expandByObject( object, precise );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = this.min.z = + Infinity;\n\t\tthis.max.x = this.max.y = this.max.z = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\texpandByObject( object, precise = false ) {\n\n\t\t// Computes the world-axis-aligned bounding box of an object (including its children),\n\t\t// accounting for both the object's, and children's, world transforms\n\n\t\tobject.updateWorldMatrix( false, false );\n\n\t\tconst geometry = object.geometry;\n\n\t\tif ( geometry !== undefined ) {\n\n\t\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\t\t// precise AABB computation based on vertex data requires at least a position attribute.\n\t\t\t// instancing isn't supported so far and uses the normal (conservative) code path.\n\n\t\t\tif ( precise === true && positionAttribute !== undefined && object.isInstancedMesh !== true ) {\n\n\t\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t\tif ( object.isMesh === true ) {\n\n\t\t\t\t\t\tobject.getVertexPosition( i, _vector$b );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_vector$b.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_vector$b.applyMatrix4( object.matrixWorld );\n\t\t\t\t\tthis.expandByPoint( _vector$b );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( object.boundingBox !== undefined ) {\n\n\t\t\t\t\t// object-level bounding box\n\n\t\t\t\t\tif ( object.boundingBox === null ) {\n\n\t\t\t\t\t\tobject.computeBoundingBox();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_box$4.copy( object.boundingBox );\n\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// geometry-level bounding box\n\n\t\t\t\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\t\t\t\tgeometry.computeBoundingBox();\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_box$4.copy( geometry.boundingBox );\n\n\t\t\t\t}\n\n\t\t\t\t_box$4.applyMatrix4( object.matrixWorld );\n\n\t\t\t\tthis.union( _box$4 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tthis.expandByObject( children[ i ], precise );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x < this.min.x || point.x > this.max.x ||\n\t\t\tpoint.y < this.min.y || point.y > this.max.y ||\n\t\t\tpoint.z < this.min.z || point.z > this.max.z ? false : true;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y &&\n\t\t\tthis.min.z <= box.min.z && box.max.z <= this.max.z;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y ),\n\t\t\t( point.z - this.min.z ) / ( this.max.z - this.min.z )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 6 splitting planes to rule out intersections.\n\t\treturn box.max.x < this.min.x || box.min.x > this.max.x ||\n\t\t\tbox.max.y < this.min.y || box.min.y > this.max.y ||\n\t\t\tbox.max.z < this.min.z || box.min.z > this.max.z ? false : true;\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\t// Find the point on the AABB closest to the sphere center.\n\t\tthis.clampPoint( sphere.center, _vector$b );\n\n\t\t// If that point is inside the sphere, the AABB and sphere intersect.\n\t\treturn _vector$b.distanceToSquared( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// We compute the minimum and maximum dot product values. If those values\n\t\t// are on the same side (back or front) of the plane, then there is no intersection.\n\n\t\tlet min, max;\n\n\t\tif ( plane.normal.x > 0 ) {\n\n\t\t\tmin = plane.normal.x * this.min.x;\n\t\t\tmax = plane.normal.x * this.max.x;\n\n\t\t} else {\n\n\t\t\tmin = plane.normal.x * this.max.x;\n\t\t\tmax = plane.normal.x * this.min.x;\n\n\t\t}\n\n\t\tif ( plane.normal.y > 0 ) {\n\n\t\t\tmin += plane.normal.y * this.min.y;\n\t\t\tmax += plane.normal.y * this.max.y;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.y * this.max.y;\n\t\t\tmax += plane.normal.y * this.min.y;\n\n\t\t}\n\n\t\tif ( plane.normal.z > 0 ) {\n\n\t\t\tmin += plane.normal.z * this.min.z;\n\t\t\tmax += plane.normal.z * this.max.z;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.z * this.max.z;\n\t\t\tmax += plane.normal.z * this.min.z;\n\n\t\t}\n\n\t\treturn ( min <= - plane.constant && max >= - plane.constant );\n\n\t}\n\n\tintersectsTriangle( triangle ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// compute box center and extents\n\t\tthis.getCenter( _center );\n\t\t_extents.subVectors( this.max, _center );\n\n\t\t// translate triangle to aabb origin\n\t\t_v0$2.subVectors( triangle.a, _center );\n\t\t_v1$7.subVectors( triangle.b, _center );\n\t\t_v2$4.subVectors( triangle.c, _center );\n\n\t\t// compute edge vectors for triangle\n\t\t_f0.subVectors( _v1$7, _v0$2 );\n\t\t_f1.subVectors( _v2$4, _v1$7 );\n\t\t_f2.subVectors( _v0$2, _v2$4 );\n\n\t\t// test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb\n\t\t// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation\n\t\t// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)\n\t\tlet axes = [\n\t\t\t0, - _f0.z, _f0.y, 0, - _f1.z, _f1.y, 0, - _f2.z, _f2.y,\n\t\t\t_f0.z, 0, - _f0.x, _f1.z, 0, - _f1.x, _f2.z, 0, - _f2.x,\n\t\t\t- _f0.y, _f0.x, 0, - _f1.y, _f1.x, 0, - _f2.y, _f2.x, 0\n\t\t];\n\t\tif ( ! satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// test 3 face normals from the aabb\n\t\taxes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ];\n\t\tif ( ! satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// finally testing the face normal of the triangle\n\t\t// use already existing triangle edge vectors here\n\t\t_triangleNormal.crossVectors( _f0, _f1 );\n\t\taxes = [ _triangleNormal.x, _triangleNormal.y, _triangleNormal.z ];\n\n\t\treturn satForAxes( axes, _v0$2, _v1$7, _v2$4, _extents );\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector$b ).distanceTo( point );\n\n\t}\n\n\tgetBoundingSphere( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\ttarget.makeEmpty();\n\n\t\t} else {\n\n\t\t\tthis.getCenter( target.center );\n\n\t\t\ttarget.radius = this.getSize( _vector$b ).length() * 0.5;\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\t// ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\t// transform of empty box is an empty box.\n\t\tif ( this.isEmpty() ) return this;\n\n\t\t// NOTE: I am using a binary pattern to specify all 2^3 combinations below\n\t\t_points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000\n\t\t_points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001\n\t\t_points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010\n\t\t_points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011\n\t\t_points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100\n\t\t_points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101\n\t\t_points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110\n\t\t_points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111\n\n\t\tthis.setFromPoints( _points );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nconst _points = [\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3()\n];\n\nconst _vector$b = /*@__PURE__*/ new Vector3();\n\nconst _box$4 = /*@__PURE__*/ new Box3();\n\n// triangle centered vertices\n\nconst _v0$2 = /*@__PURE__*/ new Vector3();\nconst _v1$7 = /*@__PURE__*/ new Vector3();\nconst _v2$4 = /*@__PURE__*/ new Vector3();\n\n// triangle edge vectors\n\nconst _f0 = /*@__PURE__*/ new Vector3();\nconst _f1 = /*@__PURE__*/ new Vector3();\nconst _f2 = /*@__PURE__*/ new Vector3();\n\nconst _center = /*@__PURE__*/ new Vector3();\nconst _extents = /*@__PURE__*/ new Vector3();\nconst _triangleNormal = /*@__PURE__*/ new Vector3();\nconst _testAxis = /*@__PURE__*/ new Vector3();\n\nfunction satForAxes( axes, v0, v1, v2, extents ) {\n\n\tfor ( let i = 0, j = axes.length - 3; i <= j; i += 3 ) {\n\n\t\t_testAxis.fromArray( axes, i );\n\t\t// project the aabb onto the separating axis\n\t\tconst r = extents.x * Math.abs( _testAxis.x ) + extents.y * Math.abs( _testAxis.y ) + extents.z * Math.abs( _testAxis.z );\n\t\t// project all 3 vertices of the triangle onto the separating axis\n\t\tconst p0 = v0.dot( _testAxis );\n\t\tconst p1 = v1.dot( _testAxis );\n\t\tconst p2 = v2.dot( _testAxis );\n\t\t// actual test, basically see if either of the most extreme of the triangle points intersects r\n\t\tif ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) {\n\n\t\t\t// points of the projected triangle are outside the projected half-length of the aabb\n\t\t\t// the axis is separating and we can exit\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n\n\treturn true;\n\n}\n\nconst _box$3 = /*@__PURE__*/ new Box3();\nconst _v1$6 = /*@__PURE__*/ new Vector3();\nconst _v2$3 = /*@__PURE__*/ new Vector3();\n\nclass Sphere {\n\n\tconstructor( center = new Vector3(), radius = - 1 ) {\n\n\t\tthis.isSphere = true;\n\n\t\tthis.center = center;\n\t\tthis.radius = radius;\n\n\t}\n\n\tset( center, radius ) {\n\n\t\tthis.center.copy( center );\n\t\tthis.radius = radius;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points, optionalCenter ) {\n\n\t\tconst center = this.center;\n\n\t\tif ( optionalCenter !== undefined ) {\n\n\t\t\tcenter.copy( optionalCenter );\n\n\t\t} else {\n\n\t\t\t_box$3.setFromPoints( points ).getCenter( center );\n\n\t\t}\n\n\t\tlet maxRadiusSq = 0;\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) );\n\n\t\t}\n\n\t\tthis.radius = Math.sqrt( maxRadiusSq );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( sphere ) {\n\n\t\tthis.center.copy( sphere.center );\n\t\tthis.radius = sphere.radius;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\treturn ( this.radius < 0 );\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.center.set( 0, 0, 0 );\n\t\tthis.radius = - 1;\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn ( point.distanceTo( this.center ) - this.radius );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst radiusSum = this.radius + sphere.radius;\n\n\t\treturn sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsSphere( this );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\treturn Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\tconst deltaLengthSq = this.center.distanceToSquared( point );\n\n\t\ttarget.copy( point );\n\n\t\tif ( deltaLengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\ttarget.sub( this.center ).normalize();\n\t\t\ttarget.multiplyScalar( this.radius ).add( this.center );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tgetBoundingBox( target ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\t// Empty sphere produces empty bounding box\n\t\t\ttarget.makeEmpty();\n\t\t\treturn target;\n\n\t\t}\n\n\t\ttarget.set( this.center, this.center );\n\t\ttarget.expandByScalar( this.radius );\n\n\t\treturn target;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.center.applyMatrix4( matrix );\n\t\tthis.radius = this.radius * matrix.getMaxScaleOnAxis();\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.center.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.center.copy( point );\n\n\t\t\tthis.radius = 0;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\t_v1$6.subVectors( point, this.center );\n\n\t\tconst lengthSq = _v1$6.lengthSq();\n\n\t\tif ( lengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\t// calculate the minimal sphere\n\n\t\t\tconst length = Math.sqrt( lengthSq );\n\n\t\t\tconst delta = ( length - this.radius ) * 0.5;\n\n\t\t\tthis.center.addScaledVector( _v1$6, delta / length );\n\n\t\t\tthis.radius += delta;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tunion( sphere ) {\n\n\t\tif ( sphere.isEmpty() ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\tthis.copy( sphere );\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( this.center.equals( sphere.center ) === true ) {\n\n\t\t\t this.radius = Math.max( this.radius, sphere.radius );\n\n\t\t} else {\n\n\t\t\t_v2$3.subVectors( sphere.center, this.center ).setLength( sphere.radius );\n\n\t\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).add( _v2$3 ) );\n\n\t\t\tthis.expandByPoint( _v1$6.copy( sphere.center ).sub( _v2$3 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tequals( sphere ) {\n\n\t\treturn sphere.center.equals( this.center ) && ( sphere.radius === this.radius );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$a = /*@__PURE__*/ new Vector3();\nconst _segCenter = /*@__PURE__*/ new Vector3();\nconst _segDir = /*@__PURE__*/ new Vector3();\nconst _diff = /*@__PURE__*/ new Vector3();\n\nconst _edge1 = /*@__PURE__*/ new Vector3();\nconst _edge2 = /*@__PURE__*/ new Vector3();\nconst _normal$1 = /*@__PURE__*/ new Vector3();\n\nclass Ray {\n\n\tconstructor( origin = new Vector3(), direction = new Vector3( 0, 0, - 1 ) ) {\n\n\t\tthis.origin = origin;\n\t\tthis.direction = direction;\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\tthis.origin.copy( origin );\n\t\tthis.direction.copy( direction );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( ray ) {\n\n\t\tthis.origin.copy( ray.origin );\n\t\tthis.direction.copy( ray.direction );\n\n\t\treturn this;\n\n\t}\n\n\tat( t, target ) {\n\n\t\treturn target.copy( this.origin ).addScaledVector( this.direction, t );\n\n\t}\n\n\tlookAt( v ) {\n\n\t\tthis.direction.copy( v ).sub( this.origin ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\trecast( t ) {\n\n\t\tthis.origin.copy( this.at( t, _vector$a ) );\n\n\t\treturn this;\n\n\t}\n\n\tclosestPointToPoint( point, target ) {\n\n\t\ttarget.subVectors( point, this.origin );\n\n\t\tconst directionDistance = target.dot( this.direction );\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn target.copy( this.origin );\n\n\t\t}\n\n\t\treturn target.copy( this.origin ).addScaledVector( this.direction, directionDistance );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn Math.sqrt( this.distanceSqToPoint( point ) );\n\n\t}\n\n\tdistanceSqToPoint( point ) {\n\n\t\tconst directionDistance = _vector$a.subVectors( point, this.origin ).dot( this.direction );\n\n\t\t// point behind the ray\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn this.origin.distanceToSquared( point );\n\n\t\t}\n\n\t\t_vector$a.copy( this.origin ).addScaledVector( this.direction, directionDistance );\n\n\t\treturn _vector$a.distanceToSquared( point );\n\n\t}\n\n\tdistanceSqToSegment( v0, v1, optionalPointOnRay, optionalPointOnSegment ) {\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteDistRaySegment.h\n\t\t// It returns the min distance between the ray and the segment\n\t\t// defined by v0 and v1\n\t\t// It can also set two optional targets :\n\t\t// - The closest point on the ray\n\t\t// - The closest point on the segment\n\n\t\t_segCenter.copy( v0 ).add( v1 ).multiplyScalar( 0.5 );\n\t\t_segDir.copy( v1 ).sub( v0 ).normalize();\n\t\t_diff.copy( this.origin ).sub( _segCenter );\n\n\t\tconst segExtent = v0.distanceTo( v1 ) * 0.5;\n\t\tconst a01 = - this.direction.dot( _segDir );\n\t\tconst b0 = _diff.dot( this.direction );\n\t\tconst b1 = - _diff.dot( _segDir );\n\t\tconst c = _diff.lengthSq();\n\t\tconst det = Math.abs( 1 - a01 * a01 );\n\t\tlet s0, s1, sqrDist, extDet;\n\n\t\tif ( det > 0 ) {\n\n\t\t\t// The ray and segment are not parallel.\n\n\t\t\ts0 = a01 * b1 - b0;\n\t\t\ts1 = a01 * b0 - b1;\n\t\t\textDet = segExtent * det;\n\n\t\t\tif ( s0 >= 0 ) {\n\n\t\t\t\tif ( s1 >= - extDet ) {\n\n\t\t\t\t\tif ( s1 <= extDet ) {\n\n\t\t\t\t\t\t// region 0\n\t\t\t\t\t\t// Minimum at interior points of ray and segment.\n\n\t\t\t\t\t\tconst invDet = 1 / det;\n\t\t\t\t\t\ts0 *= invDet;\n\t\t\t\t\t\ts1 *= invDet;\n\t\t\t\t\t\tsqrDist = s0 * ( s0 + a01 * s1 + 2 * b0 ) + s1 * ( a01 * s0 + s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// region 1\n\n\t\t\t\t\t\ts1 = segExtent;\n\t\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 5\n\n\t\t\t\t\ts1 = - segExtent;\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( s1 <= - extDet ) {\n\n\t\t\t\t\t// region 4\n\n\t\t\t\t\ts0 = Math.max( 0, - ( - a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? - segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else if ( s1 <= extDet ) {\n\n\t\t\t\t\t// region 3\n\n\t\t\t\t\ts0 = 0;\n\t\t\t\t\ts1 = Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 2\n\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// Ray and segment are parallel.\n\n\t\t\ts1 = ( a01 > 0 ) ? - segExtent : segExtent;\n\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t}\n\n\t\tif ( optionalPointOnRay ) {\n\n\t\t\toptionalPointOnRay.copy( this.origin ).addScaledVector( this.direction, s0 );\n\n\t\t}\n\n\t\tif ( optionalPointOnSegment ) {\n\n\t\t\toptionalPointOnSegment.copy( _segCenter ).addScaledVector( _segDir, s1 );\n\n\t\t}\n\n\t\treturn sqrDist;\n\n\t}\n\n\tintersectSphere( sphere, target ) {\n\n\t\t_vector$a.subVectors( sphere.center, this.origin );\n\t\tconst tca = _vector$a.dot( this.direction );\n\t\tconst d2 = _vector$a.dot( _vector$a ) - tca * tca;\n\t\tconst radius2 = sphere.radius * sphere.radius;\n\n\t\tif ( d2 > radius2 ) return null;\n\n\t\tconst thc = Math.sqrt( radius2 - d2 );\n\n\t\t// t0 = first intersect point - entrance on front of sphere\n\t\tconst t0 = tca - thc;\n\n\t\t// t1 = second intersect point - exit point on back of sphere\n\t\tconst t1 = tca + thc;\n\n\t\t// test to see if t1 is behind the ray - if so, return null\n\t\tif ( t1 < 0 ) return null;\n\n\t\t// test to see if t0 is behind the ray:\n\t\t// if it is, the ray is inside the sphere, so return the second exit point scaled by t1,\n\t\t// in order to always return an intersect point that is in front of the ray.\n\t\tif ( t0 < 0 ) return this.at( t1, target );\n\n\t\t// else t0 is in front of the ray, so return the first collision point scaled by t0\n\t\treturn this.at( t0, target );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn this.distanceSqToPoint( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tdistanceToPlane( plane ) {\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( plane.distanceToPoint( this.origin ) === 0 ) {\n\n\t\t\t\treturn 0;\n\n\t\t\t}\n\n\t\t\t// Null is preferable to undefined since undefined means.... it is undefined\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( this.origin.dot( plane.normal ) + plane.constant ) / denominator;\n\n\t\t// Return if the ray never intersects the plane\n\n\t\treturn t >= 0 ? t : null;\n\n\t}\n\n\tintersectPlane( plane, target ) {\n\n\t\tconst t = this.distanceToPlane( plane );\n\n\t\tif ( t === null ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn this.at( t, target );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// check if the ray lies on the plane first\n\n\t\tconst distToPoint = plane.distanceToPoint( this.origin );\n\n\t\tif ( distToPoint === 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator * distToPoint < 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\t// ray origin is behind the plane (and is pointing behind it)\n\n\t\treturn false;\n\n\t}\n\n\tintersectBox( box, target ) {\n\n\t\tlet tmin, tmax, tymin, tymax, tzmin, tzmax;\n\n\t\tconst invdirx = 1 / this.direction.x,\n\t\t\tinvdiry = 1 / this.direction.y,\n\t\t\tinvdirz = 1 / this.direction.z;\n\n\t\tconst origin = this.origin;\n\n\t\tif ( invdirx >= 0 ) {\n\n\t\t\ttmin = ( box.min.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.max.x - origin.x ) * invdirx;\n\n\t\t} else {\n\n\t\t\ttmin = ( box.max.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.min.x - origin.x ) * invdirx;\n\n\t\t}\n\n\t\tif ( invdiry >= 0 ) {\n\n\t\t\ttymin = ( box.min.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.max.y - origin.y ) * invdiry;\n\n\t\t} else {\n\n\t\t\ttymin = ( box.max.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.min.y - origin.y ) * invdiry;\n\n\t\t}\n\n\t\tif ( ( tmin > tymax ) || ( tymin > tmax ) ) return null;\n\n\t\tif ( tymin > tmin || isNaN( tmin ) ) tmin = tymin;\n\n\t\tif ( tymax < tmax || isNaN( tmax ) ) tmax = tymax;\n\n\t\tif ( invdirz >= 0 ) {\n\n\t\t\ttzmin = ( box.min.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.max.z - origin.z ) * invdirz;\n\n\t\t} else {\n\n\t\t\ttzmin = ( box.max.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.min.z - origin.z ) * invdirz;\n\n\t\t}\n\n\t\tif ( ( tmin > tzmax ) || ( tzmin > tmax ) ) return null;\n\n\t\tif ( tzmin > tmin || tmin !== tmin ) tmin = tzmin;\n\n\t\tif ( tzmax < tmax || tmax !== tmax ) tmax = tzmax;\n\n\t\t//return point closest to the ray (positive side)\n\n\t\tif ( tmax < 0 ) return null;\n\n\t\treturn this.at( tmin >= 0 ? tmin : tmax, target );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn this.intersectBox( box, _vector$a ) !== null;\n\n\t}\n\n\tintersectTriangle( a, b, c, backfaceCulling, target ) {\n\n\t\t// Compute the offset origin, edges, and normal.\n\n\t\t// from https://github.com/pmjoniak/GeometricTools/blob/master/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n\n\t\t_edge1.subVectors( b, a );\n\t\t_edge2.subVectors( c, a );\n\t\t_normal$1.crossVectors( _edge1, _edge2 );\n\n\t\t// Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,\n\t\t// E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by\n\t\t// |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))\n\t\t// |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))\n\t\t// |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)\n\t\tlet DdN = this.direction.dot( _normal$1 );\n\t\tlet sign;\n\n\t\tif ( DdN > 0 ) {\n\n\t\t\tif ( backfaceCulling ) return null;\n\t\t\tsign = 1;\n\n\t\t} else if ( DdN < 0 ) {\n\n\t\t\tsign = - 1;\n\t\t\tDdN = - DdN;\n\n\t\t} else {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t_diff.subVectors( this.origin, a );\n\t\tconst DdQxE2 = sign * this.direction.dot( _edge2.crossVectors( _diff, _edge2 ) );\n\n\t\t// b1 < 0, no intersection\n\t\tif ( DdQxE2 < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst DdE1xQ = sign * this.direction.dot( _edge1.cross( _diff ) );\n\n\t\t// b2 < 0, no intersection\n\t\tif ( DdE1xQ < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// b1+b2 > 1, no intersection\n\t\tif ( DdQxE2 + DdE1xQ > DdN ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Line intersects triangle, check if ray does.\n\t\tconst QdN = - sign * _diff.dot( _normal$1 );\n\n\t\t// t < 0, no intersection\n\t\tif ( QdN < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Ray intersects triangle.\n\t\treturn this.at( QdN / DdN, target );\n\n\t}\n\n\tapplyMatrix4( matrix4 ) {\n\n\t\tthis.origin.applyMatrix4( matrix4 );\n\t\tthis.direction.transformDirection( matrix4 );\n\n\t\treturn this;\n\n\t}\n\n\tequals( ray ) {\n\n\t\treturn ray.origin.equals( this.origin ) && ray.direction.equals( this.direction );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass Matrix4 {\n\n\tconstructor( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tMatrix4.prototype.isMatrix4 = true;\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t];\n\n\t\tif ( n11 !== undefined ) {\n\n\t\t\tthis.set( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14;\n\t\tte[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24;\n\t\tte[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34;\n\t\tte[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Matrix4().fromArray( this.elements );\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ]; te[ 3 ] = me[ 3 ];\n\t\tte[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ]; te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ];\n\t\tte[ 8 ] = me[ 8 ]; te[ 9 ] = me[ 9 ]; te[ 10 ] = me[ 10 ]; te[ 11 ] = me[ 11 ];\n\t\tte[ 12 ] = me[ 12 ]; te[ 13 ] = me[ 13 ]; te[ 14 ] = me[ 14 ]; te[ 15 ] = me[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tcopyPosition( m ) {\n\n\t\tconst te = this.elements, me = m.elements;\n\n\t\tte[ 12 ] = me[ 12 ];\n\t\tte[ 13 ] = me[ 13 ];\n\t\tte[ 14 ] = me[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix3( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 3 ], me[ 6 ], 0,\n\t\t\tme[ 1 ], me[ 4 ], me[ 7 ], 0,\n\t\t\tme[ 2 ], me[ 5 ], me[ 8 ], 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrixColumn( this, 0 );\n\t\tyAxis.setFromMatrixColumn( this, 1 );\n\t\tzAxis.setFromMatrixColumn( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmakeBasis( xAxis, yAxis, zAxis ) {\n\n\t\tthis.set(\n\t\t\txAxis.x, yAxis.x, zAxis.x, 0,\n\t\t\txAxis.y, yAxis.y, zAxis.y, 0,\n\t\t\txAxis.z, yAxis.z, zAxis.z, 0,\n\t\t\t0, 0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractRotation( m ) {\n\n\t\t// this method does not support reflection matrices\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tconst scaleX = 1 / _v1$5.setFromMatrixColumn( m, 0 ).length();\n\t\tconst scaleY = 1 / _v1$5.setFromMatrixColumn( m, 1 ).length();\n\t\tconst scaleZ = 1 / _v1$5.setFromMatrixColumn( m, 2 ).length();\n\n\t\tte[ 0 ] = me[ 0 ] * scaleX;\n\t\tte[ 1 ] = me[ 1 ] * scaleX;\n\t\tte[ 2 ] = me[ 2 ] * scaleX;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = me[ 4 ] * scaleY;\n\t\tte[ 5 ] = me[ 5 ] * scaleY;\n\t\tte[ 6 ] = me[ 6 ] * scaleY;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = me[ 8 ] * scaleZ;\n\t\tte[ 9 ] = me[ 9 ] * scaleZ;\n\t\tte[ 10 ] = me[ 10 ] * scaleZ;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromEuler( euler ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = euler.x, y = euler.y, z = euler.z;\n\t\tconst a = Math.cos( x ), b = Math.sin( x );\n\t\tconst c = Math.cos( y ), d = Math.sin( y );\n\t\tconst e = Math.cos( z ), f = Math.sin( z );\n\n\t\tif ( euler.order === 'XYZ' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - c * f;\n\t\t\tte[ 8 ] = d;\n\n\t\t\tte[ 1 ] = af + be * d;\n\t\t\tte[ 5 ] = ae - bf * d;\n\t\t\tte[ 9 ] = - b * c;\n\n\t\t\tte[ 2 ] = bf - ae * d;\n\t\t\tte[ 6 ] = be + af * d;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YXZ' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce + df * b;\n\t\t\tte[ 4 ] = de * b - cf;\n\t\t\tte[ 8 ] = a * d;\n\n\t\t\tte[ 1 ] = a * f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b;\n\n\t\t\tte[ 2 ] = cf * b - de;\n\t\t\tte[ 6 ] = df + ce * b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZXY' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce - df * b;\n\t\t\tte[ 4 ] = - a * f;\n\t\t\tte[ 8 ] = de + cf * b;\n\n\t\t\tte[ 1 ] = cf + de * b;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = df - ce * b;\n\n\t\t\tte[ 2 ] = - a * d;\n\t\t\tte[ 6 ] = b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZYX' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = be * d - af;\n\t\t\tte[ 8 ] = ae * d + bf;\n\n\t\t\tte[ 1 ] = c * f;\n\t\t\tte[ 5 ] = bf * d + ae;\n\t\t\tte[ 9 ] = af * d - be;\n\n\t\t\tte[ 2 ] = - d;\n\t\t\tte[ 6 ] = b * c;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YZX' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = bd - ac * f;\n\t\t\tte[ 8 ] = bc * f + ad;\n\n\t\t\tte[ 1 ] = f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b * e;\n\n\t\t\tte[ 2 ] = - d * e;\n\t\t\tte[ 6 ] = ad * f + bc;\n\t\t\tte[ 10 ] = ac - bd * f;\n\n\t\t} else if ( euler.order === 'XZY' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - f;\n\t\t\tte[ 8 ] = d * e;\n\n\t\t\tte[ 1 ] = ac * f + bd;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = ad * f - bc;\n\n\t\t\tte[ 2 ] = bc * f - ad;\n\t\t\tte[ 6 ] = b * e;\n\t\t\tte[ 10 ] = bd * f + ac;\n\n\t\t}\n\n\t\t// bottom row\n\t\tte[ 3 ] = 0;\n\t\tte[ 7 ] = 0;\n\t\tte[ 11 ] = 0;\n\n\t\t// last column\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromQuaternion( q ) {\n\n\t\treturn this.compose( _zero, q, _one );\n\n\t}\n\n\tlookAt( eye, target, up ) {\n\n\t\tconst te = this.elements;\n\n\t\t_z.subVectors( eye, target );\n\n\t\tif ( _z.lengthSq() === 0 ) {\n\n\t\t\t// eye and target are in the same position\n\n\t\t\t_z.z = 1;\n\n\t\t}\n\n\t\t_z.normalize();\n\t\t_x.crossVectors( up, _z );\n\n\t\tif ( _x.lengthSq() === 0 ) {\n\n\t\t\t// up and z are parallel\n\n\t\t\tif ( Math.abs( up.z ) === 1 ) {\n\n\t\t\t\t_z.x += 0.0001;\n\n\t\t\t} else {\n\n\t\t\t\t_z.z += 0.0001;\n\n\t\t\t}\n\n\t\t\t_z.normalize();\n\t\t\t_x.crossVectors( up, _z );\n\n\t\t}\n\n\t\t_x.normalize();\n\t\t_y.crossVectors( _z, _x );\n\n\t\tte[ 0 ] = _x.x; te[ 4 ] = _y.x; te[ 8 ] = _z.x;\n\t\tte[ 1 ] = _x.y; te[ 5 ] = _y.y; te[ 9 ] = _z.y;\n\t\tte[ 2 ] = _x.z; te[ 6 ] = _y.z; te[ 10 ] = _z.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ];\n\t\tconst a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ];\n\t\tconst b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n\t\tte[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n\t\tte[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n\t\tte[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n\t\tte[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n\t\tte[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n\t\tte[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n\t\tte[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n\t\tte[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n\t\tte[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n\n\t\tte[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n\t\tte[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n\t\tte[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n\t\tte[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s;\n\t\tte[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s;\n\t\tte[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s;\n\t\tte[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ];\n\t\tconst n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ];\n\t\tconst n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ];\n\t\tconst n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ];\n\n\t\t//TODO: make this more efficient\n\t\t//( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\n\n\t\treturn (\n\t\t\tn41 * (\n\t\t\t\t+ n14 * n23 * n32\n\t\t\t\t - n13 * n24 * n32\n\t\t\t\t - n14 * n22 * n33\n\t\t\t\t + n12 * n24 * n33\n\t\t\t\t + n13 * n22 * n34\n\t\t\t\t - n12 * n23 * n34\n\t\t\t) +\n\t\t\tn42 * (\n\t\t\t\t+ n11 * n23 * n34\n\t\t\t\t - n11 * n24 * n33\n\t\t\t\t + n14 * n21 * n33\n\t\t\t\t - n13 * n21 * n34\n\t\t\t\t + n13 * n24 * n31\n\t\t\t\t - n14 * n23 * n31\n\t\t\t) +\n\t\t\tn43 * (\n\t\t\t\t+ n11 * n24 * n32\n\t\t\t\t - n11 * n22 * n34\n\t\t\t\t - n14 * n21 * n32\n\t\t\t\t + n12 * n21 * n34\n\t\t\t\t + n14 * n22 * n31\n\t\t\t\t - n12 * n24 * n31\n\t\t\t) +\n\t\t\tn44 * (\n\t\t\t\t- n13 * n22 * n31\n\t\t\t\t - n11 * n23 * n32\n\t\t\t\t + n11 * n22 * n33\n\t\t\t\t + n13 * n21 * n32\n\t\t\t\t - n12 * n21 * n33\n\t\t\t\t + n12 * n23 * n31\n\t\t\t)\n\n\t\t);\n\n\t}\n\n\ttranspose() {\n\n\t\tconst te = this.elements;\n\t\tlet tmp;\n\n\t\ttmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp;\n\t\ttmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp;\n\t\ttmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp;\n\n\t\ttmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp;\n\t\ttmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp;\n\t\ttmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tsetPosition( x, y, z ) {\n\n\t\tconst te = this.elements;\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tte[ 12 ] = x.x;\n\t\t\tte[ 13 ] = x.y;\n\t\t\tte[ 14 ] = x.z;\n\n\t\t} else {\n\n\t\t\tte[ 12 ] = x;\n\t\t\tte[ 13 ] = y;\n\t\t\tte[ 14 ] = z;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tinvert() {\n\n\t\t// based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ], n41 = te[ 3 ],\n\t\t\tn12 = te[ 4 ], n22 = te[ 5 ], n32 = te[ 6 ], n42 = te[ 7 ],\n\t\t\tn13 = te[ 8 ], n23 = te[ 9 ], n33 = te[ 10 ], n43 = te[ 11 ],\n\t\t\tn14 = te[ 12 ], n24 = te[ 13 ], n34 = te[ 14 ], n44 = te[ 15 ],\n\n\t\t\tt11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n\t\t\tt12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n\t\t\tt13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n\t\t\tt14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n\n\t\tconst det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44 ) * detInv;\n\t\tte[ 2 ] = ( n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44 ) * detInv;\n\t\tte[ 3 ] = ( n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43 ) * detInv;\n\n\t\tte[ 4 ] = t12 * detInv;\n\t\tte[ 5 ] = ( n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44 ) * detInv;\n\t\tte[ 6 ] = ( n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44 ) * detInv;\n\t\tte[ 7 ] = ( n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43 ) * detInv;\n\n\t\tte[ 8 ] = t13 * detInv;\n\t\tte[ 9 ] = ( n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44 ) * detInv;\n\t\tte[ 10 ] = ( n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44 ) * detInv;\n\t\tte[ 11 ] = ( n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43 ) * detInv;\n\n\t\tte[ 12 ] = t14 * detInv;\n\t\tte[ 13 ] = ( n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34 ) * detInv;\n\t\tte[ 14 ] = ( n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34 ) * detInv;\n\t\tte[ 15 ] = ( n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\tscale( v ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = v.x, y = v.y, z = v.z;\n\n\t\tte[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z;\n\t\tte[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z;\n\t\tte[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z;\n\t\tte[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxScaleOnAxis() {\n\n\t\tconst te = this.elements;\n\n\t\tconst scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ];\n\t\tconst scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ];\n\t\tconst scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ];\n\n\t\treturn Math.sqrt( Math.max( scaleXSq, scaleYSq, scaleZSq ) );\n\n\t}\n\n\tmakeTranslation( x, y, z ) {\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, 0, x.x,\n\t\t\t\t0, 1, 0, x.y,\n\t\t\t\t0, 0, 1, x.z,\n\t\t\t\t0, 0, 0, 1\n\n\t\t\t);\n\n\t\t} else {\n\n\t\t\tthis.set(\n\n\t\t\t\t1, 0, 0, x,\n\t\t\t\t0, 1, 0, y,\n\t\t\t\t0, 0, 1, z,\n\t\t\t\t0, 0, 0, 1\n\n\t\t\t);\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationX( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, c, - s, 0,\n\t\t\t0, s, c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationY( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t c, 0, s, 0,\n\t\t\t 0, 1, 0, 0,\n\t\t\t- s, 0, c, 0,\n\t\t\t 0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationZ( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0, 0,\n\t\t\ts, c, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationAxis( axis, angle ) {\n\n\t\t// Based on http://www.gamedev.net/reference/articles/article1199.asp\n\n\t\tconst c = Math.cos( angle );\n\t\tconst s = Math.sin( angle );\n\t\tconst t = 1 - c;\n\t\tconst x = axis.x, y = axis.y, z = axis.z;\n\t\tconst tx = t * x, ty = t * y;\n\n\t\tthis.set(\n\n\t\t\ttx * x + c, tx * y - s * z, tx * z + s * y, 0,\n\t\t\ttx * y + s * z, ty * y + c, ty * z - s * x, 0,\n\t\t\ttx * z - s * y, ty * z + s * x, t * z * z + c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0, 0,\n\t\t\t0, y, 0, 0,\n\t\t\t0, 0, z, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeShear( xy, xz, yx, yz, zx, zy ) {\n\n\t\tthis.set(\n\n\t\t\t1, yx, zx, 0,\n\t\t\txy, 1, zy, 0,\n\t\t\txz, yz, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;\n\t\tconst x2 = x + x,\ty2 = y + y, z2 = z + z;\n\t\tconst xx = x * x2, xy = x * y2, xz = x * z2;\n\t\tconst yy = y * y2, yz = y * z2, zz = z * z2;\n\t\tconst wx = w * x2, wy = w * y2, wz = w * z2;\n\n\t\tconst sx = scale.x, sy = scale.y, sz = scale.z;\n\n\t\tte[ 0 ] = ( 1 - ( yy + zz ) ) * sx;\n\t\tte[ 1 ] = ( xy + wz ) * sx;\n\t\tte[ 2 ] = ( xz - wy ) * sx;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = ( xy - wz ) * sy;\n\t\tte[ 5 ] = ( 1 - ( xx + zz ) ) * sy;\n\t\tte[ 6 ] = ( yz + wx ) * sy;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = ( xz + wy ) * sz;\n\t\tte[ 9 ] = ( yz - wx ) * sz;\n\t\tte[ 10 ] = ( 1 - ( xx + yy ) ) * sz;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = position.x;\n\t\tte[ 13 ] = position.y;\n\t\tte[ 14 ] = position.z;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tdecompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tlet sx = _v1$5.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();\n\t\tconst sy = _v1$5.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length();\n\t\tconst sz = _v1$5.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length();\n\n\t\t// if determine is negative, we need to invert one scale\n\t\tconst det = this.determinant();\n\t\tif ( det < 0 ) sx = - sx;\n\n\t\tposition.x = te[ 12 ];\n\t\tposition.y = te[ 13 ];\n\t\tposition.z = te[ 14 ];\n\n\t\t// scale the rotation part\n\t\t_m1$4.copy( this );\n\n\t\tconst invSX = 1 / sx;\n\t\tconst invSY = 1 / sy;\n\t\tconst invSZ = 1 / sz;\n\n\t\t_m1$4.elements[ 0 ] *= invSX;\n\t\t_m1$4.elements[ 1 ] *= invSX;\n\t\t_m1$4.elements[ 2 ] *= invSX;\n\n\t\t_m1$4.elements[ 4 ] *= invSY;\n\t\t_m1$4.elements[ 5 ] *= invSY;\n\t\t_m1$4.elements[ 6 ] *= invSY;\n\n\t\t_m1$4.elements[ 8 ] *= invSZ;\n\t\t_m1$4.elements[ 9 ] *= invSZ;\n\t\t_m1$4.elements[ 10 ] *= invSZ;\n\n\t\tquaternion.setFromRotationMatrix( _m1$4 );\n\n\t\tscale.x = sx;\n\t\tscale.y = sy;\n\t\tscale.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tmakePerspective( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = 2 * near / ( right - left );\n\t\tconst y = 2 * near / ( top - bottom );\n\n\t\tconst a = ( right + left ) / ( right - left );\n\t\tconst b = ( top + bottom ) / ( top - bottom );\n\n\t\tlet c, d;\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tc = - ( far + near ) / ( far - near );\n\t\t\td = ( - 2 * far * near ) / ( far - near );\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tc = - far / ( far - near );\n\t\t\td = ( - far * near ) / ( far - near );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Matrix4.makePerspective(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tte[ 0 ] = x;\tte[ 4 ] = 0;\tte[ 8 ] = a; \tte[ 12 ] = 0;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = y;\tte[ 9 ] = b; \tte[ 13 ] = 0;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = c; \tte[ 14 ] = d;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = - 1;\tte[ 15 ] = 0;\n\n\t\treturn this;\n\n\t}\n\n\tmakeOrthographic( left, right, top, bottom, near, far, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst te = this.elements;\n\t\tconst w = 1.0 / ( right - left );\n\t\tconst h = 1.0 / ( top - bottom );\n\t\tconst p = 1.0 / ( far - near );\n\n\t\tconst x = ( right + left ) * w;\n\t\tconst y = ( top + bottom ) * h;\n\n\t\tlet z, zInv;\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tz = ( far + near ) * p;\n\t\t\tzInv = - 2 * p;\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tz = near * p;\n\t\t\tzInv = - 1 * p;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Matrix4.makeOrthographic(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tte[ 0 ] = 2 * w;\tte[ 4 ] = 0;\t\tte[ 8 ] = 0; \t\tte[ 12 ] = - x;\n\t\tte[ 1 ] = 0; \t\tte[ 5 ] = 2 * h;\tte[ 9 ] = 0; \t\tte[ 13 ] = - y;\n\t\tte[ 2 ] = 0; \t\tte[ 6 ] = 0;\t\tte[ 10 ] = zInv;\tte[ 14 ] = - z;\n\t\tte[ 3 ] = 0; \t\tte[ 7 ] = 0;\t\tte[ 11 ] = 0;\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\t\tarray[ offset + 9 ] = te[ 9 ];\n\t\tarray[ offset + 10 ] = te[ 10 ];\n\t\tarray[ offset + 11 ] = te[ 11 ];\n\n\t\tarray[ offset + 12 ] = te[ 12 ];\n\t\tarray[ offset + 13 ] = te[ 13 ];\n\t\tarray[ offset + 14 ] = te[ 14 ];\n\t\tarray[ offset + 15 ] = te[ 15 ];\n\n\t\treturn array;\n\n\t}\n\n}\n\nconst _v1$5 = /*@__PURE__*/ new Vector3();\nconst _m1$4 = /*@__PURE__*/ new Matrix4();\nconst _zero = /*@__PURE__*/ new Vector3( 0, 0, 0 );\nconst _one = /*@__PURE__*/ new Vector3( 1, 1, 1 );\nconst _x = /*@__PURE__*/ new Vector3();\nconst _y = /*@__PURE__*/ new Vector3();\nconst _z = /*@__PURE__*/ new Vector3();\n\nconst _matrix$2 = /*@__PURE__*/ new Matrix4();\nconst _quaternion$3 = /*@__PURE__*/ new Quaternion();\n\nclass Euler {\n\n\tconstructor( x = 0, y = 0, z = 0, order = Euler.DEFAULT_ORDER ) {\n\n\t\tthis.isEuler = true;\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget order() {\n\n\t\treturn this._order;\n\n\t}\n\n\tset order( value ) {\n\n\t\tthis._order = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, order = this._order ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._order );\n\n\t}\n\n\tcopy( euler ) {\n\n\t\tthis._x = euler._x;\n\t\tthis._y = euler._y;\n\t\tthis._z = euler._z;\n\t\tthis._order = euler._order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m, order = this._order, update = true ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements;\n\t\tconst m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ];\n\t\tconst m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ];\n\t\tconst m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\n\t\t\t\tthis._y = Math.asin( clamp( m13, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m13 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\n\t\t\t\tthis._x = Math.asin( - clamp( m23, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m23 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\n\t\t\t\tthis._x = Math.asin( clamp( m32, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m32 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = 0;\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\n\t\t\t\tthis._y = Math.asin( - clamp( m31, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m31 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\n\t\t\t\tthis._z = Math.asin( clamp( m21, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m21 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m22 );\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\n\t\t\t\tthis._z = Math.asin( - clamp( m12, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m12 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._y = Math.atan2( m13, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._y = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tconsole.warn( 'THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tthis._order = order;\n\n\t\tif ( update === true ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromQuaternion( q, order, update ) {\n\n\t\t_matrix$2.makeRotationFromQuaternion( q );\n\n\t\treturn this.setFromRotationMatrix( _matrix$2, order, update );\n\n\t}\n\n\tsetFromVector3( v, order = this._order ) {\n\n\t\treturn this.set( v.x, v.y, v.z, order );\n\n\t}\n\n\treorder( newOrder ) {\n\n\t\t// WARNING: this discards revolution information -bhouston\n\n\t\t_quaternion$3.setFromEuler( this );\n\n\t\treturn this.setFromQuaternion( _quaternion$3, newOrder );\n\n\t}\n\n\tequals( euler ) {\n\n\t\treturn ( euler._x === this._x ) && ( euler._y === this._y ) && ( euler._z === this._z ) && ( euler._order === this._order );\n\n\t}\n\n\tfromArray( array ) {\n\n\t\tthis._x = array[ 0 ];\n\t\tthis._y = array[ 1 ];\n\t\tthis._z = array[ 2 ];\n\t\tif ( array[ 3 ] !== undefined ) this._order = array[ 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._order;\n\n\t\treturn array;\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this._x;\n\t\tyield this._y;\n\t\tyield this._z;\n\t\tyield this._order;\n\n\t}\n\n}\n\nEuler.DEFAULT_ORDER = 'XYZ';\n\nclass Layers {\n\n\tconstructor() {\n\n\t\tthis.mask = 1 | 0;\n\n\t}\n\n\tset( channel ) {\n\n\t\tthis.mask = ( 1 << channel | 0 ) >>> 0;\n\n\t}\n\n\tenable( channel ) {\n\n\t\tthis.mask |= 1 << channel | 0;\n\n\t}\n\n\tenableAll() {\n\n\t\tthis.mask = 0xffffffff | 0;\n\n\t}\n\n\ttoggle( channel ) {\n\n\t\tthis.mask ^= 1 << channel | 0;\n\n\t}\n\n\tdisable( channel ) {\n\n\t\tthis.mask &= ~ ( 1 << channel | 0 );\n\n\t}\n\n\tdisableAll() {\n\n\t\tthis.mask = 0;\n\n\t}\n\n\ttest( layers ) {\n\n\t\treturn ( this.mask & layers.mask ) !== 0;\n\n\t}\n\n\tisEnabled( channel ) {\n\n\t\treturn ( this.mask & ( 1 << channel | 0 ) ) !== 0;\n\n\t}\n\n}\n\nlet _object3DId = 0;\n\nconst _v1$4 = /*@__PURE__*/ new Vector3();\nconst _q1 = /*@__PURE__*/ new Quaternion();\nconst _m1$3 = /*@__PURE__*/ new Matrix4();\nconst _target = /*@__PURE__*/ new Vector3();\n\nconst _position$3 = /*@__PURE__*/ new Vector3();\nconst _scale$2 = /*@__PURE__*/ new Vector3();\nconst _quaternion$2 = /*@__PURE__*/ new Quaternion();\n\nconst _xAxis = /*@__PURE__*/ new Vector3( 1, 0, 0 );\nconst _yAxis = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nconst _zAxis = /*@__PURE__*/ new Vector3( 0, 0, 1 );\n\nconst _addedEvent = { type: 'added' };\nconst _removedEvent = { type: 'removed' };\n\nconst _childaddedEvent = { type: 'childadded', child: null };\nconst _childremovedEvent = { type: 'childremoved', child: null };\n\nclass Object3D extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isObject3D = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _object3DId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Object3D';\n\n\t\tthis.parent = null;\n\t\tthis.children = [];\n\n\t\tthis.up = Object3D.DEFAULT_UP.clone();\n\n\t\tconst position = new Vector3();\n\t\tconst rotation = new Euler();\n\t\tconst quaternion = new Quaternion();\n\t\tconst scale = new Vector3( 1, 1, 1 );\n\n\t\tfunction onRotationChange() {\n\n\t\t\tquaternion.setFromEuler( rotation, false );\n\n\t\t}\n\n\t\tfunction onQuaternionChange() {\n\n\t\t\trotation.setFromQuaternion( quaternion, undefined, false );\n\n\t\t}\n\n\t\trotation._onChange( onRotationChange );\n\t\tquaternion._onChange( onQuaternionChange );\n\n\t\tObject.defineProperties( this, {\n\t\t\tposition: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: position\n\t\t\t},\n\t\t\trotation: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: rotation\n\t\t\t},\n\t\t\tquaternion: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: quaternion\n\t\t\t},\n\t\t\tscale: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: scale\n\t\t\t},\n\t\t\tmodelViewMatrix: {\n\t\t\t\tvalue: new Matrix4()\n\t\t\t},\n\t\t\tnormalMatrix: {\n\t\t\t\tvalue: new Matrix3()\n\t\t\t}\n\t\t} );\n\n\t\tthis.matrix = new Matrix4();\n\t\tthis.matrixWorld = new Matrix4();\n\n\t\tthis.matrixAutoUpdate = Object3D.DEFAULT_MATRIX_AUTO_UPDATE;\n\n\t\tthis.matrixWorldAutoUpdate = Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE; // checked by the renderer\n\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\tthis.layers = new Layers();\n\t\tthis.visible = true;\n\n\t\tthis.castShadow = false;\n\t\tthis.receiveShadow = false;\n\n\t\tthis.frustumCulled = true;\n\t\tthis.renderOrder = 0;\n\n\t\tthis.animations = [];\n\n\t\tthis.userData = {};\n\n\t}\n\n\tonBeforeShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\tonAfterShadow( /* renderer, object, camera, shadowCamera, geometry, depthMaterial, group */ ) {}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tonAfterRender( /* renderer, scene, camera, geometry, material, group */ ) {}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tthis.matrix.premultiply( matrix );\n\n\t\tthis.matrix.decompose( this.position, this.quaternion, this.scale );\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\tthis.quaternion.premultiply( q );\n\n\t\treturn this;\n\n\t}\n\n\tsetRotationFromAxisAngle( axis, angle ) {\n\n\t\t// assumes axis is normalized\n\n\t\tthis.quaternion.setFromAxisAngle( axis, angle );\n\n\t}\n\n\tsetRotationFromEuler( euler ) {\n\n\t\tthis.quaternion.setFromEuler( euler, true );\n\n\t}\n\n\tsetRotationFromMatrix( m ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tthis.quaternion.setFromRotationMatrix( m );\n\n\t}\n\n\tsetRotationFromQuaternion( q ) {\n\n\t\t// assumes q is normalized\n\n\t\tthis.quaternion.copy( q );\n\n\t}\n\n\trotateOnAxis( axis, angle ) {\n\n\t\t// rotate object on axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.multiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateOnWorldAxis( axis, angle ) {\n\n\t\t// rotate object on axis in world space\n\t\t// axis is assumed to be normalized\n\t\t// method assumes no rotated parent\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.premultiply( _q1 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\treturn this.rotateOnAxis( _xAxis, angle );\n\n\t}\n\n\trotateY( angle ) {\n\n\t\treturn this.rotateOnAxis( _yAxis, angle );\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\treturn this.rotateOnAxis( _zAxis, angle );\n\n\t}\n\n\ttranslateOnAxis( axis, distance ) {\n\n\t\t// translate object by distance along axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_v1$4.copy( axis ).applyQuaternion( this.quaternion );\n\n\t\tthis.position.add( _v1$4.multiplyScalar( distance ) );\n\n\t\treturn this;\n\n\t}\n\n\ttranslateX( distance ) {\n\n\t\treturn this.translateOnAxis( _xAxis, distance );\n\n\t}\n\n\ttranslateY( distance ) {\n\n\t\treturn this.translateOnAxis( _yAxis, distance );\n\n\t}\n\n\ttranslateZ( distance ) {\n\n\t\treturn this.translateOnAxis( _zAxis, distance );\n\n\t}\n\n\tlocalToWorld( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( this.matrixWorld );\n\n\t}\n\n\tworldToLocal( vector ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn vector.applyMatrix4( _m1$3.copy( this.matrixWorld ).invert() );\n\n\t}\n\n\tlookAt( x, y, z ) {\n\n\t\t// This method does not support objects having non-uniformly-scaled parent(s)\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\t_target.copy( x );\n\n\t\t} else {\n\n\t\t\t_target.set( x, y, z );\n\n\t\t}\n\n\t\tconst parent = this.parent;\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_position$3.setFromMatrixPosition( this.matrixWorld );\n\n\t\tif ( this.isCamera || this.isLight ) {\n\n\t\t\t_m1$3.lookAt( _position$3, _target, this.up );\n\n\t\t} else {\n\n\t\t\t_m1$3.lookAt( _target, _position$3, this.up );\n\n\t\t}\n\n\t\tthis.quaternion.setFromRotationMatrix( _m1$3 );\n\n\t\tif ( parent ) {\n\n\t\t\t_m1$3.extractRotation( parent.matrixWorld );\n\t\t\t_q1.setFromRotationMatrix( _m1$3 );\n\t\t\tthis.quaternion.premultiply( _q1.invert() );\n\n\t\t}\n\n\t}\n\n\tadd( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.add( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object === this ) {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object can\\'t be added as a child of itself.', object );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object && object.isObject3D ) {\n\n\t\t\tobject.removeFromParent();\n\t\t\tobject.parent = this;\n\t\t\tthis.children.push( object );\n\n\t\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t\t_childaddedEvent.child = object;\n\t\t\tthis.dispatchEvent( _childaddedEvent );\n\t\t\t_childaddedEvent.child = null;\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object not an instance of THREE.Object3D.', object );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.remove( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst index = this.children.indexOf( object );\n\n\t\tif ( index !== - 1 ) {\n\n\t\t\tobject.parent = null;\n\t\t\tthis.children.splice( index, 1 );\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t\t_childremovedEvent.child = object;\n\t\t\tthis.dispatchEvent( _childremovedEvent );\n\t\t\t_childremovedEvent.child = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremoveFromParent() {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tparent.remove( this );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclear() {\n\n\t\treturn this.remove( ... this.children );\n\n\t}\n\n\tattach( object ) {\n\n\t\t// adds object as a child of this, while maintaining the object's world transform\n\n\t\t// Note: This method does not support scene graphs having non-uniformly-scaled nodes(s)\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_m1$3.copy( this.matrixWorld ).invert();\n\n\t\tif ( object.parent !== null ) {\n\n\t\t\tobject.parent.updateWorldMatrix( true, false );\n\n\t\t\t_m1$3.multiply( object.parent.matrixWorld );\n\n\t\t}\n\n\t\tobject.applyMatrix4( _m1$3 );\n\n\t\tobject.removeFromParent();\n\t\tobject.parent = this;\n\t\tthis.children.push( object );\n\n\t\tobject.updateWorldMatrix( false, true );\n\n\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t_childaddedEvent.child = object;\n\t\tthis.dispatchEvent( _childaddedEvent );\n\t\t_childaddedEvent.child = null;\n\n\t\treturn this;\n\n\t}\n\n\tgetObjectById( id ) {\n\n\t\treturn this.getObjectByProperty( 'id', id );\n\n\t}\n\n\tgetObjectByName( name ) {\n\n\t\treturn this.getObjectByProperty( 'name', name );\n\n\t}\n\n\tgetObjectByProperty( name, value ) {\n\n\t\tif ( this[ name ] === value ) return this;\n\n\t\tfor ( let i = 0, l = this.children.length; i < l; i ++ ) {\n\n\t\t\tconst child = this.children[ i ];\n\t\t\tconst object = child.getObjectByProperty( name, value );\n\n\t\t\tif ( object !== undefined ) {\n\n\t\t\t\treturn object;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tgetObjectsByProperty( name, value, result = [] ) {\n\n\t\tif ( this[ name ] === value ) result.push( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].getObjectsByProperty( name, value, result );\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tgetWorldPosition( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn target.setFromMatrixPosition( this.matrixWorld );\n\n\t}\n\n\tgetWorldQuaternion( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, target, _scale$2 );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldScale( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position$3, _quaternion$2, target );\n\n\t\treturn target;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tconst e = this.matrixWorld.elements;\n\n\t\treturn target.set( e[ 8 ], e[ 9 ], e[ 10 ] ).normalize();\n\n\t}\n\n\traycast( /* raycaster, intersects */ ) {}\n\n\ttraverse( callback ) {\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverse( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseVisible( callback ) {\n\n\t\tif ( this.visible === false ) return;\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverseVisible( callback );\n\n\t\t}\n\n\t}\n\n\ttraverseAncestors( callback ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tcallback( parent );\n\n\t\t\tparent.traverseAncestors( callback );\n\n\t\t}\n\n\t}\n\n\tupdateMatrix() {\n\n\t\tthis.matrix.compose( this.position, this.quaternion, this.scale );\n\n\t\tthis.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldNeedsUpdate || force ) {\n\n\t\t\tif ( this.matrixWorldAutoUpdate === true ) {\n\n\t\t\t\tif ( this.parent === null ) {\n\n\t\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\t\tforce = true;\n\n\t\t}\n\n\t\t// make sure descendants are updated if required\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tconst child = children[ i ];\n\n\t\t\tchild.updateMatrixWorld( force );\n\n\t\t}\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( updateParents === true && parent !== null ) {\n\n\t\t\tparent.updateWorldMatrix( true, false );\n\n\t\t}\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldAutoUpdate === true ) {\n\n\t\t\tif ( this.parent === null ) {\n\n\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// make sure descendants are updated\n\n\t\tif ( updateChildren === true ) {\n\n\t\t\tconst children = this.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tconst child = children[ i ];\n\n\t\t\t\tchild.updateWorldMatrix( false, true );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\t// meta is a string when called from JSON.stringify\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tconst output = {};\n\n\t\t// meta is a hash used to collect geometries, materials.\n\t\t// not providing it implies that this is the root object\n\t\t// being serialized.\n\t\tif ( isRootObject ) {\n\n\t\t\t// initialize meta obj\n\t\t\tmeta = {\n\t\t\t\tgeometries: {},\n\t\t\t\tmaterials: {},\n\t\t\t\ttextures: {},\n\t\t\t\timages: {},\n\t\t\t\tshapes: {},\n\t\t\t\tskeletons: {},\n\t\t\t\tanimations: {},\n\t\t\t\tnodes: {}\n\t\t\t};\n\n\t\t\toutput.metadata = {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Object',\n\t\t\t\tgenerator: 'Object3D.toJSON'\n\t\t\t};\n\n\t\t}\n\n\t\t// standard Object3D serialization\n\n\t\tconst object = {};\n\n\t\tobject.uuid = this.uuid;\n\t\tobject.type = this.type;\n\n\t\tif ( this.name !== '' ) object.name = this.name;\n\t\tif ( this.castShadow === true ) object.castShadow = true;\n\t\tif ( this.receiveShadow === true ) object.receiveShadow = true;\n\t\tif ( this.visible === false ) object.visible = false;\n\t\tif ( this.frustumCulled === false ) object.frustumCulled = false;\n\t\tif ( this.renderOrder !== 0 ) object.renderOrder = this.renderOrder;\n\t\tif ( Object.keys( this.userData ).length > 0 ) object.userData = this.userData;\n\n\t\tobject.layers = this.layers.mask;\n\t\tobject.matrix = this.matrix.toArray();\n\t\tobject.up = this.up.toArray();\n\n\t\tif ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false;\n\n\t\t// object specific properties\n\n\t\tif ( this.isInstancedMesh ) {\n\n\t\t\tobject.type = 'InstancedMesh';\n\t\t\tobject.count = this.count;\n\t\t\tobject.instanceMatrix = this.instanceMatrix.toJSON();\n\t\t\tif ( this.instanceColor !== null ) object.instanceColor = this.instanceColor.toJSON();\n\n\t\t}\n\n\t\tif ( this.isBatchedMesh ) {\n\n\t\t\tobject.type = 'BatchedMesh';\n\t\t\tobject.perObjectFrustumCulled = this.perObjectFrustumCulled;\n\t\t\tobject.sortObjects = this.sortObjects;\n\n\t\t\tobject.drawRanges = this._drawRanges;\n\t\t\tobject.reservedRanges = this._reservedRanges;\n\n\t\t\tobject.visibility = this._visibility;\n\t\t\tobject.active = this._active;\n\t\t\tobject.bounds = this._bounds.map( bound => ( {\n\t\t\t\tboxInitialized: bound.boxInitialized,\n\t\t\t\tboxMin: bound.box.min.toArray(),\n\t\t\t\tboxMax: bound.box.max.toArray(),\n\n\t\t\t\tsphereInitialized: bound.sphereInitialized,\n\t\t\t\tsphereRadius: bound.sphere.radius,\n\t\t\t\tsphereCenter: bound.sphere.center.toArray()\n\t\t\t} ) );\n\n\t\t\tobject.maxInstanceCount = this._maxInstanceCount;\n\t\t\tobject.maxVertexCount = this._maxVertexCount;\n\t\t\tobject.maxIndexCount = this._maxIndexCount;\n\n\t\t\tobject.geometryInitialized = this._geometryInitialized;\n\t\t\tobject.geometryCount = this._geometryCount;\n\n\t\t\tobject.matricesTexture = this._matricesTexture.toJSON( meta );\n\n\t\t\tif ( this._colorsTexture !== null ) object.colorsTexture = this._colorsTexture.toJSON( meta );\n\n\t\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\t\tobject.boundingSphere = {\n\t\t\t\t\tcenter: object.boundingSphere.center.toArray(),\n\t\t\t\t\tradius: object.boundingSphere.radius\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t\tif ( this.boundingBox !== null ) {\n\n\t\t\t\tobject.boundingBox = {\n\t\t\t\t\tmin: object.boundingBox.min.toArray(),\n\t\t\t\t\tmax: object.boundingBox.max.toArray()\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tfunction serialize( library, element ) {\n\n\t\t\tif ( library[ element.uuid ] === undefined ) {\n\n\t\t\t\tlibrary[ element.uuid ] = element.toJSON( meta );\n\n\t\t\t}\n\n\t\t\treturn element.uuid;\n\n\t\t}\n\n\t\tif ( this.isScene ) {\n\n\t\t\tif ( this.background ) {\n\n\t\t\t\tif ( this.background.isColor ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON();\n\n\t\t\t\t} else if ( this.background.isTexture ) {\n\n\t\t\t\t\tobject.background = this.background.toJSON( meta ).uuid;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.environment && this.environment.isTexture && this.environment.isRenderTargetTexture !== true ) {\n\n\t\t\t\tobject.environment = this.environment.toJSON( meta ).uuid;\n\n\t\t\t}\n\n\t\t} else if ( this.isMesh || this.isLine || this.isPoints ) {\n\n\t\t\tobject.geometry = serialize( meta.geometries, this.geometry );\n\n\t\t\tconst parameters = this.geometry.parameters;\n\n\t\t\tif ( parameters !== undefined && parameters.shapes !== undefined ) {\n\n\t\t\t\tconst shapes = parameters.shapes;\n\n\t\t\t\tif ( Array.isArray( shapes ) ) {\n\n\t\t\t\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst shape = shapes[ i ];\n\n\t\t\t\t\t\tserialize( meta.shapes, shape );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tserialize( meta.shapes, shapes );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.isSkinnedMesh ) {\n\n\t\t\tobject.bindMode = this.bindMode;\n\t\t\tobject.bindMatrix = this.bindMatrix.toArray();\n\n\t\t\tif ( this.skeleton !== undefined ) {\n\n\t\t\t\tserialize( meta.skeletons, this.skeleton );\n\n\t\t\t\tobject.skeleton = this.skeleton.uuid;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.material !== undefined ) {\n\n\t\t\tif ( Array.isArray( this.material ) ) {\n\n\t\t\t\tconst uuids = [];\n\n\t\t\t\tfor ( let i = 0, l = this.material.length; i < l; i ++ ) {\n\n\t\t\t\t\tuuids.push( serialize( meta.materials, this.material[ i ] ) );\n\n\t\t\t\t}\n\n\t\t\t\tobject.material = uuids;\n\n\t\t\t} else {\n\n\t\t\t\tobject.material = serialize( meta.materials, this.material );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.children.length > 0 ) {\n\n\t\t\tobject.children = [];\n\n\t\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\t\tobject.children.push( this.children[ i ].toJSON( meta ).object );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.animations.length > 0 ) {\n\n\t\t\tobject.animations = [];\n\n\t\t\tfor ( let i = 0; i < this.animations.length; i ++ ) {\n\n\t\t\t\tconst animation = this.animations[ i ];\n\n\t\t\t\tobject.animations.push( serialize( meta.animations, animation ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst geometries = extractFromCache( meta.geometries );\n\t\t\tconst materials = extractFromCache( meta.materials );\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\t\t\tconst shapes = extractFromCache( meta.shapes );\n\t\t\tconst skeletons = extractFromCache( meta.skeletons );\n\t\t\tconst animations = extractFromCache( meta.animations );\n\t\t\tconst nodes = extractFromCache( meta.nodes );\n\n\t\t\tif ( geometries.length > 0 ) output.geometries = geometries;\n\t\t\tif ( materials.length > 0 ) output.materials = materials;\n\t\t\tif ( textures.length > 0 ) output.textures = textures;\n\t\t\tif ( images.length > 0 ) output.images = images;\n\t\t\tif ( shapes.length > 0 ) output.shapes = shapes;\n\t\t\tif ( skeletons.length > 0 ) output.skeletons = skeletons;\n\t\t\tif ( animations.length > 0 ) output.animations = animations;\n\t\t\tif ( nodes.length > 0 ) output.nodes = nodes;\n\n\t\t}\n\n\t\toutput.object = object;\n\n\t\treturn output;\n\n\t\t// extract data from the cache hash\n\t\t// remove metadata on each item\n\t\t// and return as array\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t}\n\n\tclone( recursive ) {\n\n\t\treturn new this.constructor().copy( this, recursive );\n\n\t}\n\n\tcopy( source, recursive = true ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.up.copy( source.up );\n\n\t\tthis.position.copy( source.position );\n\t\tthis.rotation.order = source.rotation.order;\n\t\tthis.quaternion.copy( source.quaternion );\n\t\tthis.scale.copy( source.scale );\n\n\t\tthis.matrix.copy( source.matrix );\n\t\tthis.matrixWorld.copy( source.matrixWorld );\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\n\t\tthis.matrixWorldAutoUpdate = source.matrixWorldAutoUpdate;\n\t\tthis.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n\n\t\tthis.layers.mask = source.layers.mask;\n\t\tthis.visible = source.visible;\n\n\t\tthis.castShadow = source.castShadow;\n\t\tthis.receiveShadow = source.receiveShadow;\n\n\t\tthis.frustumCulled = source.frustumCulled;\n\t\tthis.renderOrder = source.renderOrder;\n\n\t\tthis.animations = source.animations.slice();\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tif ( recursive === true ) {\n\n\t\t\tfor ( let i = 0; i < source.children.length; i ++ ) {\n\n\t\t\t\tconst child = source.children[ i ];\n\t\t\t\tthis.add( child.clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nObject3D.DEFAULT_UP = /*@__PURE__*/ new Vector3( 0, 1, 0 );\nObject3D.DEFAULT_MATRIX_AUTO_UPDATE = true;\nObject3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE = true;\n\nconst _v0$1 = /*@__PURE__*/ new Vector3();\nconst _v1$3 = /*@__PURE__*/ new Vector3();\nconst _v2$2 = /*@__PURE__*/ new Vector3();\nconst _v3$2 = /*@__PURE__*/ new Vector3();\n\nconst _vab = /*@__PURE__*/ new Vector3();\nconst _vac = /*@__PURE__*/ new Vector3();\nconst _vbc = /*@__PURE__*/ new Vector3();\nconst _vap = /*@__PURE__*/ new Vector3();\nconst _vbp = /*@__PURE__*/ new Vector3();\nconst _vcp = /*@__PURE__*/ new Vector3();\n\nclass Triangle {\n\n\tconstructor( a = new Vector3(), b = new Vector3(), c = new Vector3() ) {\n\n\t\tthis.a = a;\n\t\tthis.b = b;\n\t\tthis.c = c;\n\n\t}\n\n\tstatic getNormal( a, b, c, target ) {\n\n\t\ttarget.subVectors( c, b );\n\t\t_v0$1.subVectors( a, b );\n\t\ttarget.cross( _v0$1 );\n\n\t\tconst targetLengthSq = target.lengthSq();\n\t\tif ( targetLengthSq > 0 ) {\n\n\t\t\treturn target.multiplyScalar( 1 / Math.sqrt( targetLengthSq ) );\n\n\t\t}\n\n\t\treturn target.set( 0, 0, 0 );\n\n\t}\n\n\t// static/instance method to calculate barycentric coordinates\n\t// based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n\tstatic getBarycoord( point, a, b, c, target ) {\n\n\t\t_v0$1.subVectors( c, a );\n\t\t_v1$3.subVectors( b, a );\n\t\t_v2$2.subVectors( point, a );\n\n\t\tconst dot00 = _v0$1.dot( _v0$1 );\n\t\tconst dot01 = _v0$1.dot( _v1$3 );\n\t\tconst dot02 = _v0$1.dot( _v2$2 );\n\t\tconst dot11 = _v1$3.dot( _v1$3 );\n\t\tconst dot12 = _v1$3.dot( _v2$2 );\n\n\t\tconst denom = ( dot00 * dot11 - dot01 * dot01 );\n\n\t\t// collinear or singular triangle\n\t\tif ( denom === 0 ) {\n\n\t\t\ttarget.set( 0, 0, 0 );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst invDenom = 1 / denom;\n\t\tconst u = ( dot11 * dot02 - dot01 * dot12 ) * invDenom;\n\t\tconst v = ( dot00 * dot12 - dot01 * dot02 ) * invDenom;\n\n\t\t// barycentric coordinates must always sum to 1\n\t\treturn target.set( 1 - u - v, v, u );\n\n\t}\n\n\tstatic containsPoint( point, a, b, c ) {\n\n\t\t// if the triangle is degenerate then we can't contain a point\n\t\tif ( this.getBarycoord( point, a, b, c, _v3$2 ) === null ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn ( _v3$2.x >= 0 ) && ( _v3$2.y >= 0 ) && ( ( _v3$2.x + _v3$2.y ) <= 1 );\n\n\t}\n\n\tstatic getInterpolation( point, p1, p2, p3, v1, v2, v3, target ) {\n\n\t\tif ( this.getBarycoord( point, p1, p2, p3, _v3$2 ) === null ) {\n\n\t\t\ttarget.x = 0;\n\t\t\ttarget.y = 0;\n\t\t\tif ( 'z' in target ) target.z = 0;\n\t\t\tif ( 'w' in target ) target.w = 0;\n\t\t\treturn null;\n\n\t\t}\n\n\t\ttarget.setScalar( 0 );\n\t\ttarget.addScaledVector( v1, _v3$2.x );\n\t\ttarget.addScaledVector( v2, _v3$2.y );\n\t\ttarget.addScaledVector( v3, _v3$2.z );\n\n\t\treturn target;\n\n\t}\n\n\tstatic isFrontFacing( a, b, c, direction ) {\n\n\t\t_v0$1.subVectors( c, b );\n\t\t_v1$3.subVectors( a, b );\n\n\t\t// strictly front facing\n\t\treturn ( _v0$1.cross( _v1$3 ).dot( direction ) < 0 ) ? true : false;\n\n\t}\n\n\tset( a, b, c ) {\n\n\t\tthis.a.copy( a );\n\t\tthis.b.copy( b );\n\t\tthis.c.copy( c );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPointsAndIndices( points, i0, i1, i2 ) {\n\n\t\tthis.a.copy( points[ i0 ] );\n\t\tthis.b.copy( points[ i1 ] );\n\t\tthis.c.copy( points[ i2 ] );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAttributeAndIndices( attribute, i0, i1, i2 ) {\n\n\t\tthis.a.fromBufferAttribute( attribute, i0 );\n\t\tthis.b.fromBufferAttribute( attribute, i1 );\n\t\tthis.c.fromBufferAttribute( attribute, i2 );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( triangle ) {\n\n\t\tthis.a.copy( triangle.a );\n\t\tthis.b.copy( triangle.b );\n\t\tthis.c.copy( triangle.c );\n\n\t\treturn this;\n\n\t}\n\n\tgetArea() {\n\n\t\t_v0$1.subVectors( this.c, this.b );\n\t\t_v1$3.subVectors( this.a, this.b );\n\n\t\treturn _v0$1.cross( _v1$3 ).length() * 0.5;\n\n\t}\n\n\tgetMidpoint( target ) {\n\n\t\treturn target.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 );\n\n\t}\n\n\tgetNormal( target ) {\n\n\t\treturn Triangle.getNormal( this.a, this.b, this.c, target );\n\n\t}\n\n\tgetPlane( target ) {\n\n\t\treturn target.setFromCoplanarPoints( this.a, this.b, this.c );\n\n\t}\n\n\tgetBarycoord( point, target ) {\n\n\t\treturn Triangle.getBarycoord( point, this.a, this.b, this.c, target );\n\n\t}\n\n\tgetInterpolation( point, v1, v2, v3, target ) {\n\n\t\treturn Triangle.getInterpolation( point, this.a, this.b, this.c, v1, v2, v3, target );\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn Triangle.containsPoint( point, this.a, this.b, this.c );\n\n\t}\n\n\tisFrontFacing( direction ) {\n\n\t\treturn Triangle.isFrontFacing( this.a, this.b, this.c, direction );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsTriangle( this );\n\n\t}\n\n\tclosestPointToPoint( p, target ) {\n\n\t\tconst a = this.a, b = this.b, c = this.c;\n\t\tlet v, w;\n\n\t\t// algorithm thanks to Real-Time Collision Detection by Christer Ericson,\n\t\t// published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc.,\n\t\t// under the accompanying license; see chapter 5.1.5 for detailed explanation.\n\t\t// basically, we're distinguishing which of the voronoi regions of the triangle\n\t\t// the point lies in with the minimum amount of redundant computation.\n\n\t\t_vab.subVectors( b, a );\n\t\t_vac.subVectors( c, a );\n\t\t_vap.subVectors( p, a );\n\t\tconst d1 = _vab.dot( _vap );\n\t\tconst d2 = _vac.dot( _vap );\n\t\tif ( d1 <= 0 && d2 <= 0 ) {\n\n\t\t\t// vertex region of A; barycentric coords (1, 0, 0)\n\t\t\treturn target.copy( a );\n\n\t\t}\n\n\t\t_vbp.subVectors( p, b );\n\t\tconst d3 = _vab.dot( _vbp );\n\t\tconst d4 = _vac.dot( _vbp );\n\t\tif ( d3 >= 0 && d4 <= d3 ) {\n\n\t\t\t// vertex region of B; barycentric coords (0, 1, 0)\n\t\t\treturn target.copy( b );\n\n\t\t}\n\n\t\tconst vc = d1 * d4 - d3 * d2;\n\t\tif ( vc <= 0 && d1 >= 0 && d3 <= 0 ) {\n\n\t\t\tv = d1 / ( d1 - d3 );\n\t\t\t// edge region of AB; barycentric coords (1-v, v, 0)\n\t\t\treturn target.copy( a ).addScaledVector( _vab, v );\n\n\t\t}\n\n\t\t_vcp.subVectors( p, c );\n\t\tconst d5 = _vab.dot( _vcp );\n\t\tconst d6 = _vac.dot( _vcp );\n\t\tif ( d6 >= 0 && d5 <= d6 ) {\n\n\t\t\t// vertex region of C; barycentric coords (0, 0, 1)\n\t\t\treturn target.copy( c );\n\n\t\t}\n\n\t\tconst vb = d5 * d2 - d1 * d6;\n\t\tif ( vb <= 0 && d2 >= 0 && d6 <= 0 ) {\n\n\t\t\tw = d2 / ( d2 - d6 );\n\t\t\t// edge region of AC; barycentric coords (1-w, 0, w)\n\t\t\treturn target.copy( a ).addScaledVector( _vac, w );\n\n\t\t}\n\n\t\tconst va = d3 * d6 - d5 * d4;\n\t\tif ( va <= 0 && ( d4 - d3 ) >= 0 && ( d5 - d6 ) >= 0 ) {\n\n\t\t\t_vbc.subVectors( c, b );\n\t\t\tw = ( d4 - d3 ) / ( ( d4 - d3 ) + ( d5 - d6 ) );\n\t\t\t// edge region of BC; barycentric coords (0, 1-w, w)\n\t\t\treturn target.copy( b ).addScaledVector( _vbc, w ); // edge region of BC\n\n\t\t}\n\n\t\t// face region\n\t\tconst denom = 1 / ( va + vb + vc );\n\t\t// u = va * denom\n\t\tv = vb * denom;\n\t\tw = vc * denom;\n\n\t\treturn target.copy( a ).addScaledVector( _vab, v ).addScaledVector( _vac, w );\n\n\t}\n\n\tequals( triangle ) {\n\n\t\treturn triangle.a.equals( this.a ) && triangle.b.equals( this.b ) && triangle.c.equals( this.c );\n\n\t}\n\n}\n\nconst _colorKeywords = { 'aliceblue': 0xF0F8FF, 'antiquewhite': 0xFAEBD7, 'aqua': 0x00FFFF, 'aquamarine': 0x7FFFD4, 'azure': 0xF0FFFF,\n\t'beige': 0xF5F5DC, 'bisque': 0xFFE4C4, 'black': 0x000000, 'blanchedalmond': 0xFFEBCD, 'blue': 0x0000FF, 'blueviolet': 0x8A2BE2,\n\t'brown': 0xA52A2A, 'burlywood': 0xDEB887, 'cadetblue': 0x5F9EA0, 'chartreuse': 0x7FFF00, 'chocolate': 0xD2691E, 'coral': 0xFF7F50,\n\t'cornflowerblue': 0x6495ED, 'cornsilk': 0xFFF8DC, 'crimson': 0xDC143C, 'cyan': 0x00FFFF, 'darkblue': 0x00008B, 'darkcyan': 0x008B8B,\n\t'darkgoldenrod': 0xB8860B, 'darkgray': 0xA9A9A9, 'darkgreen': 0x006400, 'darkgrey': 0xA9A9A9, 'darkkhaki': 0xBDB76B, 'darkmagenta': 0x8B008B,\n\t'darkolivegreen': 0x556B2F, 'darkorange': 0xFF8C00, 'darkorchid': 0x9932CC, 'darkred': 0x8B0000, 'darksalmon': 0xE9967A, 'darkseagreen': 0x8FBC8F,\n\t'darkslateblue': 0x483D8B, 'darkslategray': 0x2F4F4F, 'darkslategrey': 0x2F4F4F, 'darkturquoise': 0x00CED1, 'darkviolet': 0x9400D3,\n\t'deeppink': 0xFF1493, 'deepskyblue': 0x00BFFF, 'dimgray': 0x696969, 'dimgrey': 0x696969, 'dodgerblue': 0x1E90FF, 'firebrick': 0xB22222,\n\t'floralwhite': 0xFFFAF0, 'forestgreen': 0x228B22, 'fuchsia': 0xFF00FF, 'gainsboro': 0xDCDCDC, 'ghostwhite': 0xF8F8FF, 'gold': 0xFFD700,\n\t'goldenrod': 0xDAA520, 'gray': 0x808080, 'green': 0x008000, 'greenyellow': 0xADFF2F, 'grey': 0x808080, 'honeydew': 0xF0FFF0, 'hotpink': 0xFF69B4,\n\t'indianred': 0xCD5C5C, 'indigo': 0x4B0082, 'ivory': 0xFFFFF0, 'khaki': 0xF0E68C, 'lavender': 0xE6E6FA, 'lavenderblush': 0xFFF0F5, 'lawngreen': 0x7CFC00,\n\t'lemonchiffon': 0xFFFACD, 'lightblue': 0xADD8E6, 'lightcoral': 0xF08080, 'lightcyan': 0xE0FFFF, 'lightgoldenrodyellow': 0xFAFAD2, 'lightgray': 0xD3D3D3,\n\t'lightgreen': 0x90EE90, 'lightgrey': 0xD3D3D3, 'lightpink': 0xFFB6C1, 'lightsalmon': 0xFFA07A, 'lightseagreen': 0x20B2AA, 'lightskyblue': 0x87CEFA,\n\t'lightslategray': 0x778899, 'lightslategrey': 0x778899, 'lightsteelblue': 0xB0C4DE, 'lightyellow': 0xFFFFE0, 'lime': 0x00FF00, 'limegreen': 0x32CD32,\n\t'linen': 0xFAF0E6, 'magenta': 0xFF00FF, 'maroon': 0x800000, 'mediumaquamarine': 0x66CDAA, 'mediumblue': 0x0000CD, 'mediumorchid': 0xBA55D3,\n\t'mediumpurple': 0x9370DB, 'mediumseagreen': 0x3CB371, 'mediumslateblue': 0x7B68EE, 'mediumspringgreen': 0x00FA9A, 'mediumturquoise': 0x48D1CC,\n\t'mediumvioletred': 0xC71585, 'midnightblue': 0x191970, 'mintcream': 0xF5FFFA, 'mistyrose': 0xFFE4E1, 'moccasin': 0xFFE4B5, 'navajowhite': 0xFFDEAD,\n\t'navy': 0x000080, 'oldlace': 0xFDF5E6, 'olive': 0x808000, 'olivedrab': 0x6B8E23, 'orange': 0xFFA500, 'orangered': 0xFF4500, 'orchid': 0xDA70D6,\n\t'palegoldenrod': 0xEEE8AA, 'palegreen': 0x98FB98, 'paleturquoise': 0xAFEEEE, 'palevioletred': 0xDB7093, 'papayawhip': 0xFFEFD5, 'peachpuff': 0xFFDAB9,\n\t'peru': 0xCD853F, 'pink': 0xFFC0CB, 'plum': 0xDDA0DD, 'powderblue': 0xB0E0E6, 'purple': 0x800080, 'rebeccapurple': 0x663399, 'red': 0xFF0000, 'rosybrown': 0xBC8F8F,\n\t'royalblue': 0x4169E1, 'saddlebrown': 0x8B4513, 'salmon': 0xFA8072, 'sandybrown': 0xF4A460, 'seagreen': 0x2E8B57, 'seashell': 0xFFF5EE,\n\t'sienna': 0xA0522D, 'silver': 0xC0C0C0, 'skyblue': 0x87CEEB, 'slateblue': 0x6A5ACD, 'slategray': 0x708090, 'slategrey': 0x708090, 'snow': 0xFFFAFA,\n\t'springgreen': 0x00FF7F, 'steelblue': 0x4682B4, 'tan': 0xD2B48C, 'teal': 0x008080, 'thistle': 0xD8BFD8, 'tomato': 0xFF6347, 'turquoise': 0x40E0D0,\n\t'violet': 0xEE82EE, 'wheat': 0xF5DEB3, 'white': 0xFFFFFF, 'whitesmoke': 0xF5F5F5, 'yellow': 0xFFFF00, 'yellowgreen': 0x9ACD32 };\n\nconst _hslA = { h: 0, s: 0, l: 0 };\nconst _hslB = { h: 0, s: 0, l: 0 };\n\nfunction hue2rgb( p, q, t ) {\n\n\tif ( t < 0 ) t += 1;\n\tif ( t > 1 ) t -= 1;\n\tif ( t < 1 / 6 ) return p + ( q - p ) * 6 * t;\n\tif ( t < 1 / 2 ) return q;\n\tif ( t < 2 / 3 ) return p + ( q - p ) * 6 * ( 2 / 3 - t );\n\treturn p;\n\n}\n\nclass Color {\n\n\tconstructor( r, g, b ) {\n\n\t\tthis.isColor = true;\n\n\t\tthis.r = 1;\n\t\tthis.g = 1;\n\t\tthis.b = 1;\n\n\t\treturn this.set( r, g, b );\n\n\t}\n\n\tset( r, g, b ) {\n\n\t\tif ( g === undefined && b === undefined ) {\n\n\t\t\t// r is THREE.Color, hex or string\n\n\t\t\tconst value = r;\n\n\t\t\tif ( value && value.isColor ) {\n\n\t\t\t\tthis.copy( value );\n\n\t\t\t} else if ( typeof value === 'number' ) {\n\n\t\t\t\tthis.setHex( value );\n\n\t\t\t} else if ( typeof value === 'string' ) {\n\n\t\t\t\tthis.setStyle( value );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.setRGB( r, g, b );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.r = scalar;\n\t\tthis.g = scalar;\n\t\tthis.b = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetHex( hex, colorSpace = SRGBColorSpace ) {\n\n\t\thex = Math.floor( hex );\n\n\t\tthis.r = ( hex >> 16 & 255 ) / 255;\n\t\tthis.g = ( hex >> 8 & 255 ) / 255;\n\t\tthis.b = ( hex & 255 ) / 255;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetRGB( r, g, b, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tthis.r = r;\n\t\tthis.g = g;\n\t\tthis.b = b;\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetHSL( h, s, l, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\t\th = euclideanModulo( h, 1 );\n\t\ts = clamp( s, 0, 1 );\n\t\tl = clamp( l, 0, 1 );\n\n\t\tif ( s === 0 ) {\n\n\t\t\tthis.r = this.g = this.b = l;\n\n\t\t} else {\n\n\t\t\tconst p = l <= 0.5 ? l * ( 1 + s ) : l + s - ( l * s );\n\t\t\tconst q = ( 2 * l ) - p;\n\n\t\t\tthis.r = hue2rgb( q, p, h + 1 / 3 );\n\t\t\tthis.g = hue2rgb( q, p, h );\n\t\t\tthis.b = hue2rgb( q, p, h - 1 / 3 );\n\n\t\t}\n\n\t\tColorManagement.toWorkingColorSpace( this, colorSpace );\n\n\t\treturn this;\n\n\t}\n\n\tsetStyle( style, colorSpace = SRGBColorSpace ) {\n\n\t\tfunction handleAlpha( string ) {\n\n\t\t\tif ( string === undefined ) return;\n\n\t\t\tif ( parseFloat( string ) < 1 ) {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Alpha component of ' + style + ' will be ignored.' );\n\n\t\t\t}\n\n\t\t}\n\n\n\t\tlet m;\n\n\t\tif ( m = /^(\\w+)\\(([^\\)]*)\\)/.exec( style ) ) {\n\n\t\t\t// rgb / hsl\n\n\t\t\tlet color;\n\t\t\tconst name = m[ 1 ];\n\t\t\tconst components = m[ 2 ];\n\n\t\t\tswitch ( name ) {\n\n\t\t\t\tcase 'rgb':\n\t\t\t\tcase 'rgba':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(255,0,0) rgba(255,0,0,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setRGB(\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 1 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 2 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tMath.min( 255, parseInt( color[ 3 ], 10 ) ) / 255,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(100%,0%,0%) rgba(100%,0%,0%,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setRGB(\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 1 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 2 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tMath.min( 100, parseInt( color[ 3 ], 10 ) ) / 100,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'hsl':\n\t\t\t\tcase 'hsla':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*,\\s*(\\d*\\.?\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// hsl(120,50%,50%) hsla(120,50%,50%,0.5)\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setHSL(\n\t\t\t\t\t\t\tparseFloat( color[ 1 ] ) / 360,\n\t\t\t\t\t\t\tparseFloat( color[ 2 ] ) / 100,\n\t\t\t\t\t\t\tparseFloat( color[ 3 ] ) / 100,\n\t\t\t\t\t\t\tcolorSpace\n\t\t\t\t\t\t);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tconsole.warn( 'THREE.Color: Unknown color model ' + style );\n\n\t\t\t}\n\n\t\t} else if ( m = /^\\#([A-Fa-f\\d]+)$/.exec( style ) ) {\n\n\t\t\t// hex color\n\n\t\t\tconst hex = m[ 1 ];\n\t\t\tconst size = hex.length;\n\n\t\t\tif ( size === 3 ) {\n\n\t\t\t\t// #ff0\n\t\t\t\treturn this.setRGB(\n\t\t\t\t\tparseInt( hex.charAt( 0 ), 16 ) / 15,\n\t\t\t\t\tparseInt( hex.charAt( 1 ), 16 ) / 15,\n\t\t\t\t\tparseInt( hex.charAt( 2 ), 16 ) / 15,\n\t\t\t\t\tcolorSpace\n\t\t\t\t);\n\n\t\t\t} else if ( size === 6 ) {\n\n\t\t\t\t// #ff0000\n\t\t\t\treturn this.setHex( parseInt( hex, 16 ), colorSpace );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Invalid hex color ' + style );\n\n\t\t\t}\n\n\t\t} else if ( style && style.length > 0 ) {\n\n\t\t\treturn this.setColorName( style, colorSpace );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetColorName( style, colorSpace = SRGBColorSpace ) {\n\n\t\t// color keywords\n\t\tconst hex = _colorKeywords[ style.toLowerCase() ];\n\n\t\tif ( hex !== undefined ) {\n\n\t\t\t// red\n\t\t\tthis.setHex( hex, colorSpace );\n\n\t\t} else {\n\n\t\t\t// unknown color\n\t\t\tconsole.warn( 'THREE.Color: Unknown color ' + style );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.r, this.g, this.b );\n\n\t}\n\n\tcopy( color ) {\n\n\t\tthis.r = color.r;\n\t\tthis.g = color.g;\n\t\tthis.b = color.b;\n\n\t\treturn this;\n\n\t}\n\n\tcopySRGBToLinear( color ) {\n\n\t\tthis.r = SRGBToLinear( color.r );\n\t\tthis.g = SRGBToLinear( color.g );\n\t\tthis.b = SRGBToLinear( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tcopyLinearToSRGB( color ) {\n\n\t\tthis.r = LinearToSRGB( color.r );\n\t\tthis.g = LinearToSRGB( color.g );\n\t\tthis.b = LinearToSRGB( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tconvertSRGBToLinear() {\n\n\t\tthis.copySRGBToLinear( this );\n\n\t\treturn this;\n\n\t}\n\n\tconvertLinearToSRGB() {\n\n\t\tthis.copyLinearToSRGB( this );\n\n\t\treturn this;\n\n\t}\n\n\tgetHex( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\treturn Math.round( clamp( _color.r * 255, 0, 255 ) ) * 65536 + Math.round( clamp( _color.g * 255, 0, 255 ) ) * 256 + Math.round( clamp( _color.b * 255, 0, 255 ) );\n\n\t}\n\n\tgetHexString( colorSpace = SRGBColorSpace ) {\n\n\t\treturn ( '000000' + this.getHex( colorSpace ).toString( 16 ) ).slice( - 6 );\n\n\t}\n\n\tgetHSL( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\tconst r = _color.r, g = _color.g, b = _color.b;\n\n\t\tconst max = Math.max( r, g, b );\n\t\tconst min = Math.min( r, g, b );\n\n\t\tlet hue, saturation;\n\t\tconst lightness = ( min + max ) / 2.0;\n\n\t\tif ( min === max ) {\n\n\t\t\thue = 0;\n\t\t\tsaturation = 0;\n\n\t\t} else {\n\n\t\t\tconst delta = max - min;\n\n\t\t\tsaturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min );\n\n\t\t\tswitch ( max ) {\n\n\t\t\t\tcase r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break;\n\t\t\t\tcase g: hue = ( b - r ) / delta + 2; break;\n\t\t\t\tcase b: hue = ( r - g ) / delta + 4; break;\n\n\t\t\t}\n\n\t\t\thue /= 6;\n\n\t\t}\n\n\t\ttarget.h = hue;\n\t\ttarget.s = saturation;\n\t\ttarget.l = lightness;\n\n\t\treturn target;\n\n\t}\n\n\tgetRGB( target, colorSpace = ColorManagement.workingColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\ttarget.r = _color.r;\n\t\ttarget.g = _color.g;\n\t\ttarget.b = _color.b;\n\n\t\treturn target;\n\n\t}\n\n\tgetStyle( colorSpace = SRGBColorSpace ) {\n\n\t\tColorManagement.fromWorkingColorSpace( _color.copy( this ), colorSpace );\n\n\t\tconst r = _color.r, g = _color.g, b = _color.b;\n\n\t\tif ( colorSpace !== SRGBColorSpace ) {\n\n\t\t\t// Requires CSS Color Module Level 4 (https://www.w3.org/TR/css-color-4/).\n\t\t\treturn `color(${ colorSpace } ${ r.toFixed( 3 ) } ${ g.toFixed( 3 ) } ${ b.toFixed( 3 ) })`;\n\n\t\t}\n\n\t\treturn `rgb(${ Math.round( r * 255 ) },${ Math.round( g * 255 ) },${ Math.round( b * 255 ) })`;\n\n\t}\n\n\toffsetHSL( h, s, l ) {\n\n\t\tthis.getHSL( _hslA );\n\n\t\treturn this.setHSL( _hslA.h + h, _hslA.s + s, _hslA.l + l );\n\n\t}\n\n\tadd( color ) {\n\n\t\tthis.r += color.r;\n\t\tthis.g += color.g;\n\t\tthis.b += color.b;\n\n\t\treturn this;\n\n\t}\n\n\taddColors( color1, color2 ) {\n\n\t\tthis.r = color1.r + color2.r;\n\t\tthis.g = color1.g + color2.g;\n\t\tthis.b = color1.b + color2.b;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.r += s;\n\t\tthis.g += s;\n\t\tthis.b += s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( color ) {\n\n\t\tthis.r = Math.max( 0, this.r - color.r );\n\t\tthis.g = Math.max( 0, this.g - color.g );\n\t\tthis.b = Math.max( 0, this.b - color.b );\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( color ) {\n\n\t\tthis.r *= color.r;\n\t\tthis.g *= color.g;\n\t\tthis.b *= color.b;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tthis.r *= s;\n\t\tthis.g *= s;\n\t\tthis.b *= s;\n\n\t\treturn this;\n\n\t}\n\n\tlerp( color, alpha ) {\n\n\t\tthis.r += ( color.r - this.r ) * alpha;\n\t\tthis.g += ( color.g - this.g ) * alpha;\n\t\tthis.b += ( color.b - this.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpColors( color1, color2, alpha ) {\n\n\t\tthis.r = color1.r + ( color2.r - color1.r ) * alpha;\n\t\tthis.g = color1.g + ( color2.g - color1.g ) * alpha;\n\t\tthis.b = color1.b + ( color2.b - color1.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpHSL( color, alpha ) {\n\n\t\tthis.getHSL( _hslA );\n\t\tcolor.getHSL( _hslB );\n\n\t\tconst h = lerp( _hslA.h, _hslB.h, alpha );\n\t\tconst s = lerp( _hslA.s, _hslB.s, alpha );\n\t\tconst l = lerp( _hslA.l, _hslB.l, alpha );\n\n\t\tthis.setHSL( h, s, l );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\tthis.r = v.x;\n\t\tthis.g = v.y;\n\t\tthis.b = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst r = this.r, g = this.g, b = this.b;\n\t\tconst e = m.elements;\n\n\t\tthis.r = e[ 0 ] * r + e[ 3 ] * g + e[ 6 ] * b;\n\t\tthis.g = e[ 1 ] * r + e[ 4 ] * g + e[ 7 ] * b;\n\t\tthis.b = e[ 2 ] * r + e[ 5 ] * g + e[ 8 ] * b;\n\n\t\treturn this;\n\n\t}\n\n\tequals( c ) {\n\n\t\treturn ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.r = array[ offset ];\n\t\tthis.g = array[ offset + 1 ];\n\t\tthis.b = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.r;\n\t\tarray[ offset + 1 ] = this.g;\n\t\tarray[ offset + 2 ] = this.b;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.r = attribute.getX( index );\n\t\tthis.g = attribute.getY( index );\n\t\tthis.b = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.getHex();\n\n\t}\n\n\t*[ Symbol.iterator ]() {\n\n\t\tyield this.r;\n\t\tyield this.g;\n\t\tyield this.b;\n\n\t}\n\n}\n\nconst _color = /*@__PURE__*/ new Color();\n\nColor.NAMES = _colorKeywords;\n\nlet _materialId = 0;\n\nclass Material extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isMaterial = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _materialId ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'Material';\n\n\t\tthis.blending = NormalBlending;\n\t\tthis.side = FrontSide;\n\t\tthis.vertexColors = false;\n\n\t\tthis.opacity = 1;\n\t\tthis.transparent = false;\n\t\tthis.alphaHash = false;\n\n\t\tthis.blendSrc = SrcAlphaFactor;\n\t\tthis.blendDst = OneMinusSrcAlphaFactor;\n\t\tthis.blendEquation = AddEquation;\n\t\tthis.blendSrcAlpha = null;\n\t\tthis.blendDstAlpha = null;\n\t\tthis.blendEquationAlpha = null;\n\t\tthis.blendColor = new Color( 0, 0, 0 );\n\t\tthis.blendAlpha = 0;\n\n\t\tthis.depthFunc = LessEqualDepth;\n\t\tthis.depthTest = true;\n\t\tthis.depthWrite = true;\n\n\t\tthis.stencilWriteMask = 0xff;\n\t\tthis.stencilFunc = AlwaysStencilFunc;\n\t\tthis.stencilRef = 0;\n\t\tthis.stencilFuncMask = 0xff;\n\t\tthis.stencilFail = KeepStencilOp;\n\t\tthis.stencilZFail = KeepStencilOp;\n\t\tthis.stencilZPass = KeepStencilOp;\n\t\tthis.stencilWrite = false;\n\n\t\tthis.clippingPlanes = null;\n\t\tthis.clipIntersection = false;\n\t\tthis.clipShadows = false;\n\n\t\tthis.shadowSide = null;\n\n\t\tthis.colorWrite = true;\n\n\t\tthis.precision = null; // override the renderer's default precision for this material\n\n\t\tthis.polygonOffset = false;\n\t\tthis.polygonOffsetFactor = 0;\n\t\tthis.polygonOffsetUnits = 0;\n\n\t\tthis.dithering = false;\n\n\t\tthis.alphaToCoverage = false;\n\t\tthis.premultipliedAlpha = false;\n\t\tthis.forceSinglePass = false;\n\n\t\tthis.visible = true;\n\n\t\tthis.toneMapped = true;\n\n\t\tthis.userData = {};\n\n\t\tthis.version = 0;\n\n\t\tthis._alphaTest = 0;\n\n\t}\n\n\tget alphaTest() {\n\n\t\treturn this._alphaTest;\n\n\t}\n\n\tset alphaTest( value ) {\n\n\t\tif ( this._alphaTest > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._alphaTest = value;\n\n\t}\n\n\tonBeforeCompile( /* shaderobject, renderer */ ) {}\n\n\tcustomProgramCacheKey() {\n\n\t\treturn this.onBeforeCompile.toString();\n\n\t}\n\n\tsetValues( values ) {\n\n\t\tif ( values === undefined ) return;\n\n\t\tfor ( const key in values ) {\n\n\t\t\tconst newValue = values[ key ];\n\n\t\t\tif ( newValue === undefined ) {\n\n\t\t\t\tconsole.warn( `THREE.Material: parameter '${ key }' has value of undefined.` );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst currentValue = this[ key ];\n\n\t\t\tif ( currentValue === undefined ) {\n\n\t\t\t\tconsole.warn( `THREE.Material: '${ key }' is not a property of THREE.${ this.type }.` );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( currentValue && currentValue.isColor ) {\n\n\t\t\t\tcurrentValue.set( newValue );\n\n\t\t\t} else if ( ( currentValue && currentValue.isVector3 ) && ( newValue && newValue.isVector3 ) ) {\n\n\t\t\t\tcurrentValue.copy( newValue );\n\n\t\t\t} else {\n\n\t\t\t\tthis[ key ] = newValue;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( isRootObject ) {\n\n\t\t\tmeta = {\n\t\t\t\ttextures: {},\n\t\t\t\timages: {}\n\t\t\t};\n\n\t\t}\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Material',\n\t\t\t\tgenerator: 'Material.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard Material serialization\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\n\t\tif ( this.color && this.color.isColor ) data.color = this.color.getHex();\n\n\t\tif ( this.roughness !== undefined ) data.roughness = this.roughness;\n\t\tif ( this.metalness !== undefined ) data.metalness = this.metalness;\n\n\t\tif ( this.sheen !== undefined ) data.sheen = this.sheen;\n\t\tif ( this.sheenColor && this.sheenColor.isColor ) data.sheenColor = this.sheenColor.getHex();\n\t\tif ( this.sheenRoughness !== undefined ) data.sheenRoughness = this.sheenRoughness;\n\t\tif ( this.emissive && this.emissive.isColor ) data.emissive = this.emissive.getHex();\n\t\tif ( this.emissiveIntensity !== undefined && this.emissiveIntensity !== 1 ) data.emissiveIntensity = this.emissiveIntensity;\n\n\t\tif ( this.specular && this.specular.isColor ) data.specular = this.specular.getHex();\n\t\tif ( this.specularIntensity !== undefined ) data.specularIntensity = this.specularIntensity;\n\t\tif ( this.specularColor && this.specularColor.isColor ) data.specularColor = this.specularColor.getHex();\n\t\tif ( this.shininess !== undefined ) data.shininess = this.shininess;\n\t\tif ( this.clearcoat !== undefined ) data.clearcoat = this.clearcoat;\n\t\tif ( this.clearcoatRoughness !== undefined ) data.clearcoatRoughness = this.clearcoatRoughness;\n\n\t\tif ( this.clearcoatMap && this.clearcoatMap.isTexture ) {\n\n\t\t\tdata.clearcoatMap = this.clearcoatMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture ) {\n\n\t\t\tdata.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture ) {\n\n\t\t\tdata.clearcoatNormalMap = this.clearcoatNormalMap.toJSON( meta ).uuid;\n\t\t\tdata.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.dispersion !== undefined ) data.dispersion = this.dispersion;\n\n\t\tif ( this.iridescence !== undefined ) data.iridescence = this.iridescence;\n\t\tif ( this.iridescenceIOR !== undefined ) data.iridescenceIOR = this.iridescenceIOR;\n\t\tif ( this.iridescenceThicknessRange !== undefined ) data.iridescenceThicknessRange = this.iridescenceThicknessRange;\n\n\t\tif ( this.iridescenceMap && this.iridescenceMap.isTexture ) {\n\n\t\t\tdata.iridescenceMap = this.iridescenceMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.iridescenceThicknessMap && this.iridescenceThicknessMap.isTexture ) {\n\n\t\t\tdata.iridescenceThicknessMap = this.iridescenceThicknessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.anisotropy !== undefined ) data.anisotropy = this.anisotropy;\n\t\tif ( this.anisotropyRotation !== undefined ) data.anisotropyRotation = this.anisotropyRotation;\n\n\t\tif ( this.anisotropyMap && this.anisotropyMap.isTexture ) {\n\n\t\t\tdata.anisotropyMap = this.anisotropyMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid;\n\t\tif ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid;\n\t\tif ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid;\n\n\t\tif ( this.lightMap && this.lightMap.isTexture ) {\n\n\t\t\tdata.lightMap = this.lightMap.toJSON( meta ).uuid;\n\t\t\tdata.lightMapIntensity = this.lightMapIntensity;\n\n\t\t}\n\n\t\tif ( this.aoMap && this.aoMap.isTexture ) {\n\n\t\t\tdata.aoMap = this.aoMap.toJSON( meta ).uuid;\n\t\t\tdata.aoMapIntensity = this.aoMapIntensity;\n\n\t\t}\n\n\t\tif ( this.bumpMap && this.bumpMap.isTexture ) {\n\n\t\t\tdata.bumpMap = this.bumpMap.toJSON( meta ).uuid;\n\t\t\tdata.bumpScale = this.bumpScale;\n\n\t\t}\n\n\t\tif ( this.normalMap && this.normalMap.isTexture ) {\n\n\t\t\tdata.normalMap = this.normalMap.toJSON( meta ).uuid;\n\t\t\tdata.normalMapType = this.normalMapType;\n\t\t\tdata.normalScale = this.normalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.displacementMap && this.displacementMap.isTexture ) {\n\n\t\t\tdata.displacementMap = this.displacementMap.toJSON( meta ).uuid;\n\t\t\tdata.displacementScale = this.displacementScale;\n\t\t\tdata.displacementBias = this.displacementBias;\n\n\t\t}\n\n\t\tif ( this.roughnessMap && this.roughnessMap.isTexture ) data.roughnessMap = this.roughnessMap.toJSON( meta ).uuid;\n\t\tif ( this.metalnessMap && this.metalnessMap.isTexture ) data.metalnessMap = this.metalnessMap.toJSON( meta ).uuid;\n\n\t\tif ( this.emissiveMap && this.emissiveMap.isTexture ) data.emissiveMap = this.emissiveMap.toJSON( meta ).uuid;\n\t\tif ( this.specularMap && this.specularMap.isTexture ) data.specularMap = this.specularMap.toJSON( meta ).uuid;\n\t\tif ( this.specularIntensityMap && this.specularIntensityMap.isTexture ) data.specularIntensityMap = this.specularIntensityMap.toJSON( meta ).uuid;\n\t\tif ( this.specularColorMap && this.specularColorMap.isTexture ) data.specularColorMap = this.specularColorMap.toJSON( meta ).uuid;\n\n\t\tif ( this.envMap && this.envMap.isTexture ) {\n\n\t\t\tdata.envMap = this.envMap.toJSON( meta ).uuid;\n\n\t\t\tif ( this.combine !== undefined ) data.combine = this.combine;\n\n\t\t}\n\n\t\tif ( this.envMapRotation !== undefined ) data.envMapRotation = this.envMapRotation.toArray();\n\t\tif ( this.envMapIntensity !== undefined ) data.envMapIntensity = this.envMapIntensity;\n\t\tif ( this.reflectivity !== undefined ) data.reflectivity = this.reflectivity;\n\t\tif ( this.refractionRatio !== undefined ) data.refractionRatio = this.refractionRatio;\n\n\t\tif ( this.gradientMap && this.gradientMap.isTexture ) {\n\n\t\t\tdata.gradientMap = this.gradientMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.transmission !== undefined ) data.transmission = this.transmission;\n\t\tif ( this.transmissionMap && this.transmissionMap.isTexture ) data.transmissionMap = this.transmissionMap.toJSON( meta ).uuid;\n\t\tif ( this.thickness !== undefined ) data.thickness = this.thickness;\n\t\tif ( this.thicknessMap && this.thicknessMap.isTexture ) data.thicknessMap = this.thicknessMap.toJSON( meta ).uuid;\n\t\tif ( this.attenuationDistance !== undefined && this.attenuationDistance !== Infinity ) data.attenuationDistance = this.attenuationDistance;\n\t\tif ( this.attenuationColor !== undefined ) data.attenuationColor = this.attenuationColor.getHex();\n\n\t\tif ( this.size !== undefined ) data.size = this.size;\n\t\tif ( this.shadowSide !== null ) data.shadowSide = this.shadowSide;\n\t\tif ( this.sizeAttenuation !== undefined ) data.sizeAttenuation = this.sizeAttenuation;\n\n\t\tif ( this.blending !== NormalBlending ) data.blending = this.blending;\n\t\tif ( this.side !== FrontSide ) data.side = this.side;\n\t\tif ( this.vertexColors === true ) data.vertexColors = true;\n\n\t\tif ( this.opacity < 1 ) data.opacity = this.opacity;\n\t\tif ( this.transparent === true ) data.transparent = true;\n\n\t\tif ( this.blendSrc !== SrcAlphaFactor ) data.blendSrc = this.blendSrc;\n\t\tif ( this.blendDst !== OneMinusSrcAlphaFactor ) data.blendDst = this.blendDst;\n\t\tif ( this.blendEquation !== AddEquation ) data.blendEquation = this.blendEquation;\n\t\tif ( this.blendSrcAlpha !== null ) data.blendSrcAlpha = this.blendSrcAlpha;\n\t\tif ( this.blendDstAlpha !== null ) data.blendDstAlpha = this.blendDstAlpha;\n\t\tif ( this.blendEquationAlpha !== null ) data.blendEquationAlpha = this.blendEquationAlpha;\n\t\tif ( this.blendColor && this.blendColor.isColor ) data.blendColor = this.blendColor.getHex();\n\t\tif ( this.blendAlpha !== 0 ) data.blendAlpha = this.blendAlpha;\n\n\t\tif ( this.depthFunc !== LessEqualDepth ) data.depthFunc = this.depthFunc;\n\t\tif ( this.depthTest === false ) data.depthTest = this.depthTest;\n\t\tif ( this.depthWrite === false ) data.depthWrite = this.depthWrite;\n\t\tif ( this.colorWrite === false ) data.colorWrite = this.colorWrite;\n\n\t\tif ( this.stencilWriteMask !== 0xff ) data.stencilWriteMask = this.stencilWriteMask;\n\t\tif ( this.stencilFunc !== AlwaysStencilFunc ) data.stencilFunc = this.stencilFunc;\n\t\tif ( this.stencilRef !== 0 ) data.stencilRef = this.stencilRef;\n\t\tif ( this.stencilFuncMask !== 0xff ) data.stencilFuncMask = this.stencilFuncMask;\n\t\tif ( this.stencilFail !== KeepStencilOp ) data.stencilFail = this.stencilFail;\n\t\tif ( this.stencilZFail !== KeepStencilOp ) data.stencilZFail = this.stencilZFail;\n\t\tif ( this.stencilZPass !== KeepStencilOp ) data.stencilZPass = this.stencilZPass;\n\t\tif ( this.stencilWrite === true ) data.stencilWrite = this.stencilWrite;\n\n\t\t// rotation (SpriteMaterial)\n\t\tif ( this.rotation !== undefined && this.rotation !== 0 ) data.rotation = this.rotation;\n\n\t\tif ( this.polygonOffset === true ) data.polygonOffset = true;\n\t\tif ( this.polygonOffsetFactor !== 0 ) data.polygonOffsetFactor = this.polygonOffsetFactor;\n\t\tif ( this.polygonOffsetUnits !== 0 ) data.polygonOffsetUnits = this.polygonOffsetUnits;\n\n\t\tif ( this.linewidth !== undefined && this.linewidth !== 1 ) data.linewidth = this.linewidth;\n\t\tif ( this.dashSize !== undefined ) data.dashSize = this.dashSize;\n\t\tif ( this.gapSize !== undefined ) data.gapSize = this.gapSize;\n\t\tif ( this.scale !== undefined ) data.scale = this.scale;\n\n\t\tif ( this.dithering === true ) data.dithering = true;\n\n\t\tif ( this.alphaTest > 0 ) data.alphaTest = this.alphaTest;\n\t\tif ( this.alphaHash === true ) data.alphaHash = true;\n\t\tif ( this.alphaToCoverage === true ) data.alphaToCoverage = true;\n\t\tif ( this.premultipliedAlpha === true ) data.premultipliedAlpha = true;\n\t\tif ( this.forceSinglePass === true ) data.forceSinglePass = true;\n\n\t\tif ( this.wireframe === true ) data.wireframe = true;\n\t\tif ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth;\n\t\tif ( this.wireframeLinecap !== 'round' ) data.wireframeLinecap = this.wireframeLinecap;\n\t\tif ( this.wireframeLinejoin !== 'round' ) data.wireframeLinejoin = this.wireframeLinejoin;\n\n\t\tif ( this.flatShading === true ) data.flatShading = true;\n\n\t\tif ( this.visible === false ) data.visible = false;\n\n\t\tif ( this.toneMapped === false ) data.toneMapped = false;\n\n\t\tif ( this.fog === false ) data.fog = false;\n\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\t// TODO: Copied from Object3D.toJSON\n\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\n\t\t\tif ( textures.length > 0 ) data.textures = textures;\n\t\t\tif ( images.length > 0 ) data.images = images;\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.blending = source.blending;\n\t\tthis.side = source.side;\n\t\tthis.vertexColors = source.vertexColors;\n\n\t\tthis.opacity = source.opacity;\n\t\tthis.transparent = source.transparent;\n\n\t\tthis.blendSrc = source.blendSrc;\n\t\tthis.blendDst = source.blendDst;\n\t\tthis.blendEquation = source.blendEquation;\n\t\tthis.blendSrcAlpha = source.blendSrcAlpha;\n\t\tthis.blendDstAlpha = source.blendDstAlpha;\n\t\tthis.blendEquationAlpha = source.blendEquationAlpha;\n\t\tthis.blendColor.copy( source.blendColor );\n\t\tthis.blendAlpha = source.blendAlpha;\n\n\t\tthis.depthFunc = source.depthFunc;\n\t\tthis.depthTest = source.depthTest;\n\t\tthis.depthWrite = source.depthWrite;\n\n\t\tthis.stencilWriteMask = source.stencilWriteMask;\n\t\tthis.stencilFunc = source.stencilFunc;\n\t\tthis.stencilRef = source.stencilRef;\n\t\tthis.stencilFuncMask = source.stencilFuncMask;\n\t\tthis.stencilFail = source.stencilFail;\n\t\tthis.stencilZFail = source.stencilZFail;\n\t\tthis.stencilZPass = source.stencilZPass;\n\t\tthis.stencilWrite = source.stencilWrite;\n\n\t\tconst srcPlanes = source.clippingPlanes;\n\t\tlet dstPlanes = null;\n\n\t\tif ( srcPlanes !== null ) {\n\n\t\t\tconst n = srcPlanes.length;\n\t\t\tdstPlanes = new Array( n );\n\n\t\t\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\t\t\tdstPlanes[ i ] = srcPlanes[ i ].clone();\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.clippingPlanes = dstPlanes;\n\t\tthis.clipIntersection = source.clipIntersection;\n\t\tthis.clipShadows = source.clipShadows;\n\n\t\tthis.shadowSide = source.shadowSide;\n\n\t\tthis.colorWrite = source.colorWrite;\n\n\t\tthis.precision = source.precision;\n\n\t\tthis.polygonOffset = source.polygonOffset;\n\t\tthis.polygonOffsetFactor = source.polygonOffsetFactor;\n\t\tthis.polygonOffsetUnits = source.polygonOffsetUnits;\n\n\t\tthis.dithering = source.dithering;\n\n\t\tthis.alphaTest = source.alphaTest;\n\t\tthis.alphaHash = source.alphaHash;\n\t\tthis.alphaToCoverage = source.alphaToCoverage;\n\t\tthis.premultipliedAlpha = source.premultipliedAlpha;\n\t\tthis.forceSinglePass = source.forceSinglePass;\n\n\t\tthis.visible = source.visible;\n\n\t\tthis.toneMapped = source.toneMapped;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tonBuild( /* shaderobject, renderer */ ) {\n\n\t\tconsole.warn( 'Material: onBuild() has been removed.' ); // @deprecated, r166\n\n\t}\n\n\tonBeforeRender( /* renderer, scene, camera, geometry, object, group */ ) {\n\n\t\tconsole.warn( 'Material: onBeforeRender() has been removed.' ); // @deprecated, r166\n\n\t}\n\n\n}\n\nclass MeshBasicMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshBasicMaterial = true;\n\n\t\tthis.type = 'MeshBasicMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // emissive\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\n// Fast Half Float Conversions, http://www.fox-toolkit.org/ftp/fasthalffloatconversion.pdf\n\nconst _tables = /*@__PURE__*/ _generateTables();\n\nfunction _generateTables() {\n\n\t// float32 to float16 helpers\n\n\tconst buffer = new ArrayBuffer( 4 );\n\tconst floatView = new Float32Array( buffer );\n\tconst uint32View = new Uint32Array( buffer );\n\n\tconst baseTable = new Uint32Array( 512 );\n\tconst shiftTable = new Uint32Array( 512 );\n\n\tfor ( let i = 0; i < 256; ++ i ) {\n\n\t\tconst e = i - 127;\n\n\t\t// very small number (0, -0)\n\n\t\tif ( e < - 27 ) {\n\n\t\t\tbaseTable[ i ] = 0x0000;\n\t\t\tbaseTable[ i | 0x100 ] = 0x8000;\n\t\t\tshiftTable[ i ] = 24;\n\t\t\tshiftTable[ i | 0x100 ] = 24;\n\n\t\t\t// small number (denorm)\n\n\t\t} else if ( e < - 14 ) {\n\n\t\t\tbaseTable[ i ] = 0x0400 >> ( - e - 14 );\n\t\t\tbaseTable[ i | 0x100 ] = ( 0x0400 >> ( - e - 14 ) ) | 0x8000;\n\t\t\tshiftTable[ i ] = - e - 1;\n\t\t\tshiftTable[ i | 0x100 ] = - e - 1;\n\n\t\t\t// normal number\n\n\t\t} else if ( e <= 15 ) {\n\n\t\t\tbaseTable[ i ] = ( e + 15 ) << 10;\n\t\t\tbaseTable[ i | 0x100 ] = ( ( e + 15 ) << 10 ) | 0x8000;\n\t\t\tshiftTable[ i ] = 13;\n\t\t\tshiftTable[ i | 0x100 ] = 13;\n\n\t\t\t// large number (Infinity, -Infinity)\n\n\t\t} else if ( e < 128 ) {\n\n\t\t\tbaseTable[ i ] = 0x7c00;\n\t\t\tbaseTable[ i | 0x100 ] = 0xfc00;\n\t\t\tshiftTable[ i ] = 24;\n\t\t\tshiftTable[ i | 0x100 ] = 24;\n\n\t\t\t// stay (NaN, Infinity, -Infinity)\n\n\t\t} else {\n\n\t\t\tbaseTable[ i ] = 0x7c00;\n\t\t\tbaseTable[ i | 0x100 ] = 0xfc00;\n\t\t\tshiftTable[ i ] = 13;\n\t\t\tshiftTable[ i | 0x100 ] = 13;\n\n\t\t}\n\n\t}\n\n\t// float16 to float32 helpers\n\n\tconst mantissaTable = new Uint32Array( 2048 );\n\tconst exponentTable = new Uint32Array( 64 );\n\tconst offsetTable = new Uint32Array( 64 );\n\n\tfor ( let i = 1; i < 1024; ++ i ) {\n\n\t\tlet m = i << 13; // zero pad mantissa bits\n\t\tlet e = 0; // zero exponent\n\n\t\t// normalized\n\t\twhile ( ( m & 0x00800000 ) === 0 ) {\n\n\t\t\tm <<= 1;\n\t\t\te -= 0x00800000; // decrement exponent\n\n\t\t}\n\n\t\tm &= ~ 0x00800000; // clear leading 1 bit\n\t\te += 0x38800000; // adjust bias\n\n\t\tmantissaTable[ i ] = m | e;\n\n\t}\n\n\tfor ( let i = 1024; i < 2048; ++ i ) {\n\n\t\tmantissaTable[ i ] = 0x38000000 + ( ( i - 1024 ) << 13 );\n\n\t}\n\n\tfor ( let i = 1; i < 31; ++ i ) {\n\n\t\texponentTable[ i ] = i << 23;\n\n\t}\n\n\texponentTable[ 31 ] = 0x47800000;\n\texponentTable[ 32 ] = 0x80000000;\n\n\tfor ( let i = 33; i < 63; ++ i ) {\n\n\t\texponentTable[ i ] = 0x80000000 + ( ( i - 32 ) << 23 );\n\n\t}\n\n\texponentTable[ 63 ] = 0xc7800000;\n\n\tfor ( let i = 1; i < 64; ++ i ) {\n\n\t\tif ( i !== 32 ) {\n\n\t\t\toffsetTable[ i ] = 1024;\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tfloatView: floatView,\n\t\tuint32View: uint32View,\n\t\tbaseTable: baseTable,\n\t\tshiftTable: shiftTable,\n\t\tmantissaTable: mantissaTable,\n\t\texponentTable: exponentTable,\n\t\toffsetTable: offsetTable\n\t};\n\n}\n\n// float32 to float16\n\nfunction toHalfFloat( val ) {\n\n\tif ( Math.abs( val ) > 65504 ) console.warn( 'THREE.DataUtils.toHalfFloat(): Value out of range.' );\n\n\tval = clamp( val, - 65504, 65504 );\n\n\t_tables.floatView[ 0 ] = val;\n\tconst f = _tables.uint32View[ 0 ];\n\tconst e = ( f >> 23 ) & 0x1ff;\n\treturn _tables.baseTable[ e ] + ( ( f & 0x007fffff ) >> _tables.shiftTable[ e ] );\n\n}\n\n// float16 to float32\n\nfunction fromHalfFloat( val ) {\n\n\tconst m = val >> 10;\n\t_tables.uint32View[ 0 ] = _tables.mantissaTable[ _tables.offsetTable[ m ] + ( val & 0x3ff ) ] + _tables.exponentTable[ m ];\n\treturn _tables.floatView[ 0 ];\n\n}\n\nconst DataUtils = {\n\ttoHalfFloat: toHalfFloat,\n\tfromHalfFloat: fromHalfFloat,\n};\n\nconst _vector$9 = /*@__PURE__*/ new Vector3();\nconst _vector2$1 = /*@__PURE__*/ new Vector2();\n\nclass BufferAttribute {\n\n\tconstructor( array, itemSize, normalized = false ) {\n\n\t\tif ( Array.isArray( array ) ) {\n\n\t\t\tthrow new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' );\n\n\t\t}\n\n\t\tthis.isBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.array = array;\n\t\tthis.itemSize = itemSize;\n\t\tthis.count = array !== undefined ? array.length / itemSize : 0;\n\t\tthis.normalized = normalized;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis._updateRange = { offset: 0, count: - 1 };\n\t\tthis.updateRanges = [];\n\t\tthis.gpuType = FloatType;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tget updateRange() {\n\n\t\twarnOnce( 'THREE.BufferAttribute: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead.' ); // @deprecated, r159\n\t\treturn this._updateRange;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.itemSize = source.itemSize;\n\t\tthis.count = source.count;\n\t\tthis.normalized = source.normalized;\n\n\t\tthis.usage = source.usage;\n\t\tthis.gpuType = source.gpuType;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.itemSize;\n\t\tindex2 *= attribute.itemSize;\n\n\t\tfor ( let i = 0, l = this.itemSize; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcopyArray( array ) {\n\n\t\tthis.array.set( array );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tif ( this.itemSize === 2 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector2$1.fromBufferAttribute( this, i );\n\t\t\t\t_vector2$1.applyMatrix3( m );\n\n\t\t\t\tthis.setXY( i, _vector2$1.x, _vector2$1.y );\n\n\t\t\t}\n\n\t\t} else if ( this.itemSize === 3 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector$9.fromBufferAttribute( this, i );\n\t\t\t\t_vector$9.applyMatrix3( m );\n\n\t\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$9.fromBufferAttribute( this, i );\n\n\t\t\t_vector$9.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$9.x, _vector$9.y, _vector$9.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\t// Matching BufferAttribute constructor, do not normalize the array.\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index, component ) {\n\n\t\tlet value = this.array[ index * this.itemSize + component ];\n\n\t\tif ( this.normalized ) value = denormalize( value, this.array );\n\n\t\treturn value;\n\n\t}\n\n\tsetComponent( index, component, value ) {\n\n\t\tif ( this.normalized ) value = normalize( value, this.array );\n\n\t\tthis.array[ index * this.itemSize + component ] = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = this.array[ index * this.itemSize ];\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.array[ index * this.itemSize ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = this.array[ index * this.itemSize + 1 ];\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.array[ index * this.itemSize + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = this.array[ index * this.itemSize + 2 ];\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.array[ index * this.itemSize + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = this.array[ index * this.itemSize + 3 ];\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.array[ index * this.itemSize + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\t\tthis.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.array, this.itemSize ).copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\titemSize: this.itemSize,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tarray: Array.from( this.array ),\n\t\t\tnormalized: this.normalized\n\t\t};\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( this.usage !== StaticDrawUsage ) data.usage = this.usage;\n\n\t\treturn data;\n\n\t}\n\n}\n\n//\n\nclass Int8BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint8BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint8ClampedBufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint8ClampedArray( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Int16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Int32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Int32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Uint32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nclass Float16BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Uint16Array( array ), itemSize, normalized );\n\n\t\tthis.isFloat16BufferAttribute = true;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = fromHalfFloat( this.array[ index * this.itemSize ] );\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.array[ index * this.itemSize ] = toHalfFloat( x );\n\n\t\treturn this;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = fromHalfFloat( this.array[ index * this.itemSize + 1 ] );\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.array[ index * this.itemSize + 1 ] = toHalfFloat( y );\n\n\t\treturn this;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = fromHalfFloat( this.array[ index * this.itemSize + 2 ] );\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.array[ index * this.itemSize + 2 ] = toHalfFloat( z );\n\n\t\treturn this;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = fromHalfFloat( this.array[ index * this.itemSize + 3 ] );\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.array[ index * this.itemSize + 3 ] = toHalfFloat( w );\n\n\t\treturn this;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\t\tthis.array[ index + 2 ] = toHalfFloat( z );\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.array[ index + 0 ] = toHalfFloat( x );\n\t\tthis.array[ index + 1 ] = toHalfFloat( y );\n\t\tthis.array[ index + 2 ] = toHalfFloat( z );\n\t\tthis.array[ index + 3 ] = toHalfFloat( w );\n\n\t\treturn this;\n\n\t}\n\n}\n\n\nclass Float32BufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized ) {\n\n\t\tsuper( new Float32Array( array ), itemSize, normalized );\n\n\t}\n\n}\n\nlet _id$2 = 0;\n\nconst _m1$2 = /*@__PURE__*/ new Matrix4();\nconst _obj = /*@__PURE__*/ new Object3D();\nconst _offset = /*@__PURE__*/ new Vector3();\nconst _box$2 = /*@__PURE__*/ new Box3();\nconst _boxMorphTargets = /*@__PURE__*/ new Box3();\nconst _vector$8 = /*@__PURE__*/ new Vector3();\n\nclass BufferGeometry extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isBufferGeometry = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _id$2 ++ } );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.name = '';\n\t\tthis.type = 'BufferGeometry';\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\n\t\tthis.morphAttributes = {};\n\t\tthis.morphTargetsRelative = false;\n\n\t\tthis.groups = [];\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\tthis.drawRange = { start: 0, count: Infinity };\n\n\t\tthis.userData = {};\n\n\t}\n\n\tgetIndex() {\n\n\t\treturn this.index;\n\n\t}\n\n\tsetIndex( index ) {\n\n\t\tif ( Array.isArray( index ) ) {\n\n\t\t\tthis.index = new ( arrayNeedsUint32( index ) ? Uint32BufferAttribute : Uint16BufferAttribute )( index, 1 );\n\n\t\t} else {\n\n\t\t\tthis.index = index;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetAttribute( name ) {\n\n\t\treturn this.attributes[ name ];\n\n\t}\n\n\tsetAttribute( name, attribute ) {\n\n\t\tthis.attributes[ name ] = attribute;\n\n\t\treturn this;\n\n\t}\n\n\tdeleteAttribute( name ) {\n\n\t\tdelete this.attributes[ name ];\n\n\t\treturn this;\n\n\t}\n\n\thasAttribute( name ) {\n\n\t\treturn this.attributes[ name ] !== undefined;\n\n\t}\n\n\taddGroup( start, count, materialIndex = 0 ) {\n\n\t\tthis.groups.push( {\n\n\t\t\tstart: start,\n\t\t\tcount: count,\n\t\t\tmaterialIndex: materialIndex\n\n\t\t} );\n\n\t}\n\n\tclearGroups() {\n\n\t\tthis.groups = [];\n\n\t}\n\n\tsetDrawRange( start, count ) {\n\n\t\tthis.drawRange.start = start;\n\t\tthis.drawRange.count = count;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tconst position = this.attributes.position;\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tposition.applyMatrix4( matrix );\n\n\t\t\tposition.needsUpdate = true;\n\n\t\t}\n\n\t\tconst normal = this.attributes.normal;\n\n\t\tif ( normal !== undefined ) {\n\n\t\t\tconst normalMatrix = new Matrix3().getNormalMatrix( matrix );\n\n\t\t\tnormal.applyNormalMatrix( normalMatrix );\n\n\t\t\tnormal.needsUpdate = true;\n\n\t\t}\n\n\t\tconst tangent = this.attributes.tangent;\n\n\t\tif ( tangent !== undefined ) {\n\n\t\t\ttangent.transformDirection( matrix );\n\n\t\t\ttangent.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tthis.computeBoundingBox();\n\n\t\t}\n\n\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\tthis.computeBoundingSphere();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\t_m1$2.makeRotationFromQuaternion( q );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\trotateX( angle ) {\n\n\t\t// rotate geometry around world x-axis\n\n\t\t_m1$2.makeRotationX( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\trotateY( angle ) {\n\n\t\t// rotate geometry around world y-axis\n\n\t\t_m1$2.makeRotationY( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\trotateZ( angle ) {\n\n\t\t// rotate geometry around world z-axis\n\n\t\t_m1$2.makeRotationZ( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( x, y, z ) {\n\n\t\t// translate geometry\n\n\t\t_m1$2.makeTranslation( x, y, z );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\tscale( x, y, z ) {\n\n\t\t// scale geometry\n\n\t\t_m1$2.makeScale( x, y, z );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t}\n\n\tlookAt( vector ) {\n\n\t\t_obj.lookAt( vector );\n\n\t\t_obj.updateMatrix();\n\n\t\tthis.applyMatrix4( _obj.matrix );\n\n\t\treturn this;\n\n\t}\n\n\tcenter() {\n\n\t\tthis.computeBoundingBox();\n\n\t\tthis.boundingBox.getCenter( _offset ).negate();\n\n\t\tthis.translate( _offset.x, _offset.y, _offset.z );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tconst position = [];\n\n\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\tconst point = points[ i ];\n\t\t\tposition.push( point.x, point.y, point.z || 0 );\n\n\t\t}\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( position, 3 ) );\n\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.', this );\n\n\t\t\tthis.boundingBox.set(\n\t\t\t\tnew Vector3( - Infinity, - Infinity, - Infinity ),\n\t\t\t\tnew Vector3( + Infinity, + Infinity, + Infinity )\n\t\t\t);\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tthis.boundingBox.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_box$2.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.min, _box$2.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( this.boundingBox.max, _box$2.max );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$2.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$2.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.boundingBox.makeEmpty();\n\n\t\t}\n\n\t\tif ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.', this );\n\n\t\t\tthis.boundingSphere.set( new Vector3(), Infinity );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position ) {\n\n\t\t\t// first, find the center of the bounding sphere\n\n\t\t\tconst center = this.boundingSphere.center;\n\n\t\t\t_box$2.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_boxMorphTargets.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$2.min, _boxMorphTargets.min );\n\t\t\t\t\t\t_box$2.expandByPoint( _vector$8 );\n\n\t\t\t\t\t\t_vector$8.addVectors( _box$2.max, _boxMorphTargets.max );\n\t\t\t\t\t\t_box$2.expandByPoint( _vector$8 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_box$2.expandByPoint( _boxMorphTargets.min );\n\t\t\t\t\t\t_box$2.expandByPoint( _boxMorphTargets.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_box$2.getCenter( center );\n\n\t\t\t// second, try to find a boundingSphere with a radius smaller than the\n\t\t\t// boundingSphere of the boundingBox: sqrt(3) smaller in the best case\n\n\t\t\tlet maxRadiusSq = 0;\n\n\t\t\tfor ( let i = 0, il = position.count; i < il; i ++ ) {\n\n\t\t\t\t_vector$8.fromBufferAttribute( position, i );\n\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t}\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\tconst morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t\t\t\tfor ( let j = 0, jl = morphAttribute.count; j < jl; j ++ ) {\n\n\t\t\t\t\t\t_vector$8.fromBufferAttribute( morphAttribute, j );\n\n\t\t\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t\t\t_offset.fromBufferAttribute( position, j );\n\t\t\t\t\t\t\t_vector$8.add( _offset );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$8 ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.boundingSphere.radius = Math.sqrt( maxRadiusSq );\n\n\t\t\tif ( isNaN( this.boundingSphere.radius ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeTangents() {\n\n\t\tconst index = this.index;\n\t\tconst attributes = this.attributes;\n\n\t\t// based on http://www.terathon.com/code/tangent.html\n\t\t// (per vertex tangents)\n\n\t\tif ( index === null ||\n\t\t\t attributes.position === undefined ||\n\t\t\t attributes.normal === undefined ||\n\t\t\t attributes.uv === undefined ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst positionAttribute = attributes.position;\n\t\tconst normalAttribute = attributes.normal;\n\t\tconst uvAttribute = attributes.uv;\n\n\t\tif ( this.hasAttribute( 'tangent' ) === false ) {\n\n\t\t\tthis.setAttribute( 'tangent', new BufferAttribute( new Float32Array( 4 * positionAttribute.count ), 4 ) );\n\n\t\t}\n\n\t\tconst tangentAttribute = this.getAttribute( 'tangent' );\n\n\t\tconst tan1 = [], tan2 = [];\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i ++ ) {\n\n\t\t\ttan1[ i ] = new Vector3();\n\t\t\ttan2[ i ] = new Vector3();\n\n\t\t}\n\n\t\tconst vA = new Vector3(),\n\t\t\tvB = new Vector3(),\n\t\t\tvC = new Vector3(),\n\n\t\t\tuvA = new Vector2(),\n\t\t\tuvB = new Vector2(),\n\t\t\tuvC = new Vector2(),\n\n\t\t\tsdir = new Vector3(),\n\t\t\ttdir = new Vector3();\n\n\t\tfunction handleTriangle( a, b, c ) {\n\n\t\t\tvA.fromBufferAttribute( positionAttribute, a );\n\t\t\tvB.fromBufferAttribute( positionAttribute, b );\n\t\t\tvC.fromBufferAttribute( positionAttribute, c );\n\n\t\t\tuvA.fromBufferAttribute( uvAttribute, a );\n\t\t\tuvB.fromBufferAttribute( uvAttribute, b );\n\t\t\tuvC.fromBufferAttribute( uvAttribute, c );\n\n\t\t\tvB.sub( vA );\n\t\t\tvC.sub( vA );\n\n\t\t\tuvB.sub( uvA );\n\t\t\tuvC.sub( uvA );\n\n\t\t\tconst r = 1.0 / ( uvB.x * uvC.y - uvC.x * uvB.y );\n\n\t\t\t// silently ignore degenerate uv triangles having coincident or colinear vertices\n\n\t\t\tif ( ! isFinite( r ) ) return;\n\n\t\t\tsdir.copy( vB ).multiplyScalar( uvC.y ).addScaledVector( vC, - uvB.y ).multiplyScalar( r );\n\t\t\ttdir.copy( vC ).multiplyScalar( uvB.x ).addScaledVector( vB, - uvC.x ).multiplyScalar( r );\n\n\t\t\ttan1[ a ].add( sdir );\n\t\t\ttan1[ b ].add( sdir );\n\t\t\ttan1[ c ].add( sdir );\n\n\t\t\ttan2[ a ].add( tdir );\n\t\t\ttan2[ b ].add( tdir );\n\t\t\ttan2[ c ].add( tdir );\n\n\t\t}\n\n\t\tlet groups = this.groups;\n\n\t\tif ( groups.length === 0 ) {\n\n\t\t\tgroups = [ {\n\t\t\t\tstart: 0,\n\t\t\t\tcount: index.count\n\t\t\t} ];\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleTriangle(\n\t\t\t\t\tindex.getX( j + 0 ),\n\t\t\t\t\tindex.getX( j + 1 ),\n\t\t\t\t\tindex.getX( j + 2 )\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst tmp = new Vector3(), tmp2 = new Vector3();\n\t\tconst n = new Vector3(), n2 = new Vector3();\n\n\t\tfunction handleVertex( v ) {\n\n\t\t\tn.fromBufferAttribute( normalAttribute, v );\n\t\t\tn2.copy( n );\n\n\t\t\tconst t = tan1[ v ];\n\n\t\t\t// Gram-Schmidt orthogonalize\n\n\t\t\ttmp.copy( t );\n\t\t\ttmp.sub( n.multiplyScalar( n.dot( t ) ) ).normalize();\n\n\t\t\t// Calculate handedness\n\n\t\t\ttmp2.crossVectors( n2, t );\n\t\t\tconst test = tmp2.dot( tan2[ v ] );\n\t\t\tconst w = ( test < 0.0 ) ? - 1.0 : 1.0;\n\n\t\t\ttangentAttribute.setXYZW( v, tmp.x, tmp.y, tmp.z, w );\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleVertex( index.getX( j + 0 ) );\n\t\t\t\thandleVertex( index.getX( j + 1 ) );\n\t\t\t\thandleVertex( index.getX( j + 2 ) );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcomputeVertexNormals() {\n\n\t\tconst index = this.index;\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute !== undefined ) {\n\n\t\t\tlet normalAttribute = this.getAttribute( 'normal' );\n\n\t\t\tif ( normalAttribute === undefined ) {\n\n\t\t\t\tnormalAttribute = new BufferAttribute( new Float32Array( positionAttribute.count * 3 ), 3 );\n\t\t\t\tthis.setAttribute( 'normal', normalAttribute );\n\n\t\t\t} else {\n\n\t\t\t\t// reset existing normals to zero\n\n\t\t\t\tfor ( let i = 0, il = normalAttribute.count; i < il; i ++ ) {\n\n\t\t\t\t\tnormalAttribute.setXYZ( i, 0, 0, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst pA = new Vector3(), pB = new Vector3(), pC = new Vector3();\n\t\t\tconst nA = new Vector3(), nB = new Vector3(), nC = new Vector3();\n\t\t\tconst cb = new Vector3(), ab = new Vector3();\n\n\t\t\t// indexed elements\n\n\t\t\tif ( index ) {\n\n\t\t\t\tfor ( let i = 0, il = index.count; i < il; i += 3 ) {\n\n\t\t\t\t\tconst vA = index.getX( i + 0 );\n\t\t\t\t\tconst vB = index.getX( i + 1 );\n\t\t\t\t\tconst vC = index.getX( i + 2 );\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, vA );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, vB );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, vC );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnA.fromBufferAttribute( normalAttribute, vA );\n\t\t\t\t\tnB.fromBufferAttribute( normalAttribute, vB );\n\t\t\t\t\tnC.fromBufferAttribute( normalAttribute, vC );\n\n\t\t\t\t\tnA.add( cb );\n\t\t\t\t\tnB.add( cb );\n\t\t\t\t\tnC.add( cb );\n\n\t\t\t\t\tnormalAttribute.setXYZ( vA, nA.x, nA.y, nA.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vB, nB.x, nB.y, nB.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vC, nC.x, nC.y, nC.z );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed elements (unconnected triangle soup)\n\n\t\t\t\tfor ( let i = 0, il = positionAttribute.count; i < il; i += 3 ) {\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, i + 0 );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, i + 1 );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, i + 2 );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnormalAttribute.setXYZ( i + 0, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 1, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 2, cb.x, cb.y, cb.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.normalizeNormals();\n\n\t\t\tnormalAttribute.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tnormalizeNormals() {\n\n\t\tconst normals = this.attributes.normal;\n\n\t\tfor ( let i = 0, il = normals.count; i < il; i ++ ) {\n\n\t\t\t_vector$8.fromBufferAttribute( normals, i );\n\n\t\t\t_vector$8.normalize();\n\n\t\t\tnormals.setXYZ( i, _vector$8.x, _vector$8.y, _vector$8.z );\n\n\t\t}\n\n\t}\n\n\ttoNonIndexed() {\n\n\t\tfunction convertBufferAttribute( attribute, indices ) {\n\n\t\t\tconst array = attribute.array;\n\t\t\tconst itemSize = attribute.itemSize;\n\t\t\tconst normalized = attribute.normalized;\n\n\t\t\tconst array2 = new array.constructor( indices.length * itemSize );\n\n\t\t\tlet index = 0, index2 = 0;\n\n\t\t\tfor ( let i = 0, l = indices.length; i < l; i ++ ) {\n\n\t\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\tindex = indices[ i ] * attribute.data.stride + attribute.offset;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tindex = indices[ i ] * itemSize;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let j = 0; j < itemSize; j ++ ) {\n\n\t\t\t\t\tarray2[ index2 ++ ] = array[ index ++ ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( array2, itemSize, normalized );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.index === null ) {\n\n\t\t\tconsole.warn( 'THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.' );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst geometry2 = new BufferGeometry();\n\n\t\tconst indices = this.index.array;\n\t\tconst attributes = this.attributes;\n\n\t\t// attributes\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\n\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\tgeometry2.setAttribute( name, newAttribute );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = this.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst morphArray = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, il = morphAttribute.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = morphAttribute[ i ];\n\n\t\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\t\tmorphArray.push( newAttribute );\n\n\t\t\t}\n\n\t\t\tgeometry2.morphAttributes[ name ] = morphArray;\n\n\t\t}\n\n\t\tgeometry2.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = this.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tgeometry2.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\treturn geometry2;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'BufferGeometry',\n\t\t\t\tgenerator: 'BufferGeometry.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard BufferGeometry serialization\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\tif ( this.parameters !== undefined ) {\n\n\t\t\tconst parameters = this.parameters;\n\n\t\t\tfor ( const key in parameters ) {\n\n\t\t\t\tif ( parameters[ key ] !== undefined ) data[ key ] = parameters[ key ];\n\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t}\n\n\t\t// for simplicity the code assumes attributes are not shared across geometries, see #15811\n\n\t\tdata.data = { attributes: {} };\n\n\t\tconst index = this.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tdata.data.index = {\n\t\t\t\ttype: index.array.constructor.name,\n\t\t\t\tarray: Array.prototype.slice.call( index.array )\n\t\t\t};\n\n\t\t}\n\n\t\tconst attributes = this.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\n\t\t\tdata.data.attributes[ key ] = attribute.toJSON( data.data );\n\n\t\t}\n\n\t\tconst morphAttributes = {};\n\t\tlet hasMorphAttributes = false;\n\n\t\tfor ( const key in this.morphAttributes ) {\n\n\t\t\tconst attributeArray = this.morphAttributes[ key ];\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = attributeArray[ i ];\n\n\t\t\t\tarray.push( attribute.toJSON( data.data ) );\n\n\t\t\t}\n\n\t\t\tif ( array.length > 0 ) {\n\n\t\t\t\tmorphAttributes[ key ] = array;\n\n\t\t\t\thasMorphAttributes = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( hasMorphAttributes ) {\n\n\t\t\tdata.data.morphAttributes = morphAttributes;\n\t\t\tdata.data.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t}\n\n\t\tconst groups = this.groups;\n\n\t\tif ( groups.length > 0 ) {\n\n\t\t\tdata.data.groups = JSON.parse( JSON.stringify( groups ) );\n\n\t\t}\n\n\t\tconst boundingSphere = this.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tdata.data.boundingSphere = {\n\t\t\t\tcenter: boundingSphere.center.toArray(),\n\t\t\t\tradius: boundingSphere.radius\n\t\t\t};\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\t// reset\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\t\tthis.morphAttributes = {};\n\t\tthis.groups = [];\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\t// used for storing cloned, shared data\n\n\t\tconst data = {};\n\n\t\t// name\n\n\t\tthis.name = source.name;\n\n\t\t// index\n\n\t\tconst index = source.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tthis.setIndex( index.clone( data ) );\n\n\t\t}\n\n\t\t// attributes\n\n\t\tconst attributes = source.attributes;\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\t\t\tthis.setAttribute( name, attribute.clone( data ) );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = source.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, l = morphAttribute.length; i < l; i ++ ) {\n\n\t\t\t\tarray.push( morphAttribute[ i ].clone( data ) );\n\n\t\t\t}\n\n\t\t\tthis.morphAttributes[ name ] = array;\n\n\t\t}\n\n\t\tthis.morphTargetsRelative = source.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = source.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tthis.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\t// bounding box\n\n\t\tconst boundingBox = source.boundingBox;\n\n\t\tif ( boundingBox !== null ) {\n\n\t\t\tthis.boundingBox = boundingBox.clone();\n\n\t\t}\n\n\t\t// bounding sphere\n\n\t\tconst boundingSphere = source.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tthis.boundingSphere = boundingSphere.clone();\n\n\t\t}\n\n\t\t// draw range\n\n\t\tthis.drawRange.start = source.drawRange.start;\n\t\tthis.drawRange.count = source.drawRange.count;\n\n\t\t// user data\n\n\t\tthis.userData = source.userData;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nconst _inverseMatrix$3 = /*@__PURE__*/ new Matrix4();\nconst _ray$3 = /*@__PURE__*/ new Ray();\nconst _sphere$6 = /*@__PURE__*/ new Sphere();\nconst _sphereHitAt = /*@__PURE__*/ new Vector3();\n\nconst _vA$1 = /*@__PURE__*/ new Vector3();\nconst _vB$1 = /*@__PURE__*/ new Vector3();\nconst _vC$1 = /*@__PURE__*/ new Vector3();\n\nconst _tempA = /*@__PURE__*/ new Vector3();\nconst _morphA = /*@__PURE__*/ new Vector3();\n\nconst _uvA$1 = /*@__PURE__*/ new Vector2();\nconst _uvB$1 = /*@__PURE__*/ new Vector2();\nconst _uvC$1 = /*@__PURE__*/ new Vector2();\n\nconst _normalA = /*@__PURE__*/ new Vector3();\nconst _normalB = /*@__PURE__*/ new Vector3();\nconst _normalC = /*@__PURE__*/ new Vector3();\n\nconst _intersectionPoint = /*@__PURE__*/ new Vector3();\nconst _intersectionPointWorld = /*@__PURE__*/ new Vector3();\n\nclass Mesh extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new MeshBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isMesh = true;\n\n\t\tthis.type = 'Mesh';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.morphTargetInfluences !== undefined ) {\n\n\t\t\tthis.morphTargetInfluences = source.morphTargetInfluences.slice();\n\n\t\t}\n\n\t\tif ( source.morphTargetDictionary !== undefined ) {\n\n\t\t\tthis.morphTargetDictionary = Object.assign( {}, source.morphTargetDictionary );\n\n\t\t}\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tgetVertexPosition( index, target ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst position = geometry.attributes.position;\n\t\tconst morphPosition = geometry.morphAttributes.position;\n\t\tconst morphTargetsRelative = geometry.morphTargetsRelative;\n\n\t\ttarget.fromBufferAttribute( position, index );\n\n\t\tconst morphInfluences = this.morphTargetInfluences;\n\n\t\tif ( morphPosition && morphInfluences ) {\n\n\t\t\t_morphA.set( 0, 0, 0 );\n\n\t\t\tfor ( let i = 0, il = morphPosition.length; i < il; i ++ ) {\n\n\t\t\t\tconst influence = morphInfluences[ i ];\n\t\t\t\tconst morphAttribute = morphPosition[ i ];\n\n\t\t\t\tif ( influence === 0 ) continue;\n\n\t\t\t\t_tempA.fromBufferAttribute( morphAttribute, index );\n\n\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA, influence );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_morphA.addScaledVector( _tempA.sub( target ), influence );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\ttarget.add( _morphA );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\t\tconst matrixWorld = this.matrixWorld;\n\n\t\tif ( material === undefined ) return;\n\n\t\t// test with bounding sphere in world space\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$6.copy( geometry.boundingSphere );\n\t\t_sphere$6.applyMatrix4( matrixWorld );\n\n\t\t// check distance from ray origin to bounding sphere\n\n\t\t_ray$3.copy( raycaster.ray ).recast( raycaster.near );\n\n\t\tif ( _sphere$6.containsPoint( _ray$3.origin ) === false ) {\n\n\t\t\tif ( _ray$3.intersectSphere( _sphere$6, _sphereHitAt ) === null ) return;\n\n\t\t\tif ( _ray$3.origin.distanceToSquared( _sphereHitAt ) > ( raycaster.far - raycaster.near ) ** 2 ) return;\n\n\t\t}\n\n\t\t// convert ray to local space of mesh\n\n\t\t_inverseMatrix$3.copy( matrixWorld ).invert();\n\t\t_ray$3.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$3 );\n\n\t\t// test with bounding box in local space\n\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tif ( _ray$3.intersectsBox( geometry.boundingBox ) === false ) return;\n\n\t\t}\n\n\t\t// test for intersections with geometry\n\n\t\tthis._computeIntersections( raycaster, intersects, _ray$3 );\n\n\t}\n\n\t_computeIntersections( raycaster, intersects, rayLocalSpace ) {\n\n\t\tlet intersection;\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\n\t\tconst index = geometry.index;\n\t\tconst position = geometry.attributes.position;\n\t\tconst uv = geometry.attributes.uv;\n\t\tconst uv1 = geometry.attributes.uv1;\n\t\tconst normal = geometry.attributes.normal;\n\t\tconst groups = geometry.groups;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\tif ( index !== null ) {\n\n\t\t\t// indexed buffer geometry\n\n\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\tconst end = Math.min( index.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\tconst a = index.getX( j );\n\t\t\t\t\t\tconst b = index.getX( j + 1 );\n\t\t\t\t\t\tconst c = index.getX( j + 2 );\n\n\t\t\t\t\t\tintersection = checkGeometryIntersection( this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\tconst a = index.getX( i );\n\t\t\t\t\tconst b = index.getX( i + 1 );\n\t\t\t\t\tconst c = index.getX( i + 2 );\n\n\t\t\t\t\tintersection = checkGeometryIntersection( this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( position !== undefined ) {\n\n\t\t\t// non-indexed buffer geometry\n\n\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\tconst end = Math.min( position.count, Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) ) );\n\n\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\tconst a = j;\n\t\t\t\t\t\tconst b = j + 1;\n\t\t\t\t\t\tconst c = j + 2;\n\n\t\t\t\t\t\tintersection = checkGeometryIntersection( this, groupMaterial, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\tconst end = Math.min( position.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\tconst a = i;\n\t\t\t\t\tconst b = i + 1;\n\t\t\t\t\tconst c = i + 2;\n\n\t\t\t\t\tintersection = checkGeometryIntersection( this, material, raycaster, rayLocalSpace, uv, uv1, normal, a, b, c );\n\n\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction checkIntersection$1( object, material, raycaster, ray, pA, pB, pC, point ) {\n\n\tlet intersect;\n\n\tif ( material.side === BackSide ) {\n\n\t\tintersect = ray.intersectTriangle( pC, pB, pA, true, point );\n\n\t} else {\n\n\t\tintersect = ray.intersectTriangle( pA, pB, pC, ( material.side === FrontSide ), point );\n\n\t}\n\n\tif ( intersect === null ) return null;\n\n\t_intersectionPointWorld.copy( point );\n\t_intersectionPointWorld.applyMatrix4( object.matrixWorld );\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectionPointWorld );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return null;\n\n\treturn {\n\t\tdistance: distance,\n\t\tpoint: _intersectionPointWorld.clone(),\n\t\tobject: object\n\t};\n\n}\n\nfunction checkGeometryIntersection( object, material, raycaster, ray, uv, uv1, normal, a, b, c ) {\n\n\tobject.getVertexPosition( a, _vA$1 );\n\tobject.getVertexPosition( b, _vB$1 );\n\tobject.getVertexPosition( c, _vC$1 );\n\n\tconst intersection = checkIntersection$1( object, material, raycaster, ray, _vA$1, _vB$1, _vC$1, _intersectionPoint );\n\n\tif ( intersection ) {\n\n\t\tif ( uv ) {\n\n\t\t\t_uvA$1.fromBufferAttribute( uv, a );\n\t\t\t_uvB$1.fromBufferAttribute( uv, b );\n\t\t\t_uvC$1.fromBufferAttribute( uv, c );\n\n\t\t\tintersection.uv = Triangle.getInterpolation( _intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2() );\n\n\t\t}\n\n\t\tif ( uv1 ) {\n\n\t\t\t_uvA$1.fromBufferAttribute( uv1, a );\n\t\t\t_uvB$1.fromBufferAttribute( uv1, b );\n\t\t\t_uvC$1.fromBufferAttribute( uv1, c );\n\n\t\t\tintersection.uv1 = Triangle.getInterpolation( _intersectionPoint, _vA$1, _vB$1, _vC$1, _uvA$1, _uvB$1, _uvC$1, new Vector2() );\n\n\t\t}\n\n\t\tif ( normal ) {\n\n\t\t\t_normalA.fromBufferAttribute( normal, a );\n\t\t\t_normalB.fromBufferAttribute( normal, b );\n\t\t\t_normalC.fromBufferAttribute( normal, c );\n\n\t\t\tintersection.normal = Triangle.getInterpolation( _intersectionPoint, _vA$1, _vB$1, _vC$1, _normalA, _normalB, _normalC, new Vector3() );\n\n\t\t\tif ( intersection.normal.dot( ray.direction ) > 0 ) {\n\n\t\t\t\tintersection.normal.multiplyScalar( - 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst face = {\n\t\t\ta: a,\n\t\t\tb: b,\n\t\t\tc: c,\n\t\t\tnormal: new Vector3(),\n\t\t\tmaterialIndex: 0\n\t\t};\n\n\t\tTriangle.getNormal( _vA$1, _vB$1, _vC$1, face.normal );\n\n\t\tintersection.face = face;\n\n\t}\n\n\treturn intersection;\n\n}\n\nclass BoxGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'BoxGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tdepth: depth,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\tdepthSegments: depthSegments\n\t\t};\n\n\t\tconst scope = this;\n\n\t\t// segments\n\n\t\twidthSegments = Math.floor( widthSegments );\n\t\theightSegments = Math.floor( heightSegments );\n\t\tdepthSegments = Math.floor( depthSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet numberOfVertices = 0;\n\t\tlet groupStart = 0;\n\n\t\t// build each side of the box geometry\n\n\t\tbuildPlane( 'z', 'y', 'x', - 1, - 1, depth, height, width, depthSegments, heightSegments, 0 ); // px\n\t\tbuildPlane( 'z', 'y', 'x', 1, - 1, depth, height, - width, depthSegments, heightSegments, 1 ); // nx\n\t\tbuildPlane( 'x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2 ); // py\n\t\tbuildPlane( 'x', 'z', 'y', 1, - 1, width, depth, - height, widthSegments, depthSegments, 3 ); // ny\n\t\tbuildPlane( 'x', 'y', 'z', 1, - 1, width, height, depth, widthSegments, heightSegments, 4 ); // pz\n\t\tbuildPlane( 'x', 'y', 'z', - 1, - 1, width, height, - depth, widthSegments, heightSegments, 5 ); // nz\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\tfunction buildPlane( u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex ) {\n\n\t\t\tconst segmentWidth = width / gridX;\n\t\t\tconst segmentHeight = height / gridY;\n\n\t\t\tconst widthHalf = width / 2;\n\t\t\tconst heightHalf = height / 2;\n\t\t\tconst depthHalf = depth / 2;\n\n\t\t\tconst gridX1 = gridX + 1;\n\t\t\tconst gridY1 = gridY + 1;\n\n\t\t\tlet vertexCounter = 0;\n\t\t\tlet groupCount = 0;\n\n\t\t\tconst vector = new Vector3();\n\n\t\t\t// generate vertices, normals and uvs\n\n\t\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\t\tconst y = iy * segmentHeight - heightHalf;\n\n\t\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\t\tconst x = ix * segmentWidth - widthHalf;\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = x * udir;\n\t\t\t\t\tvector[ v ] = y * vdir;\n\t\t\t\t\tvector[ w ] = depthHalf;\n\n\t\t\t\t\t// now apply vector to vertex buffer\n\n\t\t\t\t\tvertices.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = 0;\n\t\t\t\t\tvector[ v ] = 0;\n\t\t\t\t\tvector[ w ] = depth > 0 ? 1 : - 1;\n\n\t\t\t\t\t// now apply vector to normal buffer\n\n\t\t\t\t\tnormals.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// uvs\n\n\t\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t\t\t// counters\n\n\t\t\t\t\tvertexCounter += 1;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// indices\n\n\t\t\t// 1. you need three indices to draw a single face\n\t\t\t// 2. a single segment consists of two faces\n\t\t\t// 3. so we need to generate six (2*3) indices per segment\n\n\t\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\t\tconst a = numberOfVertices + ix + gridX1 * iy;\n\t\t\t\t\tconst b = numberOfVertices + ix + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst c = numberOfVertices + ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst d = numberOfVertices + ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t\t// increase counter\n\n\t\t\t\t\tgroupCount += 6;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, materialIndex );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t\t// update total number of vertices\n\n\t\t\tnumberOfVertices += vertexCounter;\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new BoxGeometry( data.width, data.height, data.depth, data.widthSegments, data.heightSegments, data.depthSegments );\n\n\t}\n\n}\n\n/**\n * Uniform Utilities\n */\n\nfunction cloneUniforms( src ) {\n\n\tconst dst = {};\n\n\tfor ( const u in src ) {\n\n\t\tdst[ u ] = {};\n\n\t\tfor ( const p in src[ u ] ) {\n\n\t\t\tconst property = src[ u ][ p ];\n\n\t\t\tif ( property && ( property.isColor ||\n\t\t\t\tproperty.isMatrix3 || property.isMatrix4 ||\n\t\t\t\tproperty.isVector2 || property.isVector3 || property.isVector4 ||\n\t\t\t\tproperty.isTexture || property.isQuaternion ) ) {\n\n\t\t\t\tif ( property.isRenderTargetTexture ) {\n\n\t\t\t\t\tconsole.warn( 'UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().' );\n\t\t\t\t\tdst[ u ][ p ] = null;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdst[ u ][ p ] = property.clone();\n\n\t\t\t\t}\n\n\t\t\t} else if ( Array.isArray( property ) ) {\n\n\t\t\t\tdst[ u ][ p ] = property.slice();\n\n\t\t\t} else {\n\n\t\t\t\tdst[ u ][ p ] = property;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction mergeUniforms( uniforms ) {\n\n\tconst merged = {};\n\n\tfor ( let u = 0; u < uniforms.length; u ++ ) {\n\n\t\tconst tmp = cloneUniforms( uniforms[ u ] );\n\n\t\tfor ( const p in tmp ) {\n\n\t\t\tmerged[ p ] = tmp[ p ];\n\n\t\t}\n\n\t}\n\n\treturn merged;\n\n}\n\nfunction cloneUniformsGroups( src ) {\n\n\tconst dst = [];\n\n\tfor ( let u = 0; u < src.length; u ++ ) {\n\n\t\tdst.push( src[ u ].clone() );\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction getUnlitUniformColorSpace( renderer ) {\n\n\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\tif ( currentRenderTarget === null ) {\n\n\t\t// https://github.com/mrdoob/three.js/pull/23937#issuecomment-1111067398\n\t\treturn renderer.outputColorSpace;\n\n\t}\n\n\t// https://github.com/mrdoob/three.js/issues/27868\n\tif ( currentRenderTarget.isXRRenderTarget === true ) {\n\n\t\treturn currentRenderTarget.texture.colorSpace;\n\n\t}\n\n\treturn ColorManagement.workingColorSpace;\n\n}\n\n// Legacy\n\nconst UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms };\n\nvar default_vertex = \"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";\n\nvar default_fragment = \"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";\n\nclass ShaderMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isShaderMaterial = true;\n\n\t\tthis.type = 'ShaderMaterial';\n\n\t\tthis.defines = {};\n\t\tthis.uniforms = {};\n\t\tthis.uniformsGroups = [];\n\n\t\tthis.vertexShader = default_vertex;\n\t\tthis.fragmentShader = default_fragment;\n\n\t\tthis.linewidth = 1;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.fog = false; // set to use scene fog\n\t\tthis.lights = false; // set to use scene lights\n\t\tthis.clipping = false; // set to use user-defined clipping planes\n\n\t\tthis.forceSinglePass = true;\n\n\t\tthis.extensions = {\n\t\t\tclipCullDistance: false, // set to use vertex shader clipping\n\t\t\tmultiDraw: false // set to use vertex shader multi_draw / enable gl_DrawID\n\t\t};\n\n\t\t// When rendered geometry doesn't include these attributes but the material does,\n\t\t// use these default values in WebGL. This avoids errors when buffer data is missing.\n\t\tthis.defaultAttributeValues = {\n\t\t\t'color': [ 1, 1, 1 ],\n\t\t\t'uv': [ 0, 0 ],\n\t\t\t'uv1': [ 0, 0 ]\n\t\t};\n\n\t\tthis.index0AttributeName = undefined;\n\t\tthis.uniformsNeedUpdate = false;\n\n\t\tthis.glslVersion = null;\n\n\t\tif ( parameters !== undefined ) {\n\n\t\t\tthis.setValues( parameters );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.fragmentShader = source.fragmentShader;\n\t\tthis.vertexShader = source.vertexShader;\n\n\t\tthis.uniforms = cloneUniforms( source.uniforms );\n\t\tthis.uniformsGroups = cloneUniformsGroups( source.uniformsGroups );\n\n\t\tthis.defines = Object.assign( {}, source.defines );\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\tthis.fog = source.fog;\n\t\tthis.lights = source.lights;\n\t\tthis.clipping = source.clipping;\n\n\t\tthis.extensions = Object.assign( {}, source.extensions );\n\n\t\tthis.glslVersion = source.glslVersion;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.glslVersion = this.glslVersion;\n\t\tdata.uniforms = {};\n\n\t\tfor ( const name in this.uniforms ) {\n\n\t\t\tconst uniform = this.uniforms[ name ];\n\t\t\tconst value = uniform.value;\n\n\t\t\tif ( value && value.isTexture ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 't',\n\t\t\t\t\tvalue: value.toJSON( meta ).uuid\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isColor ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'c',\n\t\t\t\t\tvalue: value.getHex()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector2 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v2',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isVector4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'v4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix3 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm3',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else if ( value && value.isMatrix4 ) {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\ttype: 'm4',\n\t\t\t\t\tvalue: value.toArray()\n\t\t\t\t};\n\n\t\t\t} else {\n\n\t\t\t\tdata.uniforms[ name ] = {\n\t\t\t\t\tvalue: value\n\t\t\t\t};\n\n\t\t\t\t// note: the array variants v2v, v3v, v4v, m4v and tv are not supported so far\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( Object.keys( this.defines ).length > 0 ) data.defines = this.defines;\n\n\t\tdata.vertexShader = this.vertexShader;\n\t\tdata.fragmentShader = this.fragmentShader;\n\n\t\tdata.lights = this.lights;\n\t\tdata.clipping = this.clipping;\n\n\t\tconst extensions = {};\n\n\t\tfor ( const key in this.extensions ) {\n\n\t\t\tif ( this.extensions[ key ] === true ) extensions[ key ] = true;\n\n\t\t}\n\n\t\tif ( Object.keys( extensions ).length > 0 ) data.extensions = extensions;\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass Camera extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isCamera = true;\n\n\t\tthis.type = 'Camera';\n\n\t\tthis.matrixWorldInverse = new Matrix4();\n\n\t\tthis.projectionMatrix = new Matrix4();\n\t\tthis.projectionMatrixInverse = new Matrix4();\n\n\t\tthis.coordinateSystem = WebGLCoordinateSystem;\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.matrixWorldInverse.copy( source.matrixWorldInverse );\n\n\t\tthis.projectionMatrix.copy( source.projectionMatrix );\n\t\tthis.projectionMatrixInverse.copy( source.projectionMatrixInverse );\n\n\t\tthis.coordinateSystem = source.coordinateSystem;\n\n\t\treturn this;\n\n\t}\n\n\tgetWorldDirection( target ) {\n\n\t\treturn super.getWorldDirection( target ).negate();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tupdateWorldMatrix( updateParents, updateChildren ) {\n\n\t\tsuper.updateWorldMatrix( updateParents, updateChildren );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _v3$1 = /*@__PURE__*/ new Vector3();\nconst _minTarget = /*@__PURE__*/ new Vector2();\nconst _maxTarget = /*@__PURE__*/ new Vector2();\n\n\nclass PerspectiveCamera extends Camera {\n\n\tconstructor( fov = 50, aspect = 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.isPerspectiveCamera = true;\n\n\t\tthis.type = 'PerspectiveCamera';\n\n\t\tthis.fov = fov;\n\t\tthis.zoom = 1;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.focus = 10;\n\n\t\tthis.aspect = aspect;\n\t\tthis.view = null;\n\n\t\tthis.filmGauge = 35;\t// width of the film (default in millimeters)\n\t\tthis.filmOffset = 0;\t// horizontal film offset (same unit as gauge)\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.fov = source.fov;\n\t\tthis.zoom = source.zoom;\n\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\t\tthis.focus = source.focus;\n\n\t\tthis.aspect = source.aspect;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\tthis.filmGauge = source.filmGauge;\n\t\tthis.filmOffset = source.filmOffset;\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Sets the FOV by focal length in respect to the current .filmGauge.\n\t *\n\t * The default film gauge is 35, so that the focal length can be specified for\n\t * a 35mm (full frame) camera.\n\t *\n\t * Values for focal length and film gauge must have the same unit.\n\t */\n\tsetFocalLength( focalLength ) {\n\n\t\t/** see {@link http://www.bobatkins.com/photography/technical/field_of_view.html} */\n\t\tconst vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n\n\t\tthis.fov = RAD2DEG * 2 * Math.atan( vExtentSlope );\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\t/**\n\t * Calculates the focal length from the current .fov and .filmGauge.\n\t */\n\tgetFocalLength() {\n\n\t\tconst vExtentSlope = Math.tan( DEG2RAD * 0.5 * this.fov );\n\n\t\treturn 0.5 * this.getFilmHeight() / vExtentSlope;\n\n\t}\n\n\tgetEffectiveFOV() {\n\n\t\treturn RAD2DEG * 2 * Math.atan(\n\t\t\tMath.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom );\n\n\t}\n\n\tgetFilmWidth() {\n\n\t\t// film not completely covered in portrait format (aspect < 1)\n\t\treturn this.filmGauge * Math.min( this.aspect, 1 );\n\n\t}\n\n\tgetFilmHeight() {\n\n\t\t// film not completely covered in landscape format (aspect > 1)\n\t\treturn this.filmGauge / Math.max( this.aspect, 1 );\n\n\t}\n\n\t/**\n\t * Computes the 2D bounds of the camera's viewable rectangle at a given distance along the viewing direction.\n\t * Sets minTarget and maxTarget to the coordinates of the lower-left and upper-right corners of the view rectangle.\n\t */\n\tgetViewBounds( distance, minTarget, maxTarget ) {\n\n\t\t_v3$1.set( - 1, - 1, 0.5 ).applyMatrix4( this.projectionMatrixInverse );\n\n\t\tminTarget.set( _v3$1.x, _v3$1.y ).multiplyScalar( - distance / _v3$1.z );\n\n\t\t_v3$1.set( 1, 1, 0.5 ).applyMatrix4( this.projectionMatrixInverse );\n\n\t\tmaxTarget.set( _v3$1.x, _v3$1.y ).multiplyScalar( - distance / _v3$1.z );\n\n\t}\n\n\t/**\n\t * Computes the width and height of the camera's viewable rectangle at a given distance along the viewing direction.\n\t * Copies the result into the target Vector2, where x is width and y is height.\n\t */\n\tgetViewSize( distance, target ) {\n\n\t\tthis.getViewBounds( distance, _minTarget, _maxTarget );\n\n\t\treturn target.subVectors( _maxTarget, _minTarget );\n\n\t}\n\n\t/**\n\t * Sets an offset in a larger frustum. This is useful for multi-window or\n\t * multi-monitor/multi-machine setups.\n\t *\n\t * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n\t * the monitors are in grid like this\n\t *\n\t * +---+---+---+\n\t * | A | B | C |\n\t * +---+---+---+\n\t * | D | E | F |\n\t * +---+---+---+\n\t *\n\t * then for each monitor you would call it like this\n\t *\n\t * const w = 1920;\n\t * const h = 1080;\n\t * const fullWidth = w * 3;\n\t * const fullHeight = h * 2;\n\t *\n\t * --A--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n\t * --B--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n\t * --C--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n\t * --D--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n\t * --E--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n\t * --F--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n\t *\n\t * Note there is no reason monitors have to be the same size or in a grid.\n\t */\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tthis.aspect = fullWidth / fullHeight;\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst near = this.near;\n\t\tlet top = near * Math.tan( DEG2RAD * 0.5 * this.fov ) / this.zoom;\n\t\tlet height = 2 * top;\n\t\tlet width = this.aspect * height;\n\t\tlet left = - 0.5 * width;\n\t\tconst view = this.view;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst fullWidth = view.fullWidth,\n\t\t\t\tfullHeight = view.fullHeight;\n\n\t\t\tleft += view.offsetX * width / fullWidth;\n\t\t\ttop -= view.offsetY * height / fullHeight;\n\t\t\twidth *= view.width / fullWidth;\n\t\t\theight *= view.height / fullHeight;\n\n\t\t}\n\n\t\tconst skew = this.filmOffset;\n\t\tif ( skew !== 0 ) left += near * skew / this.getFilmWidth();\n\n\t\tthis.projectionMatrix.makePerspective( left, left + width, top, top - height, near, this.far, this.coordinateSystem );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.fov = this.fov;\n\t\tdata.object.zoom = this.zoom;\n\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\t\tdata.object.focus = this.focus;\n\n\t\tdata.object.aspect = this.aspect;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\tdata.object.filmGauge = this.filmGauge;\n\t\tdata.object.filmOffset = this.filmOffset;\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst fov = - 90; // negative fov is not an error\nconst aspect = 1;\n\nclass CubeCamera extends Object3D {\n\n\tconstructor( near, far, renderTarget ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CubeCamera';\n\n\t\tthis.renderTarget = renderTarget;\n\t\tthis.coordinateSystem = null;\n\t\tthis.activeMipmapLevel = 0;\n\n\t\tconst cameraPX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPX.layers = this.layers;\n\t\tthis.add( cameraPX );\n\n\t\tconst cameraNX = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNX.layers = this.layers;\n\t\tthis.add( cameraNX );\n\n\t\tconst cameraPY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPY.layers = this.layers;\n\t\tthis.add( cameraPY );\n\n\t\tconst cameraNY = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNY.layers = this.layers;\n\t\tthis.add( cameraNY );\n\n\t\tconst cameraPZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraPZ.layers = this.layers;\n\t\tthis.add( cameraPZ );\n\n\t\tconst cameraNZ = new PerspectiveCamera( fov, aspect, near, far );\n\t\tcameraNZ.layers = this.layers;\n\t\tthis.add( cameraNZ );\n\n\t}\n\n\tupdateCoordinateSystem() {\n\n\t\tconst coordinateSystem = this.coordinateSystem;\n\n\t\tconst cameras = this.children.concat();\n\n\t\tconst [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = cameras;\n\n\t\tfor ( const camera of cameras ) this.remove( camera );\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tcameraPX.up.set( 0, 1, 0 );\n\t\t\tcameraPX.lookAt( 1, 0, 0 );\n\n\t\t\tcameraNX.up.set( 0, 1, 0 );\n\t\t\tcameraNX.lookAt( - 1, 0, 0 );\n\n\t\t\tcameraPY.up.set( 0, 0, - 1 );\n\t\t\tcameraPY.lookAt( 0, 1, 0 );\n\n\t\t\tcameraNY.up.set( 0, 0, 1 );\n\t\t\tcameraNY.lookAt( 0, - 1, 0 );\n\n\t\t\tcameraPZ.up.set( 0, 1, 0 );\n\t\t\tcameraPZ.lookAt( 0, 0, 1 );\n\n\t\t\tcameraNZ.up.set( 0, 1, 0 );\n\t\t\tcameraNZ.lookAt( 0, 0, - 1 );\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tcameraPX.up.set( 0, - 1, 0 );\n\t\t\tcameraPX.lookAt( - 1, 0, 0 );\n\n\t\t\tcameraNX.up.set( 0, - 1, 0 );\n\t\t\tcameraNX.lookAt( 1, 0, 0 );\n\n\t\t\tcameraPY.up.set( 0, 0, 1 );\n\t\t\tcameraPY.lookAt( 0, 1, 0 );\n\n\t\t\tcameraNY.up.set( 0, 0, - 1 );\n\t\t\tcameraNY.lookAt( 0, - 1, 0 );\n\n\t\t\tcameraPZ.up.set( 0, - 1, 0 );\n\t\t\tcameraPZ.lookAt( 0, 0, 1 );\n\n\t\t\tcameraNZ.up.set( 0, - 1, 0 );\n\t\t\tcameraNZ.lookAt( 0, 0, - 1 );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\tfor ( const camera of cameras ) {\n\n\t\t\tthis.add( camera );\n\n\t\t\tcamera.updateMatrixWorld();\n\n\t\t}\n\n\t}\n\n\tupdate( renderer, scene ) {\n\n\t\tif ( this.parent === null ) this.updateMatrixWorld();\n\n\t\tconst { renderTarget, activeMipmapLevel } = this;\n\n\t\tif ( this.coordinateSystem !== renderer.coordinateSystem ) {\n\n\t\t\tthis.coordinateSystem = renderer.coordinateSystem;\n\n\t\t\tthis.updateCoordinateSystem();\n\n\t\t}\n\n\t\tconst [ cameraPX, cameraNX, cameraPY, cameraNY, cameraPZ, cameraNZ ] = this.children;\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\t\tconst currentActiveCubeFace = renderer.getActiveCubeFace();\n\t\tconst currentActiveMipmapLevel = renderer.getActiveMipmapLevel();\n\n\t\tconst currentXrEnabled = renderer.xr.enabled;\n\n\t\trenderer.xr.enabled = false;\n\n\t\tconst generateMipmaps = renderTarget.texture.generateMipmaps;\n\n\t\trenderTarget.texture.generateMipmaps = false;\n\n\t\trenderer.setRenderTarget( renderTarget, 0, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPX );\n\n\t\trenderer.setRenderTarget( renderTarget, 1, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNX );\n\n\t\trenderer.setRenderTarget( renderTarget, 2, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPY );\n\n\t\trenderer.setRenderTarget( renderTarget, 3, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNY );\n\n\t\trenderer.setRenderTarget( renderTarget, 4, activeMipmapLevel );\n\t\trenderer.render( scene, cameraPZ );\n\n\t\t// mipmaps are generated during the last call of render()\n\t\t// at this point, all sides of the cube render target are defined\n\n\t\trenderTarget.texture.generateMipmaps = generateMipmaps;\n\n\t\trenderer.setRenderTarget( renderTarget, 5, activeMipmapLevel );\n\t\trenderer.render( scene, cameraNZ );\n\n\t\trenderer.setRenderTarget( currentRenderTarget, currentActiveCubeFace, currentActiveMipmapLevel );\n\n\t\trenderer.xr.enabled = currentXrEnabled;\n\n\t\trenderTarget.texture.needsPMREMUpdate = true;\n\n\t}\n\n}\n\nclass CubeTexture extends Texture {\n\n\tconstructor( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace ) {\n\n\t\timages = images !== undefined ? images : [];\n\t\tmapping = mapping !== undefined ? mapping : CubeReflectionMapping;\n\n\t\tsuper( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\tthis.isCubeTexture = true;\n\n\t\tthis.flipY = false;\n\n\t}\n\n\tget images() {\n\n\t\treturn this.image;\n\n\t}\n\n\tset images( value ) {\n\n\t\tthis.image = value;\n\n\t}\n\n}\n\nclass WebGLCubeRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( size = 1, options = {} ) {\n\n\t\tsuper( size, size, options );\n\n\t\tthis.isWebGLCubeRenderTarget = true;\n\n\t\tconst image = { width: size, height: size, depth: 1 };\n\t\tconst images = [ image, image, image, image, image, image ];\n\n\t\tthis.texture = new CubeTexture( images, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.colorSpace );\n\n\t\t// By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js)\n\t\t// in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words,\n\t\t// in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly.\n\n\t\t// three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped\n\t\t// and the flag isRenderTargetTexture controls this conversion. The flip is not required when using WebGLCubeRenderTarget.texture\n\t\t// as a cube texture (this is detected when isRenderTargetTexture is set to true for cube textures).\n\n\t\tthis.texture.isRenderTargetTexture = true;\n\n\t\tthis.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n\t\tthis.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\n\n\t}\n\n\tfromEquirectangularTexture( renderer, texture ) {\n\n\t\tthis.texture.type = texture.type;\n\t\tthis.texture.colorSpace = texture.colorSpace;\n\n\t\tthis.texture.generateMipmaps = texture.generateMipmaps;\n\t\tthis.texture.minFilter = texture.minFilter;\n\t\tthis.texture.magFilter = texture.magFilter;\n\n\t\tconst shader = {\n\n\t\t\tuniforms: {\n\t\t\t\ttEquirect: { value: null },\n\t\t\t},\n\n\t\t\tvertexShader: /* glsl */`\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,\n\n\t\t\tfragmentShader: /* glsl */`\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t`\n\t\t};\n\n\t\tconst geometry = new BoxGeometry( 5, 5, 5 );\n\n\t\tconst material = new ShaderMaterial( {\n\n\t\t\tname: 'CubemapFromEquirect',\n\n\t\t\tuniforms: cloneUniforms( shader.uniforms ),\n\t\t\tvertexShader: shader.vertexShader,\n\t\t\tfragmentShader: shader.fragmentShader,\n\t\t\tside: BackSide,\n\t\t\tblending: NoBlending\n\n\t\t} );\n\n\t\tmaterial.uniforms.tEquirect.value = texture;\n\n\t\tconst mesh = new Mesh( geometry, material );\n\n\t\tconst currentMinFilter = texture.minFilter;\n\n\t\t// Avoid blurred poles\n\t\tif ( texture.minFilter === LinearMipmapLinearFilter ) texture.minFilter = LinearFilter;\n\n\t\tconst camera = new CubeCamera( 1, 10, this );\n\t\tcamera.update( renderer, mesh );\n\n\t\ttexture.minFilter = currentMinFilter;\n\n\t\tmesh.geometry.dispose();\n\t\tmesh.material.dispose();\n\n\t\treturn this;\n\n\t}\n\n\tclear( renderer, color, depth, stencil ) {\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\trenderer.setRenderTarget( this, i );\n\n\t\t\trenderer.clear( color, depth, stencil );\n\n\t\t}\n\n\t\trenderer.setRenderTarget( currentRenderTarget );\n\n\t}\n\n}\n\nconst _vector1 = /*@__PURE__*/ new Vector3();\nconst _vector2 = /*@__PURE__*/ new Vector3();\nconst _normalMatrix = /*@__PURE__*/ new Matrix3();\n\nclass Plane {\n\n\tconstructor( normal = new Vector3( 1, 0, 0 ), constant = 0 ) {\n\n\t\tthis.isPlane = true;\n\n\t\t// normal is assumed to be normalized\n\n\t\tthis.normal = normal;\n\t\tthis.constant = constant;\n\n\t}\n\n\tset( normal, constant ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = constant;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponents( x, y, z, w ) {\n\n\t\tthis.normal.set( x, y, z );\n\t\tthis.constant = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromNormalAndCoplanarPoint( normal, point ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = - point.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCoplanarPoints( a, b, c ) {\n\n\t\tconst normal = _vector1.subVectors( c, b ).cross( _vector2.subVectors( a, b ) ).normalize();\n\n\t\t// Q: should an error be thrown if normal is zero (e.g. degenerate plane)?\n\n\t\tthis.setFromNormalAndCoplanarPoint( normal, a );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( plane ) {\n\n\t\tthis.normal.copy( plane.normal );\n\t\tthis.constant = plane.constant;\n\n\t\treturn this;\n\n\t}\n\n\tnormalize() {\n\n\t\t// Note: will lead to a divide by zero if the plane is invalid.\n\n\t\tconst inverseNormalLength = 1.0 / this.normal.length();\n\t\tthis.normal.multiplyScalar( inverseNormalLength );\n\t\tthis.constant *= inverseNormalLength;\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.constant *= - 1;\n\t\tthis.normal.negate();\n\n\t\treturn this;\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.normal.dot( point ) + this.constant;\n\n\t}\n\n\tdistanceToSphere( sphere ) {\n\n\t\treturn this.distanceToPoint( sphere.center ) - sphere.radius;\n\n\t}\n\n\tprojectPoint( point, target ) {\n\n\t\treturn target.copy( point ).addScaledVector( this.normal, - this.distanceToPoint( point ) );\n\n\t}\n\n\tintersectLine( line, target ) {\n\n\t\tconst direction = line.delta( _vector1 );\n\n\t\tconst denominator = this.normal.dot( direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( this.distanceToPoint( line.start ) === 0 ) {\n\n\t\t\t\treturn target.copy( line.start );\n\n\t\t\t}\n\n\t\t\t// Unsure if this is the correct method to handle this case.\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( line.start.dot( this.normal ) + this.constant ) / denominator;\n\n\t\tif ( t < 0 || t > 1 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn target.copy( line.start ).addScaledVector( direction, t );\n\n\t}\n\n\tintersectsLine( line ) {\n\n\t\t// Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.\n\n\t\tconst startSign = this.distanceToPoint( line.start );\n\t\tconst endSign = this.distanceToPoint( line.end );\n\n\t\treturn ( startSign < 0 && endSign > 0 ) || ( endSign < 0 && startSign > 0 );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsPlane( this );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn sphere.intersectsPlane( this );\n\n\t}\n\n\tcoplanarPoint( target ) {\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.constant );\n\n\t}\n\n\tapplyMatrix4( matrix, optionalNormalMatrix ) {\n\n\t\tconst normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix( matrix );\n\n\t\tconst referencePoint = this.coplanarPoint( _vector1 ).applyMatrix4( matrix );\n\n\t\tconst normal = this.normal.applyMatrix3( normalMatrix ).normalize();\n\n\t\tthis.constant = - referencePoint.dot( normal );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.constant -= offset.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tequals( plane ) {\n\n\t\treturn plane.normal.equals( this.normal ) && ( plane.constant === this.constant );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _sphere$5 = /*@__PURE__*/ new Sphere();\nconst _vector$7 = /*@__PURE__*/ new Vector3();\n\nclass Frustum {\n\n\tconstructor( p0 = new Plane(), p1 = new Plane(), p2 = new Plane(), p3 = new Plane(), p4 = new Plane(), p5 = new Plane() ) {\n\n\t\tthis.planes = [ p0, p1, p2, p3, p4, p5 ];\n\n\t}\n\n\tset( p0, p1, p2, p3, p4, p5 ) {\n\n\t\tconst planes = this.planes;\n\n\t\tplanes[ 0 ].copy( p0 );\n\t\tplanes[ 1 ].copy( p1 );\n\t\tplanes[ 2 ].copy( p2 );\n\t\tplanes[ 3 ].copy( p3 );\n\t\tplanes[ 4 ].copy( p4 );\n\t\tplanes[ 5 ].copy( p5 );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( frustum ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tplanes[ i ].copy( frustum.planes[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromProjectionMatrix( m, coordinateSystem = WebGLCoordinateSystem ) {\n\n\t\tconst planes = this.planes;\n\t\tconst me = m.elements;\n\t\tconst me0 = me[ 0 ], me1 = me[ 1 ], me2 = me[ 2 ], me3 = me[ 3 ];\n\t\tconst me4 = me[ 4 ], me5 = me[ 5 ], me6 = me[ 6 ], me7 = me[ 7 ];\n\t\tconst me8 = me[ 8 ], me9 = me[ 9 ], me10 = me[ 10 ], me11 = me[ 11 ];\n\t\tconst me12 = me[ 12 ], me13 = me[ 13 ], me14 = me[ 14 ], me15 = me[ 15 ];\n\n\t\tplanes[ 0 ].setComponents( me3 - me0, me7 - me4, me11 - me8, me15 - me12 ).normalize();\n\t\tplanes[ 1 ].setComponents( me3 + me0, me7 + me4, me11 + me8, me15 + me12 ).normalize();\n\t\tplanes[ 2 ].setComponents( me3 + me1, me7 + me5, me11 + me9, me15 + me13 ).normalize();\n\t\tplanes[ 3 ].setComponents( me3 - me1, me7 - me5, me11 - me9, me15 - me13 ).normalize();\n\t\tplanes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize();\n\n\t\tif ( coordinateSystem === WebGLCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize();\n\n\t\t} else if ( coordinateSystem === WebGPUCoordinateSystem ) {\n\n\t\t\tplanes[ 5 ].setComponents( me2, me6, me10, me14 ).normalize();\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: ' + coordinateSystem );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tintersectsObject( object ) {\n\n\t\tif ( object.boundingSphere !== undefined ) {\n\n\t\t\tif ( object.boundingSphere === null ) object.computeBoundingSphere();\n\n\t\t\t_sphere$5.copy( object.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t} else {\n\n\t\t\tconst geometry = object.geometry;\n\n\t\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t\t_sphere$5.copy( geometry.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\t}\n\n\t\treturn this.intersectsSphere( _sphere$5 );\n\n\t}\n\n\tintersectsSprite( sprite ) {\n\n\t\t_sphere$5.center.set( 0, 0, 0 );\n\t\t_sphere$5.radius = 0.7071067811865476;\n\t\t_sphere$5.applyMatrix4( sprite.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere$5 );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst planes = this.planes;\n\t\tconst center = sphere.center;\n\t\tconst negRadius = - sphere.radius;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst distance = planes[ i ].distanceToPoint( center );\n\n\t\t\tif ( distance < negRadius ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst plane = planes[ i ];\n\n\t\t\t// corner at max distance\n\n\t\t\t_vector$7.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n\t\t\t_vector$7.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n\t\t\t_vector$7.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n\t\t\tif ( plane.distanceToPoint( _vector$7 ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tif ( planes[ i ].distanceToPoint( point ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nfunction WebGLAnimation() {\n\n\tlet context = null;\n\tlet isAnimating = false;\n\tlet animationLoop = null;\n\tlet requestId = null;\n\n\tfunction onAnimationFrame( time, frame ) {\n\n\t\tanimationLoop( time, frame );\n\n\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t}\n\n\treturn {\n\n\t\tstart: function () {\n\n\t\t\tif ( isAnimating === true ) return;\n\t\t\tif ( animationLoop === null ) return;\n\n\t\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t\t\tisAnimating = true;\n\n\t\t},\n\n\t\tstop: function () {\n\n\t\t\tcontext.cancelAnimationFrame( requestId );\n\n\t\t\tisAnimating = false;\n\n\t\t},\n\n\t\tsetAnimationLoop: function ( callback ) {\n\n\t\t\tanimationLoop = callback;\n\n\t\t},\n\n\t\tsetContext: function ( value ) {\n\n\t\t\tcontext = value;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLAttributes( gl ) {\n\n\tconst buffers = new WeakMap();\n\n\tfunction createBuffer( attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst usage = attribute.usage;\n\t\tconst size = array.byteLength;\n\n\t\tconst buffer = gl.createBuffer();\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\t\tgl.bufferData( bufferType, array, usage );\n\n\t\tattribute.onUploadCallback();\n\n\t\tlet type;\n\n\t\tif ( array instanceof Float32Array ) {\n\n\t\t\ttype = gl.FLOAT;\n\n\t\t} else if ( array instanceof Uint16Array ) {\n\n\t\t\tif ( attribute.isFloat16BufferAttribute ) {\n\n\t\t\t\ttype = gl.HALF_FLOAT;\n\n\t\t\t} else {\n\n\t\t\t\ttype = gl.UNSIGNED_SHORT;\n\n\t\t\t}\n\n\t\t} else if ( array instanceof Int16Array ) {\n\n\t\t\ttype = gl.SHORT;\n\n\t\t} else if ( array instanceof Uint32Array ) {\n\n\t\t\ttype = gl.UNSIGNED_INT;\n\n\t\t} else if ( array instanceof Int32Array ) {\n\n\t\t\ttype = gl.INT;\n\n\t\t} else if ( array instanceof Int8Array ) {\n\n\t\t\ttype = gl.BYTE;\n\n\t\t} else if ( array instanceof Uint8Array ) {\n\n\t\t\ttype = gl.UNSIGNED_BYTE;\n\n\t\t} else if ( array instanceof Uint8ClampedArray ) {\n\n\t\t\ttype = gl.UNSIGNED_BYTE;\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'THREE.WebGLAttributes: Unsupported buffer data format: ' + array );\n\n\t\t}\n\n\t\treturn {\n\t\t\tbuffer: buffer,\n\t\t\ttype: type,\n\t\t\tbytesPerElement: array.BYTES_PER_ELEMENT,\n\t\t\tversion: attribute.version,\n\t\t\tsize: size\n\t\t};\n\n\t}\n\n\tfunction updateBuffer( buffer, attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst updateRange = attribute._updateRange; // @deprecated, r159\n\t\tconst updateRanges = attribute.updateRanges;\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\n\t\tif ( updateRange.count === - 1 && updateRanges.length === 0 ) {\n\n\t\t\t// Not using update ranges\n\t\t\tgl.bufferSubData( bufferType, 0, array );\n\n\t\t}\n\n\t\tif ( updateRanges.length !== 0 ) {\n\n\t\t\tfor ( let i = 0, l = updateRanges.length; i < l; i ++ ) {\n\n\t\t\t\tconst range = updateRanges[ i ];\n\n\t\t\t\tgl.bufferSubData( bufferType, range.start * array.BYTES_PER_ELEMENT,\n\t\t\t\t\tarray, range.start, range.count );\n\n\t\t\t}\n\n\t\t\tattribute.clearUpdateRanges();\n\n\t\t}\n\n\t\t// @deprecated, r159\n\t\tif ( updateRange.count !== - 1 ) {\n\n\t\t\tgl.bufferSubData( bufferType, updateRange.offset * array.BYTES_PER_ELEMENT,\n\t\t\t\tarray, updateRange.offset, updateRange.count );\n\n\t\t\tupdateRange.count = - 1; // reset range\n\n\t\t}\n\n\t\tattribute.onUploadCallback();\n\n\t}\n\n\t//\n\n\tfunction get( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\treturn buffers.get( attribute );\n\n\t}\n\n\tfunction remove( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data ) {\n\n\t\t\tgl.deleteBuffer( data.buffer );\n\n\t\t\tbuffers.delete( attribute );\n\n\t\t}\n\n\t}\n\n\tfunction update( attribute, bufferType ) {\n\n\t\tif ( attribute.isGLBufferAttribute ) {\n\n\t\t\tconst cached = buffers.get( attribute );\n\n\t\t\tif ( ! cached || cached.version < attribute.version ) {\n\n\t\t\t\tbuffers.set( attribute, {\n\t\t\t\t\tbuffer: attribute.buffer,\n\t\t\t\t\ttype: attribute.type,\n\t\t\t\t\tbytesPerElement: attribute.elementSize,\n\t\t\t\t\tversion: attribute.version\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data === undefined ) {\n\n\t\t\tbuffers.set( attribute, createBuffer( attribute, bufferType ) );\n\n\t\t} else if ( data.version < attribute.version ) {\n\n\t\t\tif ( data.size !== attribute.array.byteLength ) {\n\n\t\t\t\tthrow new Error( 'THREE.WebGLAttributes: The size of the buffer attribute\\'s array buffer does not match the original size. Resizing buffer attributes is not supported.' );\n\n\t\t\t}\n\n\t\t\tupdateBuffer( data.buffer, attribute, bufferType );\n\n\t\t\tdata.version = attribute.version;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update\n\n\t};\n\n}\n\nclass PlaneGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, widthSegments = 1, heightSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PlaneGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments\n\t\t};\n\n\t\tconst width_half = width / 2;\n\t\tconst height_half = height / 2;\n\n\t\tconst gridX = Math.floor( widthSegments );\n\t\tconst gridY = Math.floor( heightSegments );\n\n\t\tconst gridX1 = gridX + 1;\n\t\tconst gridY1 = gridY + 1;\n\n\t\tconst segment_width = width / gridX;\n\t\tconst segment_height = height / gridY;\n\n\t\t//\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\tconst y = iy * segment_height - height_half;\n\n\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\tconst x = ix * segment_width - width_half;\n\n\t\t\t\tvertices.push( x, - y, 0 );\n\n\t\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\tconst a = ix + gridX1 * iy;\n\t\t\t\tconst b = ix + gridX1 * ( iy + 1 );\n\t\t\t\tconst c = ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\tconst d = ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new PlaneGeometry( data.width, data.height, data.widthSegments, data.heightSegments );\n\n\t}\n\n}\n\nvar alphahash_fragment = \"#ifdef USE_ALPHAHASH\\n\\tif ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;\\n#endif\";\n\nvar alphahash_pars_fragment = \"#ifdef USE_ALPHAHASH\\n\\tconst float ALPHA_HASH_SCALE = 0.05;\\n\\tfloat hash2D( vec2 value ) {\\n\\t\\treturn fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );\\n\\t}\\n\\tfloat hash3D( vec3 value ) {\\n\\t\\treturn hash2D( vec2( hash2D( value.xy ), value.z ) );\\n\\t}\\n\\tfloat getAlphaHashThreshold( vec3 position ) {\\n\\t\\tfloat maxDeriv = max(\\n\\t\\t\\tlength( dFdx( position.xyz ) ),\\n\\t\\t\\tlength( dFdy( position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );\\n\\t\\tvec2 pixScales = vec2(\\n\\t\\t\\texp2( floor( log2( pixScale ) ) ),\\n\\t\\t\\texp2( ceil( log2( pixScale ) ) )\\n\\t\\t);\\n\\t\\tvec2 alpha = vec2(\\n\\t\\t\\thash3D( floor( pixScales.x * position.xyz ) ),\\n\\t\\t\\thash3D( floor( pixScales.y * position.xyz ) )\\n\\t\\t);\\n\\t\\tfloat lerpFactor = fract( log2( pixScale ) );\\n\\t\\tfloat x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;\\n\\t\\tfloat a = min( lerpFactor, 1.0 - lerpFactor );\\n\\t\\tvec3 cases = vec3(\\n\\t\\t\\tx * x / ( 2.0 * a * ( 1.0 - a ) ),\\n\\t\\t\\t( x - 0.5 * a ) / ( 1.0 - a ),\\n\\t\\t\\t1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )\\n\\t\\t);\\n\\t\\tfloat threshold = ( x < ( 1.0 - a ) )\\n\\t\\t\\t? ( ( x < a ) ? cases.x : cases.y )\\n\\t\\t\\t: cases.z;\\n\\t\\treturn clamp( threshold , 1.0e-6, 1.0 );\\n\\t}\\n#endif\";\n\nvar alphamap_fragment = \"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;\\n#endif\";\n\nvar alphamap_pars_fragment = \"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar alphatest_fragment = \"#ifdef USE_ALPHATEST\\n\\t#ifdef ALPHA_TO_COVERAGE\\n\\tdiffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );\\n\\tif ( diffuseColor.a == 0.0 ) discard;\\n\\t#else\\n\\tif ( diffuseColor.a < alphaTest ) discard;\\n\\t#endif\\n#endif\";\n\nvar alphatest_pars_fragment = \"#ifdef USE_ALPHATEST\\n\\tuniform float alphaTest;\\n#endif\";\n\nvar aomap_fragment = \"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_CLEARCOAT ) \\n\\t\\tclearcoatSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_SHEEN ) \\n\\t\\tsheenSpecularIndirect *= ambientOcclusion;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometryNormal, geometryViewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\\n\\t#endif\\n#endif\";\n\nvar aomap_pars_fragment = \"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";\n\nvar batching_pars_vertex = \"#ifdef USE_BATCHING\\n\\t#if ! defined( GL_ANGLE_multi_draw )\\n\\t#define gl_DrawID _gl_DrawID\\n\\tuniform int _gl_DrawID;\\n\\t#endif\\n\\tuniform highp sampler2D batchingTexture;\\n\\tuniform highp usampler2D batchingIdTexture;\\n\\tmat4 getBatchingMatrix( const in float i ) {\\n\\t\\tint size = textureSize( batchingTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n\\tfloat getIndirectIndex( const in int i ) {\\n\\t\\tint size = textureSize( batchingIdTexture, 0 ).x;\\n\\t\\tint x = i % size;\\n\\t\\tint y = i / size;\\n\\t\\treturn float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );\\n\\t}\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\\tuniform sampler2D batchingColorTexture;\\n\\tvec3 getBatchingColor( const in float i ) {\\n\\t\\tint size = textureSize( batchingColorTexture, 0 ).x;\\n\\t\\tint j = int( i );\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\treturn texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;\\n\\t}\\n#endif\";\n\nvar batching_vertex = \"#ifdef USE_BATCHING\\n\\tmat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );\\n#endif\";\n\nvar begin_vertex = \"vec3 transformed = vec3( position );\\n#ifdef USE_ALPHAHASH\\n\\tvPosition = vec3( position );\\n#endif\";\n\nvar beginnormal_vertex = \"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";\n\nvar bsdfs = \"float G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n} // validated\";\n\nvar iridescence_fragment = \"#ifdef USE_IRIDESCENCE\\n\\tconst mat3 XYZ_TO_REC709 = mat3(\\n\\t\\t 3.2404542, -0.9692660, 0.0556434,\\n\\t\\t-1.5371385, 1.8760108, -0.2040259,\\n\\t\\t-0.4985314, 0.0415560, 1.0572252\\n\\t);\\n\\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\\n\\t\\tvec3 sqrtF0 = sqrt( fresnel0 );\\n\\t\\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\\n\\t}\\n\\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\\n\\t}\\n\\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\\n\\t\\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\\n\\t}\\n\\tvec3 evalSensitivity( float OPD, vec3 shift ) {\\n\\t\\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\\n\\t\\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\\n\\t\\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\\n\\t\\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\\n\\t\\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\\n\\t\\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\\n\\t\\txyz /= 1.0685e-7;\\n\\t\\tvec3 rgb = XYZ_TO_REC709 * xyz;\\n\\t\\treturn rgb;\\n\\t}\\n\\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\\n\\t\\tvec3 I;\\n\\t\\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\\n\\t\\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\\n\\t\\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\\n\\t\\tif ( cosTheta2Sq < 0.0 ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t}\\n\\t\\tfloat cosTheta2 = sqrt( cosTheta2Sq );\\n\\t\\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\\n\\t\\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\\n\\t\\tfloat T121 = 1.0 - R12;\\n\\t\\tfloat phi12 = 0.0;\\n\\t\\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\\n\\t\\tfloat phi21 = PI - phi12;\\n\\t\\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\\t\\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\\n\\t\\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\\n\\t\\tvec3 phi23 = vec3( 0.0 );\\n\\t\\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\\n\\t\\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\\n\\t\\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\\n\\t\\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\\n\\t\\tvec3 phi = vec3( phi21 ) + phi23;\\n\\t\\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\\n\\t\\tvec3 r123 = sqrt( R123 );\\n\\t\\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\\n\\t\\tvec3 C0 = R12 + Rs;\\n\\t\\tI = C0;\\n\\t\\tvec3 Cm = Rs - T121;\\n\\t\\tfor ( int m = 1; m <= 2; ++ m ) {\\n\\t\\t\\tCm *= r123;\\n\\t\\t\\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\\n\\t\\t\\tI += Cm * Sm;\\n\\t\\t}\\n\\t\\treturn max( I, vec3( 0.0 ) );\\n\\t}\\n#endif\";\n\nvar bumpmap_pars_fragment = \"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vBumpMapUv );\\n\\t\\tvec2 dSTdy = dFdy( vBumpMapUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\\n\\t\\tvec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );\\n\\t\\tvec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\";\n\nvar clipping_planes_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#ifdef ALPHA_TO_COVERAGE\\n\\t\\tfloat distanceToPlane, distanceGradient;\\n\\t\\tfloat clipOpacity = 1.0;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\\t\\t\\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\\t\\t\\tclipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\\t\\t\\tif ( clipOpacity == 0.0 ) discard;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\t\\tfloat unionClipOpacity = 1.0;\\n\\t\\t\\t#pragma unroll_loop_start\\n\\t\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\t\\tdistanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;\\n\\t\\t\\t\\tdistanceGradient = fwidth( distanceToPlane ) / 2.0;\\n\\t\\t\\t\\tunionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );\\n\\t\\t\\t}\\n\\t\\t\\t#pragma unroll_loop_end\\n\\t\\t\\tclipOpacity *= 1.0 - unionClipOpacity;\\n\\t\\t#endif\\n\\t\\tdiffuseColor.a *= clipOpacity;\\n\\t\\tif ( diffuseColor.a == 0.0 ) discard;\\n\\t#else\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\t\\tbool clipped = true;\\n\\t\\t\\t#pragma unroll_loop_start\\n\\t\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t\\t}\\n\\t\\t\\t#pragma unroll_loop_end\\n\\t\\t\\tif ( clipped ) discard;\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar clipping_planes_pars_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";\n\nvar clipping_planes_pars_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\";\n\nvar clipping_planes_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\";\n\nvar color_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tdiffuseColor *= vColor;\\n#elif defined( USE_COLOR )\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";\n\nvar color_pars_fragment = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_pars_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvarying vec4 vColor;\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_vertex = \"#if defined( USE_COLOR_ALPHA )\\n\\tvColor = vec4( 1.0 );\\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor *= color;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\\n#ifdef USE_BATCHING_COLOR\\n\\tvec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );\\n\\tvColor.xyz *= batchingColor.xyz;\\n#endif\";\n\nvar common = \"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nvec3 pow2( const in vec3 x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract( sin( sn ) * c );\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\n#ifdef USE_ALPHAHASH\\n\\tvarying vec3 vPosition;\\n#endif\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nfloat luminance( const in vec3 rgb ) {\\n\\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\\n\\treturn dot( weights, rgb );\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n}\\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\\n\\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\\n\\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\\n} // validated\";\n\nvar cube_uv_reflection_fragment = \"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\\n\\t\\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\\n\\t\\tuv.x *= CUBEUV_TEXEL_WIDTH;\\n\\t\\tuv.y *= CUBEUV_TEXEL_HEIGHT;\\n\\t\\t#ifdef texture2DGradEXT\\n\\t\\t\\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\\n\\t\\t#else\\n\\t\\t\\treturn texture2D( envMap, uv ).rgb;\\n\\t\\t#endif\\n\\t}\\n\\t#define cubeUV_r0 1.0\\n\\t#define cubeUV_m0 - 2.0\\n\\t#define cubeUV_r1 0.8\\n\\t#define cubeUV_m1 - 1.0\\n\\t#define cubeUV_r4 0.4\\n\\t#define cubeUV_m4 2.0\\n\\t#define cubeUV_r5 0.305\\n\\t#define cubeUV_m5 3.0\\n\\t#define cubeUV_r6 0.21\\n\\t#define cubeUV_m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= cubeUV_r1 ) {\\n\\t\\t\\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\\n\\t\\t} else if ( roughness >= cubeUV_r4 ) {\\n\\t\\t\\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\\n\\t\\t} else if ( roughness >= cubeUV_r5 ) {\\n\\t\\t\\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\\n\\t\\t} else if ( roughness >= cubeUV_r6 ) {\\n\\t\\t\\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\";\n\nvar defaultnormal_vertex = \"vec3 transformedNormal = objectNormal;\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = objectTangent;\\n#endif\\n#ifdef USE_BATCHING\\n\\tmat3 bm = mat3( batchingMatrix );\\n\\ttransformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );\\n\\ttransformedNormal = bm * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = bm * transformedTangent;\\n\\t#endif\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmat3 im = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );\\n\\ttransformedNormal = im * transformedNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\ttransformedTangent = im * transformedTangent;\\n\\t#endif\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\ttransformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";\n\nvar displacementmap_pars_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";\n\nvar displacementmap_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\\n#endif\";\n\nvar emissivemap_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";\n\nvar emissivemap_pars_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";\n\nvar colorspace_fragment = \"gl_FragColor = linearToOutputTexel( gl_FragColor );\";\n\nvar colorspace_pars_fragment = \"\\nconst mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(\\n\\tvec3( 0.8224621, 0.177538, 0.0 ),\\n\\tvec3( 0.0331941, 0.9668058, 0.0 ),\\n\\tvec3( 0.0170827, 0.0723974, 0.9105199 )\\n);\\nconst mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(\\n\\tvec3( 1.2249401, - 0.2249404, 0.0 ),\\n\\tvec3( - 0.0420569, 1.0420571, 0.0 ),\\n\\tvec3( - 0.0196376, - 0.0786361, 1.0982735 )\\n);\\nvec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {\\n\\treturn vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );\\n}\\nvec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {\\n\\treturn vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );\\n}\\nvec4 LinearTransferOETF( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 sRGBTransferOETF( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\\nvec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn sRGBTransferOETF( value );\\n}\";\n\nvar envmap_fragment = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\";\n\nvar envmap_common_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform mat3 envMapRotation;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\";\n\nvar envmap_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\";\n\nvar envmap_pars_vertex = \"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\";\n\nvar envmap_vertex = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar fog_vertex = \"#ifdef USE_FOG\\n\\tvFogDepth = - mvPosition.z;\\n#endif\";\n\nvar fog_pars_vertex = \"#ifdef USE_FOG\\n\\tvarying float vFogDepth;\\n#endif\";\n\nvar fog_fragment = \"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";\n\nvar fog_pars_fragment = \"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float vFogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\";\n\nvar gradientmap_pars_fragment = \"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn vec3( texture2D( gradientMap, coord ).r );\\n\\t#else\\n\\t\\tvec2 fw = fwidth( coord ) * 0.5;\\n\\t\\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\\n\\t#endif\\n}\";\n\nvar lightmap_pars_fragment = \"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";\n\nvar lights_lambert_fragment = \"LambertMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularStrength = specularStrength;\";\n\nvar lights_lambert_pars_fragment = \"varying vec3 vViewPosition;\\nstruct LambertMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Lambert\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Lambert\";\n\nvar lights_pars_begin = \"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\n#if defined( USE_LIGHT_PROBES )\\n\\tuniform vec3 lightProbe[ 9 ];\\n#endif\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\\n\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\treturn irradiance;\\n}\\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\tif ( cutoffDistance > 0.0 ) {\\n\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t}\\n\\treturn distanceFalloff;\\n}\\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\\n\\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {\\n\\t\\tlight.color = directionalLight.color;\\n\\t\\tlight.direction = directionalLight.direction;\\n\\t\\tlight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = pointLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tlight.color = pointLight.color;\\n\\t\\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {\\n\\t\\tvec3 lVector = spotLight.position - geometryPosition;\\n\\t\\tlight.direction = normalize( lVector );\\n\\t\\tfloat angleCos = dot( light.direction, spotLight.direction );\\n\\t\\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\tif ( spotAttenuation > 0.0 ) {\\n\\t\\t\\tfloat lightDistance = length( lVector );\\n\\t\\t\\tlight.color = spotLight.color * spotAttenuation;\\n\\t\\t\\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tlight.visible = ( light.color != vec3( 0.0 ) );\\n\\t\\t} else {\\n\\t\\t\\tlight.color = vec3( 0.0 );\\n\\t\\t\\tlight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\\n\\t\\tfloat dotNL = dot( normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\";\n\nvar envmap_physical_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tvec3 getIBLIrradiance( const in vec3 normal ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );\\n\\t\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\tvec3 reflectVec = reflect( - viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );\\n\\t\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t\\t#else\\n\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t#endif\\n\\t}\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tvec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {\\n\\t\\t\\t#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t\\t\\t\\tvec3 bentNormal = cross( bitangent, viewDir );\\n\\t\\t\\t\\tbentNormal = normalize( cross( bentNormal, bitangent ) );\\n\\t\\t\\t\\tbentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );\\n\\t\\t\\t\\treturn getIBLRadiance( viewDir, bentNormal, roughness );\\n\\t\\t\\t#else\\n\\t\\t\\t\\treturn vec3( 0.0 );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t#endif\\n#endif\";\n\nvar lights_toon_fragment = \"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";\n\nvar lights_toon_pars_fragment = \"varying vec3 vViewPosition;\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\";\n\nvar lights_phong_fragment = \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";\n\nvar lights_phong_pars_fragment = \"varying vec3 vViewPosition;\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\";\n\nvar lights_physical_fragment = \"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\\nmaterial.roughness = min( material.roughness, 1.0 );\\n#ifdef IOR\\n\\tmaterial.ior = ior;\\n\\t#ifdef USE_SPECULAR\\n\\t\\tfloat specularIntensityFactor = specularIntensity;\\n\\t\\tvec3 specularColorFactor = specularColor;\\n\\t\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\t\\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\\n\\t\\t#endif\\n\\t\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\t\\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\\n\\t\\t#endif\\n\\t\\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\\n\\t#else\\n\\t\\tfloat specularIntensityFactor = 1.0;\\n\\t\\tvec3 specularColorFactor = vec3( 1.0 );\\n\\t\\tmaterial.specularF90 = 1.0;\\n\\t#endif\\n\\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.specularF90 = 1.0;\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\tmaterial.clearcoatF0 = vec3( 0.04 );\\n\\tmaterial.clearcoatF90 = 1.0;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_DISPERSION\\n\\tmaterial.dispersion = dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tmaterial.iridescence = iridescence;\\n\\tmaterial.iridescenceIOR = iridescenceIOR;\\n\\t#ifdef USE_IRIDESCENCEMAP\\n\\t\\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\t\\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\\n\\t#else\\n\\t\\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\\n\\t#endif\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheenColor;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\\n\\t#endif\\n\\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\\n\\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\\t#ifdef USE_ANISOTROPYMAP\\n\\t\\tmat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );\\n\\t\\tvec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;\\n\\t\\tvec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;\\n\\t#else\\n\\t\\tvec2 anisotropyV = anisotropyVector;\\n\\t#endif\\n\\tmaterial.anisotropy = length( anisotropyV );\\n\\tif( material.anisotropy == 0.0 ) {\\n\\t\\tanisotropyV = vec2( 1.0, 0.0 );\\n\\t} else {\\n\\t\\tanisotropyV /= material.anisotropy;\\n\\t\\tmaterial.anisotropy = saturate( material.anisotropy );\\n\\t}\\n\\tmaterial.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );\\n\\tmaterial.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;\\n\\tmaterial.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;\\n#endif\";\n\nvar lights_physical_pars_fragment = \"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat roughness;\\n\\tvec3 specularColor;\\n\\tfloat specularF90;\\n\\tfloat dispersion;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat clearcoat;\\n\\t\\tfloat clearcoatRoughness;\\n\\t\\tvec3 clearcoatF0;\\n\\t\\tfloat clearcoatF90;\\n\\t#endif\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tfloat iridescence;\\n\\t\\tfloat iridescenceIOR;\\n\\t\\tfloat iridescenceThickness;\\n\\t\\tvec3 iridescenceFresnel;\\n\\t\\tvec3 iridescenceF0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tvec3 sheenColor;\\n\\t\\tfloat sheenRoughness;\\n\\t#endif\\n\\t#ifdef IOR\\n\\t\\tfloat ior;\\n\\t#endif\\n\\t#ifdef USE_TRANSMISSION\\n\\t\\tfloat transmission;\\n\\t\\tfloat transmissionAlpha;\\n\\t\\tfloat thickness;\\n\\t\\tfloat attenuationDistance;\\n\\t\\tvec3 attenuationColor;\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat anisotropy;\\n\\t\\tfloat alphaT;\\n\\t\\tvec3 anisotropyT;\\n\\t\\tvec3 anisotropyB;\\n\\t#endif\\n};\\nvec3 clearcoatSpecularDirect = vec3( 0.0 );\\nvec3 clearcoatSpecularIndirect = vec3( 0.0 );\\nvec3 sheenSpecularDirect = vec3( 0.0 );\\nvec3 sheenSpecularIndirect = vec3(0.0 );\\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\\n float x2 = x * x;\\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\\n}\\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\n#ifdef USE_ANISOTROPY\\n\\tfloat V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {\\n\\t\\tfloat gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );\\n\\t\\tfloat gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );\\n\\t\\tfloat v = 0.5 / ( gv + gl );\\n\\t\\treturn saturate(v);\\n\\t}\\n\\tfloat D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {\\n\\t\\tfloat a2 = alphaT * alphaB;\\n\\t\\thighp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );\\n\\t\\thighp float v2 = dot( v, v );\\n\\t\\tfloat w2 = a2 / v2;\\n\\t\\treturn RECIPROCAL_PI * a2 * pow2 ( w2 );\\n\\t}\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\\n\\t\\tvec3 f0 = material.clearcoatF0;\\n\\t\\tfloat f90 = material.clearcoatF90;\\n\\t\\tfloat roughness = material.clearcoatRoughness;\\n\\t\\tfloat alpha = pow2( roughness );\\n\\t\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\t\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\t\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\t\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\t\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\t\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t\\treturn F * ( V * D );\\n\\t}\\n#endif\\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\\n\\tvec3 f0 = material.specularColor;\\n\\tfloat f90 = material.specularF90;\\n\\tfloat roughness = material.roughness;\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\\n\\tvec3 F = F_Schlick( f0, f90, dotVH );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tF = mix( F, material.iridescenceFresnel, material.iridescence );\\n\\t#endif\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tfloat dotTL = dot( material.anisotropyT, lightDir );\\n\\t\\tfloat dotTV = dot( material.anisotropyT, viewDir );\\n\\t\\tfloat dotTH = dot( material.anisotropyT, halfDir );\\n\\t\\tfloat dotBL = dot( material.anisotropyB, lightDir );\\n\\t\\tfloat dotBV = dot( material.anisotropyB, viewDir );\\n\\t\\tfloat dotBH = dot( material.anisotropyB, halfDir );\\n\\t\\tfloat V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );\\n\\t\\tfloat D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );\\n\\t#else\\n\\t\\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\t\\tfloat D = D_GGX( alpha, dotNH );\\n\\t#endif\\n\\treturn F * ( V * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie( float roughness, float dotNH ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tfloat invAlpha = 1.0 / alpha;\\n\\tfloat cos2h = dotNH * dotNH;\\n\\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\\n\\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\\n}\\nfloat V_Neubelt( float dotNV, float dotNL ) {\\n\\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\\n}\\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\\n\\tvec3 halfDir = normalize( lightDir + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, lightDir ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat D = D_Charlie( sheenRoughness, dotNH );\\n\\tfloat V = V_Neubelt( dotNV, dotNL );\\n\\treturn sheenColor * ( D * V );\\n}\\n#endif\\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat r2 = roughness * roughness;\\n\\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\\n\\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\\n\\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\\n\\treturn saturate( DG * RECIPROCAL_PI );\\n}\\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\\n\\treturn fab;\\n}\\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\treturn specularColor * fab.x + specularF90 * fab.y;\\n}\\n#ifdef USE_IRIDESCENCE\\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#else\\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n#endif\\n\\tvec2 fab = DFGApprox( normal, viewDir, roughness );\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\\n\\t#else\\n\\t\\tvec3 Fr = specularColor;\\n\\t#endif\\n\\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\\n\\tfloat Ess = fab.x + fab.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometryNormal;\\n\\t\\tvec3 viewDir = geometryViewDir;\\n\\t\\tvec3 position = geometryPosition;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.roughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3( 0, 1, 0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometryNormal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = dotNLcc * directLight.color;\\n\\t\\tclearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );\\n\\t#endif\\n\\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\tsheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );\\n\\t#endif\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\t#ifdef USE_IRIDESCENCE\\n\\t\\tcomputeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\\n\\t#else\\n\\t\\tcomputeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\\n\\t#endif\\n\\tvec3 totalScattering = singleScattering + multiScattering;\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\\n\\treflectedLight.indirectSpecular += radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\";\n\nvar lights_fragment_begin = \"\\nvec3 geometryPosition = - vViewPosition;\\nvec3 geometryNormal = normal;\\nvec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\nvec3 geometryClearcoatNormal = vec3( 0.0 );\\n#ifdef USE_CLEARCOAT\\n\\tgeometryClearcoatNormal = clearcoatNormal;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tfloat dotNVi = saturate( dot( normal, geometryViewDir ) );\\n\\tif ( material.iridescenceThickness == 0.0 ) {\\n\\t\\tmaterial.iridescence = 0.0;\\n\\t} else {\\n\\t\\tmaterial.iridescence = saturate( material.iridescence );\\n\\t}\\n\\tif ( material.iridescence > 0.0 ) {\\n\\t\\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\\n\\t\\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\\n\\t}\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointLightInfo( pointLight, geometryPosition, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\tvec4 spotColor;\\n\\tvec3 spotLightCoord;\\n\\tbool inSpotLightMap;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotLightInfo( spotLight, geometryPosition, directLight );\\n\\t\\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\\n\\t\\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\\n\\t\\t#else\\n\\t\\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\\n\\t\\t#endif\\n\\t\\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\\n\\t\\t\\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\\n\\t\\t\\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\\n\\t\\t\\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\\n\\t\\t\\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\\n\\t\\t#endif\\n\\t\\t#undef SPOT_LIGHT_MAP_INDEX\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalLightInfo( directionalLight, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\t#if defined( USE_LIGHT_PROBES )\\n\\t\\tirradiance += getLightProbeIrradiance( lightProbe, geometryNormal );\\n\\t#endif\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";\n\nvar lights_fragment_maps = \"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getIBLIrradiance( geometryNormal );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\t#ifdef USE_ANISOTROPY\\n\\t\\tradiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );\\n\\t#else\\n\\t\\tradiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tclearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );\\n\\t#endif\\n#endif\";\n\nvar lights_fragment_end = \"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );\\n#endif\";\n\nvar logdepthbuf_fragment = \"#if defined( USE_LOGDEPTHBUF )\\n\\tgl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";\n\nvar logdepthbuf_pars_fragment = \"#if defined( USE_LOGDEPTHBUF )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\n\nvar logdepthbuf_pars_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\n\nvar logdepthbuf_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\tvFragDepth = 1.0 + gl_Position.w;\\n\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n#endif\";\n\nvar map_fragment = \"#ifdef USE_MAP\\n\\tvec4 sampledDiffuseColor = texture2D( map, vMapUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\tsampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );\\n\\t\\n\\t#endif\\n\\tdiffuseColor *= sampledDiffuseColor;\\n#endif\";\n\nvar map_pars_fragment = \"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";\n\nvar map_particle_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t#if defined( USE_POINTS_UV )\\n\\t\\tvec2 uv = vUv;\\n\\t#else\\n\\t\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tdiffuseColor *= texture2D( map, uv );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";\n\nvar map_particle_pars_fragment = \"#if defined( USE_POINTS_UV )\\n\\tvarying vec2 vUv;\\n#else\\n\\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\t\\tuniform mat3 uvTransform;\\n\\t#endif\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar metalnessmap_fragment = \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";\n\nvar metalnessmap_pars_fragment = \"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";\n\nvar morphinstance_vertex = \"#ifdef USE_INSTANCING_MORPH\\n\\tfloat morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\tfloat morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tmorphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;\\n\\t}\\n#endif\";\n\nvar morphcolor_vertex = \"#if defined( USE_MORPHCOLORS )\\n\\tvColor *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\t#if defined( USE_COLOR_ALPHA )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\\n\\t\\t#elif defined( USE_COLOR )\\n\\t\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\\n\\t\\t#endif\\n\\t}\\n#endif\";\n\nvar morphnormal_vertex = \"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\\n\\t}\\n#endif\";\n\nvar morphtarget_pars_vertex = \"#ifdef USE_MORPHTARGETS\\n\\t#ifndef USE_INSTANCING_MORPH\\n\\t\\tuniform float morphTargetBaseInfluence;\\n\\t\\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\\n\\t#endif\\n\\tuniform sampler2DArray morphTargetsTexture;\\n\\tuniform ivec2 morphTargetsTextureSize;\\n\\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\\n\\t\\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\\n\\t\\tint y = texelIndex / morphTargetsTextureSize.x;\\n\\t\\tint x = texelIndex - y * morphTargetsTextureSize.x;\\n\\t\\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\\n\\t\\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\\n\\t}\\n#endif\";\n\nvar morphtarget_vertex = \"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\\n\\t\\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\\n\\t}\\n#endif\";\n\nvar normal_fragment_begin = \"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\\n#ifdef FLAT_SHADED\\n\\tvec3 fdx = dFdx( vViewPosition );\\n\\tvec3 fdy = dFdy( vViewPosition );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal *= faceDirection;\\n\\t#endif\\n#endif\\n#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn = getTangentFrame( - vViewPosition, normal,\\n\\t\\t#if defined( USE_NORMALMAP )\\n\\t\\t\\tvNormalMapUv\\n\\t\\t#elif defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tvClearcoatNormalMapUv\\n\\t\\t#else\\n\\t\\t\\tvUv\\n\\t\\t#endif\\n\\t\\t);\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn[0] *= faceDirection;\\n\\t\\ttbn[1] *= faceDirection;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\t#ifdef USE_TANGENT\\n\\t\\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\\n\\t#else\\n\\t\\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\\n\\t#endif\\n\\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\\n\\t\\ttbn2[0] *= faceDirection;\\n\\t\\ttbn2[1] *= faceDirection;\\n\\t#endif\\n#endif\\nvec3 nonPerturbedNormal = normal;\";\n\nvar normal_fragment_maps = \"#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * faceDirection;\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\tnormal = normalize( tbn * mapN );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\\n#endif\";\n\nvar normal_pars_fragment = \"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";\n\nvar normal_pars_vertex = \"#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n\\t#ifdef USE_TANGENT\\n\\t\\tvarying vec3 vTangent;\\n\\t\\tvarying vec3 vBitangent;\\n\\t#endif\\n#endif\";\n\nvar normal_vertex = \"#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n\\t#ifdef USE_TANGENT\\n\\t\\tvTangent = normalize( transformedTangent );\\n\\t\\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\\n\\t#endif\\n#endif\";\n\nvar normalmap_pars_fragment = \"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef USE_NORMALMAP_OBJECTSPACE\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )\\n\\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( uv.st );\\n\\t\\tvec2 st1 = dFdy( uv.st );\\n\\t\\tvec3 N = surf_norm;\\n\\t\\tvec3 q1perp = cross( q1, N );\\n\\t\\tvec3 q0perp = cross( N, q0 );\\n\\t\\tvec3 T = q1perp * st0.x + q0perp * st1.x;\\n\\t\\tvec3 B = q1perp * st0.y + q0perp * st1.y;\\n\\t\\tfloat det = max( dot( T, T ), dot( B, B ) );\\n\\t\\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\\n\\t\\treturn mat3( T * scale, B * scale, N );\\n\\t}\\n#endif\";\n\nvar clearcoat_normal_fragment_begin = \"#ifdef USE_CLEARCOAT\\n\\tvec3 clearcoatNormal = nonPerturbedNormal;\\n#endif\";\n\nvar clearcoat_normal_fragment_maps = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\\n#endif\";\n\nvar clearcoat_pars_fragment = \"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\";\n\nvar iridescence_pars_fragment = \"#ifdef USE_IRIDESCENCEMAP\\n\\tuniform sampler2D iridescenceMap;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform sampler2D iridescenceThicknessMap;\\n#endif\";\n\nvar opaque_fragment = \"#ifdef OPAQUE\\ndiffuseColor.a = 1.0;\\n#endif\\n#ifdef USE_TRANSMISSION\\ndiffuseColor.a *= material.transmissionAlpha;\\n#endif\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\";\n\nvar packing = \"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nvec2 packDepthToRG( in highp float v ) {\\n\\treturn packDepthToRGBA( v ).yx;\\n}\\nfloat unpackRGToDepth( const in highp vec2 v ) {\\n\\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\\n}\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\\n}\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn depth * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * depth - far );\\n}\";\n\nvar premultiplied_alpha_fragment = \"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";\n\nvar project_vertex = \"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_BATCHING\\n\\tmvPosition = batchingMatrix * mvPosition;\\n#endif\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";\n\nvar dithering_fragment = \"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";\n\nvar dithering_pars_fragment = \"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\";\n\nvar roughnessmap_fragment = \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";\n\nvar roughnessmap_pars_fragment = \"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";\n\nvar shadowmap_pars_fragment = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#if NUM_SPOT_LIGHT_MAPS > 0\\n\\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\\n\\t\\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn mix( 1.0, shadow, shadowIntensity );\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\t\\n\\t\\tfloat lightToPositionLength = length( lightToPosition );\\n\\t\\tif ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {\\n\\t\\t\\tfloat dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\t\\tdp += shadowBias;\\n\\t\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\t\\tshadow = (\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tshadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn mix( 1.0, shadow, shadowIntensity );\\n\\t}\\n#endif\";\n\nvar shadowmap_pars_vertex = \"#if NUM_SPOT_LIGHT_COORDS > 0\\n\\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\\n\\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\\n#endif\\n#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowIntensity;\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\";\n\nvar shadowmap_vertex = \"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\\n\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\tvec4 shadowWorldPosition;\\n#endif\\n#if defined( USE_SHADOWMAP )\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if NUM_SPOT_LIGHT_COORDS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition;\\n\\t\\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\t\\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\\n\\t\\t#endif\\n\\t\\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\";\n\nvar shadowmask_pars_fragment = \"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\";\n\nvar skinbase_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\";\n\nvar skinning_pars_vertex = \"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\tuniform highp sampler2D boneTexture;\\n\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\tint size = textureSize( boneTexture, 0 ).x;\\n\\t\\tint j = int( i ) * 4;\\n\\t\\tint x = j % size;\\n\\t\\tint y = j / size;\\n\\t\\tvec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\\n\\t\\tvec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\\n\\t\\tvec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\\n\\t\\tvec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\\n\\t\\treturn mat4( v1, v2, v3, v4 );\\n\\t}\\n#endif\";\n\nvar skinning_vertex = \"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\";\n\nvar skinnormal_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\";\n\nvar specularmap_fragment = \"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\";\n\nvar specularmap_pars_fragment = \"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";\n\nvar tonemapping_fragment = \"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";\n\nvar tonemapping_pars_fragment = \"#ifndef saturate\\n#define saturate( a ) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn saturate( toneMappingExposure * color );\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3( 1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108, 1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605, 1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nconst mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(\\n\\tvec3( 1.6605, - 0.1246, - 0.0182 ),\\n\\tvec3( - 0.5876, 1.1329, - 0.1006 ),\\n\\tvec3( - 0.0728, - 0.0083, 1.1187 )\\n);\\nconst mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(\\n\\tvec3( 0.6274, 0.0691, 0.0164 ),\\n\\tvec3( 0.3293, 0.9195, 0.0880 ),\\n\\tvec3( 0.0433, 0.0113, 0.8956 )\\n);\\nvec3 agxDefaultContrastApprox( vec3 x ) {\\n\\tvec3 x2 = x * x;\\n\\tvec3 x4 = x2 * x2;\\n\\treturn + 15.5 * x4 * x2\\n\\t\\t- 40.14 * x4 * x\\n\\t\\t+ 31.96 * x4\\n\\t\\t- 6.868 * x2 * x\\n\\t\\t+ 0.4298 * x2\\n\\t\\t+ 0.1191 * x\\n\\t\\t- 0.00232;\\n}\\nvec3 AgXToneMapping( vec3 color ) {\\n\\tconst mat3 AgXInsetMatrix = mat3(\\n\\t\\tvec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),\\n\\t\\tvec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),\\n\\t\\tvec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )\\n\\t);\\n\\tconst mat3 AgXOutsetMatrix = mat3(\\n\\t\\tvec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),\\n\\t\\tvec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),\\n\\t\\tvec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )\\n\\t);\\n\\tconst float AgxMinEv = - 12.47393;\\tconst float AgxMaxEv = 4.026069;\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = LINEAR_SRGB_TO_LINEAR_REC2020 * color;\\n\\tcolor = AgXInsetMatrix * color;\\n\\tcolor = max( color, 1e-10 );\\tcolor = log2( color );\\n\\tcolor = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\tcolor = agxDefaultContrastApprox( color );\\n\\tcolor = AgXOutsetMatrix * color;\\n\\tcolor = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );\\n\\tcolor = LINEAR_REC2020_TO_LINEAR_SRGB * color;\\n\\tcolor = clamp( color, 0.0, 1.0 );\\n\\treturn color;\\n}\\nvec3 NeutralToneMapping( vec3 color ) {\\n\\tconst float StartCompression = 0.8 - 0.04;\\n\\tconst float Desaturation = 0.15;\\n\\tcolor *= toneMappingExposure;\\n\\tfloat x = min( color.r, min( color.g, color.b ) );\\n\\tfloat offset = x < 0.08 ? x - 6.25 * x * x : 0.04;\\n\\tcolor -= offset;\\n\\tfloat peak = max( color.r, max( color.g, color.b ) );\\n\\tif ( peak < StartCompression ) return color;\\n\\tfloat d = 1. - StartCompression;\\n\\tfloat newPeak = 1. - d * d / ( peak + d - StartCompression );\\n\\tcolor *= newPeak / peak;\\n\\tfloat g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );\\n\\treturn mix( color, vec3( newPeak ), g );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";\n\nvar transmission_fragment = \"#ifdef USE_TRANSMISSION\\n\\tmaterial.transmission = transmission;\\n\\tmaterial.transmissionAlpha = 1.0;\\n\\tmaterial.thickness = thickness;\\n\\tmaterial.attenuationDistance = attenuationDistance;\\n\\tmaterial.attenuationColor = attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\\n\\t#endif\\n\\tvec3 pos = vWorldPosition;\\n\\tvec3 v = normalize( cameraPosition - pos );\\n\\tvec3 n = inverseTransformDirection( normal, viewMatrix );\\n\\tvec4 transmitted = getIBLVolumeRefraction(\\n\\t\\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\\n\\t\\tpos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,\\n\\t\\tmaterial.attenuationColor, material.attenuationDistance );\\n\\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );\\n\\ttotalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );\\n#endif\";\n\nvar transmission_pars_fragment = \"#ifdef USE_TRANSMISSION\\n\\tuniform float transmission;\\n\\tuniform float thickness;\\n\\tuniform float attenuationDistance;\\n\\tuniform vec3 attenuationColor;\\n\\t#ifdef USE_TRANSMISSIONMAP\\n\\t\\tuniform sampler2D transmissionMap;\\n\\t#endif\\n\\t#ifdef USE_THICKNESSMAP\\n\\t\\tuniform sampler2D thicknessMap;\\n\\t#endif\\n\\tuniform vec2 transmissionSamplerSize;\\n\\tuniform sampler2D transmissionSamplerMap;\\n\\tuniform mat4 modelMatrix;\\n\\tuniform mat4 projectionMatrix;\\n\\tvarying vec3 vWorldPosition;\\n\\tfloat w0( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w1( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\\n\\t}\\n\\tfloat w2( float a ){\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\\n\\t}\\n\\tfloat w3( float a ) {\\n\\t\\treturn ( 1.0 / 6.0 ) * ( a * a * a );\\n\\t}\\n\\tfloat g0( float a ) {\\n\\t\\treturn w0( a ) + w1( a );\\n\\t}\\n\\tfloat g1( float a ) {\\n\\t\\treturn w2( a ) + w3( a );\\n\\t}\\n\\tfloat h0( float a ) {\\n\\t\\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\\n\\t}\\n\\tfloat h1( float a ) {\\n\\t\\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\\n\\t}\\n\\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\\n\\t\\tuv = uv * texelSize.zw + 0.5;\\n\\t\\tvec2 iuv = floor( uv );\\n\\t\\tvec2 fuv = fract( uv );\\n\\t\\tfloat g0x = g0( fuv.x );\\n\\t\\tfloat g1x = g1( fuv.x );\\n\\t\\tfloat h0x = h0( fuv.x );\\n\\t\\tfloat h1x = h1( fuv.x );\\n\\t\\tfloat h0y = h0( fuv.y );\\n\\t\\tfloat h1y = h1( fuv.y );\\n\\t\\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\\n\\t\\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\\n\\t\\t\\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\\n\\t}\\n\\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\\n\\t\\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\\n\\t\\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\\n\\t\\tvec2 fLodSizeInv = 1.0 / fLodSize;\\n\\t\\tvec2 cLodSizeInv = 1.0 / cLodSize;\\n\\t\\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\\n\\t\\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\\n\\t\\treturn mix( fSample, cSample, fract( lod ) );\\n\\t}\\n\\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\\n\\t\\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\\n\\t\\tvec3 modelScale;\\n\\t\\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\\n\\t\\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\\n\\t\\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\\n\\t\\treturn normalize( refractionVector ) * thickness * modelScale;\\n\\t}\\n\\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\\n\\t\\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\\n\\t}\\n\\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\\n\\t\\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\\n\\t\\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\\n\\t}\\n\\tvec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tif ( isinf( attenuationDistance ) ) {\\n\\t\\t\\treturn vec3( 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\\n\\t\\t\\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\\t\\t\\treturn transmittance;\\n\\t\\t}\\n\\t}\\n\\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\\n\\t\\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\\n\\t\\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,\\n\\t\\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\\n\\t\\tvec4 transmittedLight;\\n\\t\\tvec3 transmittance;\\n\\t\\t#ifdef USE_DISPERSION\\n\\t\\t\\tfloat halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;\\n\\t\\t\\tvec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );\\n\\t\\t\\tfor ( int i = 0; i < 3; i ++ ) {\\n\\t\\t\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );\\n\\t\\t\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\t\\n\\t\\t\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\t\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\t\\t\\trefractionCoords += 1.0;\\n\\t\\t\\t\\trefractionCoords /= 2.0;\\n\\t\\t\\n\\t\\t\\t\\tvec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );\\n\\t\\t\\t\\ttransmittedLight[ i ] = transmissionSample[ i ];\\n\\t\\t\\t\\ttransmittedLight.a += transmissionSample.a;\\n\\t\\t\\t\\ttransmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];\\n\\t\\t\\t}\\n\\t\\t\\ttransmittedLight.a /= 3.0;\\n\\t\\t\\n\\t\\t#else\\n\\t\\t\\n\\t\\t\\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\\n\\t\\t\\tvec3 refractedRayExit = position + transmissionRay;\\n\\t\\t\\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\\n\\t\\t\\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\\n\\t\\t\\trefractionCoords += 1.0;\\n\\t\\t\\trefractionCoords /= 2.0;\\n\\t\\t\\ttransmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\\n\\t\\t\\ttransmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );\\n\\t\\t\\n\\t\\t#endif\\n\\t\\tvec3 attenuatedColor = transmittance * transmittedLight.rgb;\\n\\t\\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\\n\\t\\tfloat transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;\\n\\t\\treturn vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );\\n\\t}\\n#endif\";\n\nvar uv_pars_fragment = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";\n\nvar uv_pars_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvarying vec2 vUv;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform mat3 mapTransform;\\n\\tvarying vec2 vMapUv;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform mat3 alphaMapTransform;\\n\\tvarying vec2 vAlphaMapUv;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tuniform mat3 lightMapTransform;\\n\\tvarying vec2 vLightMapUv;\\n#endif\\n#ifdef USE_AOMAP\\n\\tuniform mat3 aoMapTransform;\\n\\tvarying vec2 vAoMapUv;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tuniform mat3 bumpMapTransform;\\n\\tvarying vec2 vBumpMapUv;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tuniform mat3 normalMapTransform;\\n\\tvarying vec2 vNormalMapUv;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tuniform mat3 displacementMapTransform;\\n\\tvarying vec2 vDisplacementMapUv;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tuniform mat3 emissiveMapTransform;\\n\\tvarying vec2 vEmissiveMapUv;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tuniform mat3 metalnessMapTransform;\\n\\tvarying vec2 vMetalnessMapUv;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tuniform mat3 roughnessMapTransform;\\n\\tvarying vec2 vRoughnessMapUv;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tuniform mat3 anisotropyMapTransform;\\n\\tvarying vec2 vAnisotropyMapUv;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tuniform mat3 clearcoatMapTransform;\\n\\tvarying vec2 vClearcoatMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform mat3 clearcoatNormalMapTransform;\\n\\tvarying vec2 vClearcoatNormalMapUv;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform mat3 clearcoatRoughnessMapTransform;\\n\\tvarying vec2 vClearcoatRoughnessMapUv;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tuniform mat3 sheenColorMapTransform;\\n\\tvarying vec2 vSheenColorMapUv;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tuniform mat3 sheenRoughnessMapTransform;\\n\\tvarying vec2 vSheenRoughnessMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tuniform mat3 iridescenceMapTransform;\\n\\tvarying vec2 vIridescenceMapUv;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tuniform mat3 iridescenceThicknessMapTransform;\\n\\tvarying vec2 vIridescenceThicknessMapUv;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tuniform mat3 specularMapTransform;\\n\\tvarying vec2 vSpecularMapUv;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tuniform mat3 specularColorMapTransform;\\n\\tvarying vec2 vSpecularColorMapUv;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tuniform mat3 specularIntensityMapTransform;\\n\\tvarying vec2 vSpecularIntensityMapUv;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tuniform mat3 transmissionMapTransform;\\n\\tvarying vec2 vTransmissionMapUv;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tuniform mat3 thicknessMapTransform;\\n\\tvarying vec2 vThicknessMapUv;\\n#endif\";\n\nvar uv_vertex = \"#if defined( USE_UV ) || defined( USE_ANISOTROPY )\\n\\tvUv = vec3( uv, 1 ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_LIGHTMAP\\n\\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_AOMAP\\n\\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_BUMPMAP\\n\\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_DISPLACEMENTMAP\\n\\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_EMISSIVEMAP\\n\\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_METALNESSMAP\\n\\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ROUGHNESSMAP\\n\\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_ANISOTROPYMAP\\n\\tvAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOATMAP\\n\\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCEMAP\\n\\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\\n\\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_COLORMAP\\n\\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULARMAP\\n\\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_COLORMAP\\n\\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_SPECULAR_INTENSITYMAP\\n\\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_TRANSMISSIONMAP\\n\\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\\n#endif\\n#ifdef USE_THICKNESSMAP\\n\\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\\n#endif\";\n\nvar worldpos_vertex = \"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_BATCHING\\n\\t\\tworldPosition = batchingMatrix * worldPosition;\\n\\t#endif\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";\n\nconst vertex$h = \"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\";\n\nconst fragment$h = \"uniform sampler2D t2D;\\nuniform float backgroundIntensity;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\t#ifdef DECODE_VIDEO_TEXTURE\\n\\t\\ttexColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$g = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\n\nconst fragment$g = \"#ifdef ENVMAP_TYPE_CUBE\\n\\tuniform samplerCube envMap;\\n#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\tuniform sampler2D envMap;\\n#endif\\nuniform float flipEnvMap;\\nuniform float backgroundBlurriness;\\nuniform float backgroundIntensity;\\nuniform mat3 backgroundRotation;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );\\n\\t#else\\n\\t\\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\t#endif\\n\\ttexColor.rgb *= backgroundIntensity;\\n\\tgl_FragColor = texColor;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$f = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\n\nconst fragment$f = \"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\nvoid main() {\\n\\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\\n\\tgl_FragColor = texColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$e = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\";\n\nconst fragment$e = \"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#endif\\n}\";\n\nconst vertex$d = \"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition.xyz;\\n}\";\n\nconst fragment$d = \"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main () {\\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";\n\nconst vertex$c = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$c = \"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$b = \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$b = \"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$a = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$a = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$9 = \"#define LAMBERT\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$9 = \"#define LAMBERT\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$8 = \"#define MATCAP\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n}\";\n\nconst fragment$8 = \"#define MATCAP\\nuniform vec3 diffuse;\\nuniform float opacity;\\nuniform sampler2D matcap;\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 viewDir = normalize( vViewPosition );\\n\\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\\n\\tvec3 y = cross( viewDir, x );\\n\\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\\n\\t#ifdef USE_MATCAP\\n\\t\\tvec4 matcapColor = texture2D( matcap, uv );\\n\\t#else\\n\\t\\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\\n\\t#endif\\n\\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$7 = \"#define NORMAL\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n}\";\n\nconst fragment$7 = \"#define NORMAL\\nuniform float opacity;\\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );\\n\\t#ifdef OPAQUE\\n\\t\\tgl_FragColor.a = 1.0;\\n\\t#endif\\n}\";\n\nconst vertex$6 = \"#define PHONG\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$6 = \"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$5 = \"#define STANDARD\\nvarying vec3 vViewPosition;\\n#ifdef USE_TRANSMISSION\\n\\tvarying vec3 vWorldPosition;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n#ifdef USE_TRANSMISSION\\n\\tvWorldPosition = worldPosition.xyz;\\n#endif\\n}\";\n\nconst fragment$5 = \"#define STANDARD\\n#ifdef PHYSICAL\\n\\t#define IOR\\n\\t#define USE_SPECULAR\\n#endif\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifdef IOR\\n\\tuniform float ior;\\n#endif\\n#ifdef USE_SPECULAR\\n\\tuniform float specularIntensity;\\n\\tuniform vec3 specularColor;\\n\\t#ifdef USE_SPECULAR_COLORMAP\\n\\t\\tuniform sampler2D specularColorMap;\\n\\t#endif\\n\\t#ifdef USE_SPECULAR_INTENSITYMAP\\n\\t\\tuniform sampler2D specularIntensityMap;\\n\\t#endif\\n#endif\\n#ifdef USE_CLEARCOAT\\n\\tuniform float clearcoat;\\n\\tuniform float clearcoatRoughness;\\n#endif\\n#ifdef USE_DISPERSION\\n\\tuniform float dispersion;\\n#endif\\n#ifdef USE_IRIDESCENCE\\n\\tuniform float iridescence;\\n\\tuniform float iridescenceIOR;\\n\\tuniform float iridescenceThicknessMinimum;\\n\\tuniform float iridescenceThicknessMaximum;\\n#endif\\n#ifdef USE_SHEEN\\n\\tuniform vec3 sheenColor;\\n\\tuniform float sheenRoughness;\\n\\t#ifdef USE_SHEEN_COLORMAP\\n\\t\\tuniform sampler2D sheenColorMap;\\n\\t#endif\\n\\t#ifdef USE_SHEEN_ROUGHNESSMAP\\n\\t\\tuniform sampler2D sheenRoughnessMap;\\n\\t#endif\\n#endif\\n#ifdef USE_ANISOTROPY\\n\\tuniform vec2 anisotropyVector;\\n\\t#ifdef USE_ANISOTROPYMAP\\n\\t\\tuniform sampler2D anisotropyMap;\\n\\t#endif\\n#endif\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\\n\\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\\n\\t#include \\n\\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\\n\\t#ifdef USE_SHEEN\\n\\t\\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\\n\\t\\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT\\n\\t\\tfloat dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );\\n\\t\\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\\n\\t\\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$4 = \"#define TOON\\nvarying vec3 vViewPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$4 = \"#define TOON\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$3 = \"uniform float size;\\nuniform float scale;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#ifdef USE_POINTS_UV\\n\\tvarying vec2 vUv;\\n\\tuniform mat3 uvTransform;\\n#endif\\nvoid main() {\\n\\t#ifdef USE_POINTS_UV\\n\\t\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tgl_PointSize = size;\\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$3 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$2 = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$2 = \"uniform vec3 color;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst vertex$1 = \"uniform float rotation;\\nuniform vec2 center;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\\n\\tvec2 scale;\\n\\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\\n\\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\\n\\t#ifndef USE_SIZEATTENUATION\\n\\t\\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\\n\\t\\tif ( isPerspective ) scale *= - mvPosition.z;\\n\\t#endif\\n\\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\\n\\tvec2 rotatedPosition;\\n\\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\\n\\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\\n\\tmvPosition.xy += rotatedPosition;\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst fragment$1 = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nconst ShaderChunk = {\n\talphahash_fragment: alphahash_fragment,\n\talphahash_pars_fragment: alphahash_pars_fragment,\n\talphamap_fragment: alphamap_fragment,\n\talphamap_pars_fragment: alphamap_pars_fragment,\n\talphatest_fragment: alphatest_fragment,\n\talphatest_pars_fragment: alphatest_pars_fragment,\n\taomap_fragment: aomap_fragment,\n\taomap_pars_fragment: aomap_pars_fragment,\n\tbatching_pars_vertex: batching_pars_vertex,\n\tbatching_vertex: batching_vertex,\n\tbegin_vertex: begin_vertex,\n\tbeginnormal_vertex: beginnormal_vertex,\n\tbsdfs: bsdfs,\n\tiridescence_fragment: iridescence_fragment,\n\tbumpmap_pars_fragment: bumpmap_pars_fragment,\n\tclipping_planes_fragment: clipping_planes_fragment,\n\tclipping_planes_pars_fragment: clipping_planes_pars_fragment,\n\tclipping_planes_pars_vertex: clipping_planes_pars_vertex,\n\tclipping_planes_vertex: clipping_planes_vertex,\n\tcolor_fragment: color_fragment,\n\tcolor_pars_fragment: color_pars_fragment,\n\tcolor_pars_vertex: color_pars_vertex,\n\tcolor_vertex: color_vertex,\n\tcommon: common,\n\tcube_uv_reflection_fragment: cube_uv_reflection_fragment,\n\tdefaultnormal_vertex: defaultnormal_vertex,\n\tdisplacementmap_pars_vertex: displacementmap_pars_vertex,\n\tdisplacementmap_vertex: displacementmap_vertex,\n\temissivemap_fragment: emissivemap_fragment,\n\temissivemap_pars_fragment: emissivemap_pars_fragment,\n\tcolorspace_fragment: colorspace_fragment,\n\tcolorspace_pars_fragment: colorspace_pars_fragment,\n\tenvmap_fragment: envmap_fragment,\n\tenvmap_common_pars_fragment: envmap_common_pars_fragment,\n\tenvmap_pars_fragment: envmap_pars_fragment,\n\tenvmap_pars_vertex: envmap_pars_vertex,\n\tenvmap_physical_pars_fragment: envmap_physical_pars_fragment,\n\tenvmap_vertex: envmap_vertex,\n\tfog_vertex: fog_vertex,\n\tfog_pars_vertex: fog_pars_vertex,\n\tfog_fragment: fog_fragment,\n\tfog_pars_fragment: fog_pars_fragment,\n\tgradientmap_pars_fragment: gradientmap_pars_fragment,\n\tlightmap_pars_fragment: lightmap_pars_fragment,\n\tlights_lambert_fragment: lights_lambert_fragment,\n\tlights_lambert_pars_fragment: lights_lambert_pars_fragment,\n\tlights_pars_begin: lights_pars_begin,\n\tlights_toon_fragment: lights_toon_fragment,\n\tlights_toon_pars_fragment: lights_toon_pars_fragment,\n\tlights_phong_fragment: lights_phong_fragment,\n\tlights_phong_pars_fragment: lights_phong_pars_fragment,\n\tlights_physical_fragment: lights_physical_fragment,\n\tlights_physical_pars_fragment: lights_physical_pars_fragment,\n\tlights_fragment_begin: lights_fragment_begin,\n\tlights_fragment_maps: lights_fragment_maps,\n\tlights_fragment_end: lights_fragment_end,\n\tlogdepthbuf_fragment: logdepthbuf_fragment,\n\tlogdepthbuf_pars_fragment: logdepthbuf_pars_fragment,\n\tlogdepthbuf_pars_vertex: logdepthbuf_pars_vertex,\n\tlogdepthbuf_vertex: logdepthbuf_vertex,\n\tmap_fragment: map_fragment,\n\tmap_pars_fragment: map_pars_fragment,\n\tmap_particle_fragment: map_particle_fragment,\n\tmap_particle_pars_fragment: map_particle_pars_fragment,\n\tmetalnessmap_fragment: metalnessmap_fragment,\n\tmetalnessmap_pars_fragment: metalnessmap_pars_fragment,\n\tmorphinstance_vertex: morphinstance_vertex,\n\tmorphcolor_vertex: morphcolor_vertex,\n\tmorphnormal_vertex: morphnormal_vertex,\n\tmorphtarget_pars_vertex: morphtarget_pars_vertex,\n\tmorphtarget_vertex: morphtarget_vertex,\n\tnormal_fragment_begin: normal_fragment_begin,\n\tnormal_fragment_maps: normal_fragment_maps,\n\tnormal_pars_fragment: normal_pars_fragment,\n\tnormal_pars_vertex: normal_pars_vertex,\n\tnormal_vertex: normal_vertex,\n\tnormalmap_pars_fragment: normalmap_pars_fragment,\n\tclearcoat_normal_fragment_begin: clearcoat_normal_fragment_begin,\n\tclearcoat_normal_fragment_maps: clearcoat_normal_fragment_maps,\n\tclearcoat_pars_fragment: clearcoat_pars_fragment,\n\tiridescence_pars_fragment: iridescence_pars_fragment,\n\topaque_fragment: opaque_fragment,\n\tpacking: packing,\n\tpremultiplied_alpha_fragment: premultiplied_alpha_fragment,\n\tproject_vertex: project_vertex,\n\tdithering_fragment: dithering_fragment,\n\tdithering_pars_fragment: dithering_pars_fragment,\n\troughnessmap_fragment: roughnessmap_fragment,\n\troughnessmap_pars_fragment: roughnessmap_pars_fragment,\n\tshadowmap_pars_fragment: shadowmap_pars_fragment,\n\tshadowmap_pars_vertex: shadowmap_pars_vertex,\n\tshadowmap_vertex: shadowmap_vertex,\n\tshadowmask_pars_fragment: shadowmask_pars_fragment,\n\tskinbase_vertex: skinbase_vertex,\n\tskinning_pars_vertex: skinning_pars_vertex,\n\tskinning_vertex: skinning_vertex,\n\tskinnormal_vertex: skinnormal_vertex,\n\tspecularmap_fragment: specularmap_fragment,\n\tspecularmap_pars_fragment: specularmap_pars_fragment,\n\ttonemapping_fragment: tonemapping_fragment,\n\ttonemapping_pars_fragment: tonemapping_pars_fragment,\n\ttransmission_fragment: transmission_fragment,\n\ttransmission_pars_fragment: transmission_pars_fragment,\n\tuv_pars_fragment: uv_pars_fragment,\n\tuv_pars_vertex: uv_pars_vertex,\n\tuv_vertex: uv_vertex,\n\tworldpos_vertex: worldpos_vertex,\n\n\tbackground_vert: vertex$h,\n\tbackground_frag: fragment$h,\n\tbackgroundCube_vert: vertex$g,\n\tbackgroundCube_frag: fragment$g,\n\tcube_vert: vertex$f,\n\tcube_frag: fragment$f,\n\tdepth_vert: vertex$e,\n\tdepth_frag: fragment$e,\n\tdistanceRGBA_vert: vertex$d,\n\tdistanceRGBA_frag: fragment$d,\n\tequirect_vert: vertex$c,\n\tequirect_frag: fragment$c,\n\tlinedashed_vert: vertex$b,\n\tlinedashed_frag: fragment$b,\n\tmeshbasic_vert: vertex$a,\n\tmeshbasic_frag: fragment$a,\n\tmeshlambert_vert: vertex$9,\n\tmeshlambert_frag: fragment$9,\n\tmeshmatcap_vert: vertex$8,\n\tmeshmatcap_frag: fragment$8,\n\tmeshnormal_vert: vertex$7,\n\tmeshnormal_frag: fragment$7,\n\tmeshphong_vert: vertex$6,\n\tmeshphong_frag: fragment$6,\n\tmeshphysical_vert: vertex$5,\n\tmeshphysical_frag: fragment$5,\n\tmeshtoon_vert: vertex$4,\n\tmeshtoon_frag: fragment$4,\n\tpoints_vert: vertex$3,\n\tpoints_frag: fragment$3,\n\tshadow_vert: vertex$2,\n\tshadow_frag: fragment$2,\n\tsprite_vert: vertex$1,\n\tsprite_frag: fragment$1\n};\n\n/**\n * Uniforms library for shared webgl shaders\n */\n\nconst UniformsLib = {\n\n\tcommon: {\n\n\t\tdiffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\n\t\tmap: { value: null },\n\t\tmapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\n\t\talphaMap: { value: null },\n\t\talphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\n\t\talphaTest: { value: 0 }\n\n\t},\n\n\tspecularmap: {\n\n\t\tspecularMap: { value: null },\n\t\tspecularMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tenvmap: {\n\n\t\tenvMap: { value: null },\n\t\tenvMapRotation: { value: /*@__PURE__*/ new Matrix3() },\n\t\tflipEnvMap: { value: - 1 },\n\t\treflectivity: { value: 1.0 }, // basic, lambert, phong\n\t\tior: { value: 1.5 }, // physical\n\t\trefractionRatio: { value: 0.98 }, // basic, lambert, phong\n\n\t},\n\n\taomap: {\n\n\t\taoMap: { value: null },\n\t\taoMapIntensity: { value: 1 },\n\t\taoMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tlightmap: {\n\n\t\tlightMap: { value: null },\n\t\tlightMapIntensity: { value: 1 },\n\t\tlightMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tbumpmap: {\n\n\t\tbumpMap: { value: null },\n\t\tbumpMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\tbumpScale: { value: 1 }\n\n\t},\n\n\tnormalmap: {\n\n\t\tnormalMap: { value: null },\n\t\tnormalMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\tnormalScale: { value: /*@__PURE__*/ new Vector2( 1, 1 ) }\n\n\t},\n\n\tdisplacementmap: {\n\n\t\tdisplacementMap: { value: null },\n\t\tdisplacementMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\tdisplacementScale: { value: 1 },\n\t\tdisplacementBias: { value: 0 }\n\n\t},\n\n\temissivemap: {\n\n\t\temissiveMap: { value: null },\n\t\temissiveMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tmetalnessmap: {\n\n\t\tmetalnessMap: { value: null },\n\t\tmetalnessMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\troughnessmap: {\n\n\t\troughnessMap: { value: null },\n\t\troughnessMapTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tgradientmap: {\n\n\t\tgradientMap: { value: null }\n\n\t},\n\n\tfog: {\n\n\t\tfogDensity: { value: 0.00025 },\n\t\tfogNear: { value: 1 },\n\t\tfogFar: { value: 2000 },\n\t\tfogColor: { value: /*@__PURE__*/ new Color( 0xffffff ) }\n\n\t},\n\n\tlights: {\n\n\t\tambientLightColor: { value: [] },\n\n\t\tlightProbe: { value: [] },\n\n\t\tdirectionalLights: { value: [], properties: {\n\t\t\tdirection: {},\n\t\t\tcolor: {}\n\t\t} },\n\n\t\tdirectionalLightShadows: { value: [], properties: {\n\t\t\tshadowIntensity: 1,\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {}\n\t\t} },\n\n\t\tdirectionalShadowMap: { value: [] },\n\t\tdirectionalShadowMatrix: { value: [] },\n\n\t\tspotLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\tdirection: {},\n\t\t\tdistance: {},\n\t\t\tconeCos: {},\n\t\t\tpenumbraCos: {},\n\t\t\tdecay: {}\n\t\t} },\n\n\t\tspotLightShadows: { value: [], properties: {\n\t\t\tshadowIntensity: 1,\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {}\n\t\t} },\n\n\t\tspotLightMap: { value: [] },\n\t\tspotShadowMap: { value: [] },\n\t\tspotLightMatrix: { value: [] },\n\n\t\tpointLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\tdecay: {},\n\t\t\tdistance: {}\n\t\t} },\n\n\t\tpointLightShadows: { value: [], properties: {\n\t\t\tshadowIntensity: 1,\n\t\t\tshadowBias: {},\n\t\t\tshadowNormalBias: {},\n\t\t\tshadowRadius: {},\n\t\t\tshadowMapSize: {},\n\t\t\tshadowCameraNear: {},\n\t\t\tshadowCameraFar: {}\n\t\t} },\n\n\t\tpointShadowMap: { value: [] },\n\t\tpointShadowMatrix: { value: [] },\n\n\t\themisphereLights: { value: [], properties: {\n\t\t\tdirection: {},\n\t\t\tskyColor: {},\n\t\t\tgroundColor: {}\n\t\t} },\n\n\t\t// TODO (abelnation): RectAreaLight BRDF data needs to be moved from example to main src\n\t\trectAreaLights: { value: [], properties: {\n\t\t\tcolor: {},\n\t\t\tposition: {},\n\t\t\twidth: {},\n\t\t\theight: {}\n\t\t} },\n\n\t\tltc_1: { value: null },\n\t\tltc_2: { value: null }\n\n\t},\n\n\tpoints: {\n\n\t\tdiffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\t\tsize: { value: 1.0 },\n\t\tscale: { value: 1.0 },\n\t\tmap: { value: null },\n\t\talphaMap: { value: null },\n\t\talphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\talphaTest: { value: 0 },\n\t\tuvTransform: { value: /*@__PURE__*/ new Matrix3() }\n\n\t},\n\n\tsprite: {\n\n\t\tdiffuse: { value: /*@__PURE__*/ new Color( 0xffffff ) },\n\t\topacity: { value: 1.0 },\n\t\tcenter: { value: /*@__PURE__*/ new Vector2( 0.5, 0.5 ) },\n\t\trotation: { value: 0.0 },\n\t\tmap: { value: null },\n\t\tmapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\talphaMap: { value: null },\n\t\talphaMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\talphaTest: { value: 0 }\n\n\t}\n\n};\n\nconst ShaderLib = {\n\n\tbasic: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshbasic_vert,\n\t\tfragmentShader: ShaderChunk.meshbasic_frag\n\n\t},\n\n\tlambert: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshlambert_vert,\n\t\tfragmentShader: ShaderChunk.meshlambert_frag\n\n\t},\n\n\tphong: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.specularmap,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\t\tspecular: { value: /*@__PURE__*/ new Color( 0x111111 ) },\n\t\t\t\tshininess: { value: 30 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshphong_vert,\n\t\tfragmentShader: ShaderChunk.meshphong_frag\n\n\t},\n\n\tstandard: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.envmap,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.roughnessmap,\n\t\t\tUniformsLib.metalnessmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\t\troughness: { value: 1.0 },\n\t\t\t\tmetalness: { value: 0.0 },\n\t\t\t\tenvMapIntensity: { value: 1 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshphysical_vert,\n\t\tfragmentShader: ShaderChunk.meshphysical_frag\n\n\t},\n\n\ttoon: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.aomap,\n\t\t\tUniformsLib.lightmap,\n\t\t\tUniformsLib.emissivemap,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.gradientmap,\n\t\t\tUniformsLib.fog,\n\t\t\tUniformsLib.lights,\n\t\t\t{\n\t\t\t\temissive: { value: /*@__PURE__*/ new Color( 0x000000 ) }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshtoon_vert,\n\t\tfragmentShader: ShaderChunk.meshtoon_frag\n\n\t},\n\n\tmatcap: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tmatcap: { value: null }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshmatcap_vert,\n\t\tfragmentShader: ShaderChunk.meshmatcap_frag\n\n\t},\n\n\tpoints: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.points,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.points_vert,\n\t\tfragmentShader: ShaderChunk.points_frag\n\n\t},\n\n\tdashed: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tscale: { value: 1 },\n\t\t\t\tdashSize: { value: 1 },\n\t\t\t\ttotalSize: { value: 2 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.linedashed_vert,\n\t\tfragmentShader: ShaderChunk.linedashed_frag\n\n\t},\n\n\tdepth: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.displacementmap\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.depth_vert,\n\t\tfragmentShader: ShaderChunk.depth_frag\n\n\t},\n\n\tnormal: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.bumpmap,\n\t\t\tUniformsLib.normalmap,\n\t\t\tUniformsLib.displacementmap,\n\t\t\t{\n\t\t\t\topacity: { value: 1.0 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.meshnormal_vert,\n\t\tfragmentShader: ShaderChunk.meshnormal_frag\n\n\t},\n\n\tsprite: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.sprite,\n\t\t\tUniformsLib.fog\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.sprite_vert,\n\t\tfragmentShader: ShaderChunk.sprite_frag\n\n\t},\n\n\tbackground: {\n\n\t\tuniforms: {\n\t\t\tuvTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tt2D: { value: null },\n\t\t\tbackgroundIntensity: { value: 1 }\n\t\t},\n\n\t\tvertexShader: ShaderChunk.background_vert,\n\t\tfragmentShader: ShaderChunk.background_frag\n\n\t},\n\n\tbackgroundCube: {\n\n\t\tuniforms: {\n\t\t\tenvMap: { value: null },\n\t\t\tflipEnvMap: { value: - 1 },\n\t\t\tbackgroundBlurriness: { value: 0 },\n\t\t\tbackgroundIntensity: { value: 1 },\n\t\t\tbackgroundRotation: { value: /*@__PURE__*/ new Matrix3() }\n\t\t},\n\n\t\tvertexShader: ShaderChunk.backgroundCube_vert,\n\t\tfragmentShader: ShaderChunk.backgroundCube_frag\n\n\t},\n\n\tcube: {\n\n\t\tuniforms: {\n\t\t\ttCube: { value: null },\n\t\t\ttFlip: { value: - 1 },\n\t\t\topacity: { value: 1.0 }\n\t\t},\n\n\t\tvertexShader: ShaderChunk.cube_vert,\n\t\tfragmentShader: ShaderChunk.cube_frag\n\n\t},\n\n\tequirect: {\n\n\t\tuniforms: {\n\t\t\ttEquirect: { value: null },\n\t\t},\n\n\t\tvertexShader: ShaderChunk.equirect_vert,\n\t\tfragmentShader: ShaderChunk.equirect_frag\n\n\t},\n\n\tdistanceRGBA: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.common,\n\t\t\tUniformsLib.displacementmap,\n\t\t\t{\n\t\t\t\treferencePosition: { value: /*@__PURE__*/ new Vector3() },\n\t\t\t\tnearDistance: { value: 1 },\n\t\t\t\tfarDistance: { value: 1000 }\n\t\t\t}\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.distanceRGBA_vert,\n\t\tfragmentShader: ShaderChunk.distanceRGBA_frag\n\n\t},\n\n\tshadow: {\n\n\t\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\t\tUniformsLib.lights,\n\t\t\tUniformsLib.fog,\n\t\t\t{\n\t\t\t\tcolor: { value: /*@__PURE__*/ new Color( 0x00000 ) },\n\t\t\t\topacity: { value: 1.0 }\n\t\t\t},\n\t\t] ),\n\n\t\tvertexShader: ShaderChunk.shadow_vert,\n\t\tfragmentShader: ShaderChunk.shadow_frag\n\n\t}\n\n};\n\nShaderLib.physical = {\n\n\tuniforms: /*@__PURE__*/ mergeUniforms( [\n\t\tShaderLib.standard.uniforms,\n\t\t{\n\t\t\tclearcoat: { value: 0 },\n\t\t\tclearcoatMap: { value: null },\n\t\t\tclearcoatMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tclearcoatNormalMap: { value: null },\n\t\t\tclearcoatNormalMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tclearcoatNormalScale: { value: /*@__PURE__*/ new Vector2( 1, 1 ) },\n\t\t\tclearcoatRoughness: { value: 0 },\n\t\t\tclearcoatRoughnessMap: { value: null },\n\t\t\tclearcoatRoughnessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tdispersion: { value: 0 },\n\t\t\tiridescence: { value: 0 },\n\t\t\tiridescenceMap: { value: null },\n\t\t\tiridescenceMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tiridescenceIOR: { value: 1.3 },\n\t\t\tiridescenceThicknessMinimum: { value: 100 },\n\t\t\tiridescenceThicknessMaximum: { value: 400 },\n\t\t\tiridescenceThicknessMap: { value: null },\n\t\t\tiridescenceThicknessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tsheen: { value: 0 },\n\t\t\tsheenColor: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\tsheenColorMap: { value: null },\n\t\t\tsheenColorMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tsheenRoughness: { value: 1 },\n\t\t\tsheenRoughnessMap: { value: null },\n\t\t\tsheenRoughnessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\ttransmission: { value: 0 },\n\t\t\ttransmissionMap: { value: null },\n\t\t\ttransmissionMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\ttransmissionSamplerSize: { value: /*@__PURE__*/ new Vector2() },\n\t\t\ttransmissionSamplerMap: { value: null },\n\t\t\tthickness: { value: 0 },\n\t\t\tthicknessMap: { value: null },\n\t\t\tthicknessMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tattenuationDistance: { value: 0 },\n\t\t\tattenuationColor: { value: /*@__PURE__*/ new Color( 0x000000 ) },\n\t\t\tspecularColor: { value: /*@__PURE__*/ new Color( 1, 1, 1 ) },\n\t\t\tspecularColorMap: { value: null },\n\t\t\tspecularColorMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tspecularIntensity: { value: 1 },\n\t\t\tspecularIntensityMap: { value: null },\n\t\t\tspecularIntensityMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t\tanisotropyVector: { value: /*@__PURE__*/ new Vector2() },\n\t\t\tanisotropyMap: { value: null },\n\t\t\tanisotropyMapTransform: { value: /*@__PURE__*/ new Matrix3() },\n\t\t}\n\t] ),\n\n\tvertexShader: ShaderChunk.meshphysical_vert,\n\tfragmentShader: ShaderChunk.meshphysical_frag\n\n};\n\nconst _rgb = { r: 0, b: 0, g: 0 };\nconst _e1$1 = /*@__PURE__*/ new Euler();\nconst _m1$1 = /*@__PURE__*/ new Matrix4();\n\nfunction WebGLBackground( renderer, cubemaps, cubeuvmaps, state, objects, alpha, premultipliedAlpha ) {\n\n\tconst clearColor = new Color( 0x000000 );\n\tlet clearAlpha = alpha === true ? 0 : 1;\n\n\tlet planeMesh;\n\tlet boxMesh;\n\n\tlet currentBackground = null;\n\tlet currentBackgroundVersion = 0;\n\tlet currentTonemapping = null;\n\n\tfunction getBackground( scene ) {\n\n\t\tlet background = scene.isScene === true ? scene.background : null;\n\n\t\tif ( background && background.isTexture ) {\n\n\t\t\tconst usePMREM = scene.backgroundBlurriness > 0; // use PMREM if the user wants to blur the background\n\t\t\tbackground = ( usePMREM ? cubeuvmaps : cubemaps ).get( background );\n\n\t\t}\n\n\t\treturn background;\n\n\t}\n\n\tfunction render( scene ) {\n\n\t\tlet forceClear = false;\n\t\tconst background = getBackground( scene );\n\n\t\tif ( background === null ) {\n\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t} else if ( background && background.isColor ) {\n\n\t\t\tsetClear( background, 1 );\n\t\t\tforceClear = true;\n\n\t\t}\n\n\t\tconst environmentBlendMode = renderer.xr.getEnvironmentBlendMode();\n\n\t\tif ( environmentBlendMode === 'additive' ) {\n\n\t\t\tstate.buffers.color.setClear( 0, 0, 0, 1, premultipliedAlpha );\n\n\t\t} else if ( environmentBlendMode === 'alpha-blend' ) {\n\n\t\t\tstate.buffers.color.setClear( 0, 0, 0, 0, premultipliedAlpha );\n\n\t\t}\n\n\t\tif ( renderer.autoClear || forceClear ) {\n\n\t\t\t// buffers might not be writable which is required to ensure a correct clear\n\n\t\t\tstate.buffers.depth.setTest( true );\n\t\t\tstate.buffers.depth.setMask( true );\n\t\t\tstate.buffers.color.setMask( true );\n\n\t\t\trenderer.clear( renderer.autoClearColor, renderer.autoClearDepth, renderer.autoClearStencil );\n\n\t\t}\n\n\t}\n\n\tfunction addToRenderList( renderList, scene ) {\n\n\t\tconst background = getBackground( scene );\n\n\t\tif ( background && ( background.isCubeTexture || background.mapping === CubeUVReflectionMapping ) ) {\n\n\t\t\tif ( boxMesh === undefined ) {\n\n\t\t\t\tboxMesh = new Mesh(\n\t\t\t\t\tnew BoxGeometry( 1, 1, 1 ),\n\t\t\t\t\tnew ShaderMaterial( {\n\t\t\t\t\t\tname: 'BackgroundCubeMaterial',\n\t\t\t\t\t\tuniforms: cloneUniforms( ShaderLib.backgroundCube.uniforms ),\n\t\t\t\t\t\tvertexShader: ShaderLib.backgroundCube.vertexShader,\n\t\t\t\t\t\tfragmentShader: ShaderLib.backgroundCube.fragmentShader,\n\t\t\t\t\t\tside: BackSide,\n\t\t\t\t\t\tdepthTest: false,\n\t\t\t\t\t\tdepthWrite: false,\n\t\t\t\t\t\tfog: false\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tboxMesh.geometry.deleteAttribute( 'normal' );\n\t\t\t\tboxMesh.geometry.deleteAttribute( 'uv' );\n\n\t\t\t\tboxMesh.onBeforeRender = function ( renderer, scene, camera ) {\n\n\t\t\t\t\tthis.matrixWorld.copyPosition( camera.matrixWorld );\n\n\t\t\t\t};\n\n\t\t\t\t// add \"envMap\" material property so the renderer can evaluate it like for built-in materials\n\t\t\t\tObject.defineProperty( boxMesh.material, 'envMap', {\n\n\t\t\t\t\tget: function () {\n\n\t\t\t\t\t\treturn this.uniforms.envMap.value;\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tobjects.update( boxMesh );\n\n\t\t\t}\n\n\t\t\t_e1$1.copy( scene.backgroundRotation );\n\n\t\t\t// accommodate left-handed frame\n\t\t\t_e1$1.x *= - 1; _e1$1.y *= - 1; _e1$1.z *= - 1;\n\n\t\t\tif ( background.isCubeTexture && background.isRenderTargetTexture === false ) {\n\n\t\t\t\t// environment maps which are not cube render targets or PMREMs follow a different convention\n\t\t\t\t_e1$1.y *= - 1;\n\t\t\t\t_e1$1.z *= - 1;\n\n\t\t\t}\n\n\t\t\tboxMesh.material.uniforms.envMap.value = background;\n\t\t\tboxMesh.material.uniforms.flipEnvMap.value = ( background.isCubeTexture && background.isRenderTargetTexture === false ) ? - 1 : 1;\n\t\t\tboxMesh.material.uniforms.backgroundBlurriness.value = scene.backgroundBlurriness;\n\t\t\tboxMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity;\n\t\t\tboxMesh.material.uniforms.backgroundRotation.value.setFromMatrix4( _m1$1.makeRotationFromEuler( _e1$1 ) );\n\t\t\tboxMesh.material.toneMapped = ColorManagement.getTransfer( background.colorSpace ) !== SRGBTransfer;\n\n\t\t\tif ( currentBackground !== background ||\n\t\t\t\tcurrentBackgroundVersion !== background.version ||\n\t\t\t\tcurrentTonemapping !== renderer.toneMapping ) {\n\n\t\t\t\tboxMesh.material.needsUpdate = true;\n\n\t\t\t\tcurrentBackground = background;\n\t\t\t\tcurrentBackgroundVersion = background.version;\n\t\t\t\tcurrentTonemapping = renderer.toneMapping;\n\n\t\t\t}\n\n\t\t\tboxMesh.layers.enableAll();\n\n\t\t\t// push to the pre-sorted opaque render list\n\t\t\trenderList.unshift( boxMesh, boxMesh.geometry, boxMesh.material, 0, 0, null );\n\n\t\t} else if ( background && background.isTexture ) {\n\n\t\t\tif ( planeMesh === undefined ) {\n\n\t\t\t\tplaneMesh = new Mesh(\n\t\t\t\t\tnew PlaneGeometry( 2, 2 ),\n\t\t\t\t\tnew ShaderMaterial( {\n\t\t\t\t\t\tname: 'BackgroundMaterial',\n\t\t\t\t\t\tuniforms: cloneUniforms( ShaderLib.background.uniforms ),\n\t\t\t\t\t\tvertexShader: ShaderLib.background.vertexShader,\n\t\t\t\t\t\tfragmentShader: ShaderLib.background.fragmentShader,\n\t\t\t\t\t\tside: FrontSide,\n\t\t\t\t\t\tdepthTest: false,\n\t\t\t\t\t\tdepthWrite: false,\n\t\t\t\t\t\tfog: false\n\t\t\t\t\t} )\n\t\t\t\t);\n\n\t\t\t\tplaneMesh.geometry.deleteAttribute( 'normal' );\n\n\t\t\t\t// add \"map\" material property so the renderer can evaluate it like for built-in materials\n\t\t\t\tObject.defineProperty( planeMesh.material, 'map', {\n\n\t\t\t\t\tget: function () {\n\n\t\t\t\t\t\treturn this.uniforms.t2D.value;\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t\tobjects.update( planeMesh );\n\n\t\t\t}\n\n\t\t\tplaneMesh.material.uniforms.t2D.value = background;\n\t\t\tplaneMesh.material.uniforms.backgroundIntensity.value = scene.backgroundIntensity;\n\t\t\tplaneMesh.material.toneMapped = ColorManagement.getTransfer( background.colorSpace ) !== SRGBTransfer;\n\n\t\t\tif ( background.matrixAutoUpdate === true ) {\n\n\t\t\t\tbackground.updateMatrix();\n\n\t\t\t}\n\n\t\t\tplaneMesh.material.uniforms.uvTransform.value.copy( background.matrix );\n\n\t\t\tif ( currentBackground !== background ||\n\t\t\t\tcurrentBackgroundVersion !== background.version ||\n\t\t\t\tcurrentTonemapping !== renderer.toneMapping ) {\n\n\t\t\t\tplaneMesh.material.needsUpdate = true;\n\n\t\t\t\tcurrentBackground = background;\n\t\t\t\tcurrentBackgroundVersion = background.version;\n\t\t\t\tcurrentTonemapping = renderer.toneMapping;\n\n\t\t\t}\n\n\t\t\tplaneMesh.layers.enableAll();\n\n\t\t\t// push to the pre-sorted opaque render list\n\t\t\trenderList.unshift( planeMesh, planeMesh.geometry, planeMesh.material, 0, 0, null );\n\n\t\t}\n\n\t}\n\n\tfunction setClear( color, alpha ) {\n\n\t\tcolor.getRGB( _rgb, getUnlitUniformColorSpace( renderer ) );\n\n\t\tstate.buffers.color.setClear( _rgb.r, _rgb.g, _rgb.b, alpha, premultipliedAlpha );\n\n\t}\n\n\treturn {\n\n\t\tgetClearColor: function () {\n\n\t\t\treturn clearColor;\n\n\t\t},\n\t\tsetClearColor: function ( color, alpha = 1 ) {\n\n\t\t\tclearColor.set( color );\n\t\t\tclearAlpha = alpha;\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t},\n\t\tgetClearAlpha: function () {\n\n\t\t\treturn clearAlpha;\n\n\t\t},\n\t\tsetClearAlpha: function ( alpha ) {\n\n\t\t\tclearAlpha = alpha;\n\t\t\tsetClear( clearColor, clearAlpha );\n\n\t\t},\n\t\trender: render,\n\t\taddToRenderList: addToRenderList\n\n\t};\n\n}\n\nfunction WebGLBindingStates( gl, attributes ) {\n\n\tconst maxVertexAttributes = gl.getParameter( gl.MAX_VERTEX_ATTRIBS );\n\n\tconst bindingStates = {};\n\n\tconst defaultState = createBindingState( null );\n\tlet currentState = defaultState;\n\tlet forceUpdate = false;\n\n\tfunction setup( object, material, program, geometry, index ) {\n\n\t\tlet updateBuffers = false;\n\n\t\tconst state = getBindingState( geometry, program, material );\n\n\t\tif ( currentState !== state ) {\n\n\t\t\tcurrentState = state;\n\t\t\tbindVertexArrayObject( currentState.object );\n\n\t\t}\n\n\t\tupdateBuffers = needsUpdate( object, geometry, program, index );\n\n\t\tif ( updateBuffers ) saveCache( object, geometry, program, index );\n\n\t\tif ( index !== null ) {\n\n\t\t\tattributes.update( index, gl.ELEMENT_ARRAY_BUFFER );\n\n\t\t}\n\n\t\tif ( updateBuffers || forceUpdate ) {\n\n\t\t\tforceUpdate = false;\n\n\t\t\tsetupVertexAttributes( object, material, program, geometry );\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tgl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, attributes.get( index ).buffer );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction createVertexArrayObject() {\n\n\t\treturn gl.createVertexArray();\n\n\t}\n\n\tfunction bindVertexArrayObject( vao ) {\n\n\t\treturn gl.bindVertexArray( vao );\n\n\t}\n\n\tfunction deleteVertexArrayObject( vao ) {\n\n\t\treturn gl.deleteVertexArray( vao );\n\n\t}\n\n\tfunction getBindingState( geometry, program, material ) {\n\n\t\tconst wireframe = ( material.wireframe === true );\n\n\t\tlet programMap = bindingStates[ geometry.id ];\n\n\t\tif ( programMap === undefined ) {\n\n\t\t\tprogramMap = {};\n\t\t\tbindingStates[ geometry.id ] = programMap;\n\n\t\t}\n\n\t\tlet stateMap = programMap[ program.id ];\n\n\t\tif ( stateMap === undefined ) {\n\n\t\t\tstateMap = {};\n\t\t\tprogramMap[ program.id ] = stateMap;\n\n\t\t}\n\n\t\tlet state = stateMap[ wireframe ];\n\n\t\tif ( state === undefined ) {\n\n\t\t\tstate = createBindingState( createVertexArrayObject() );\n\t\t\tstateMap[ wireframe ] = state;\n\n\t\t}\n\n\t\treturn state;\n\n\t}\n\n\tfunction createBindingState( vao ) {\n\n\t\tconst newAttributes = [];\n\t\tconst enabledAttributes = [];\n\t\tconst attributeDivisors = [];\n\n\t\tfor ( let i = 0; i < maxVertexAttributes; i ++ ) {\n\n\t\t\tnewAttributes[ i ] = 0;\n\t\t\tenabledAttributes[ i ] = 0;\n\t\t\tattributeDivisors[ i ] = 0;\n\n\t\t}\n\n\t\treturn {\n\n\t\t\t// for backward compatibility on non-VAO support browser\n\t\t\tgeometry: null,\n\t\t\tprogram: null,\n\t\t\twireframe: false,\n\n\t\t\tnewAttributes: newAttributes,\n\t\t\tenabledAttributes: enabledAttributes,\n\t\t\tattributeDivisors: attributeDivisors,\n\t\t\tobject: vao,\n\t\t\tattributes: {},\n\t\t\tindex: null\n\n\t\t};\n\n\t}\n\n\tfunction needsUpdate( object, geometry, program, index ) {\n\n\t\tconst cachedAttributes = currentState.attributes;\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\tlet attributesNum = 0;\n\n\t\tconst programAttributes = program.getAttributes();\n\n\t\tfor ( const name in programAttributes ) {\n\n\t\t\tconst programAttribute = programAttributes[ name ];\n\n\t\t\tif ( programAttribute.location >= 0 ) {\n\n\t\t\t\tconst cachedAttribute = cachedAttributes[ name ];\n\t\t\t\tlet geometryAttribute = geometryAttributes[ name ];\n\n\t\t\t\tif ( geometryAttribute === undefined ) {\n\n\t\t\t\t\tif ( name === 'instanceMatrix' && object.instanceMatrix ) geometryAttribute = object.instanceMatrix;\n\t\t\t\t\tif ( name === 'instanceColor' && object.instanceColor ) geometryAttribute = object.instanceColor;\n\n\t\t\t\t}\n\n\t\t\t\tif ( cachedAttribute === undefined ) return true;\n\n\t\t\t\tif ( cachedAttribute.attribute !== geometryAttribute ) return true;\n\n\t\t\t\tif ( geometryAttribute && cachedAttribute.data !== geometryAttribute.data ) return true;\n\n\t\t\t\tattributesNum ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( currentState.attributesNum !== attributesNum ) return true;\n\n\t\tif ( currentState.index !== index ) return true;\n\n\t\treturn false;\n\n\t}\n\n\tfunction saveCache( object, geometry, program, index ) {\n\n\t\tconst cache = {};\n\t\tconst attributes = geometry.attributes;\n\t\tlet attributesNum = 0;\n\n\t\tconst programAttributes = program.getAttributes();\n\n\t\tfor ( const name in programAttributes ) {\n\n\t\t\tconst programAttribute = programAttributes[ name ];\n\n\t\t\tif ( programAttribute.location >= 0 ) {\n\n\t\t\t\tlet attribute = attributes[ name ];\n\n\t\t\t\tif ( attribute === undefined ) {\n\n\t\t\t\t\tif ( name === 'instanceMatrix' && object.instanceMatrix ) attribute = object.instanceMatrix;\n\t\t\t\t\tif ( name === 'instanceColor' && object.instanceColor ) attribute = object.instanceColor;\n\n\t\t\t\t}\n\n\t\t\t\tconst data = {};\n\t\t\t\tdata.attribute = attribute;\n\n\t\t\t\tif ( attribute && attribute.data ) {\n\n\t\t\t\t\tdata.data = attribute.data;\n\n\t\t\t\t}\n\n\t\t\t\tcache[ name ] = data;\n\n\t\t\t\tattributesNum ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tcurrentState.attributes = cache;\n\t\tcurrentState.attributesNum = attributesNum;\n\n\t\tcurrentState.index = index;\n\n\t}\n\n\tfunction initAttributes() {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\n\t\tfor ( let i = 0, il = newAttributes.length; i < il; i ++ ) {\n\n\t\t\tnewAttributes[ i ] = 0;\n\n\t\t}\n\n\t}\n\n\tfunction enableAttribute( attribute ) {\n\n\t\tenableAttributeAndDivisor( attribute, 0 );\n\n\t}\n\n\tfunction enableAttributeAndDivisor( attribute, meshPerAttribute ) {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\t\tconst enabledAttributes = currentState.enabledAttributes;\n\t\tconst attributeDivisors = currentState.attributeDivisors;\n\n\t\tnewAttributes[ attribute ] = 1;\n\n\t\tif ( enabledAttributes[ attribute ] === 0 ) {\n\n\t\t\tgl.enableVertexAttribArray( attribute );\n\t\t\tenabledAttributes[ attribute ] = 1;\n\n\t\t}\n\n\t\tif ( attributeDivisors[ attribute ] !== meshPerAttribute ) {\n\n\t\t\tgl.vertexAttribDivisor( attribute, meshPerAttribute );\n\t\t\tattributeDivisors[ attribute ] = meshPerAttribute;\n\n\t\t}\n\n\t}\n\n\tfunction disableUnusedAttributes() {\n\n\t\tconst newAttributes = currentState.newAttributes;\n\t\tconst enabledAttributes = currentState.enabledAttributes;\n\n\t\tfor ( let i = 0, il = enabledAttributes.length; i < il; i ++ ) {\n\n\t\t\tif ( enabledAttributes[ i ] !== newAttributes[ i ] ) {\n\n\t\t\t\tgl.disableVertexAttribArray( i );\n\t\t\t\tenabledAttributes[ i ] = 0;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction vertexAttribPointer( index, size, type, normalized, stride, offset, integer ) {\n\n\t\tif ( integer === true ) {\n\n\t\t\tgl.vertexAttribIPointer( index, size, type, stride, offset );\n\n\t\t} else {\n\n\t\t\tgl.vertexAttribPointer( index, size, type, normalized, stride, offset );\n\n\t\t}\n\n\t}\n\n\tfunction setupVertexAttributes( object, material, program, geometry ) {\n\n\t\tinitAttributes();\n\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\tconst programAttributes = program.getAttributes();\n\n\t\tconst materialDefaultAttributeValues = material.defaultAttributeValues;\n\n\t\tfor ( const name in programAttributes ) {\n\n\t\t\tconst programAttribute = programAttributes[ name ];\n\n\t\t\tif ( programAttribute.location >= 0 ) {\n\n\t\t\t\tlet geometryAttribute = geometryAttributes[ name ];\n\n\t\t\t\tif ( geometryAttribute === undefined ) {\n\n\t\t\t\t\tif ( name === 'instanceMatrix' && object.instanceMatrix ) geometryAttribute = object.instanceMatrix;\n\t\t\t\t\tif ( name === 'instanceColor' && object.instanceColor ) geometryAttribute = object.instanceColor;\n\n\t\t\t\t}\n\n\t\t\t\tif ( geometryAttribute !== undefined ) {\n\n\t\t\t\t\tconst normalized = geometryAttribute.normalized;\n\t\t\t\t\tconst size = geometryAttribute.itemSize;\n\n\t\t\t\t\tconst attribute = attributes.get( geometryAttribute );\n\n\t\t\t\t\t// TODO Attribute may not be available on context restore\n\n\t\t\t\t\tif ( attribute === undefined ) continue;\n\n\t\t\t\t\tconst buffer = attribute.buffer;\n\t\t\t\t\tconst type = attribute.type;\n\t\t\t\t\tconst bytesPerElement = attribute.bytesPerElement;\n\n\t\t\t\t\t// check for integer attributes\n\n\t\t\t\t\tconst integer = ( type === gl.INT || type === gl.UNSIGNED_INT || geometryAttribute.gpuType === IntType );\n\n\t\t\t\t\tif ( geometryAttribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\t\tconst data = geometryAttribute.data;\n\t\t\t\t\t\tconst stride = data.stride;\n\t\t\t\t\t\tconst offset = geometryAttribute.offset;\n\n\t\t\t\t\t\tif ( data.isInstancedInterleavedBuffer ) {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttributeAndDivisor( programAttribute.location + i, data.meshPerAttribute );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined ) {\n\n\t\t\t\t\t\t\t\tgeometry._maxInstanceCount = data.meshPerAttribute * data.count;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttribute( programAttribute.location + i );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgl.bindBuffer( gl.ARRAY_BUFFER, buffer );\n\n\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\tvertexAttribPointer(\n\t\t\t\t\t\t\t\tprogramAttribute.location + i,\n\t\t\t\t\t\t\t\tsize / programAttribute.locationSize,\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tnormalized,\n\t\t\t\t\t\t\t\tstride * bytesPerElement,\n\t\t\t\t\t\t\t\t( offset + ( size / programAttribute.locationSize ) * i ) * bytesPerElement,\n\t\t\t\t\t\t\t\tinteger\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( geometryAttribute.isInstancedBufferAttribute ) {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttributeAndDivisor( programAttribute.location + i, geometryAttribute.meshPerAttribute );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( object.isInstancedMesh !== true && geometry._maxInstanceCount === undefined ) {\n\n\t\t\t\t\t\t\t\tgeometry._maxInstanceCount = geometryAttribute.meshPerAttribute * geometryAttribute.count;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\t\tenableAttribute( programAttribute.location + i );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgl.bindBuffer( gl.ARRAY_BUFFER, buffer );\n\n\t\t\t\t\t\tfor ( let i = 0; i < programAttribute.locationSize; i ++ ) {\n\n\t\t\t\t\t\t\tvertexAttribPointer(\n\t\t\t\t\t\t\t\tprogramAttribute.location + i,\n\t\t\t\t\t\t\t\tsize / programAttribute.locationSize,\n\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\tnormalized,\n\t\t\t\t\t\t\t\tsize * bytesPerElement,\n\t\t\t\t\t\t\t\t( size / programAttribute.locationSize ) * i * bytesPerElement,\n\t\t\t\t\t\t\t\tinteger\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( materialDefaultAttributeValues !== undefined ) {\n\n\t\t\t\t\tconst value = materialDefaultAttributeValues[ name ];\n\n\t\t\t\t\tif ( value !== undefined ) {\n\n\t\t\t\t\t\tswitch ( value.length ) {\n\n\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\tgl.vertexAttrib2fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\t\tgl.vertexAttrib3fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tcase 4:\n\t\t\t\t\t\t\t\tgl.vertexAttrib4fv( programAttribute.location, value );\n\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tgl.vertexAttrib1fv( programAttribute.location, value );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tdisableUnusedAttributes();\n\n\t}\n\n\tfunction dispose() {\n\n\t\treset();\n\n\t\tfor ( const geometryId in bindingStates ) {\n\n\t\t\tconst programMap = bindingStates[ geometryId ];\n\n\t\t\tfor ( const programId in programMap ) {\n\n\t\t\t\tconst stateMap = programMap[ programId ];\n\n\t\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t\t}\n\n\t\t\t\tdelete programMap[ programId ];\n\n\t\t\t}\n\n\t\t\tdelete bindingStates[ geometryId ];\n\n\t\t}\n\n\t}\n\n\tfunction releaseStatesOfGeometry( geometry ) {\n\n\t\tif ( bindingStates[ geometry.id ] === undefined ) return;\n\n\t\tconst programMap = bindingStates[ geometry.id ];\n\n\t\tfor ( const programId in programMap ) {\n\n\t\t\tconst stateMap = programMap[ programId ];\n\n\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t}\n\n\t\t\tdelete programMap[ programId ];\n\n\t\t}\n\n\t\tdelete bindingStates[ geometry.id ];\n\n\t}\n\n\tfunction releaseStatesOfProgram( program ) {\n\n\t\tfor ( const geometryId in bindingStates ) {\n\n\t\t\tconst programMap = bindingStates[ geometryId ];\n\n\t\t\tif ( programMap[ program.id ] === undefined ) continue;\n\n\t\t\tconst stateMap = programMap[ program.id ];\n\n\t\t\tfor ( const wireframe in stateMap ) {\n\n\t\t\t\tdeleteVertexArrayObject( stateMap[ wireframe ].object );\n\n\t\t\t\tdelete stateMap[ wireframe ];\n\n\t\t\t}\n\n\t\t\tdelete programMap[ program.id ];\n\n\t\t}\n\n\t}\n\n\tfunction reset() {\n\n\t\tresetDefaultState();\n\t\tforceUpdate = true;\n\n\t\tif ( currentState === defaultState ) return;\n\n\t\tcurrentState = defaultState;\n\t\tbindVertexArrayObject( currentState.object );\n\n\t}\n\n\t// for backward-compatibility\n\n\tfunction resetDefaultState() {\n\n\t\tdefaultState.geometry = null;\n\t\tdefaultState.program = null;\n\t\tdefaultState.wireframe = false;\n\n\t}\n\n\treturn {\n\n\t\tsetup: setup,\n\t\treset: reset,\n\t\tresetDefaultState: resetDefaultState,\n\t\tdispose: dispose,\n\t\treleaseStatesOfGeometry: releaseStatesOfGeometry,\n\t\treleaseStatesOfProgram: releaseStatesOfProgram,\n\n\t\tinitAttributes: initAttributes,\n\t\tenableAttribute: enableAttribute,\n\t\tdisableUnusedAttributes: disableUnusedAttributes\n\n\t};\n\n}\n\nfunction WebGLBufferRenderer( gl, extensions, info ) {\n\n\tlet mode;\n\n\tfunction setMode( value ) {\n\n\t\tmode = value;\n\n\t}\n\n\tfunction render( start, count ) {\n\n\t\tgl.drawArrays( mode, start, count );\n\n\t\tinfo.update( count, mode, 1 );\n\n\t}\n\n\tfunction renderInstances( start, count, primcount ) {\n\n\t\tif ( primcount === 0 ) return;\n\n\t\tgl.drawArraysInstanced( mode, start, count, primcount );\n\n\t\tinfo.update( count, mode, primcount );\n\n\t}\n\n\tfunction renderMultiDraw( starts, counts, drawCount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\t\textension.multiDrawArraysWEBGL( mode, starts, 0, counts, 0, drawCount );\n\n\t\tlet elementCount = 0;\n\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\telementCount += counts[ i ];\n\n\t\t}\n\n\t\tinfo.update( elementCount, mode, 1 );\n\n\t}\n\n\tfunction renderMultiDrawInstances( starts, counts, drawCount, primcount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\n\t\tif ( extension === null ) {\n\n\t\t\tfor ( let i = 0; i < starts.length; i ++ ) {\n\n\t\t\t\trenderInstances( starts[ i ], counts[ i ], primcount[ i ] );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\textension.multiDrawArraysInstancedWEBGL( mode, starts, 0, counts, 0, primcount, 0, drawCount );\n\n\t\t\tlet elementCount = 0;\n\t\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\t\telementCount += counts[ i ];\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0; i < primcount.length; i ++ ) {\n\n\t\t\t\tinfo.update( elementCount, mode, primcount[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t//\n\n\tthis.setMode = setMode;\n\tthis.render = render;\n\tthis.renderInstances = renderInstances;\n\tthis.renderMultiDraw = renderMultiDraw;\n\tthis.renderMultiDrawInstances = renderMultiDrawInstances;\n\n}\n\nfunction WebGLCapabilities( gl, extensions, parameters, utils ) {\n\n\tlet maxAnisotropy;\n\n\tfunction getMaxAnisotropy() {\n\n\t\tif ( maxAnisotropy !== undefined ) return maxAnisotropy;\n\n\t\tif ( extensions.has( 'EXT_texture_filter_anisotropic' ) === true ) {\n\n\t\t\tconst extension = extensions.get( 'EXT_texture_filter_anisotropic' );\n\n\t\t\tmaxAnisotropy = gl.getParameter( extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT );\n\n\t\t} else {\n\n\t\t\tmaxAnisotropy = 0;\n\n\t\t}\n\n\t\treturn maxAnisotropy;\n\n\t}\n\n\tfunction textureFormatReadable( textureFormat ) {\n\n\t\tif ( textureFormat !== RGBAFormat && utils.convert( textureFormat ) !== gl.getParameter( gl.IMPLEMENTATION_COLOR_READ_FORMAT ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfunction textureTypeReadable( textureType ) {\n\n\t\tconst halfFloatSupportedByExt = ( textureType === HalfFloatType ) && ( extensions.has( 'EXT_color_buffer_half_float' ) || extensions.has( 'EXT_color_buffer_float' ) );\n\n\t\tif ( textureType !== UnsignedByteType && utils.convert( textureType ) !== gl.getParameter( gl.IMPLEMENTATION_COLOR_READ_TYPE ) && // Edge and Chrome Mac < 52 (#9513)\n\t\t\ttextureType !== FloatType && ! halfFloatSupportedByExt ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfunction getMaxPrecision( precision ) {\n\n\t\tif ( precision === 'highp' ) {\n\n\t\t\tif ( gl.getShaderPrecisionFormat( gl.VERTEX_SHADER, gl.HIGH_FLOAT ).precision > 0 &&\n\t\t\t\tgl.getShaderPrecisionFormat( gl.FRAGMENT_SHADER, gl.HIGH_FLOAT ).precision > 0 ) {\n\n\t\t\t\treturn 'highp';\n\n\t\t\t}\n\n\t\t\tprecision = 'mediump';\n\n\t\t}\n\n\t\tif ( precision === 'mediump' ) {\n\n\t\t\tif ( gl.getShaderPrecisionFormat( gl.VERTEX_SHADER, gl.MEDIUM_FLOAT ).precision > 0 &&\n\t\t\t\tgl.getShaderPrecisionFormat( gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT ).precision > 0 ) {\n\n\t\t\t\treturn 'mediump';\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn 'lowp';\n\n\t}\n\n\tlet precision = parameters.precision !== undefined ? parameters.precision : 'highp';\n\tconst maxPrecision = getMaxPrecision( precision );\n\n\tif ( maxPrecision !== precision ) {\n\n\t\tconsole.warn( 'THREE.WebGLRenderer:', precision, 'not supported, using', maxPrecision, 'instead.' );\n\t\tprecision = maxPrecision;\n\n\t}\n\n\tconst logarithmicDepthBuffer = parameters.logarithmicDepthBuffer === true;\n\n\tconst maxTextures = gl.getParameter( gl.MAX_TEXTURE_IMAGE_UNITS );\n\tconst maxVertexTextures = gl.getParameter( gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS );\n\tconst maxTextureSize = gl.getParameter( gl.MAX_TEXTURE_SIZE );\n\tconst maxCubemapSize = gl.getParameter( gl.MAX_CUBE_MAP_TEXTURE_SIZE );\n\n\tconst maxAttributes = gl.getParameter( gl.MAX_VERTEX_ATTRIBS );\n\tconst maxVertexUniforms = gl.getParameter( gl.MAX_VERTEX_UNIFORM_VECTORS );\n\tconst maxVaryings = gl.getParameter( gl.MAX_VARYING_VECTORS );\n\tconst maxFragmentUniforms = gl.getParameter( gl.MAX_FRAGMENT_UNIFORM_VECTORS );\n\n\tconst vertexTextures = maxVertexTextures > 0;\n\n\tconst maxSamples = gl.getParameter( gl.MAX_SAMPLES );\n\n\treturn {\n\n\t\tisWebGL2: true, // keeping this for backwards compatibility\n\n\t\tgetMaxAnisotropy: getMaxAnisotropy,\n\t\tgetMaxPrecision: getMaxPrecision,\n\n\t\ttextureFormatReadable: textureFormatReadable,\n\t\ttextureTypeReadable: textureTypeReadable,\n\n\t\tprecision: precision,\n\t\tlogarithmicDepthBuffer: logarithmicDepthBuffer,\n\n\t\tmaxTextures: maxTextures,\n\t\tmaxVertexTextures: maxVertexTextures,\n\t\tmaxTextureSize: maxTextureSize,\n\t\tmaxCubemapSize: maxCubemapSize,\n\n\t\tmaxAttributes: maxAttributes,\n\t\tmaxVertexUniforms: maxVertexUniforms,\n\t\tmaxVaryings: maxVaryings,\n\t\tmaxFragmentUniforms: maxFragmentUniforms,\n\n\t\tvertexTextures: vertexTextures,\n\n\t\tmaxSamples: maxSamples\n\n\t};\n\n}\n\nfunction WebGLClipping( properties ) {\n\n\tconst scope = this;\n\n\tlet globalState = null,\n\t\tnumGlobalPlanes = 0,\n\t\tlocalClippingEnabled = false,\n\t\trenderingShadows = false;\n\n\tconst plane = new Plane(),\n\t\tviewNormalMatrix = new Matrix3(),\n\n\t\tuniform = { value: null, needsUpdate: false };\n\n\tthis.uniform = uniform;\n\tthis.numPlanes = 0;\n\tthis.numIntersection = 0;\n\n\tthis.init = function ( planes, enableLocalClipping ) {\n\n\t\tconst enabled =\n\t\t\tplanes.length !== 0 ||\n\t\t\tenableLocalClipping ||\n\t\t\t// enable state of previous frame - the clipping code has to\n\t\t\t// run another frame in order to reset the state:\n\t\t\tnumGlobalPlanes !== 0 ||\n\t\t\tlocalClippingEnabled;\n\n\t\tlocalClippingEnabled = enableLocalClipping;\n\n\t\tnumGlobalPlanes = planes.length;\n\n\t\treturn enabled;\n\n\t};\n\n\tthis.beginShadows = function () {\n\n\t\trenderingShadows = true;\n\t\tprojectPlanes( null );\n\n\t};\n\n\tthis.endShadows = function () {\n\n\t\trenderingShadows = false;\n\n\t};\n\n\tthis.setGlobalState = function ( planes, camera ) {\n\n\t\tglobalState = projectPlanes( planes, camera, 0 );\n\n\t};\n\n\tthis.setState = function ( material, camera, useCache ) {\n\n\t\tconst planes = material.clippingPlanes,\n\t\t\tclipIntersection = material.clipIntersection,\n\t\t\tclipShadows = material.clipShadows;\n\n\t\tconst materialProperties = properties.get( material );\n\n\t\tif ( ! localClippingEnabled || planes === null || planes.length === 0 || renderingShadows && ! clipShadows ) {\n\n\t\t\t// there's no local clipping\n\n\t\t\tif ( renderingShadows ) {\n\n\t\t\t\t// there's no global clipping\n\n\t\t\t\tprojectPlanes( null );\n\n\t\t\t} else {\n\n\t\t\t\tresetGlobalState();\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst nGlobal = renderingShadows ? 0 : numGlobalPlanes,\n\t\t\t\tlGlobal = nGlobal * 4;\n\n\t\t\tlet dstArray = materialProperties.clippingState || null;\n\n\t\t\tuniform.value = dstArray; // ensure unique state\n\n\t\t\tdstArray = projectPlanes( planes, camera, lGlobal, useCache );\n\n\t\t\tfor ( let i = 0; i !== lGlobal; ++ i ) {\n\n\t\t\t\tdstArray[ i ] = globalState[ i ];\n\n\t\t\t}\n\n\t\t\tmaterialProperties.clippingState = dstArray;\n\t\t\tthis.numIntersection = clipIntersection ? this.numPlanes : 0;\n\t\t\tthis.numPlanes += nGlobal;\n\n\t\t}\n\n\n\t};\n\n\tfunction resetGlobalState() {\n\n\t\tif ( uniform.value !== globalState ) {\n\n\t\t\tuniform.value = globalState;\n\t\t\tuniform.needsUpdate = numGlobalPlanes > 0;\n\n\t\t}\n\n\t\tscope.numPlanes = numGlobalPlanes;\n\t\tscope.numIntersection = 0;\n\n\t}\n\n\tfunction projectPlanes( planes, camera, dstOffset, skipTransform ) {\n\n\t\tconst nPlanes = planes !== null ? planes.length : 0;\n\t\tlet dstArray = null;\n\n\t\tif ( nPlanes !== 0 ) {\n\n\t\t\tdstArray = uniform.value;\n\n\t\t\tif ( skipTransform !== true || dstArray === null ) {\n\n\t\t\t\tconst flatSize = dstOffset + nPlanes * 4,\n\t\t\t\t\tviewMatrix = camera.matrixWorldInverse;\n\n\t\t\t\tviewNormalMatrix.getNormalMatrix( viewMatrix );\n\n\t\t\t\tif ( dstArray === null || dstArray.length < flatSize ) {\n\n\t\t\t\t\tdstArray = new Float32Array( flatSize );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0, i4 = dstOffset; i !== nPlanes; ++ i, i4 += 4 ) {\n\n\t\t\t\t\tplane.copy( planes[ i ] ).applyMatrix4( viewMatrix, viewNormalMatrix );\n\n\t\t\t\t\tplane.normal.toArray( dstArray, i4 );\n\t\t\t\t\tdstArray[ i4 + 3 ] = plane.constant;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tuniform.value = dstArray;\n\t\t\tuniform.needsUpdate = true;\n\n\t\t}\n\n\t\tscope.numPlanes = nPlanes;\n\t\tscope.numIntersection = 0;\n\n\t\treturn dstArray;\n\n\t}\n\n}\n\nfunction WebGLCubeMaps( renderer ) {\n\n\tlet cubemaps = new WeakMap();\n\n\tfunction mapTextureMapping( texture, mapping ) {\n\n\t\tif ( mapping === EquirectangularReflectionMapping ) {\n\n\t\t\ttexture.mapping = CubeReflectionMapping;\n\n\t\t} else if ( mapping === EquirectangularRefractionMapping ) {\n\n\t\t\ttexture.mapping = CubeRefractionMapping;\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction get( texture ) {\n\n\t\tif ( texture && texture.isTexture ) {\n\n\t\t\tconst mapping = texture.mapping;\n\n\t\t\tif ( mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping ) {\n\n\t\t\t\tif ( cubemaps.has( texture ) ) {\n\n\t\t\t\t\tconst cubemap = cubemaps.get( texture ).texture;\n\t\t\t\t\treturn mapTextureMapping( cubemap, texture.mapping );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst image = texture.image;\n\n\t\t\t\t\tif ( image && image.height > 0 ) {\n\n\t\t\t\t\t\tconst renderTarget = new WebGLCubeRenderTarget( image.height );\n\t\t\t\t\t\trenderTarget.fromEquirectangularTexture( renderer, texture );\n\t\t\t\t\t\tcubemaps.set( texture, renderTarget );\n\n\t\t\t\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t\t\t\t\treturn mapTextureMapping( renderTarget.texture, texture.mapping );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// image not yet ready. try the conversion next frame\n\n\t\t\t\t\t\treturn null;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tconst cubemap = cubemaps.get( texture );\n\n\t\tif ( cubemap !== undefined ) {\n\n\t\t\tcubemaps.delete( texture );\n\t\t\tcubemap.dispose();\n\n\t\t}\n\n\t}\n\n\tfunction dispose() {\n\n\t\tcubemaps = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nclass OrthographicCamera extends Camera {\n\n\tconstructor( left = - 1, right = 1, top = 1, bottom = - 1, near = 0.1, far = 2000 ) {\n\n\t\tsuper();\n\n\t\tthis.isOrthographicCamera = true;\n\n\t\tthis.type = 'OrthographicCamera';\n\n\t\tthis.zoom = 1;\n\t\tthis.view = null;\n\n\t\tthis.left = left;\n\t\tthis.right = right;\n\t\tthis.top = top;\n\t\tthis.bottom = bottom;\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.left = source.left;\n\t\tthis.right = source.right;\n\t\tthis.top = source.top;\n\t\tthis.bottom = source.bottom;\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\n\t\tthis.zoom = source.zoom;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\treturn this;\n\n\t}\n\n\tsetViewOffset( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tclearViewOffset() {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t}\n\n\tupdateProjectionMatrix() {\n\n\t\tconst dx = ( this.right - this.left ) / ( 2 * this.zoom );\n\t\tconst dy = ( this.top - this.bottom ) / ( 2 * this.zoom );\n\t\tconst cx = ( this.right + this.left ) / 2;\n\t\tconst cy = ( this.top + this.bottom ) / 2;\n\n\t\tlet left = cx - dx;\n\t\tlet right = cx + dx;\n\t\tlet top = cy + dy;\n\t\tlet bottom = cy - dy;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst scaleW = ( this.right - this.left ) / this.view.fullWidth / this.zoom;\n\t\t\tconst scaleH = ( this.top - this.bottom ) / this.view.fullHeight / this.zoom;\n\n\t\t\tleft += scaleW * this.view.offsetX;\n\t\t\tright = left + scaleW * this.view.width;\n\t\t\ttop -= scaleH * this.view.offsetY;\n\t\t\tbottom = top - scaleH * this.view.height;\n\n\t\t}\n\n\t\tthis.projectionMatrix.makeOrthographic( left, right, top, bottom, this.near, this.far, this.coordinateSystem );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.zoom = this.zoom;\n\t\tdata.object.left = this.left;\n\t\tdata.object.right = this.right;\n\t\tdata.object.top = this.top;\n\t\tdata.object.bottom = this.bottom;\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst LOD_MIN = 4;\n\n// The standard deviations (radians) associated with the extra mips. These are\n// chosen to approximate a Trowbridge-Reitz distribution function times the\n// geometric shadowing function. These sigma values squared must match the\n// variance #defines in cube_uv_reflection_fragment.glsl.js.\nconst EXTRA_LOD_SIGMA = [ 0.125, 0.215, 0.35, 0.446, 0.526, 0.582 ];\n\n// The maximum length of the blur for loop. Smaller sigmas will use fewer\n// samples and exit early, but not recompile the shader.\nconst MAX_SAMPLES = 20;\n\nconst _flatCamera = /*@__PURE__*/ new OrthographicCamera();\nconst _clearColor = /*@__PURE__*/ new Color();\nlet _oldTarget = null;\nlet _oldActiveCubeFace = 0;\nlet _oldActiveMipmapLevel = 0;\nlet _oldXrEnabled = false;\n\n// Golden Ratio\nconst PHI = ( 1 + Math.sqrt( 5 ) ) / 2;\nconst INV_PHI = 1 / PHI;\n\n// Vertices of a dodecahedron (except the opposites, which represent the\n// same axis), used as axis directions evenly spread on a sphere.\nconst _axisDirections = [\n\t/*@__PURE__*/ new Vector3( - PHI, INV_PHI, 0 ),\n\t/*@__PURE__*/ new Vector3( PHI, INV_PHI, 0 ),\n\t/*@__PURE__*/ new Vector3( - INV_PHI, 0, PHI ),\n\t/*@__PURE__*/ new Vector3( INV_PHI, 0, PHI ),\n\t/*@__PURE__*/ new Vector3( 0, PHI, - INV_PHI ),\n\t/*@__PURE__*/ new Vector3( 0, PHI, INV_PHI ),\n\t/*@__PURE__*/ new Vector3( - 1, 1, - 1 ),\n\t/*@__PURE__*/ new Vector3( 1, 1, - 1 ),\n\t/*@__PURE__*/ new Vector3( - 1, 1, 1 ),\n\t/*@__PURE__*/ new Vector3( 1, 1, 1 ) ];\n\n/**\n * This class generates a Prefiltered, Mipmapped Radiance Environment Map\n * (PMREM) from a cubeMap environment texture. This allows different levels of\n * blur to be quickly accessed based on material roughness. It is packed into a\n * special CubeUV format that allows us to perform custom interpolation so that\n * we can support nonlinear formats such as RGBE. Unlike a traditional mipmap\n * chain, it only goes down to the LOD_MIN level (above), and then creates extra\n * even more filtered 'mips' at the same LOD_MIN resolution, associated with\n * higher roughness levels. In this way we maintain resolution to smoothly\n * interpolate diffuse lighting while limiting sampling computation.\n *\n * Paper: Fast, Accurate Image-Based Lighting\n * https://drive.google.com/file/d/15y8r_UpKlU9SvV4ILb0C3qCPecS8pvLz/view\n*/\n\nclass PMREMGenerator {\n\n\tconstructor( renderer ) {\n\n\t\tthis._renderer = renderer;\n\t\tthis._pingPongRenderTarget = null;\n\n\t\tthis._lodMax = 0;\n\t\tthis._cubeSize = 0;\n\t\tthis._lodPlanes = [];\n\t\tthis._sizeLods = [];\n\t\tthis._sigmas = [];\n\n\t\tthis._blurMaterial = null;\n\t\tthis._cubemapMaterial = null;\n\t\tthis._equirectMaterial = null;\n\n\t\tthis._compileMaterial( this._blurMaterial );\n\n\t}\n\n\t/**\n\t * Generates a PMREM from a supplied Scene, which can be faster than using an\n\t * image if networking bandwidth is low. Optional sigma specifies a blur radius\n\t * in radians to be applied to the scene before PMREM generation. Optional near\n\t * and far planes ensure the scene is rendered in its entirety (the cubeCamera\n\t * is placed at the origin).\n\t */\n\tfromScene( scene, sigma = 0, near = 0.1, far = 100 ) {\n\n\t\t_oldTarget = this._renderer.getRenderTarget();\n\t\t_oldActiveCubeFace = this._renderer.getActiveCubeFace();\n\t\t_oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel();\n\t\t_oldXrEnabled = this._renderer.xr.enabled;\n\n\t\tthis._renderer.xr.enabled = false;\n\n\t\tthis._setSize( 256 );\n\n\t\tconst cubeUVRenderTarget = this._allocateTargets();\n\t\tcubeUVRenderTarget.depthBuffer = true;\n\n\t\tthis._sceneToCubeUV( scene, near, far, cubeUVRenderTarget );\n\n\t\tif ( sigma > 0 ) {\n\n\t\t\tthis._blur( cubeUVRenderTarget, 0, 0, sigma );\n\n\t\t}\n\n\t\tthis._applyPMREM( cubeUVRenderTarget );\n\t\tthis._cleanup( cubeUVRenderTarget );\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t/**\n\t * Generates a PMREM from an equirectangular texture, which can be either LDR\n\t * or HDR. The ideal input image size is 1k (1024 x 512),\n\t * as this matches best with the 256 x 256 cubemap output.\n\t * The smallest supported equirectangular image size is 64 x 32.\n\t */\n\tfromEquirectangular( equirectangular, renderTarget = null ) {\n\n\t\treturn this._fromTexture( equirectangular, renderTarget );\n\n\t}\n\n\t/**\n\t * Generates a PMREM from an cubemap texture, which can be either LDR\n\t * or HDR. The ideal input cube size is 256 x 256,\n\t * as this matches best with the 256 x 256 cubemap output.\n\t * The smallest supported cube size is 16 x 16.\n\t */\n\tfromCubemap( cubemap, renderTarget = null ) {\n\n\t\treturn this._fromTexture( cubemap, renderTarget );\n\n\t}\n\n\t/**\n\t * Pre-compiles the cubemap shader. You can get faster start-up by invoking this method during\n\t * your texture's network fetch for increased concurrency.\n\t */\n\tcompileCubemapShader() {\n\n\t\tif ( this._cubemapMaterial === null ) {\n\n\t\t\tthis._cubemapMaterial = _getCubemapMaterial();\n\t\t\tthis._compileMaterial( this._cubemapMaterial );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Pre-compiles the equirectangular shader. You can get faster start-up by invoking this method during\n\t * your texture's network fetch for increased concurrency.\n\t */\n\tcompileEquirectangularShader() {\n\n\t\tif ( this._equirectMaterial === null ) {\n\n\t\t\tthis._equirectMaterial = _getEquirectMaterial();\n\t\t\tthis._compileMaterial( this._equirectMaterial );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Disposes of the PMREMGenerator's internal memory. Note that PMREMGenerator is a static class,\n\t * so you should not need more than one PMREMGenerator object. If you do, calling dispose() on\n\t * one of them will cause any others to also become unusable.\n\t */\n\tdispose() {\n\n\t\tthis._dispose();\n\n\t\tif ( this._cubemapMaterial !== null ) this._cubemapMaterial.dispose();\n\t\tif ( this._equirectMaterial !== null ) this._equirectMaterial.dispose();\n\n\t}\n\n\t// private interface\n\n\t_setSize( cubeSize ) {\n\n\t\tthis._lodMax = Math.floor( Math.log2( cubeSize ) );\n\t\tthis._cubeSize = Math.pow( 2, this._lodMax );\n\n\t}\n\n\t_dispose() {\n\n\t\tif ( this._blurMaterial !== null ) this._blurMaterial.dispose();\n\n\t\tif ( this._pingPongRenderTarget !== null ) this._pingPongRenderTarget.dispose();\n\n\t\tfor ( let i = 0; i < this._lodPlanes.length; i ++ ) {\n\n\t\t\tthis._lodPlanes[ i ].dispose();\n\n\t\t}\n\n\t}\n\n\t_cleanup( outputTarget ) {\n\n\t\tthis._renderer.setRenderTarget( _oldTarget, _oldActiveCubeFace, _oldActiveMipmapLevel );\n\t\tthis._renderer.xr.enabled = _oldXrEnabled;\n\n\t\toutputTarget.scissorTest = false;\n\t\t_setViewport( outputTarget, 0, 0, outputTarget.width, outputTarget.height );\n\n\t}\n\n\t_fromTexture( texture, renderTarget ) {\n\n\t\tif ( texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping ) {\n\n\t\t\tthis._setSize( texture.image.length === 0 ? 16 : ( texture.image[ 0 ].width || texture.image[ 0 ].image.width ) );\n\n\t\t} else { // Equirectangular\n\n\t\t\tthis._setSize( texture.image.width / 4 );\n\n\t\t}\n\n\t\t_oldTarget = this._renderer.getRenderTarget();\n\t\t_oldActiveCubeFace = this._renderer.getActiveCubeFace();\n\t\t_oldActiveMipmapLevel = this._renderer.getActiveMipmapLevel();\n\t\t_oldXrEnabled = this._renderer.xr.enabled;\n\n\t\tthis._renderer.xr.enabled = false;\n\n\t\tconst cubeUVRenderTarget = renderTarget || this._allocateTargets();\n\t\tthis._textureToCubeUV( texture, cubeUVRenderTarget );\n\t\tthis._applyPMREM( cubeUVRenderTarget );\n\t\tthis._cleanup( cubeUVRenderTarget );\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t_allocateTargets() {\n\n\t\tconst width = 3 * Math.max( this._cubeSize, 16 * 7 );\n\t\tconst height = 4 * this._cubeSize;\n\n\t\tconst params = {\n\t\t\tmagFilter: LinearFilter,\n\t\t\tminFilter: LinearFilter,\n\t\t\tgenerateMipmaps: false,\n\t\t\ttype: HalfFloatType,\n\t\t\tformat: RGBAFormat,\n\t\t\tcolorSpace: LinearSRGBColorSpace,\n\t\t\tdepthBuffer: false\n\t\t};\n\n\t\tconst cubeUVRenderTarget = _createRenderTarget( width, height, params );\n\n\t\tif ( this._pingPongRenderTarget === null || this._pingPongRenderTarget.width !== width || this._pingPongRenderTarget.height !== height ) {\n\n\t\t\tif ( this._pingPongRenderTarget !== null ) {\n\n\t\t\t\tthis._dispose();\n\n\t\t\t}\n\n\t\t\tthis._pingPongRenderTarget = _createRenderTarget( width, height, params );\n\n\t\t\tconst { _lodMax } = this;\n\t\t\t( { sizeLods: this._sizeLods, lodPlanes: this._lodPlanes, sigmas: this._sigmas } = _createPlanes( _lodMax ) );\n\n\t\t\tthis._blurMaterial = _getBlurShader( _lodMax, width, height );\n\n\t\t}\n\n\t\treturn cubeUVRenderTarget;\n\n\t}\n\n\t_compileMaterial( material ) {\n\n\t\tconst tmpMesh = new Mesh( this._lodPlanes[ 0 ], material );\n\t\tthis._renderer.compile( tmpMesh, _flatCamera );\n\n\t}\n\n\t_sceneToCubeUV( scene, near, far, cubeUVRenderTarget ) {\n\n\t\tconst fov = 90;\n\t\tconst aspect = 1;\n\t\tconst cubeCamera = new PerspectiveCamera( fov, aspect, near, far );\n\t\tconst upSign = [ 1, - 1, 1, 1, 1, 1 ];\n\t\tconst forwardSign = [ 1, 1, 1, - 1, - 1, - 1 ];\n\t\tconst renderer = this._renderer;\n\n\t\tconst originalAutoClear = renderer.autoClear;\n\t\tconst toneMapping = renderer.toneMapping;\n\t\trenderer.getClearColor( _clearColor );\n\n\t\trenderer.toneMapping = NoToneMapping;\n\t\trenderer.autoClear = false;\n\n\t\tconst backgroundMaterial = new MeshBasicMaterial( {\n\t\t\tname: 'PMREM.Background',\n\t\t\tside: BackSide,\n\t\t\tdepthWrite: false,\n\t\t\tdepthTest: false,\n\t\t} );\n\n\t\tconst backgroundBox = new Mesh( new BoxGeometry(), backgroundMaterial );\n\n\t\tlet useSolidColor = false;\n\t\tconst background = scene.background;\n\n\t\tif ( background ) {\n\n\t\t\tif ( background.isColor ) {\n\n\t\t\t\tbackgroundMaterial.color.copy( background );\n\t\t\t\tscene.background = null;\n\t\t\t\tuseSolidColor = true;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tbackgroundMaterial.color.copy( _clearColor );\n\t\t\tuseSolidColor = true;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst col = i % 3;\n\n\t\t\tif ( col === 0 ) {\n\n\t\t\t\tcubeCamera.up.set( 0, upSign[ i ], 0 );\n\t\t\t\tcubeCamera.lookAt( forwardSign[ i ], 0, 0 );\n\n\t\t\t} else if ( col === 1 ) {\n\n\t\t\t\tcubeCamera.up.set( 0, 0, upSign[ i ] );\n\t\t\t\tcubeCamera.lookAt( 0, forwardSign[ i ], 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcubeCamera.up.set( 0, upSign[ i ], 0 );\n\t\t\t\tcubeCamera.lookAt( 0, 0, forwardSign[ i ] );\n\n\t\t\t}\n\n\t\t\tconst size = this._cubeSize;\n\n\t\t\t_setViewport( cubeUVRenderTarget, col * size, i > 2 ? size : 0, size, size );\n\n\t\t\trenderer.setRenderTarget( cubeUVRenderTarget );\n\n\t\t\tif ( useSolidColor ) {\n\n\t\t\t\trenderer.render( backgroundBox, cubeCamera );\n\n\t\t\t}\n\n\t\t\trenderer.render( scene, cubeCamera );\n\n\t\t}\n\n\t\tbackgroundBox.geometry.dispose();\n\t\tbackgroundBox.material.dispose();\n\n\t\trenderer.toneMapping = toneMapping;\n\t\trenderer.autoClear = originalAutoClear;\n\t\tscene.background = background;\n\n\t}\n\n\t_textureToCubeUV( texture, cubeUVRenderTarget ) {\n\n\t\tconst renderer = this._renderer;\n\n\t\tconst isCubeTexture = ( texture.mapping === CubeReflectionMapping || texture.mapping === CubeRefractionMapping );\n\n\t\tif ( isCubeTexture ) {\n\n\t\t\tif ( this._cubemapMaterial === null ) {\n\n\t\t\t\tthis._cubemapMaterial = _getCubemapMaterial();\n\n\t\t\t}\n\n\t\t\tthis._cubemapMaterial.uniforms.flipEnvMap.value = ( texture.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t} else {\n\n\t\t\tif ( this._equirectMaterial === null ) {\n\n\t\t\t\tthis._equirectMaterial = _getEquirectMaterial();\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst material = isCubeTexture ? this._cubemapMaterial : this._equirectMaterial;\n\t\tconst mesh = new Mesh( this._lodPlanes[ 0 ], material );\n\n\t\tconst uniforms = material.uniforms;\n\n\t\tuniforms[ 'envMap' ].value = texture;\n\n\t\tconst size = this._cubeSize;\n\n\t\t_setViewport( cubeUVRenderTarget, 0, 0, 3 * size, 2 * size );\n\n\t\trenderer.setRenderTarget( cubeUVRenderTarget );\n\t\trenderer.render( mesh, _flatCamera );\n\n\t}\n\n\t_applyPMREM( cubeUVRenderTarget ) {\n\n\t\tconst renderer = this._renderer;\n\t\tconst autoClear = renderer.autoClear;\n\t\trenderer.autoClear = false;\n\t\tconst n = this._lodPlanes.length;\n\n\t\tfor ( let i = 1; i < n; i ++ ) {\n\n\t\t\tconst sigma = Math.sqrt( this._sigmas[ i ] * this._sigmas[ i ] - this._sigmas[ i - 1 ] * this._sigmas[ i - 1 ] );\n\n\t\t\tconst poleAxis = _axisDirections[ ( n - i - 1 ) % _axisDirections.length ];\n\n\t\t\tthis._blur( cubeUVRenderTarget, i - 1, i, sigma, poleAxis );\n\n\t\t}\n\n\t\trenderer.autoClear = autoClear;\n\n\t}\n\n\t/**\n\t * This is a two-pass Gaussian blur for a cubemap. Normally this is done\n\t * vertically and horizontally, but this breaks down on a cube. Here we apply\n\t * the blur latitudinally (around the poles), and then longitudinally (towards\n\t * the poles) to approximate the orthogonally-separable blur. It is least\n\t * accurate at the poles, but still does a decent job.\n\t */\n\t_blur( cubeUVRenderTarget, lodIn, lodOut, sigma, poleAxis ) {\n\n\t\tconst pingPongRenderTarget = this._pingPongRenderTarget;\n\n\t\tthis._halfBlur(\n\t\t\tcubeUVRenderTarget,\n\t\t\tpingPongRenderTarget,\n\t\t\tlodIn,\n\t\t\tlodOut,\n\t\t\tsigma,\n\t\t\t'latitudinal',\n\t\t\tpoleAxis );\n\n\t\tthis._halfBlur(\n\t\t\tpingPongRenderTarget,\n\t\t\tcubeUVRenderTarget,\n\t\t\tlodOut,\n\t\t\tlodOut,\n\t\t\tsigma,\n\t\t\t'longitudinal',\n\t\t\tpoleAxis );\n\n\t}\n\n\t_halfBlur( targetIn, targetOut, lodIn, lodOut, sigmaRadians, direction, poleAxis ) {\n\n\t\tconst renderer = this._renderer;\n\t\tconst blurMaterial = this._blurMaterial;\n\n\t\tif ( direction !== 'latitudinal' && direction !== 'longitudinal' ) {\n\n\t\t\tconsole.error(\n\t\t\t\t'blur direction must be either latitudinal or longitudinal!' );\n\n\t\t}\n\n\t\t// Number of standard deviations at which to cut off the discrete approximation.\n\t\tconst STANDARD_DEVIATIONS = 3;\n\n\t\tconst blurMesh = new Mesh( this._lodPlanes[ lodOut ], blurMaterial );\n\t\tconst blurUniforms = blurMaterial.uniforms;\n\n\t\tconst pixels = this._sizeLods[ lodIn ] - 1;\n\t\tconst radiansPerPixel = isFinite( sigmaRadians ) ? Math.PI / ( 2 * pixels ) : 2 * Math.PI / ( 2 * MAX_SAMPLES - 1 );\n\t\tconst sigmaPixels = sigmaRadians / radiansPerPixel;\n\t\tconst samples = isFinite( sigmaRadians ) ? 1 + Math.floor( STANDARD_DEVIATIONS * sigmaPixels ) : MAX_SAMPLES;\n\n\t\tif ( samples > MAX_SAMPLES ) {\n\n\t\t\tconsole.warn( `sigmaRadians, ${\n\t\t\t\tsigmaRadians}, is too large and will clip, as it requested ${\n\t\t\t\tsamples} samples when the maximum is set to ${MAX_SAMPLES}` );\n\n\t\t}\n\n\t\tconst weights = [];\n\t\tlet sum = 0;\n\n\t\tfor ( let i = 0; i < MAX_SAMPLES; ++ i ) {\n\n\t\t\tconst x = i / sigmaPixels;\n\t\t\tconst weight = Math.exp( - x * x / 2 );\n\t\t\tweights.push( weight );\n\n\t\t\tif ( i === 0 ) {\n\n\t\t\t\tsum += weight;\n\n\t\t\t} else if ( i < samples ) {\n\n\t\t\t\tsum += 2 * weight;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let i = 0; i < weights.length; i ++ ) {\n\n\t\t\tweights[ i ] = weights[ i ] / sum;\n\n\t\t}\n\n\t\tblurUniforms[ 'envMap' ].value = targetIn.texture;\n\t\tblurUniforms[ 'samples' ].value = samples;\n\t\tblurUniforms[ 'weights' ].value = weights;\n\t\tblurUniforms[ 'latitudinal' ].value = direction === 'latitudinal';\n\n\t\tif ( poleAxis ) {\n\n\t\t\tblurUniforms[ 'poleAxis' ].value = poleAxis;\n\n\t\t}\n\n\t\tconst { _lodMax } = this;\n\t\tblurUniforms[ 'dTheta' ].value = radiansPerPixel;\n\t\tblurUniforms[ 'mipInt' ].value = _lodMax - lodIn;\n\n\t\tconst outputSize = this._sizeLods[ lodOut ];\n\t\tconst x = 3 * outputSize * ( lodOut > _lodMax - LOD_MIN ? lodOut - _lodMax + LOD_MIN : 0 );\n\t\tconst y = 4 * ( this._cubeSize - outputSize );\n\n\t\t_setViewport( targetOut, x, y, 3 * outputSize, 2 * outputSize );\n\t\trenderer.setRenderTarget( targetOut );\n\t\trenderer.render( blurMesh, _flatCamera );\n\n\t}\n\n}\n\n\n\nfunction _createPlanes( lodMax ) {\n\n\tconst lodPlanes = [];\n\tconst sizeLods = [];\n\tconst sigmas = [];\n\n\tlet lod = lodMax;\n\n\tconst totalLods = lodMax - LOD_MIN + 1 + EXTRA_LOD_SIGMA.length;\n\n\tfor ( let i = 0; i < totalLods; i ++ ) {\n\n\t\tconst sizeLod = Math.pow( 2, lod );\n\t\tsizeLods.push( sizeLod );\n\t\tlet sigma = 1.0 / sizeLod;\n\n\t\tif ( i > lodMax - LOD_MIN ) {\n\n\t\t\tsigma = EXTRA_LOD_SIGMA[ i - lodMax + LOD_MIN - 1 ];\n\n\t\t} else if ( i === 0 ) {\n\n\t\t\tsigma = 0;\n\n\t\t}\n\n\t\tsigmas.push( sigma );\n\n\t\tconst texelSize = 1.0 / ( sizeLod - 2 );\n\t\tconst min = - texelSize;\n\t\tconst max = 1 + texelSize;\n\t\tconst uv1 = [ min, min, max, min, max, max, min, min, max, max, min, max ];\n\n\t\tconst cubeFaces = 6;\n\t\tconst vertices = 6;\n\t\tconst positionSize = 3;\n\t\tconst uvSize = 2;\n\t\tconst faceIndexSize = 1;\n\n\t\tconst position = new Float32Array( positionSize * vertices * cubeFaces );\n\t\tconst uv = new Float32Array( uvSize * vertices * cubeFaces );\n\t\tconst faceIndex = new Float32Array( faceIndexSize * vertices * cubeFaces );\n\n\t\tfor ( let face = 0; face < cubeFaces; face ++ ) {\n\n\t\t\tconst x = ( face % 3 ) * 2 / 3 - 1;\n\t\t\tconst y = face > 2 ? 0 : - 1;\n\t\t\tconst coordinates = [\n\t\t\t\tx, y, 0,\n\t\t\t\tx + 2 / 3, y, 0,\n\t\t\t\tx + 2 / 3, y + 1, 0,\n\t\t\t\tx, y, 0,\n\t\t\t\tx + 2 / 3, y + 1, 0,\n\t\t\t\tx, y + 1, 0\n\t\t\t];\n\t\t\tposition.set( coordinates, positionSize * vertices * face );\n\t\t\tuv.set( uv1, uvSize * vertices * face );\n\t\t\tconst fill = [ face, face, face, face, face, face ];\n\t\t\tfaceIndex.set( fill, faceIndexSize * vertices * face );\n\n\t\t}\n\n\t\tconst planes = new BufferGeometry();\n\t\tplanes.setAttribute( 'position', new BufferAttribute( position, positionSize ) );\n\t\tplanes.setAttribute( 'uv', new BufferAttribute( uv, uvSize ) );\n\t\tplanes.setAttribute( 'faceIndex', new BufferAttribute( faceIndex, faceIndexSize ) );\n\t\tlodPlanes.push( planes );\n\n\t\tif ( lod > LOD_MIN ) {\n\n\t\t\tlod --;\n\n\t\t}\n\n\t}\n\n\treturn { lodPlanes, sizeLods, sigmas };\n\n}\n\nfunction _createRenderTarget( width, height, params ) {\n\n\tconst cubeUVRenderTarget = new WebGLRenderTarget( width, height, params );\n\tcubeUVRenderTarget.texture.mapping = CubeUVReflectionMapping;\n\tcubeUVRenderTarget.texture.name = 'PMREM.cubeUv';\n\tcubeUVRenderTarget.scissorTest = true;\n\treturn cubeUVRenderTarget;\n\n}\n\nfunction _setViewport( target, x, y, width, height ) {\n\n\ttarget.viewport.set( x, y, width, height );\n\ttarget.scissor.set( x, y, width, height );\n\n}\n\nfunction _getBlurShader( lodMax, width, height ) {\n\n\tconst weights = new Float32Array( MAX_SAMPLES );\n\tconst poleAxis = new Vector3( 0, 1, 0 );\n\tconst shaderMaterial = new ShaderMaterial( {\n\n\t\tname: 'SphericalGaussianBlur',\n\n\t\tdefines: {\n\t\t\t'n': MAX_SAMPLES,\n\t\t\t'CUBEUV_TEXEL_WIDTH': 1.0 / width,\n\t\t\t'CUBEUV_TEXEL_HEIGHT': 1.0 / height,\n\t\t\t'CUBEUV_MAX_MIP': `${lodMax}.0`,\n\t\t},\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null },\n\t\t\t'samples': { value: 1 },\n\t\t\t'weights': { value: weights },\n\t\t\t'latitudinal': { value: false },\n\t\t\t'dTheta': { value: 0 },\n\t\t\t'mipInt': { value: 0 },\n\t\t\t'poleAxis': { value: poleAxis }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n\treturn shaderMaterial;\n\n}\n\nfunction _getEquirectMaterial() {\n\n\treturn new ShaderMaterial( {\n\n\t\tname: 'EquirectangularToCubeUV',\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n}\n\nfunction _getCubemapMaterial() {\n\n\treturn new ShaderMaterial( {\n\n\t\tname: 'CubemapToCubeUV',\n\n\t\tuniforms: {\n\t\t\t'envMap': { value: null },\n\t\t\t'flipEnvMap': { value: - 1 }\n\t\t},\n\n\t\tvertexShader: _getCommonVertexShader(),\n\n\t\tfragmentShader: /* glsl */`\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t`,\n\n\t\tblending: NoBlending,\n\t\tdepthTest: false,\n\t\tdepthWrite: false\n\n\t} );\n\n}\n\nfunction _getCommonVertexShader() {\n\n\treturn /* glsl */`\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t`;\n\n}\n\nfunction WebGLCubeUVMaps( renderer ) {\n\n\tlet cubeUVmaps = new WeakMap();\n\n\tlet pmremGenerator = null;\n\n\tfunction get( texture ) {\n\n\t\tif ( texture && texture.isTexture ) {\n\n\t\t\tconst mapping = texture.mapping;\n\n\t\t\tconst isEquirectMap = ( mapping === EquirectangularReflectionMapping || mapping === EquirectangularRefractionMapping );\n\t\t\tconst isCubeMap = ( mapping === CubeReflectionMapping || mapping === CubeRefractionMapping );\n\n\t\t\t// equirect/cube map to cubeUV conversion\n\n\t\t\tif ( isEquirectMap || isCubeMap ) {\n\n\t\t\t\tlet renderTarget = cubeUVmaps.get( texture );\n\n\t\t\t\tconst currentPMREMVersion = renderTarget !== undefined ? renderTarget.texture.pmremVersion : 0;\n\n\t\t\t\tif ( texture.isRenderTargetTexture && texture.pmremVersion !== currentPMREMVersion ) {\n\n\t\t\t\t\tif ( pmremGenerator === null ) pmremGenerator = new PMREMGenerator( renderer );\n\n\t\t\t\t\trenderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular( texture, renderTarget ) : pmremGenerator.fromCubemap( texture, renderTarget );\n\t\t\t\t\trenderTarget.texture.pmremVersion = texture.pmremVersion;\n\n\t\t\t\t\tcubeUVmaps.set( texture, renderTarget );\n\n\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( renderTarget !== undefined ) {\n\n\t\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst image = texture.image;\n\n\t\t\t\t\t\tif ( ( isEquirectMap && image && image.height > 0 ) || ( isCubeMap && image && isCubeTextureComplete( image ) ) ) {\n\n\t\t\t\t\t\t\tif ( pmremGenerator === null ) pmremGenerator = new PMREMGenerator( renderer );\n\n\t\t\t\t\t\t\trenderTarget = isEquirectMap ? pmremGenerator.fromEquirectangular( texture ) : pmremGenerator.fromCubemap( texture );\n\t\t\t\t\t\t\trenderTarget.texture.pmremVersion = texture.pmremVersion;\n\n\t\t\t\t\t\t\tcubeUVmaps.set( texture, renderTarget );\n\n\t\t\t\t\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t\t\t\t\t\treturn renderTarget.texture;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// image not yet ready. try the conversion next frame\n\n\t\t\t\t\t\t\treturn null;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tfunction isCubeTextureComplete( image ) {\n\n\t\tlet count = 0;\n\t\tconst length = 6;\n\n\t\tfor ( let i = 0; i < length; i ++ ) {\n\n\t\t\tif ( image[ i ] !== undefined ) count ++;\n\n\t\t}\n\n\t\treturn count === length;\n\n\n\t}\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tconst cubemapUV = cubeUVmaps.get( texture );\n\n\t\tif ( cubemapUV !== undefined ) {\n\n\t\t\tcubeUVmaps.delete( texture );\n\t\t\tcubemapUV.dispose();\n\n\t\t}\n\n\t}\n\n\tfunction dispose() {\n\n\t\tcubeUVmaps = new WeakMap();\n\n\t\tif ( pmremGenerator !== null ) {\n\n\t\t\tpmremGenerator.dispose();\n\t\t\tpmremGenerator = null;\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction WebGLExtensions( gl ) {\n\n\tconst extensions = {};\n\n\tfunction getExtension( name ) {\n\n\t\tif ( extensions[ name ] !== undefined ) {\n\n\t\t\treturn extensions[ name ];\n\n\t\t}\n\n\t\tlet extension;\n\n\t\tswitch ( name ) {\n\n\t\t\tcase 'WEBGL_depth_texture':\n\t\t\t\textension = gl.getExtension( 'WEBGL_depth_texture' ) || gl.getExtension( 'MOZ_WEBGL_depth_texture' ) || gl.getExtension( 'WEBKIT_WEBGL_depth_texture' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'EXT_texture_filter_anisotropic':\n\t\t\t\textension = gl.getExtension( 'EXT_texture_filter_anisotropic' ) || gl.getExtension( 'MOZ_EXT_texture_filter_anisotropic' ) || gl.getExtension( 'WEBKIT_EXT_texture_filter_anisotropic' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'WEBGL_compressed_texture_s3tc':\n\t\t\t\textension = gl.getExtension( 'WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'MOZ_WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_s3tc' );\n\t\t\t\tbreak;\n\n\t\t\tcase 'WEBGL_compressed_texture_pvrtc':\n\t\t\t\textension = gl.getExtension( 'WEBGL_compressed_texture_pvrtc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_pvrtc' );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\textension = gl.getExtension( name );\n\n\t\t}\n\n\t\textensions[ name ] = extension;\n\n\t\treturn extension;\n\n\t}\n\n\treturn {\n\n\t\thas: function ( name ) {\n\n\t\t\treturn getExtension( name ) !== null;\n\n\t\t},\n\n\t\tinit: function () {\n\n\t\t\tgetExtension( 'EXT_color_buffer_float' );\n\t\t\tgetExtension( 'WEBGL_clip_cull_distance' );\n\t\t\tgetExtension( 'OES_texture_float_linear' );\n\t\t\tgetExtension( 'EXT_color_buffer_half_float' );\n\t\t\tgetExtension( 'WEBGL_multisampled_render_to_texture' );\n\t\t\tgetExtension( 'WEBGL_render_shared_exponent' );\n\n\t\t},\n\n\t\tget: function ( name ) {\n\n\t\t\tconst extension = getExtension( name );\n\n\t\t\tif ( extension === null ) {\n\n\t\t\t\twarnOnce( 'THREE.WebGLRenderer: ' + name + ' extension not supported.' );\n\n\t\t\t}\n\n\t\t\treturn extension;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLGeometries( gl, attributes, info, bindingStates ) {\n\n\tconst geometries = {};\n\tconst wireframeAttributes = new WeakMap();\n\n\tfunction onGeometryDispose( event ) {\n\n\t\tconst geometry = event.target;\n\n\t\tif ( geometry.index !== null ) {\n\n\t\t\tattributes.remove( geometry.index );\n\n\t\t}\n\n\t\tfor ( const name in geometry.attributes ) {\n\n\t\t\tattributes.remove( geometry.attributes[ name ] );\n\n\t\t}\n\n\t\tfor ( const name in geometry.morphAttributes ) {\n\n\t\t\tconst array = geometry.morphAttributes[ name ];\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tattributes.remove( array[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.removeEventListener( 'dispose', onGeometryDispose );\n\n\t\tdelete geometries[ geometry.id ];\n\n\t\tconst attribute = wireframeAttributes.get( geometry );\n\n\t\tif ( attribute ) {\n\n\t\t\tattributes.remove( attribute );\n\t\t\twireframeAttributes.delete( geometry );\n\n\t\t}\n\n\t\tbindingStates.releaseStatesOfGeometry( geometry );\n\n\t\tif ( geometry.isInstancedBufferGeometry === true ) {\n\n\t\t\tdelete geometry._maxInstanceCount;\n\n\t\t}\n\n\t\t//\n\n\t\tinfo.memory.geometries --;\n\n\t}\n\n\tfunction get( object, geometry ) {\n\n\t\tif ( geometries[ geometry.id ] === true ) return geometry;\n\n\t\tgeometry.addEventListener( 'dispose', onGeometryDispose );\n\n\t\tgeometries[ geometry.id ] = true;\n\n\t\tinfo.memory.geometries ++;\n\n\t\treturn geometry;\n\n\t}\n\n\tfunction update( geometry ) {\n\n\t\tconst geometryAttributes = geometry.attributes;\n\n\t\t// Updating index buffer in VAO now. See WebGLBindingStates.\n\n\t\tfor ( const name in geometryAttributes ) {\n\n\t\t\tattributes.update( geometryAttributes[ name ], gl.ARRAY_BUFFER );\n\n\t\t}\n\n\t\t// morph targets\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = morphAttributes[ name ];\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tattributes.update( array[ i ], gl.ARRAY_BUFFER );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction updateWireframeAttribute( geometry ) {\n\n\t\tconst indices = [];\n\n\t\tconst geometryIndex = geometry.index;\n\t\tconst geometryPosition = geometry.attributes.position;\n\t\tlet version = 0;\n\n\t\tif ( geometryIndex !== null ) {\n\n\t\t\tconst array = geometryIndex.array;\n\t\t\tversion = geometryIndex.version;\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i += 3 ) {\n\n\t\t\t\tconst a = array[ i + 0 ];\n\t\t\t\tconst b = array[ i + 1 ];\n\t\t\t\tconst c = array[ i + 2 ];\n\n\t\t\t\tindices.push( a, b, b, c, c, a );\n\n\t\t\t}\n\n\t\t} else if ( geometryPosition !== undefined ) {\n\n\t\t\tconst array = geometryPosition.array;\n\t\t\tversion = geometryPosition.version;\n\n\t\t\tfor ( let i = 0, l = ( array.length / 3 ) - 1; i < l; i += 3 ) {\n\n\t\t\t\tconst a = i + 0;\n\t\t\t\tconst b = i + 1;\n\t\t\t\tconst c = i + 2;\n\n\t\t\t\tindices.push( a, b, b, c, c, a );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst attribute = new ( arrayNeedsUint32( indices ) ? Uint32BufferAttribute : Uint16BufferAttribute )( indices, 1 );\n\t\tattribute.version = version;\n\n\t\t// Updating index buffer in VAO now. See WebGLBindingStates\n\n\t\t//\n\n\t\tconst previousAttribute = wireframeAttributes.get( geometry );\n\n\t\tif ( previousAttribute ) attributes.remove( previousAttribute );\n\n\t\t//\n\n\t\twireframeAttributes.set( geometry, attribute );\n\n\t}\n\n\tfunction getWireframeAttribute( geometry ) {\n\n\t\tconst currentAttribute = wireframeAttributes.get( geometry );\n\n\t\tif ( currentAttribute ) {\n\n\t\t\tconst geometryIndex = geometry.index;\n\n\t\t\tif ( geometryIndex !== null ) {\n\n\t\t\t\t// if the attribute is obsolete, create a new one\n\n\t\t\t\tif ( currentAttribute.version < geometryIndex.version ) {\n\n\t\t\t\t\tupdateWireframeAttribute( geometry );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tupdateWireframeAttribute( geometry );\n\n\t\t}\n\n\t\treturn wireframeAttributes.get( geometry );\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tupdate: update,\n\n\t\tgetWireframeAttribute: getWireframeAttribute\n\n\t};\n\n}\n\nfunction WebGLIndexedBufferRenderer( gl, extensions, info ) {\n\n\tlet mode;\n\n\tfunction setMode( value ) {\n\n\t\tmode = value;\n\n\t}\n\n\tlet type, bytesPerElement;\n\n\tfunction setIndex( value ) {\n\n\t\ttype = value.type;\n\t\tbytesPerElement = value.bytesPerElement;\n\n\t}\n\n\tfunction render( start, count ) {\n\n\t\tgl.drawElements( mode, count, type, start * bytesPerElement );\n\n\t\tinfo.update( count, mode, 1 );\n\n\t}\n\n\tfunction renderInstances( start, count, primcount ) {\n\n\t\tif ( primcount === 0 ) return;\n\n\t\tgl.drawElementsInstanced( mode, count, type, start * bytesPerElement, primcount );\n\n\t\tinfo.update( count, mode, primcount );\n\n\t}\n\n\tfunction renderMultiDraw( starts, counts, drawCount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\t\textension.multiDrawElementsWEBGL( mode, counts, 0, type, starts, 0, drawCount );\n\n\t\tlet elementCount = 0;\n\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\telementCount += counts[ i ];\n\n\t\t}\n\n\t\tinfo.update( elementCount, mode, 1 );\n\n\n\t}\n\n\tfunction renderMultiDrawInstances( starts, counts, drawCount, primcount ) {\n\n\t\tif ( drawCount === 0 ) return;\n\n\t\tconst extension = extensions.get( 'WEBGL_multi_draw' );\n\n\t\tif ( extension === null ) {\n\n\t\t\tfor ( let i = 0; i < starts.length; i ++ ) {\n\n\t\t\t\trenderInstances( starts[ i ] / bytesPerElement, counts[ i ], primcount[ i ] );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\textension.multiDrawElementsInstancedWEBGL( mode, counts, 0, type, starts, 0, primcount, 0, drawCount );\n\n\t\t\tlet elementCount = 0;\n\t\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\t\telementCount += counts[ i ];\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0; i < primcount.length; i ++ ) {\n\n\t\t\t\tinfo.update( elementCount, mode, primcount[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t//\n\n\tthis.setMode = setMode;\n\tthis.setIndex = setIndex;\n\tthis.render = render;\n\tthis.renderInstances = renderInstances;\n\tthis.renderMultiDraw = renderMultiDraw;\n\tthis.renderMultiDrawInstances = renderMultiDrawInstances;\n\n}\n\nfunction WebGLInfo( gl ) {\n\n\tconst memory = {\n\t\tgeometries: 0,\n\t\ttextures: 0\n\t};\n\n\tconst render = {\n\t\tframe: 0,\n\t\tcalls: 0,\n\t\ttriangles: 0,\n\t\tpoints: 0,\n\t\tlines: 0\n\t};\n\n\tfunction update( count, mode, instanceCount ) {\n\n\t\trender.calls ++;\n\n\t\tswitch ( mode ) {\n\n\t\t\tcase gl.TRIANGLES:\n\t\t\t\trender.triangles += instanceCount * ( count / 3 );\n\t\t\t\tbreak;\n\n\t\t\tcase gl.LINES:\n\t\t\t\trender.lines += instanceCount * ( count / 2 );\n\t\t\t\tbreak;\n\n\t\t\tcase gl.LINE_STRIP:\n\t\t\t\trender.lines += instanceCount * ( count - 1 );\n\t\t\t\tbreak;\n\n\t\t\tcase gl.LINE_LOOP:\n\t\t\t\trender.lines += instanceCount * count;\n\t\t\t\tbreak;\n\n\t\t\tcase gl.POINTS:\n\t\t\t\trender.points += instanceCount * count;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.error( 'THREE.WebGLInfo: Unknown draw mode:', mode );\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\tfunction reset() {\n\n\t\trender.calls = 0;\n\t\trender.triangles = 0;\n\t\trender.points = 0;\n\t\trender.lines = 0;\n\n\t}\n\n\treturn {\n\t\tmemory: memory,\n\t\trender: render,\n\t\tprograms: null,\n\t\tautoReset: true,\n\t\treset: reset,\n\t\tupdate: update\n\t};\n\n}\n\nfunction WebGLMorphtargets( gl, capabilities, textures ) {\n\n\tconst morphTextures = new WeakMap();\n\tconst morph = new Vector4();\n\n\tfunction update( object, geometry, program ) {\n\n\t\tconst objectInfluences = object.morphTargetInfluences;\n\n\t\t// the following encodes morph targets into an array of data textures. Each layer represents a single morph target.\n\n\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\tlet entry = morphTextures.get( geometry );\n\n\t\tif ( entry === undefined || entry.count !== morphTargetsCount ) {\n\n\t\t\tif ( entry !== undefined ) entry.texture.dispose();\n\n\t\t\tconst hasMorphPosition = geometry.morphAttributes.position !== undefined;\n\t\t\tconst hasMorphNormals = geometry.morphAttributes.normal !== undefined;\n\t\t\tconst hasMorphColors = geometry.morphAttributes.color !== undefined;\n\n\t\t\tconst morphTargets = geometry.morphAttributes.position || [];\n\t\t\tconst morphNormals = geometry.morphAttributes.normal || [];\n\t\t\tconst morphColors = geometry.morphAttributes.color || [];\n\n\t\t\tlet vertexDataCount = 0;\n\n\t\t\tif ( hasMorphPosition === true ) vertexDataCount = 1;\n\t\t\tif ( hasMorphNormals === true ) vertexDataCount = 2;\n\t\t\tif ( hasMorphColors === true ) vertexDataCount = 3;\n\n\t\t\tlet width = geometry.attributes.position.count * vertexDataCount;\n\t\t\tlet height = 1;\n\n\t\t\tif ( width > capabilities.maxTextureSize ) {\n\n\t\t\t\theight = Math.ceil( width / capabilities.maxTextureSize );\n\t\t\t\twidth = capabilities.maxTextureSize;\n\n\t\t\t}\n\n\t\t\tconst buffer = new Float32Array( width * height * 4 * morphTargetsCount );\n\n\t\t\tconst texture = new DataArrayTexture( buffer, width, height, morphTargetsCount );\n\t\t\ttexture.type = FloatType;\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\t// fill buffer\n\n\t\t\tconst vertexDataStride = vertexDataCount * 4;\n\n\t\t\tfor ( let i = 0; i < morphTargetsCount; i ++ ) {\n\n\t\t\t\tconst morphTarget = morphTargets[ i ];\n\t\t\t\tconst morphNormal = morphNormals[ i ];\n\t\t\t\tconst morphColor = morphColors[ i ];\n\n\t\t\t\tconst offset = width * height * 4 * i;\n\n\t\t\t\tfor ( let j = 0; j < morphTarget.count; j ++ ) {\n\n\t\t\t\t\tconst stride = j * vertexDataStride;\n\n\t\t\t\t\tif ( hasMorphPosition === true ) {\n\n\t\t\t\t\t\tmorph.fromBufferAttribute( morphTarget, j );\n\n\t\t\t\t\t\tbuffer[ offset + stride + 0 ] = morph.x;\n\t\t\t\t\t\tbuffer[ offset + stride + 1 ] = morph.y;\n\t\t\t\t\t\tbuffer[ offset + stride + 2 ] = morph.z;\n\t\t\t\t\t\tbuffer[ offset + stride + 3 ] = 0;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( hasMorphNormals === true ) {\n\n\t\t\t\t\t\tmorph.fromBufferAttribute( morphNormal, j );\n\n\t\t\t\t\t\tbuffer[ offset + stride + 4 ] = morph.x;\n\t\t\t\t\t\tbuffer[ offset + stride + 5 ] = morph.y;\n\t\t\t\t\t\tbuffer[ offset + stride + 6 ] = morph.z;\n\t\t\t\t\t\tbuffer[ offset + stride + 7 ] = 0;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( hasMorphColors === true ) {\n\n\t\t\t\t\t\tmorph.fromBufferAttribute( morphColor, j );\n\n\t\t\t\t\t\tbuffer[ offset + stride + 8 ] = morph.x;\n\t\t\t\t\t\tbuffer[ offset + stride + 9 ] = morph.y;\n\t\t\t\t\t\tbuffer[ offset + stride + 10 ] = morph.z;\n\t\t\t\t\t\tbuffer[ offset + stride + 11 ] = ( morphColor.itemSize === 4 ) ? morph.w : 1;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tentry = {\n\t\t\t\tcount: morphTargetsCount,\n\t\t\t\ttexture: texture,\n\t\t\t\tsize: new Vector2( width, height )\n\t\t\t};\n\n\t\t\tmorphTextures.set( geometry, entry );\n\n\t\t\tfunction disposeTexture() {\n\n\t\t\t\ttexture.dispose();\n\n\t\t\t\tmorphTextures.delete( geometry );\n\n\t\t\t\tgeometry.removeEventListener( 'dispose', disposeTexture );\n\n\t\t\t}\n\n\t\t\tgeometry.addEventListener( 'dispose', disposeTexture );\n\n\t\t}\n\n\t\t//\n\t\tif ( object.isInstancedMesh === true && object.morphTexture !== null ) {\n\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTexture', object.morphTexture, textures );\n\n\t\t} else {\n\n\t\t\tlet morphInfluencesSum = 0;\n\n\t\t\tfor ( let i = 0; i < objectInfluences.length; i ++ ) {\n\n\t\t\t\tmorphInfluencesSum += objectInfluences[ i ];\n\n\t\t\t}\n\n\t\t\tconst morphBaseInfluence = geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n\n\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetBaseInfluence', morphBaseInfluence );\n\t\t\tprogram.getUniforms().setValue( gl, 'morphTargetInfluences', objectInfluences );\n\n\t\t}\n\n\t\tprogram.getUniforms().setValue( gl, 'morphTargetsTexture', entry.texture, textures );\n\t\tprogram.getUniforms().setValue( gl, 'morphTargetsTextureSize', entry.size );\n\n\t}\n\n\treturn {\n\n\t\tupdate: update\n\n\t};\n\n}\n\nfunction WebGLObjects( gl, geometries, attributes, info ) {\n\n\tlet updateMap = new WeakMap();\n\n\tfunction update( object ) {\n\n\t\tconst frame = info.render.frame;\n\n\t\tconst geometry = object.geometry;\n\t\tconst buffergeometry = geometries.get( object, geometry );\n\n\t\t// Update once per frame\n\n\t\tif ( updateMap.get( buffergeometry ) !== frame ) {\n\n\t\t\tgeometries.update( buffergeometry );\n\n\t\t\tupdateMap.set( buffergeometry, frame );\n\n\t\t}\n\n\t\tif ( object.isInstancedMesh ) {\n\n\t\t\tif ( object.hasEventListener( 'dispose', onInstancedMeshDispose ) === false ) {\n\n\t\t\t\tobject.addEventListener( 'dispose', onInstancedMeshDispose );\n\n\t\t\t}\n\n\t\t\tif ( updateMap.get( object ) !== frame ) {\n\n\t\t\t\tattributes.update( object.instanceMatrix, gl.ARRAY_BUFFER );\n\n\t\t\t\tif ( object.instanceColor !== null ) {\n\n\t\t\t\t\tattributes.update( object.instanceColor, gl.ARRAY_BUFFER );\n\n\t\t\t\t}\n\n\t\t\t\tupdateMap.set( object, frame );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( object.isSkinnedMesh ) {\n\n\t\t\tconst skeleton = object.skeleton;\n\n\t\t\tif ( updateMap.get( skeleton ) !== frame ) {\n\n\t\t\t\tskeleton.update();\n\n\t\t\t\tupdateMap.set( skeleton, frame );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn buffergeometry;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tupdateMap = new WeakMap();\n\n\t}\n\n\tfunction onInstancedMeshDispose( event ) {\n\n\t\tconst instancedMesh = event.target;\n\n\t\tinstancedMesh.removeEventListener( 'dispose', onInstancedMeshDispose );\n\n\t\tattributes.remove( instancedMesh.instanceMatrix );\n\n\t\tif ( instancedMesh.instanceColor !== null ) attributes.remove( instancedMesh.instanceColor );\n\n\t}\n\n\treturn {\n\n\t\tupdate: update,\n\t\tdispose: dispose\n\n\t};\n\n}\n\nclass DepthTexture extends Texture {\n\n\tconstructor( width, height, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, format = DepthFormat ) {\n\n\t\tif ( format !== DepthFormat && format !== DepthStencilFormat ) {\n\n\t\t\tthrow new Error( 'DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat' );\n\n\t\t}\n\n\t\tif ( type === undefined && format === DepthFormat ) type = UnsignedIntType;\n\t\tif ( type === undefined && format === DepthStencilFormat ) type = UnsignedInt248Type;\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.isDepthTexture = true;\n\n\t\tthis.image = { width: width, height: height };\n\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : NearestFilter;\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : NearestFilter;\n\n\t\tthis.flipY = false;\n\t\tthis.generateMipmaps = false;\n\n\t\tthis.compareFunction = null;\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.compareFunction = source.compareFunction;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.compareFunction !== null ) data.compareFunction = this.compareFunction;\n\n\t\treturn data;\n\n\t}\n\n}\n\n/**\n * Uniforms of a program.\n * Those form a tree structure with a special top-level container for the root,\n * which you get by calling 'new WebGLUniforms( gl, program )'.\n *\n *\n * Properties of inner nodes including the top-level container:\n *\n * .seq - array of nested uniforms\n * .map - nested uniforms by name\n *\n *\n * Methods of all nodes except the top-level container:\n *\n * .setValue( gl, value, [textures] )\n *\n * \t\tuploads a uniform value(s)\n * \tthe 'textures' parameter is needed for sampler uniforms\n *\n *\n * Static methods of the top-level container (textures factorizations):\n *\n * .upload( gl, seq, values, textures )\n *\n * \t\tsets uniforms in 'seq' to 'values[id].value'\n *\n * .seqWithValue( seq, values ) : filteredSeq\n *\n * \t\tfilters 'seq' entries with corresponding entry in values\n *\n *\n * Methods of the top-level container (textures factorizations):\n *\n * .setValue( gl, name, value, textures )\n *\n * \t\tsets uniform with name 'name' to 'value'\n *\n * .setOptional( gl, obj, prop )\n *\n * \t\tlike .set for an optional property of the object\n *\n */\n\n\nconst emptyTexture = /*@__PURE__*/ new Texture();\n\nconst emptyShadowTexture = /*@__PURE__*/ new DepthTexture( 1, 1 );\n\nconst emptyArrayTexture = /*@__PURE__*/ new DataArrayTexture();\nconst empty3dTexture = /*@__PURE__*/ new Data3DTexture();\nconst emptyCubeTexture = /*@__PURE__*/ new CubeTexture();\n\n// --- Utilities ---\n\n// Array Caches (provide typed arrays for temporary by size)\n\nconst arrayCacheF32 = [];\nconst arrayCacheI32 = [];\n\n// Float32Array caches used for uploading Matrix uniforms\n\nconst mat4array = new Float32Array( 16 );\nconst mat3array = new Float32Array( 9 );\nconst mat2array = new Float32Array( 4 );\n\n// Flattening for arrays of vectors and matrices\n\nfunction flatten( array, nBlocks, blockSize ) {\n\n\tconst firstElem = array[ 0 ];\n\n\tif ( firstElem <= 0 || firstElem > 0 ) return array;\n\t// unoptimized: ! isNaN( firstElem )\n\t// see http://jacksondunstan.com/articles/983\n\n\tconst n = nBlocks * blockSize;\n\tlet r = arrayCacheF32[ n ];\n\n\tif ( r === undefined ) {\n\n\t\tr = new Float32Array( n );\n\t\tarrayCacheF32[ n ] = r;\n\n\t}\n\n\tif ( nBlocks !== 0 ) {\n\n\t\tfirstElem.toArray( r, 0 );\n\n\t\tfor ( let i = 1, offset = 0; i !== nBlocks; ++ i ) {\n\n\t\t\toffset += blockSize;\n\t\t\tarray[ i ].toArray( r, offset );\n\n\t\t}\n\n\t}\n\n\treturn r;\n\n}\n\nfunction arraysEqual( a, b ) {\n\n\tif ( a.length !== b.length ) return false;\n\n\tfor ( let i = 0, l = a.length; i < l; i ++ ) {\n\n\t\tif ( a[ i ] !== b[ i ] ) return false;\n\n\t}\n\n\treturn true;\n\n}\n\nfunction copyArray( a, b ) {\n\n\tfor ( let i = 0, l = b.length; i < l; i ++ ) {\n\n\t\ta[ i ] = b[ i ];\n\n\t}\n\n}\n\n// Texture unit allocation\n\nfunction allocTexUnits( textures, n ) {\n\n\tlet r = arrayCacheI32[ n ];\n\n\tif ( r === undefined ) {\n\n\t\tr = new Int32Array( n );\n\t\tarrayCacheI32[ n ] = r;\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\tr[ i ] = textures.allocateTextureUnit();\n\n\t}\n\n\treturn r;\n\n}\n\n// --- Setters ---\n\n// Note: Defining these methods externally, because they come in a bunch\n// and this way their names minify.\n\n// Single scalar\n\nfunction setValueV1f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1f( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single float vector (from flat array or THREE.VectorN)\n\nfunction setValueV2f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y ) {\n\n\t\t\tgl.uniform2f( this.addr, v.x, v.y );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform2fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV3f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z ) {\n\n\t\t\tgl.uniform3f( this.addr, v.x, v.y, v.z );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\n\t\t}\n\n\t} else if ( v.r !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.r || cache[ 1 ] !== v.g || cache[ 2 ] !== v.b ) {\n\n\t\t\tgl.uniform3f( this.addr, v.r, v.g, v.b );\n\n\t\t\tcache[ 0 ] = v.r;\n\t\t\tcache[ 1 ] = v.g;\n\t\t\tcache[ 2 ] = v.b;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform3fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV4f( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z || cache[ 3 ] !== v.w ) {\n\n\t\t\tgl.uniform4f( this.addr, v.x, v.y, v.z, v.w );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\t\t\tcache[ 3 ] = v.w;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform4fv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\n// Single matrix (from flat array or THREE.MatrixN)\n\nfunction setValueM2( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix2fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat2array.set( elements );\n\n\t\tgl.uniformMatrix2fv( this.addr, false, mat2array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\nfunction setValueM3( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix3fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat3array.set( elements );\n\n\t\tgl.uniformMatrix3fv( this.addr, false, mat3array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\nfunction setValueM4( gl, v ) {\n\n\tconst cache = this.cache;\n\tconst elements = v.elements;\n\n\tif ( elements === undefined ) {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniformMatrix4fv( this.addr, false, v );\n\n\t\tcopyArray( cache, v );\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, elements ) ) return;\n\n\t\tmat4array.set( elements );\n\n\t\tgl.uniformMatrix4fv( this.addr, false, mat4array );\n\n\t\tcopyArray( cache, elements );\n\n\t}\n\n}\n\n// Single integer / boolean\n\nfunction setValueV1i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1i( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single integer / boolean vector (from flat array or THREE.VectorN)\n\nfunction setValueV2i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y ) {\n\n\t\t\tgl.uniform2i( this.addr, v.x, v.y );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform2iv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV3i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z ) {\n\n\t\t\tgl.uniform3i( this.addr, v.x, v.y, v.z );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform3iv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV4i( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z || cache[ 3 ] !== v.w ) {\n\n\t\t\tgl.uniform4i( this.addr, v.x, v.y, v.z, v.w );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\t\t\tcache[ 3 ] = v.w;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform4iv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\n// Single unsigned integer\n\nfunction setValueV1ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( cache[ 0 ] === v ) return;\n\n\tgl.uniform1ui( this.addr, v );\n\n\tcache[ 0 ] = v;\n\n}\n\n// Single unsigned integer vector (from flat array or THREE.VectorN)\n\nfunction setValueV2ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y ) {\n\n\t\t\tgl.uniform2ui( this.addr, v.x, v.y );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform2uiv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV3ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z ) {\n\n\t\t\tgl.uniform3ui( this.addr, v.x, v.y, v.z );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform3uiv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\nfunction setValueV4ui( gl, v ) {\n\n\tconst cache = this.cache;\n\n\tif ( v.x !== undefined ) {\n\n\t\tif ( cache[ 0 ] !== v.x || cache[ 1 ] !== v.y || cache[ 2 ] !== v.z || cache[ 3 ] !== v.w ) {\n\n\t\t\tgl.uniform4ui( this.addr, v.x, v.y, v.z, v.w );\n\n\t\t\tcache[ 0 ] = v.x;\n\t\t\tcache[ 1 ] = v.y;\n\t\t\tcache[ 2 ] = v.z;\n\t\t\tcache[ 3 ] = v.w;\n\n\t\t}\n\n\t} else {\n\n\t\tif ( arraysEqual( cache, v ) ) return;\n\n\t\tgl.uniform4uiv( this.addr, v );\n\n\t\tcopyArray( cache, v );\n\n\t}\n\n}\n\n\n// Single texture (2D / Cube)\n\nfunction setValueT1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\tlet emptyTexture2D;\n\n\tif ( this.type === gl.SAMPLER_2D_SHADOW ) {\n\n\t\temptyShadowTexture.compareFunction = LessEqualCompare; // #28670\n\t\temptyTexture2D = emptyShadowTexture;\n\n\t} else {\n\n\t\temptyTexture2D = emptyTexture;\n\n\t}\n\n\ttextures.setTexture2D( v || emptyTexture2D, unit );\n\n}\n\nfunction setValueT3D1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTexture3D( v || empty3dTexture, unit );\n\n}\n\nfunction setValueT6( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTextureCube( v || emptyCubeTexture, unit );\n\n}\n\nfunction setValueT2DArray1( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\tconst unit = textures.allocateTextureUnit();\n\n\tif ( cache[ 0 ] !== unit ) {\n\n\t\tgl.uniform1i( this.addr, unit );\n\t\tcache[ 0 ] = unit;\n\n\t}\n\n\ttextures.setTexture2DArray( v || emptyArrayTexture, unit );\n\n}\n\n// Helper to pick the right setter for the singular case\n\nfunction getSingularSetter( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase 0x1406: return setValueV1f; // FLOAT\n\t\tcase 0x8b50: return setValueV2f; // _VEC2\n\t\tcase 0x8b51: return setValueV3f; // _VEC3\n\t\tcase 0x8b52: return setValueV4f; // _VEC4\n\n\t\tcase 0x8b5a: return setValueM2; // _MAT2\n\t\tcase 0x8b5b: return setValueM3; // _MAT3\n\t\tcase 0x8b5c: return setValueM4; // _MAT4\n\n\t\tcase 0x1404: case 0x8b56: return setValueV1i; // INT, BOOL\n\t\tcase 0x8b53: case 0x8b57: return setValueV2i; // _VEC2\n\t\tcase 0x8b54: case 0x8b58: return setValueV3i; // _VEC3\n\t\tcase 0x8b55: case 0x8b59: return setValueV4i; // _VEC4\n\n\t\tcase 0x1405: return setValueV1ui; // UINT\n\t\tcase 0x8dc6: return setValueV2ui; // _VEC2\n\t\tcase 0x8dc7: return setValueV3ui; // _VEC3\n\t\tcase 0x8dc8: return setValueV4ui; // _VEC4\n\n\t\tcase 0x8b5e: // SAMPLER_2D\n\t\tcase 0x8d66: // SAMPLER_EXTERNAL_OES\n\t\tcase 0x8dca: // INT_SAMPLER_2D\n\t\tcase 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\n\t\tcase 0x8b62: // SAMPLER_2D_SHADOW\n\t\t\treturn setValueT1;\n\n\t\tcase 0x8b5f: // SAMPLER_3D\n\t\tcase 0x8dcb: // INT_SAMPLER_3D\n\t\tcase 0x8dd3: // UNSIGNED_INT_SAMPLER_3D\n\t\t\treturn setValueT3D1;\n\n\t\tcase 0x8b60: // SAMPLER_CUBE\n\t\tcase 0x8dcc: // INT_SAMPLER_CUBE\n\t\tcase 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\n\t\tcase 0x8dc5: // SAMPLER_CUBE_SHADOW\n\t\t\treturn setValueT6;\n\n\t\tcase 0x8dc1: // SAMPLER_2D_ARRAY\n\t\tcase 0x8dcf: // INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dc4: // SAMPLER_2D_ARRAY_SHADOW\n\t\t\treturn setValueT2DArray1;\n\n\t}\n\n}\n\n\n// Array of scalars\n\nfunction setValueV1fArray( gl, v ) {\n\n\tgl.uniform1fv( this.addr, v );\n\n}\n\n// Array of vectors (from flat array or array of THREE.VectorN)\n\nfunction setValueV2fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 2 );\n\n\tgl.uniform2fv( this.addr, data );\n\n}\n\nfunction setValueV3fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 3 );\n\n\tgl.uniform3fv( this.addr, data );\n\n}\n\nfunction setValueV4fArray( gl, v ) {\n\n\tconst data = flatten( v, this.size, 4 );\n\n\tgl.uniform4fv( this.addr, data );\n\n}\n\n// Array of matrices (from flat array or array of THREE.MatrixN)\n\nfunction setValueM2Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 4 );\n\n\tgl.uniformMatrix2fv( this.addr, false, data );\n\n}\n\nfunction setValueM3Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 9 );\n\n\tgl.uniformMatrix3fv( this.addr, false, data );\n\n}\n\nfunction setValueM4Array( gl, v ) {\n\n\tconst data = flatten( v, this.size, 16 );\n\n\tgl.uniformMatrix4fv( this.addr, false, data );\n\n}\n\n// Array of integer / boolean\n\nfunction setValueV1iArray( gl, v ) {\n\n\tgl.uniform1iv( this.addr, v );\n\n}\n\n// Array of integer / boolean vectors (from flat array)\n\nfunction setValueV2iArray( gl, v ) {\n\n\tgl.uniform2iv( this.addr, v );\n\n}\n\nfunction setValueV3iArray( gl, v ) {\n\n\tgl.uniform3iv( this.addr, v );\n\n}\n\nfunction setValueV4iArray( gl, v ) {\n\n\tgl.uniform4iv( this.addr, v );\n\n}\n\n// Array of unsigned integer\n\nfunction setValueV1uiArray( gl, v ) {\n\n\tgl.uniform1uiv( this.addr, v );\n\n}\n\n// Array of unsigned integer vectors (from flat array)\n\nfunction setValueV2uiArray( gl, v ) {\n\n\tgl.uniform2uiv( this.addr, v );\n\n}\n\nfunction setValueV3uiArray( gl, v ) {\n\n\tgl.uniform3uiv( this.addr, v );\n\n}\n\nfunction setValueV4uiArray( gl, v ) {\n\n\tgl.uniform4uiv( this.addr, v );\n\n}\n\n\n// Array of textures (2D / 3D / Cube / 2DArray)\n\nfunction setValueT1Array( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture2D( v[ i ] || emptyTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT3DArray( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture3D( v[ i ] || empty3dTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT6Array( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTextureCube( v[ i ] || emptyCubeTexture, units[ i ] );\n\n\t}\n\n}\n\nfunction setValueT2DArrayArray( gl, v, textures ) {\n\n\tconst cache = this.cache;\n\n\tconst n = v.length;\n\n\tconst units = allocTexUnits( textures, n );\n\n\tif ( ! arraysEqual( cache, units ) ) {\n\n\t\tgl.uniform1iv( this.addr, units );\n\n\t\tcopyArray( cache, units );\n\n\t}\n\n\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\ttextures.setTexture2DArray( v[ i ] || emptyArrayTexture, units[ i ] );\n\n\t}\n\n}\n\n\n// Helper to pick the right setter for a pure (bottom-level) array\n\nfunction getPureArraySetter( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase 0x1406: return setValueV1fArray; // FLOAT\n\t\tcase 0x8b50: return setValueV2fArray; // _VEC2\n\t\tcase 0x8b51: return setValueV3fArray; // _VEC3\n\t\tcase 0x8b52: return setValueV4fArray; // _VEC4\n\n\t\tcase 0x8b5a: return setValueM2Array; // _MAT2\n\t\tcase 0x8b5b: return setValueM3Array; // _MAT3\n\t\tcase 0x8b5c: return setValueM4Array; // _MAT4\n\n\t\tcase 0x1404: case 0x8b56: return setValueV1iArray; // INT, BOOL\n\t\tcase 0x8b53: case 0x8b57: return setValueV2iArray; // _VEC2\n\t\tcase 0x8b54: case 0x8b58: return setValueV3iArray; // _VEC3\n\t\tcase 0x8b55: case 0x8b59: return setValueV4iArray; // _VEC4\n\n\t\tcase 0x1405: return setValueV1uiArray; // UINT\n\t\tcase 0x8dc6: return setValueV2uiArray; // _VEC2\n\t\tcase 0x8dc7: return setValueV3uiArray; // _VEC3\n\t\tcase 0x8dc8: return setValueV4uiArray; // _VEC4\n\n\t\tcase 0x8b5e: // SAMPLER_2D\n\t\tcase 0x8d66: // SAMPLER_EXTERNAL_OES\n\t\tcase 0x8dca: // INT_SAMPLER_2D\n\t\tcase 0x8dd2: // UNSIGNED_INT_SAMPLER_2D\n\t\tcase 0x8b62: // SAMPLER_2D_SHADOW\n\t\t\treturn setValueT1Array;\n\n\t\tcase 0x8b5f: // SAMPLER_3D\n\t\tcase 0x8dcb: // INT_SAMPLER_3D\n\t\tcase 0x8dd3: // UNSIGNED_INT_SAMPLER_3D\n\t\t\treturn setValueT3DArray;\n\n\t\tcase 0x8b60: // SAMPLER_CUBE\n\t\tcase 0x8dcc: // INT_SAMPLER_CUBE\n\t\tcase 0x8dd4: // UNSIGNED_INT_SAMPLER_CUBE\n\t\tcase 0x8dc5: // SAMPLER_CUBE_SHADOW\n\t\t\treturn setValueT6Array;\n\n\t\tcase 0x8dc1: // SAMPLER_2D_ARRAY\n\t\tcase 0x8dcf: // INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dd7: // UNSIGNED_INT_SAMPLER_2D_ARRAY\n\t\tcase 0x8dc4: // SAMPLER_2D_ARRAY_SHADOW\n\t\t\treturn setValueT2DArrayArray;\n\n\t}\n\n}\n\n// --- Uniform Classes ---\n\nclass SingleUniform {\n\n\tconstructor( id, activeInfo, addr ) {\n\n\t\tthis.id = id;\n\t\tthis.addr = addr;\n\t\tthis.cache = [];\n\t\tthis.type = activeInfo.type;\n\t\tthis.setValue = getSingularSetter( activeInfo.type );\n\n\t\t// this.path = activeInfo.name; // DEBUG\n\n\t}\n\n}\n\nclass PureArrayUniform {\n\n\tconstructor( id, activeInfo, addr ) {\n\n\t\tthis.id = id;\n\t\tthis.addr = addr;\n\t\tthis.cache = [];\n\t\tthis.type = activeInfo.type;\n\t\tthis.size = activeInfo.size;\n\t\tthis.setValue = getPureArraySetter( activeInfo.type );\n\n\t\t// this.path = activeInfo.name; // DEBUG\n\n\t}\n\n}\n\nclass StructuredUniform {\n\n\tconstructor( id ) {\n\n\t\tthis.id = id;\n\n\t\tthis.seq = [];\n\t\tthis.map = {};\n\n\t}\n\n\tsetValue( gl, value, textures ) {\n\n\t\tconst seq = this.seq;\n\n\t\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\t\tconst u = seq[ i ];\n\t\t\tu.setValue( gl, value[ u.id ], textures );\n\n\t\t}\n\n\t}\n\n}\n\n// --- Top-level ---\n\n// Parser - builds up the property tree from the path strings\n\nconst RePathPart = /(\\w+)(\\])?(\\[|\\.)?/g;\n\n// extracts\n// \t- the identifier (member name or array index)\n// - followed by an optional right bracket (found when array index)\n// - followed by an optional left bracket or dot (type of subscript)\n//\n// Note: These portions can be read in a non-overlapping fashion and\n// allow straightforward parsing of the hierarchy that WebGL encodes\n// in the uniform names.\n\nfunction addUniform( container, uniformObject ) {\n\n\tcontainer.seq.push( uniformObject );\n\tcontainer.map[ uniformObject.id ] = uniformObject;\n\n}\n\nfunction parseUniform( activeInfo, addr, container ) {\n\n\tconst path = activeInfo.name,\n\t\tpathLength = path.length;\n\n\t// reset RegExp object, because of the early exit of a previous run\n\tRePathPart.lastIndex = 0;\n\n\twhile ( true ) {\n\n\t\tconst match = RePathPart.exec( path ),\n\t\t\tmatchEnd = RePathPart.lastIndex;\n\n\t\tlet id = match[ 1 ];\n\t\tconst idIsIndex = match[ 2 ] === ']',\n\t\t\tsubscript = match[ 3 ];\n\n\t\tif ( idIsIndex ) id = id | 0; // convert to integer\n\n\t\tif ( subscript === undefined || subscript === '[' && matchEnd + 2 === pathLength ) {\n\n\t\t\t// bare name or \"pure\" bottom-level array \"[0]\" suffix\n\n\t\t\taddUniform( container, subscript === undefined ?\n\t\t\t\tnew SingleUniform( id, activeInfo, addr ) :\n\t\t\t\tnew PureArrayUniform( id, activeInfo, addr ) );\n\n\t\t\tbreak;\n\n\t\t} else {\n\n\t\t\t// step into inner node / create it in case it doesn't exist\n\n\t\t\tconst map = container.map;\n\t\t\tlet next = map[ id ];\n\n\t\t\tif ( next === undefined ) {\n\n\t\t\t\tnext = new StructuredUniform( id );\n\t\t\t\taddUniform( container, next );\n\n\t\t\t}\n\n\t\t\tcontainer = next;\n\n\t\t}\n\n\t}\n\n}\n\n// Root Container\n\nclass WebGLUniforms {\n\n\tconstructor( gl, program ) {\n\n\t\tthis.seq = [];\n\t\tthis.map = {};\n\n\t\tconst n = gl.getProgramParameter( program, gl.ACTIVE_UNIFORMS );\n\n\t\tfor ( let i = 0; i < n; ++ i ) {\n\n\t\t\tconst info = gl.getActiveUniform( program, i ),\n\t\t\t\taddr = gl.getUniformLocation( program, info.name );\n\n\t\t\tparseUniform( info, addr, this );\n\n\t\t}\n\n\t}\n\n\tsetValue( gl, name, value, textures ) {\n\n\t\tconst u = this.map[ name ];\n\n\t\tif ( u !== undefined ) u.setValue( gl, value, textures );\n\n\t}\n\n\tsetOptional( gl, object, name ) {\n\n\t\tconst v = object[ name ];\n\n\t\tif ( v !== undefined ) this.setValue( gl, name, v );\n\n\t}\n\n\tstatic upload( gl, seq, values, textures ) {\n\n\t\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\t\tconst u = seq[ i ],\n\t\t\t\tv = values[ u.id ];\n\n\t\t\tif ( v.needsUpdate !== false ) {\n\n\t\t\t\t// note: always updating when .needsUpdate is undefined\n\t\t\t\tu.setValue( gl, v.value, textures );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tstatic seqWithValue( seq, values ) {\n\n\t\tconst r = [];\n\n\t\tfor ( let i = 0, n = seq.length; i !== n; ++ i ) {\n\n\t\t\tconst u = seq[ i ];\n\t\t\tif ( u.id in values ) r.push( u );\n\n\t\t}\n\n\t\treturn r;\n\n\t}\n\n}\n\nfunction WebGLShader( gl, type, string ) {\n\n\tconst shader = gl.createShader( type );\n\n\tgl.shaderSource( shader, string );\n\tgl.compileShader( shader );\n\n\treturn shader;\n\n}\n\n// From https://www.khronos.org/registry/webgl/extensions/KHR_parallel_shader_compile/\nconst COMPLETION_STATUS_KHR = 0x91B1;\n\nlet programIdCount = 0;\n\nfunction handleSource( string, errorLine ) {\n\n\tconst lines = string.split( '\\n' );\n\tconst lines2 = [];\n\n\tconst from = Math.max( errorLine - 6, 0 );\n\tconst to = Math.min( errorLine + 6, lines.length );\n\n\tfor ( let i = from; i < to; i ++ ) {\n\n\t\tconst line = i + 1;\n\t\tlines2.push( `${line === errorLine ? '>' : ' '} ${line}: ${lines[ i ]}` );\n\n\t}\n\n\treturn lines2.join( '\\n' );\n\n}\n\nfunction getEncodingComponents( colorSpace ) {\n\n\tconst workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace );\n\tconst encodingPrimaries = ColorManagement.getPrimaries( colorSpace );\n\n\tlet gamutMapping;\n\n\tif ( workingPrimaries === encodingPrimaries ) {\n\n\t\tgamutMapping = '';\n\n\t} else if ( workingPrimaries === P3Primaries && encodingPrimaries === Rec709Primaries ) {\n\n\t\tgamutMapping = 'LinearDisplayP3ToLinearSRGB';\n\n\t} else if ( workingPrimaries === Rec709Primaries && encodingPrimaries === P3Primaries ) {\n\n\t\tgamutMapping = 'LinearSRGBToLinearDisplayP3';\n\n\t}\n\n\tswitch ( colorSpace ) {\n\n\t\tcase LinearSRGBColorSpace:\n\t\tcase LinearDisplayP3ColorSpace:\n\t\t\treturn [ gamutMapping, 'LinearTransferOETF' ];\n\n\t\tcase SRGBColorSpace:\n\t\tcase DisplayP3ColorSpace:\n\t\t\treturn [ gamutMapping, 'sRGBTransferOETF' ];\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.WebGLProgram: Unsupported color space:', colorSpace );\n\t\t\treturn [ gamutMapping, 'LinearTransferOETF' ];\n\n\t}\n\n}\n\nfunction getShaderErrors( gl, shader, type ) {\n\n\tconst status = gl.getShaderParameter( shader, gl.COMPILE_STATUS );\n\tconst errors = gl.getShaderInfoLog( shader ).trim();\n\n\tif ( status && errors === '' ) return '';\n\n\tconst errorMatches = /ERROR: 0:(\\d+)/.exec( errors );\n\tif ( errorMatches ) {\n\n\t\t// --enable-privileged-webgl-extension\n\t\t// console.log( '**' + type + '**', gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) );\n\n\t\tconst errorLine = parseInt( errorMatches[ 1 ] );\n\t\treturn type.toUpperCase() + '\\n\\n' + errors + '\\n\\n' + handleSource( gl.getShaderSource( shader ), errorLine );\n\n\t} else {\n\n\t\treturn errors;\n\n\t}\n\n}\n\nfunction getTexelEncodingFunction( functionName, colorSpace ) {\n\n\tconst components = getEncodingComponents( colorSpace );\n\treturn `vec4 ${functionName}( vec4 value ) { return ${components[ 0 ]}( ${components[ 1 ]}( value ) ); }`;\n\n}\n\nfunction getToneMappingFunction( functionName, toneMapping ) {\n\n\tlet toneMappingName;\n\n\tswitch ( toneMapping ) {\n\n\t\tcase LinearToneMapping:\n\t\t\ttoneMappingName = 'Linear';\n\t\t\tbreak;\n\n\t\tcase ReinhardToneMapping:\n\t\t\ttoneMappingName = 'Reinhard';\n\t\t\tbreak;\n\n\t\tcase CineonToneMapping:\n\t\t\ttoneMappingName = 'OptimizedCineon';\n\t\t\tbreak;\n\n\t\tcase ACESFilmicToneMapping:\n\t\t\ttoneMappingName = 'ACESFilmic';\n\t\t\tbreak;\n\n\t\tcase AgXToneMapping:\n\t\t\ttoneMappingName = 'AgX';\n\t\t\tbreak;\n\n\t\tcase NeutralToneMapping:\n\t\t\ttoneMappingName = 'Neutral';\n\t\t\tbreak;\n\n\t\tcase CustomToneMapping:\n\t\t\ttoneMappingName = 'Custom';\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tconsole.warn( 'THREE.WebGLProgram: Unsupported toneMapping:', toneMapping );\n\t\t\ttoneMappingName = 'Linear';\n\n\t}\n\n\treturn 'vec3 ' + functionName + '( vec3 color ) { return ' + toneMappingName + 'ToneMapping( color ); }';\n\n}\n\nfunction generateVertexExtensions( parameters ) {\n\n\tconst chunks = [\n\t\tparameters.extensionClipCullDistance ? '#extension GL_ANGLE_clip_cull_distance : require' : '',\n\t\tparameters.extensionMultiDraw ? '#extension GL_ANGLE_multi_draw : require' : '',\n\t];\n\n\treturn chunks.filter( filterEmptyLine ).join( '\\n' );\n\n}\n\nfunction generateDefines( defines ) {\n\n\tconst chunks = [];\n\n\tfor ( const name in defines ) {\n\n\t\tconst value = defines[ name ];\n\n\t\tif ( value === false ) continue;\n\n\t\tchunks.push( '#define ' + name + ' ' + value );\n\n\t}\n\n\treturn chunks.join( '\\n' );\n\n}\n\nfunction fetchAttributeLocations( gl, program ) {\n\n\tconst attributes = {};\n\n\tconst n = gl.getProgramParameter( program, gl.ACTIVE_ATTRIBUTES );\n\n\tfor ( let i = 0; i < n; i ++ ) {\n\n\t\tconst info = gl.getActiveAttrib( program, i );\n\t\tconst name = info.name;\n\n\t\tlet locationSize = 1;\n\t\tif ( info.type === gl.FLOAT_MAT2 ) locationSize = 2;\n\t\tif ( info.type === gl.FLOAT_MAT3 ) locationSize = 3;\n\t\tif ( info.type === gl.FLOAT_MAT4 ) locationSize = 4;\n\n\t\t// console.log( 'THREE.WebGLProgram: ACTIVE VERTEX ATTRIBUTE:', name, i );\n\n\t\tattributes[ name ] = {\n\t\t\ttype: info.type,\n\t\t\tlocation: gl.getAttribLocation( program, name ),\n\t\t\tlocationSize: locationSize\n\t\t};\n\n\t}\n\n\treturn attributes;\n\n}\n\nfunction filterEmptyLine( string ) {\n\n\treturn string !== '';\n\n}\n\nfunction replaceLightNums( string, parameters ) {\n\n\tconst numSpotLightCoords = parameters.numSpotLightShadows + parameters.numSpotLightMaps - parameters.numSpotLightShadowsWithMaps;\n\n\treturn string\n\t\t.replace( /NUM_DIR_LIGHTS/g, parameters.numDirLights )\n\t\t.replace( /NUM_SPOT_LIGHTS/g, parameters.numSpotLights )\n\t\t.replace( /NUM_SPOT_LIGHT_MAPS/g, parameters.numSpotLightMaps )\n\t\t.replace( /NUM_SPOT_LIGHT_COORDS/g, numSpotLightCoords )\n\t\t.replace( /NUM_RECT_AREA_LIGHTS/g, parameters.numRectAreaLights )\n\t\t.replace( /NUM_POINT_LIGHTS/g, parameters.numPointLights )\n\t\t.replace( /NUM_HEMI_LIGHTS/g, parameters.numHemiLights )\n\t\t.replace( /NUM_DIR_LIGHT_SHADOWS/g, parameters.numDirLightShadows )\n\t\t.replace( /NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g, parameters.numSpotLightShadowsWithMaps )\n\t\t.replace( /NUM_SPOT_LIGHT_SHADOWS/g, parameters.numSpotLightShadows )\n\t\t.replace( /NUM_POINT_LIGHT_SHADOWS/g, parameters.numPointLightShadows );\n\n}\n\nfunction replaceClippingPlaneNums( string, parameters ) {\n\n\treturn string\n\t\t.replace( /NUM_CLIPPING_PLANES/g, parameters.numClippingPlanes )\n\t\t.replace( /UNION_CLIPPING_PLANES/g, ( parameters.numClippingPlanes - parameters.numClipIntersection ) );\n\n}\n\n// Resolve Includes\n\nconst includePattern = /^[ \\t]*#include +<([\\w\\d./]+)>/gm;\n\nfunction resolveIncludes( string ) {\n\n\treturn string.replace( includePattern, includeReplacer );\n\n}\n\nconst shaderChunkMap = new Map();\n\nfunction includeReplacer( match, include ) {\n\n\tlet string = ShaderChunk[ include ];\n\n\tif ( string === undefined ) {\n\n\t\tconst newInclude = shaderChunkMap.get( include );\n\n\t\tif ( newInclude !== undefined ) {\n\n\t\t\tstring = ShaderChunk[ newInclude ];\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Shader chunk \"%s\" has been deprecated. Use \"%s\" instead.', include, newInclude );\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'Can not resolve #include <' + include + '>' );\n\n\t\t}\n\n\t}\n\n\treturn resolveIncludes( string );\n\n}\n\n// Unroll Loops\n\nconst unrollLoopPattern = /#pragma unroll_loop_start\\s+for\\s*\\(\\s*int\\s+i\\s*=\\s*(\\d+)\\s*;\\s*i\\s*<\\s*(\\d+)\\s*;\\s*i\\s*\\+\\+\\s*\\)\\s*{([\\s\\S]+?)}\\s+#pragma unroll_loop_end/g;\n\nfunction unrollLoops( string ) {\n\n\treturn string.replace( unrollLoopPattern, loopReplacer );\n\n}\n\nfunction loopReplacer( match, start, end, snippet ) {\n\n\tlet string = '';\n\n\tfor ( let i = parseInt( start ); i < parseInt( end ); i ++ ) {\n\n\t\tstring += snippet\n\t\t\t.replace( /\\[\\s*i\\s*\\]/g, '[ ' + i + ' ]' )\n\t\t\t.replace( /UNROLLED_LOOP_INDEX/g, i );\n\n\t}\n\n\treturn string;\n\n}\n\n//\n\nfunction generatePrecision( parameters ) {\n\n\tlet precisionstring = `precision ${parameters.precision} float;\n\tprecision ${parameters.precision} int;\n\tprecision ${parameters.precision} sampler2D;\n\tprecision ${parameters.precision} samplerCube;\n\tprecision ${parameters.precision} sampler3D;\n\tprecision ${parameters.precision} sampler2DArray;\n\tprecision ${parameters.precision} sampler2DShadow;\n\tprecision ${parameters.precision} samplerCubeShadow;\n\tprecision ${parameters.precision} sampler2DArrayShadow;\n\tprecision ${parameters.precision} isampler2D;\n\tprecision ${parameters.precision} isampler3D;\n\tprecision ${parameters.precision} isamplerCube;\n\tprecision ${parameters.precision} isampler2DArray;\n\tprecision ${parameters.precision} usampler2D;\n\tprecision ${parameters.precision} usampler3D;\n\tprecision ${parameters.precision} usamplerCube;\n\tprecision ${parameters.precision} usampler2DArray;\n\t`;\n\n\tif ( parameters.precision === 'highp' ) {\n\n\t\tprecisionstring += '\\n#define HIGH_PRECISION';\n\n\t} else if ( parameters.precision === 'mediump' ) {\n\n\t\tprecisionstring += '\\n#define MEDIUM_PRECISION';\n\n\t} else if ( parameters.precision === 'lowp' ) {\n\n\t\tprecisionstring += '\\n#define LOW_PRECISION';\n\n\t}\n\n\treturn precisionstring;\n\n}\n\nfunction generateShadowMapTypeDefine( parameters ) {\n\n\tlet shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC';\n\n\tif ( parameters.shadowMapType === PCFShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF';\n\n\t} else if ( parameters.shadowMapType === PCFSoftShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT';\n\n\t} else if ( parameters.shadowMapType === VSMShadowMap ) {\n\n\t\tshadowMapTypeDefine = 'SHADOWMAP_TYPE_VSM';\n\n\t}\n\n\treturn shadowMapTypeDefine;\n\n}\n\nfunction generateEnvMapTypeDefine( parameters ) {\n\n\tlet envMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.envMapMode ) {\n\n\t\t\tcase CubeReflectionMapping:\n\t\t\tcase CubeRefractionMapping:\n\t\t\t\tenvMapTypeDefine = 'ENVMAP_TYPE_CUBE';\n\t\t\t\tbreak;\n\n\t\t\tcase CubeUVReflectionMapping:\n\t\t\t\tenvMapTypeDefine = 'ENVMAP_TYPE_CUBE_UV';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapTypeDefine;\n\n}\n\nfunction generateEnvMapModeDefine( parameters ) {\n\n\tlet envMapModeDefine = 'ENVMAP_MODE_REFLECTION';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.envMapMode ) {\n\n\t\t\tcase CubeRefractionMapping:\n\n\t\t\t\tenvMapModeDefine = 'ENVMAP_MODE_REFRACTION';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapModeDefine;\n\n}\n\nfunction generateEnvMapBlendingDefine( parameters ) {\n\n\tlet envMapBlendingDefine = 'ENVMAP_BLENDING_NONE';\n\n\tif ( parameters.envMap ) {\n\n\t\tswitch ( parameters.combine ) {\n\n\t\t\tcase MultiplyOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY';\n\t\t\t\tbreak;\n\n\t\t\tcase MixOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_MIX';\n\t\t\t\tbreak;\n\n\t\t\tcase AddOperation:\n\t\t\t\tenvMapBlendingDefine = 'ENVMAP_BLENDING_ADD';\n\t\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n\treturn envMapBlendingDefine;\n\n}\n\nfunction generateCubeUVSize( parameters ) {\n\n\tconst imageHeight = parameters.envMapCubeUVHeight;\n\n\tif ( imageHeight === null ) return null;\n\n\tconst maxMip = Math.log2( imageHeight ) - 2;\n\n\tconst texelHeight = 1.0 / imageHeight;\n\n\tconst texelWidth = 1.0 / ( 3 * Math.max( Math.pow( 2, maxMip ), 7 * 16 ) );\n\n\treturn { texelWidth, texelHeight, maxMip };\n\n}\n\nfunction WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {\n\n\t// TODO Send this event to Three.js DevTools\n\t// console.log( 'WebGLProgram', cacheKey );\n\n\tconst gl = renderer.getContext();\n\n\tconst defines = parameters.defines;\n\n\tlet vertexShader = parameters.vertexShader;\n\tlet fragmentShader = parameters.fragmentShader;\n\n\tconst shadowMapTypeDefine = generateShadowMapTypeDefine( parameters );\n\tconst envMapTypeDefine = generateEnvMapTypeDefine( parameters );\n\tconst envMapModeDefine = generateEnvMapModeDefine( parameters );\n\tconst envMapBlendingDefine = generateEnvMapBlendingDefine( parameters );\n\tconst envMapCubeUVSize = generateCubeUVSize( parameters );\n\n\tconst customVertexExtensions = generateVertexExtensions( parameters );\n\n\tconst customDefines = generateDefines( defines );\n\n\tconst program = gl.createProgram();\n\n\tlet prefixVertex, prefixFragment;\n\tlet versionString = parameters.glslVersion ? '#version ' + parameters.glslVersion + '\\n' : '';\n\n\tif ( parameters.isRawShaderMaterial ) {\n\n\t\tprefixVertex = [\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tif ( prefixVertex.length > 0 ) {\n\n\t\t\tprefixVertex += '\\n';\n\n\t\t}\n\n\t\tprefixFragment = [\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tif ( prefixFragment.length > 0 ) {\n\n\t\t\tprefixFragment += '\\n';\n\n\t\t}\n\n\t} else {\n\n\t\tprefixVertex = [\n\n\t\t\tgeneratePrecision( parameters ),\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines,\n\n\t\t\tparameters.extensionClipCullDistance ? '#define USE_CLIP_DISTANCE' : '',\n\t\t\tparameters.batching ? '#define USE_BATCHING' : '',\n\t\t\tparameters.batchingColor ? '#define USE_BATCHING_COLOR' : '',\n\t\t\tparameters.instancing ? '#define USE_INSTANCING' : '',\n\t\t\tparameters.instancingColor ? '#define USE_INSTANCING_COLOR' : '',\n\t\t\tparameters.instancingMorph ? '#define USE_INSTANCING_MORPH' : '',\n\n\t\t\tparameters.useFog && parameters.fog ? '#define USE_FOG' : '',\n\t\t\tparameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '',\n\n\t\t\tparameters.map ? '#define USE_MAP' : '',\n\t\t\tparameters.envMap ? '#define USE_ENVMAP' : '',\n\t\t\tparameters.envMap ? '#define ' + envMapModeDefine : '',\n\t\t\tparameters.lightMap ? '#define USE_LIGHTMAP' : '',\n\t\t\tparameters.aoMap ? '#define USE_AOMAP' : '',\n\t\t\tparameters.bumpMap ? '#define USE_BUMPMAP' : '',\n\t\t\tparameters.normalMap ? '#define USE_NORMALMAP' : '',\n\t\t\tparameters.normalMapObjectSpace ? '#define USE_NORMALMAP_OBJECTSPACE' : '',\n\t\t\tparameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '',\n\t\t\tparameters.displacementMap ? '#define USE_DISPLACEMENTMAP' : '',\n\t\t\tparameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '',\n\n\t\t\tparameters.anisotropy ? '#define USE_ANISOTROPY' : '',\n\t\t\tparameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '',\n\n\t\t\tparameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '',\n\t\t\tparameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '',\n\t\t\tparameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '',\n\n\t\t\tparameters.iridescenceMap ? '#define USE_IRIDESCENCEMAP' : '',\n\t\t\tparameters.iridescenceThicknessMap ? '#define USE_IRIDESCENCE_THICKNESSMAP' : '',\n\n\t\t\tparameters.specularMap ? '#define USE_SPECULARMAP' : '',\n\t\t\tparameters.specularColorMap ? '#define USE_SPECULAR_COLORMAP' : '',\n\t\t\tparameters.specularIntensityMap ? '#define USE_SPECULAR_INTENSITYMAP' : '',\n\n\t\t\tparameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',\n\t\t\tparameters.metalnessMap ? '#define USE_METALNESSMAP' : '',\n\t\t\tparameters.alphaMap ? '#define USE_ALPHAMAP' : '',\n\t\t\tparameters.alphaHash ? '#define USE_ALPHAHASH' : '',\n\n\t\t\tparameters.transmission ? '#define USE_TRANSMISSION' : '',\n\t\t\tparameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',\n\t\t\tparameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',\n\n\t\t\tparameters.sheenColorMap ? '#define USE_SHEEN_COLORMAP' : '',\n\t\t\tparameters.sheenRoughnessMap ? '#define USE_SHEEN_ROUGHNESSMAP' : '',\n\n\t\t\t//\n\n\t\t\tparameters.mapUv ? '#define MAP_UV ' + parameters.mapUv : '',\n\t\t\tparameters.alphaMapUv ? '#define ALPHAMAP_UV ' + parameters.alphaMapUv : '',\n\t\t\tparameters.lightMapUv ? '#define LIGHTMAP_UV ' + parameters.lightMapUv : '',\n\t\t\tparameters.aoMapUv ? '#define AOMAP_UV ' + parameters.aoMapUv : '',\n\t\t\tparameters.emissiveMapUv ? '#define EMISSIVEMAP_UV ' + parameters.emissiveMapUv : '',\n\t\t\tparameters.bumpMapUv ? '#define BUMPMAP_UV ' + parameters.bumpMapUv : '',\n\t\t\tparameters.normalMapUv ? '#define NORMALMAP_UV ' + parameters.normalMapUv : '',\n\t\t\tparameters.displacementMapUv ? '#define DISPLACEMENTMAP_UV ' + parameters.displacementMapUv : '',\n\n\t\t\tparameters.metalnessMapUv ? '#define METALNESSMAP_UV ' + parameters.metalnessMapUv : '',\n\t\t\tparameters.roughnessMapUv ? '#define ROUGHNESSMAP_UV ' + parameters.roughnessMapUv : '',\n\n\t\t\tparameters.anisotropyMapUv ? '#define ANISOTROPYMAP_UV ' + parameters.anisotropyMapUv : '',\n\n\t\t\tparameters.clearcoatMapUv ? '#define CLEARCOATMAP_UV ' + parameters.clearcoatMapUv : '',\n\t\t\tparameters.clearcoatNormalMapUv ? '#define CLEARCOAT_NORMALMAP_UV ' + parameters.clearcoatNormalMapUv : '',\n\t\t\tparameters.clearcoatRoughnessMapUv ? '#define CLEARCOAT_ROUGHNESSMAP_UV ' + parameters.clearcoatRoughnessMapUv : '',\n\n\t\t\tparameters.iridescenceMapUv ? '#define IRIDESCENCEMAP_UV ' + parameters.iridescenceMapUv : '',\n\t\t\tparameters.iridescenceThicknessMapUv ? '#define IRIDESCENCE_THICKNESSMAP_UV ' + parameters.iridescenceThicknessMapUv : '',\n\n\t\t\tparameters.sheenColorMapUv ? '#define SHEEN_COLORMAP_UV ' + parameters.sheenColorMapUv : '',\n\t\t\tparameters.sheenRoughnessMapUv ? '#define SHEEN_ROUGHNESSMAP_UV ' + parameters.sheenRoughnessMapUv : '',\n\n\t\t\tparameters.specularMapUv ? '#define SPECULARMAP_UV ' + parameters.specularMapUv : '',\n\t\t\tparameters.specularColorMapUv ? '#define SPECULAR_COLORMAP_UV ' + parameters.specularColorMapUv : '',\n\t\t\tparameters.specularIntensityMapUv ? '#define SPECULAR_INTENSITYMAP_UV ' + parameters.specularIntensityMapUv : '',\n\n\t\t\tparameters.transmissionMapUv ? '#define TRANSMISSIONMAP_UV ' + parameters.transmissionMapUv : '',\n\t\t\tparameters.thicknessMapUv ? '#define THICKNESSMAP_UV ' + parameters.thicknessMapUv : '',\n\n\t\t\t//\n\n\t\t\tparameters.vertexTangents && parameters.flatShading === false ? '#define USE_TANGENT' : '',\n\t\t\tparameters.vertexColors ? '#define USE_COLOR' : '',\n\t\t\tparameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',\n\t\t\tparameters.vertexUv1s ? '#define USE_UV1' : '',\n\t\t\tparameters.vertexUv2s ? '#define USE_UV2' : '',\n\t\t\tparameters.vertexUv3s ? '#define USE_UV3' : '',\n\n\t\t\tparameters.pointsUvs ? '#define USE_POINTS_UV' : '',\n\n\t\t\tparameters.flatShading ? '#define FLAT_SHADED' : '',\n\n\t\t\tparameters.skinning ? '#define USE_SKINNING' : '',\n\n\t\t\tparameters.morphTargets ? '#define USE_MORPHTARGETS' : '',\n\t\t\tparameters.morphNormals && parameters.flatShading === false ? '#define USE_MORPHNORMALS' : '',\n\t\t\t( parameters.morphColors ) ? '#define USE_MORPHCOLORS' : '',\n\t\t\t( parameters.morphTargetsCount > 0 ) ? '#define MORPHTARGETS_TEXTURE_STRIDE ' + parameters.morphTextureStride : '',\n\t\t\t( parameters.morphTargetsCount > 0 ) ? '#define MORPHTARGETS_COUNT ' + parameters.morphTargetsCount : '',\n\t\t\tparameters.doubleSided ? '#define DOUBLE_SIDED' : '',\n\t\t\tparameters.flipSided ? '#define FLIP_SIDED' : '',\n\n\t\t\tparameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',\n\t\t\tparameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',\n\n\t\t\tparameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '',\n\n\t\t\tparameters.numLightProbes > 0 ? '#define USE_LIGHT_PROBES' : '',\n\n\t\t\tparameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',\n\n\t\t\t'uniform mat4 modelMatrix;',\n\t\t\t'uniform mat4 modelViewMatrix;',\n\t\t\t'uniform mat4 projectionMatrix;',\n\t\t\t'uniform mat4 viewMatrix;',\n\t\t\t'uniform mat3 normalMatrix;',\n\t\t\t'uniform vec3 cameraPosition;',\n\t\t\t'uniform bool isOrthographic;',\n\n\t\t\t'#ifdef USE_INSTANCING',\n\n\t\t\t'\tattribute mat4 instanceMatrix;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_INSTANCING_COLOR',\n\n\t\t\t'\tattribute vec3 instanceColor;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_INSTANCING_MORPH',\n\n\t\t\t'\tuniform sampler2D morphTexture;',\n\n\t\t\t'#endif',\n\n\t\t\t'attribute vec3 position;',\n\t\t\t'attribute vec3 normal;',\n\t\t\t'attribute vec2 uv;',\n\n\t\t\t'#ifdef USE_UV1',\n\n\t\t\t'\tattribute vec2 uv1;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_UV2',\n\n\t\t\t'\tattribute vec2 uv2;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_UV3',\n\n\t\t\t'\tattribute vec2 uv3;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_TANGENT',\n\n\t\t\t'\tattribute vec4 tangent;',\n\n\t\t\t'#endif',\n\n\t\t\t'#if defined( USE_COLOR_ALPHA )',\n\n\t\t\t'\tattribute vec4 color;',\n\n\t\t\t'#elif defined( USE_COLOR )',\n\n\t\t\t'\tattribute vec3 color;',\n\n\t\t\t'#endif',\n\n\t\t\t'#ifdef USE_SKINNING',\n\n\t\t\t'\tattribute vec4 skinIndex;',\n\t\t\t'\tattribute vec4 skinWeight;',\n\n\t\t\t'#endif',\n\n\t\t\t'\\n'\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t\tprefixFragment = [\n\n\t\t\tgeneratePrecision( parameters ),\n\n\t\t\t'#define SHADER_TYPE ' + parameters.shaderType,\n\t\t\t'#define SHADER_NAME ' + parameters.shaderName,\n\n\t\t\tcustomDefines,\n\n\t\t\tparameters.useFog && parameters.fog ? '#define USE_FOG' : '',\n\t\t\tparameters.useFog && parameters.fogExp2 ? '#define FOG_EXP2' : '',\n\n\t\t\tparameters.alphaToCoverage ? '#define ALPHA_TO_COVERAGE' : '',\n\t\t\tparameters.map ? '#define USE_MAP' : '',\n\t\t\tparameters.matcap ? '#define USE_MATCAP' : '',\n\t\t\tparameters.envMap ? '#define USE_ENVMAP' : '',\n\t\t\tparameters.envMap ? '#define ' + envMapTypeDefine : '',\n\t\t\tparameters.envMap ? '#define ' + envMapModeDefine : '',\n\t\t\tparameters.envMap ? '#define ' + envMapBlendingDefine : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_TEXEL_WIDTH ' + envMapCubeUVSize.texelWidth : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_TEXEL_HEIGHT ' + envMapCubeUVSize.texelHeight : '',\n\t\t\tenvMapCubeUVSize ? '#define CUBEUV_MAX_MIP ' + envMapCubeUVSize.maxMip + '.0' : '',\n\t\t\tparameters.lightMap ? '#define USE_LIGHTMAP' : '',\n\t\t\tparameters.aoMap ? '#define USE_AOMAP' : '',\n\t\t\tparameters.bumpMap ? '#define USE_BUMPMAP' : '',\n\t\t\tparameters.normalMap ? '#define USE_NORMALMAP' : '',\n\t\t\tparameters.normalMapObjectSpace ? '#define USE_NORMALMAP_OBJECTSPACE' : '',\n\t\t\tparameters.normalMapTangentSpace ? '#define USE_NORMALMAP_TANGENTSPACE' : '',\n\t\t\tparameters.emissiveMap ? '#define USE_EMISSIVEMAP' : '',\n\n\t\t\tparameters.anisotropy ? '#define USE_ANISOTROPY' : '',\n\t\t\tparameters.anisotropyMap ? '#define USE_ANISOTROPYMAP' : '',\n\n\t\t\tparameters.clearcoat ? '#define USE_CLEARCOAT' : '',\n\t\t\tparameters.clearcoatMap ? '#define USE_CLEARCOATMAP' : '',\n\t\t\tparameters.clearcoatRoughnessMap ? '#define USE_CLEARCOAT_ROUGHNESSMAP' : '',\n\t\t\tparameters.clearcoatNormalMap ? '#define USE_CLEARCOAT_NORMALMAP' : '',\n\n\t\t\tparameters.dispersion ? '#define USE_DISPERSION' : '',\n\n\t\t\tparameters.iridescence ? '#define USE_IRIDESCENCE' : '',\n\t\t\tparameters.iridescenceMap ? '#define USE_IRIDESCENCEMAP' : '',\n\t\t\tparameters.iridescenceThicknessMap ? '#define USE_IRIDESCENCE_THICKNESSMAP' : '',\n\n\t\t\tparameters.specularMap ? '#define USE_SPECULARMAP' : '',\n\t\t\tparameters.specularColorMap ? '#define USE_SPECULAR_COLORMAP' : '',\n\t\t\tparameters.specularIntensityMap ? '#define USE_SPECULAR_INTENSITYMAP' : '',\n\n\t\t\tparameters.roughnessMap ? '#define USE_ROUGHNESSMAP' : '',\n\t\t\tparameters.metalnessMap ? '#define USE_METALNESSMAP' : '',\n\n\t\t\tparameters.alphaMap ? '#define USE_ALPHAMAP' : '',\n\t\t\tparameters.alphaTest ? '#define USE_ALPHATEST' : '',\n\t\t\tparameters.alphaHash ? '#define USE_ALPHAHASH' : '',\n\n\t\t\tparameters.sheen ? '#define USE_SHEEN' : '',\n\t\t\tparameters.sheenColorMap ? '#define USE_SHEEN_COLORMAP' : '',\n\t\t\tparameters.sheenRoughnessMap ? '#define USE_SHEEN_ROUGHNESSMAP' : '',\n\n\t\t\tparameters.transmission ? '#define USE_TRANSMISSION' : '',\n\t\t\tparameters.transmissionMap ? '#define USE_TRANSMISSIONMAP' : '',\n\t\t\tparameters.thicknessMap ? '#define USE_THICKNESSMAP' : '',\n\n\t\t\tparameters.vertexTangents && parameters.flatShading === false ? '#define USE_TANGENT' : '',\n\t\t\tparameters.vertexColors || parameters.instancingColor || parameters.batchingColor ? '#define USE_COLOR' : '',\n\t\t\tparameters.vertexAlphas ? '#define USE_COLOR_ALPHA' : '',\n\t\t\tparameters.vertexUv1s ? '#define USE_UV1' : '',\n\t\t\tparameters.vertexUv2s ? '#define USE_UV2' : '',\n\t\t\tparameters.vertexUv3s ? '#define USE_UV3' : '',\n\n\t\t\tparameters.pointsUvs ? '#define USE_POINTS_UV' : '',\n\n\t\t\tparameters.gradientMap ? '#define USE_GRADIENTMAP' : '',\n\n\t\t\tparameters.flatShading ? '#define FLAT_SHADED' : '',\n\n\t\t\tparameters.doubleSided ? '#define DOUBLE_SIDED' : '',\n\t\t\tparameters.flipSided ? '#define FLIP_SIDED' : '',\n\n\t\t\tparameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '',\n\t\t\tparameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '',\n\n\t\t\tparameters.premultipliedAlpha ? '#define PREMULTIPLIED_ALPHA' : '',\n\n\t\t\tparameters.numLightProbes > 0 ? '#define USE_LIGHT_PROBES' : '',\n\n\t\t\tparameters.decodeVideoTexture ? '#define DECODE_VIDEO_TEXTURE' : '',\n\n\t\t\tparameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '',\n\n\t\t\t'uniform mat4 viewMatrix;',\n\t\t\t'uniform vec3 cameraPosition;',\n\t\t\t'uniform bool isOrthographic;',\n\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? '#define TONE_MAPPING' : '',\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? ShaderChunk[ 'tonemapping_pars_fragment' ] : '', // this code is required here because it is used by the toneMapping() function defined below\n\t\t\t( parameters.toneMapping !== NoToneMapping ) ? getToneMappingFunction( 'toneMapping', parameters.toneMapping ) : '',\n\n\t\t\tparameters.dithering ? '#define DITHERING' : '',\n\t\t\tparameters.opaque ? '#define OPAQUE' : '',\n\n\t\t\tShaderChunk[ 'colorspace_pars_fragment' ], // this code is required here because it is used by the various encoding/decoding function defined below\n\t\t\tgetTexelEncodingFunction( 'linearToOutputTexel', parameters.outputColorSpace ),\n\n\t\t\tparameters.useDepthPacking ? '#define DEPTH_PACKING ' + parameters.depthPacking : '',\n\n\t\t\t'\\n'\n\n\t\t].filter( filterEmptyLine ).join( '\\n' );\n\n\t}\n\n\tvertexShader = resolveIncludes( vertexShader );\n\tvertexShader = replaceLightNums( vertexShader, parameters );\n\tvertexShader = replaceClippingPlaneNums( vertexShader, parameters );\n\n\tfragmentShader = resolveIncludes( fragmentShader );\n\tfragmentShader = replaceLightNums( fragmentShader, parameters );\n\tfragmentShader = replaceClippingPlaneNums( fragmentShader, parameters );\n\n\tvertexShader = unrollLoops( vertexShader );\n\tfragmentShader = unrollLoops( fragmentShader );\n\n\tif ( parameters.isRawShaderMaterial !== true ) {\n\n\t\t// GLSL 3.0 conversion for built-in materials and ShaderMaterial\n\n\t\tversionString = '#version 300 es\\n';\n\n\t\tprefixVertex = [\n\t\t\tcustomVertexExtensions,\n\t\t\t'#define attribute in',\n\t\t\t'#define varying out',\n\t\t\t'#define texture2D texture'\n\t\t].join( '\\n' ) + '\\n' + prefixVertex;\n\n\t\tprefixFragment = [\n\t\t\t'#define varying in',\n\t\t\t( parameters.glslVersion === GLSL3 ) ? '' : 'layout(location = 0) out highp vec4 pc_fragColor;',\n\t\t\t( parameters.glslVersion === GLSL3 ) ? '' : '#define gl_FragColor pc_fragColor',\n\t\t\t'#define gl_FragDepthEXT gl_FragDepth',\n\t\t\t'#define texture2D texture',\n\t\t\t'#define textureCube texture',\n\t\t\t'#define texture2DProj textureProj',\n\t\t\t'#define texture2DLodEXT textureLod',\n\t\t\t'#define texture2DProjLodEXT textureProjLod',\n\t\t\t'#define textureCubeLodEXT textureLod',\n\t\t\t'#define texture2DGradEXT textureGrad',\n\t\t\t'#define texture2DProjGradEXT textureProjGrad',\n\t\t\t'#define textureCubeGradEXT textureGrad'\n\t\t].join( '\\n' ) + '\\n' + prefixFragment;\n\n\t}\n\n\tconst vertexGlsl = versionString + prefixVertex + vertexShader;\n\tconst fragmentGlsl = versionString + prefixFragment + fragmentShader;\n\n\t// console.log( '*VERTEX*', vertexGlsl );\n\t// console.log( '*FRAGMENT*', fragmentGlsl );\n\n\tconst glVertexShader = WebGLShader( gl, gl.VERTEX_SHADER, vertexGlsl );\n\tconst glFragmentShader = WebGLShader( gl, gl.FRAGMENT_SHADER, fragmentGlsl );\n\n\tgl.attachShader( program, glVertexShader );\n\tgl.attachShader( program, glFragmentShader );\n\n\t// Force a particular attribute to index 0.\n\n\tif ( parameters.index0AttributeName !== undefined ) {\n\n\t\tgl.bindAttribLocation( program, 0, parameters.index0AttributeName );\n\n\t} else if ( parameters.morphTargets === true ) {\n\n\t\t// programs with morphTargets displace position out of attribute 0\n\t\tgl.bindAttribLocation( program, 0, 'position' );\n\n\t}\n\n\tgl.linkProgram( program );\n\n\tfunction onFirstUse( self ) {\n\n\t\t// check for link errors\n\t\tif ( renderer.debug.checkShaderErrors ) {\n\n\t\t\tconst programLog = gl.getProgramInfoLog( program ).trim();\n\t\t\tconst vertexLog = gl.getShaderInfoLog( glVertexShader ).trim();\n\t\t\tconst fragmentLog = gl.getShaderInfoLog( glFragmentShader ).trim();\n\n\t\t\tlet runnable = true;\n\t\t\tlet haveDiagnostics = true;\n\n\t\t\tif ( gl.getProgramParameter( program, gl.LINK_STATUS ) === false ) {\n\n\t\t\t\trunnable = false;\n\n\t\t\t\tif ( typeof renderer.debug.onShaderError === 'function' ) {\n\n\t\t\t\t\trenderer.debug.onShaderError( gl, program, glVertexShader, glFragmentShader );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// default error reporting\n\n\t\t\t\t\tconst vertexErrors = getShaderErrors( gl, glVertexShader, 'vertex' );\n\t\t\t\t\tconst fragmentErrors = getShaderErrors( gl, glFragmentShader, 'fragment' );\n\n\t\t\t\t\tconsole.error(\n\t\t\t\t\t\t'THREE.WebGLProgram: Shader Error ' + gl.getError() + ' - ' +\n\t\t\t\t\t\t'VALIDATE_STATUS ' + gl.getProgramParameter( program, gl.VALIDATE_STATUS ) + '\\n\\n' +\n\t\t\t\t\t\t'Material Name: ' + self.name + '\\n' +\n\t\t\t\t\t\t'Material Type: ' + self.type + '\\n\\n' +\n\t\t\t\t\t\t'Program Info Log: ' + programLog + '\\n' +\n\t\t\t\t\t\tvertexErrors + '\\n' +\n\t\t\t\t\t\tfragmentErrors\n\t\t\t\t\t);\n\n\t\t\t\t}\n\n\t\t\t} else if ( programLog !== '' ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLProgram: Program Info Log:', programLog );\n\n\t\t\t} else if ( vertexLog === '' || fragmentLog === '' ) {\n\n\t\t\t\thaveDiagnostics = false;\n\n\t\t\t}\n\n\t\t\tif ( haveDiagnostics ) {\n\n\t\t\t\tself.diagnostics = {\n\n\t\t\t\t\trunnable: runnable,\n\n\t\t\t\t\tprogramLog: programLog,\n\n\t\t\t\t\tvertexShader: {\n\n\t\t\t\t\t\tlog: vertexLog,\n\t\t\t\t\t\tprefix: prefixVertex\n\n\t\t\t\t\t},\n\n\t\t\t\t\tfragmentShader: {\n\n\t\t\t\t\t\tlog: fragmentLog,\n\t\t\t\t\t\tprefix: prefixFragment\n\n\t\t\t\t\t}\n\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Clean up\n\n\t\t// Crashes in iOS9 and iOS10. #18402\n\t\t// gl.detachShader( program, glVertexShader );\n\t\t// gl.detachShader( program, glFragmentShader );\n\n\t\tgl.deleteShader( glVertexShader );\n\t\tgl.deleteShader( glFragmentShader );\n\n\t\tcachedUniforms = new WebGLUniforms( gl, program );\n\t\tcachedAttributes = fetchAttributeLocations( gl, program );\n\n\t}\n\n\t// set up caching for uniform locations\n\n\tlet cachedUniforms;\n\n\tthis.getUniforms = function () {\n\n\t\tif ( cachedUniforms === undefined ) {\n\n\t\t\t// Populates cachedUniforms and cachedAttributes\n\t\t\tonFirstUse( this );\n\n\t\t}\n\n\t\treturn cachedUniforms;\n\n\t};\n\n\t// set up caching for attribute locations\n\n\tlet cachedAttributes;\n\n\tthis.getAttributes = function () {\n\n\t\tif ( cachedAttributes === undefined ) {\n\n\t\t\t// Populates cachedAttributes and cachedUniforms\n\t\t\tonFirstUse( this );\n\n\t\t}\n\n\t\treturn cachedAttributes;\n\n\t};\n\n\t// indicate when the program is ready to be used. if the KHR_parallel_shader_compile extension isn't supported,\n\t// flag the program as ready immediately. It may cause a stall when it's first used.\n\n\tlet programReady = ( parameters.rendererExtensionParallelShaderCompile === false );\n\n\tthis.isReady = function () {\n\n\t\tif ( programReady === false ) {\n\n\t\t\tprogramReady = gl.getProgramParameter( program, COMPLETION_STATUS_KHR );\n\n\t\t}\n\n\t\treturn programReady;\n\n\t};\n\n\t// free resource\n\n\tthis.destroy = function () {\n\n\t\tbindingStates.releaseStatesOfProgram( this );\n\n\t\tgl.deleteProgram( program );\n\t\tthis.program = undefined;\n\n\t};\n\n\t//\n\n\tthis.type = parameters.shaderType;\n\tthis.name = parameters.shaderName;\n\tthis.id = programIdCount ++;\n\tthis.cacheKey = cacheKey;\n\tthis.usedTimes = 1;\n\tthis.program = program;\n\tthis.vertexShader = glVertexShader;\n\tthis.fragmentShader = glFragmentShader;\n\n\treturn this;\n\n}\n\nlet _id$1 = 0;\n\nclass WebGLShaderCache {\n\n\tconstructor() {\n\n\t\tthis.shaderCache = new Map();\n\t\tthis.materialCache = new Map();\n\n\t}\n\n\tupdate( material ) {\n\n\t\tconst vertexShader = material.vertexShader;\n\t\tconst fragmentShader = material.fragmentShader;\n\n\t\tconst vertexShaderStage = this._getShaderStage( vertexShader );\n\t\tconst fragmentShaderStage = this._getShaderStage( fragmentShader );\n\n\t\tconst materialShaders = this._getShaderCacheForMaterial( material );\n\n\t\tif ( materialShaders.has( vertexShaderStage ) === false ) {\n\n\t\t\tmaterialShaders.add( vertexShaderStage );\n\t\t\tvertexShaderStage.usedTimes ++;\n\n\t\t}\n\n\t\tif ( materialShaders.has( fragmentShaderStage ) === false ) {\n\n\t\t\tmaterialShaders.add( fragmentShaderStage );\n\t\t\tfragmentShaderStage.usedTimes ++;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tremove( material ) {\n\n\t\tconst materialShaders = this.materialCache.get( material );\n\n\t\tfor ( const shaderStage of materialShaders ) {\n\n\t\t\tshaderStage.usedTimes --;\n\n\t\t\tif ( shaderStage.usedTimes === 0 ) this.shaderCache.delete( shaderStage.code );\n\n\t\t}\n\n\t\tthis.materialCache.delete( material );\n\n\t\treturn this;\n\n\t}\n\n\tgetVertexShaderID( material ) {\n\n\t\treturn this._getShaderStage( material.vertexShader ).id;\n\n\t}\n\n\tgetFragmentShaderID( material ) {\n\n\t\treturn this._getShaderStage( material.fragmentShader ).id;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shaderCache.clear();\n\t\tthis.materialCache.clear();\n\n\t}\n\n\t_getShaderCacheForMaterial( material ) {\n\n\t\tconst cache = this.materialCache;\n\t\tlet set = cache.get( material );\n\n\t\tif ( set === undefined ) {\n\n\t\t\tset = new Set();\n\t\t\tcache.set( material, set );\n\n\t\t}\n\n\t\treturn set;\n\n\t}\n\n\t_getShaderStage( code ) {\n\n\t\tconst cache = this.shaderCache;\n\t\tlet stage = cache.get( code );\n\n\t\tif ( stage === undefined ) {\n\n\t\t\tstage = new WebGLShaderStage( code );\n\t\t\tcache.set( code, stage );\n\n\t\t}\n\n\t\treturn stage;\n\n\t}\n\n}\n\nclass WebGLShaderStage {\n\n\tconstructor( code ) {\n\n\t\tthis.id = _id$1 ++;\n\n\t\tthis.code = code;\n\t\tthis.usedTimes = 0;\n\n\t}\n\n}\n\nfunction WebGLPrograms( renderer, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping ) {\n\n\tconst _programLayers = new Layers();\n\tconst _customShaders = new WebGLShaderCache();\n\tconst _activeChannels = new Set();\n\tconst programs = [];\n\n\tconst logarithmicDepthBuffer = capabilities.logarithmicDepthBuffer;\n\tconst SUPPORTS_VERTEX_TEXTURES = capabilities.vertexTextures;\n\n\tlet precision = capabilities.precision;\n\n\tconst shaderIDs = {\n\t\tMeshDepthMaterial: 'depth',\n\t\tMeshDistanceMaterial: 'distanceRGBA',\n\t\tMeshNormalMaterial: 'normal',\n\t\tMeshBasicMaterial: 'basic',\n\t\tMeshLambertMaterial: 'lambert',\n\t\tMeshPhongMaterial: 'phong',\n\t\tMeshToonMaterial: 'toon',\n\t\tMeshStandardMaterial: 'physical',\n\t\tMeshPhysicalMaterial: 'physical',\n\t\tMeshMatcapMaterial: 'matcap',\n\t\tLineBasicMaterial: 'basic',\n\t\tLineDashedMaterial: 'dashed',\n\t\tPointsMaterial: 'points',\n\t\tShadowMaterial: 'shadow',\n\t\tSpriteMaterial: 'sprite'\n\t};\n\n\tfunction getChannel( value ) {\n\n\t\t_activeChannels.add( value );\n\n\t\tif ( value === 0 ) return 'uv';\n\n\t\treturn `uv${ value }`;\n\n\t}\n\n\tfunction getParameters( material, lights, shadows, scene, object ) {\n\n\t\tconst fog = scene.fog;\n\t\tconst geometry = object.geometry;\n\t\tconst environment = material.isMeshStandardMaterial ? scene.environment : null;\n\n\t\tconst envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment );\n\t\tconst envMapCubeUVHeight = ( !! envMap ) && ( envMap.mapping === CubeUVReflectionMapping ) ? envMap.image.height : null;\n\n\t\tconst shaderID = shaderIDs[ material.type ];\n\n\t\t// heuristics to create shader parameters according to lights in the scene\n\t\t// (not to blow over maxLights budget)\n\n\t\tif ( material.precision !== null ) {\n\n\t\t\tprecision = capabilities.getMaxPrecision( material.precision );\n\n\t\t\tif ( precision !== material.precision ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLProgram.getParameters:', material.precision, 'not supported, using', precision, 'instead.' );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\tlet morphTextureStride = 0;\n\n\t\tif ( geometry.morphAttributes.position !== undefined ) morphTextureStride = 1;\n\t\tif ( geometry.morphAttributes.normal !== undefined ) morphTextureStride = 2;\n\t\tif ( geometry.morphAttributes.color !== undefined ) morphTextureStride = 3;\n\n\t\t//\n\n\t\tlet vertexShader, fragmentShader;\n\t\tlet customVertexShaderID, customFragmentShaderID;\n\n\t\tif ( shaderID ) {\n\n\t\t\tconst shader = ShaderLib[ shaderID ];\n\n\t\t\tvertexShader = shader.vertexShader;\n\t\t\tfragmentShader = shader.fragmentShader;\n\n\t\t} else {\n\n\t\t\tvertexShader = material.vertexShader;\n\t\t\tfragmentShader = material.fragmentShader;\n\n\t\t\t_customShaders.update( material );\n\n\t\t\tcustomVertexShaderID = _customShaders.getVertexShaderID( material );\n\t\t\tcustomFragmentShaderID = _customShaders.getFragmentShaderID( material );\n\n\t\t}\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\tconst IS_INSTANCEDMESH = object.isInstancedMesh === true;\n\t\tconst IS_BATCHEDMESH = object.isBatchedMesh === true;\n\n\t\tconst HAS_MAP = !! material.map;\n\t\tconst HAS_MATCAP = !! material.matcap;\n\t\tconst HAS_ENVMAP = !! envMap;\n\t\tconst HAS_AOMAP = !! material.aoMap;\n\t\tconst HAS_LIGHTMAP = !! material.lightMap;\n\t\tconst HAS_BUMPMAP = !! material.bumpMap;\n\t\tconst HAS_NORMALMAP = !! material.normalMap;\n\t\tconst HAS_DISPLACEMENTMAP = !! material.displacementMap;\n\t\tconst HAS_EMISSIVEMAP = !! material.emissiveMap;\n\n\t\tconst HAS_METALNESSMAP = !! material.metalnessMap;\n\t\tconst HAS_ROUGHNESSMAP = !! material.roughnessMap;\n\n\t\tconst HAS_ANISOTROPY = material.anisotropy > 0;\n\t\tconst HAS_CLEARCOAT = material.clearcoat > 0;\n\t\tconst HAS_DISPERSION = material.dispersion > 0;\n\t\tconst HAS_IRIDESCENCE = material.iridescence > 0;\n\t\tconst HAS_SHEEN = material.sheen > 0;\n\t\tconst HAS_TRANSMISSION = material.transmission > 0;\n\n\t\tconst HAS_ANISOTROPYMAP = HAS_ANISOTROPY && !! material.anisotropyMap;\n\n\t\tconst HAS_CLEARCOATMAP = HAS_CLEARCOAT && !! material.clearcoatMap;\n\t\tconst HAS_CLEARCOAT_NORMALMAP = HAS_CLEARCOAT && !! material.clearcoatNormalMap;\n\t\tconst HAS_CLEARCOAT_ROUGHNESSMAP = HAS_CLEARCOAT && !! material.clearcoatRoughnessMap;\n\n\t\tconst HAS_IRIDESCENCEMAP = HAS_IRIDESCENCE && !! material.iridescenceMap;\n\t\tconst HAS_IRIDESCENCE_THICKNESSMAP = HAS_IRIDESCENCE && !! material.iridescenceThicknessMap;\n\n\t\tconst HAS_SHEEN_COLORMAP = HAS_SHEEN && !! material.sheenColorMap;\n\t\tconst HAS_SHEEN_ROUGHNESSMAP = HAS_SHEEN && !! material.sheenRoughnessMap;\n\n\t\tconst HAS_SPECULARMAP = !! material.specularMap;\n\t\tconst HAS_SPECULAR_COLORMAP = !! material.specularColorMap;\n\t\tconst HAS_SPECULAR_INTENSITYMAP = !! material.specularIntensityMap;\n\n\t\tconst HAS_TRANSMISSIONMAP = HAS_TRANSMISSION && !! material.transmissionMap;\n\t\tconst HAS_THICKNESSMAP = HAS_TRANSMISSION && !! material.thicknessMap;\n\n\t\tconst HAS_GRADIENTMAP = !! material.gradientMap;\n\n\t\tconst HAS_ALPHAMAP = !! material.alphaMap;\n\n\t\tconst HAS_ALPHATEST = material.alphaTest > 0;\n\n\t\tconst HAS_ALPHAHASH = !! material.alphaHash;\n\n\t\tconst HAS_EXTENSIONS = !! material.extensions;\n\n\t\tlet toneMapping = NoToneMapping;\n\n\t\tif ( material.toneMapped ) {\n\n\t\t\tif ( currentRenderTarget === null || currentRenderTarget.isXRRenderTarget === true ) {\n\n\t\t\t\ttoneMapping = renderer.toneMapping;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst parameters = {\n\n\t\t\tshaderID: shaderID,\n\t\t\tshaderType: material.type,\n\t\t\tshaderName: material.name,\n\n\t\t\tvertexShader: vertexShader,\n\t\t\tfragmentShader: fragmentShader,\n\t\t\tdefines: material.defines,\n\n\t\t\tcustomVertexShaderID: customVertexShaderID,\n\t\t\tcustomFragmentShaderID: customFragmentShaderID,\n\n\t\t\tisRawShaderMaterial: material.isRawShaderMaterial === true,\n\t\t\tglslVersion: material.glslVersion,\n\n\t\t\tprecision: precision,\n\n\t\t\tbatching: IS_BATCHEDMESH,\n\t\t\tbatchingColor: IS_BATCHEDMESH && object._colorsTexture !== null,\n\t\t\tinstancing: IS_INSTANCEDMESH,\n\t\t\tinstancingColor: IS_INSTANCEDMESH && object.instanceColor !== null,\n\t\t\tinstancingMorph: IS_INSTANCEDMESH && object.morphTexture !== null,\n\n\t\t\tsupportsVertexTextures: SUPPORTS_VERTEX_TEXTURES,\n\t\t\toutputColorSpace: ( currentRenderTarget === null ) ? renderer.outputColorSpace : ( currentRenderTarget.isXRRenderTarget === true ? currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace ),\n\t\t\talphaToCoverage: !! material.alphaToCoverage,\n\n\t\t\tmap: HAS_MAP,\n\t\t\tmatcap: HAS_MATCAP,\n\t\t\tenvMap: HAS_ENVMAP,\n\t\t\tenvMapMode: HAS_ENVMAP && envMap.mapping,\n\t\t\tenvMapCubeUVHeight: envMapCubeUVHeight,\n\t\t\taoMap: HAS_AOMAP,\n\t\t\tlightMap: HAS_LIGHTMAP,\n\t\t\tbumpMap: HAS_BUMPMAP,\n\t\t\tnormalMap: HAS_NORMALMAP,\n\t\t\tdisplacementMap: SUPPORTS_VERTEX_TEXTURES && HAS_DISPLACEMENTMAP,\n\t\t\temissiveMap: HAS_EMISSIVEMAP,\n\n\t\t\tnormalMapObjectSpace: HAS_NORMALMAP && material.normalMapType === ObjectSpaceNormalMap,\n\t\t\tnormalMapTangentSpace: HAS_NORMALMAP && material.normalMapType === TangentSpaceNormalMap,\n\n\t\t\tmetalnessMap: HAS_METALNESSMAP,\n\t\t\troughnessMap: HAS_ROUGHNESSMAP,\n\n\t\t\tanisotropy: HAS_ANISOTROPY,\n\t\t\tanisotropyMap: HAS_ANISOTROPYMAP,\n\n\t\t\tclearcoat: HAS_CLEARCOAT,\n\t\t\tclearcoatMap: HAS_CLEARCOATMAP,\n\t\t\tclearcoatNormalMap: HAS_CLEARCOAT_NORMALMAP,\n\t\t\tclearcoatRoughnessMap: HAS_CLEARCOAT_ROUGHNESSMAP,\n\n\t\t\tdispersion: HAS_DISPERSION,\n\n\t\t\tiridescence: HAS_IRIDESCENCE,\n\t\t\tiridescenceMap: HAS_IRIDESCENCEMAP,\n\t\t\tiridescenceThicknessMap: HAS_IRIDESCENCE_THICKNESSMAP,\n\n\t\t\tsheen: HAS_SHEEN,\n\t\t\tsheenColorMap: HAS_SHEEN_COLORMAP,\n\t\t\tsheenRoughnessMap: HAS_SHEEN_ROUGHNESSMAP,\n\n\t\t\tspecularMap: HAS_SPECULARMAP,\n\t\t\tspecularColorMap: HAS_SPECULAR_COLORMAP,\n\t\t\tspecularIntensityMap: HAS_SPECULAR_INTENSITYMAP,\n\n\t\t\ttransmission: HAS_TRANSMISSION,\n\t\t\ttransmissionMap: HAS_TRANSMISSIONMAP,\n\t\t\tthicknessMap: HAS_THICKNESSMAP,\n\n\t\t\tgradientMap: HAS_GRADIENTMAP,\n\n\t\t\topaque: material.transparent === false && material.blending === NormalBlending && material.alphaToCoverage === false,\n\n\t\t\talphaMap: HAS_ALPHAMAP,\n\t\t\talphaTest: HAS_ALPHATEST,\n\t\t\talphaHash: HAS_ALPHAHASH,\n\n\t\t\tcombine: material.combine,\n\n\t\t\t//\n\n\t\t\tmapUv: HAS_MAP && getChannel( material.map.channel ),\n\t\t\taoMapUv: HAS_AOMAP && getChannel( material.aoMap.channel ),\n\t\t\tlightMapUv: HAS_LIGHTMAP && getChannel( material.lightMap.channel ),\n\t\t\tbumpMapUv: HAS_BUMPMAP && getChannel( material.bumpMap.channel ),\n\t\t\tnormalMapUv: HAS_NORMALMAP && getChannel( material.normalMap.channel ),\n\t\t\tdisplacementMapUv: HAS_DISPLACEMENTMAP && getChannel( material.displacementMap.channel ),\n\t\t\temissiveMapUv: HAS_EMISSIVEMAP && getChannel( material.emissiveMap.channel ),\n\n\t\t\tmetalnessMapUv: HAS_METALNESSMAP && getChannel( material.metalnessMap.channel ),\n\t\t\troughnessMapUv: HAS_ROUGHNESSMAP && getChannel( material.roughnessMap.channel ),\n\n\t\t\tanisotropyMapUv: HAS_ANISOTROPYMAP && getChannel( material.anisotropyMap.channel ),\n\n\t\t\tclearcoatMapUv: HAS_CLEARCOATMAP && getChannel( material.clearcoatMap.channel ),\n\t\t\tclearcoatNormalMapUv: HAS_CLEARCOAT_NORMALMAP && getChannel( material.clearcoatNormalMap.channel ),\n\t\t\tclearcoatRoughnessMapUv: HAS_CLEARCOAT_ROUGHNESSMAP && getChannel( material.clearcoatRoughnessMap.channel ),\n\n\t\t\tiridescenceMapUv: HAS_IRIDESCENCEMAP && getChannel( material.iridescenceMap.channel ),\n\t\t\tiridescenceThicknessMapUv: HAS_IRIDESCENCE_THICKNESSMAP && getChannel( material.iridescenceThicknessMap.channel ),\n\n\t\t\tsheenColorMapUv: HAS_SHEEN_COLORMAP && getChannel( material.sheenColorMap.channel ),\n\t\t\tsheenRoughnessMapUv: HAS_SHEEN_ROUGHNESSMAP && getChannel( material.sheenRoughnessMap.channel ),\n\n\t\t\tspecularMapUv: HAS_SPECULARMAP && getChannel( material.specularMap.channel ),\n\t\t\tspecularColorMapUv: HAS_SPECULAR_COLORMAP && getChannel( material.specularColorMap.channel ),\n\t\t\tspecularIntensityMapUv: HAS_SPECULAR_INTENSITYMAP && getChannel( material.specularIntensityMap.channel ),\n\n\t\t\ttransmissionMapUv: HAS_TRANSMISSIONMAP && getChannel( material.transmissionMap.channel ),\n\t\t\tthicknessMapUv: HAS_THICKNESSMAP && getChannel( material.thicknessMap.channel ),\n\n\t\t\talphaMapUv: HAS_ALPHAMAP && getChannel( material.alphaMap.channel ),\n\n\t\t\t//\n\n\t\t\tvertexTangents: !! geometry.attributes.tangent && ( HAS_NORMALMAP || HAS_ANISOTROPY ),\n\t\t\tvertexColors: material.vertexColors,\n\t\t\tvertexAlphas: material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4,\n\n\t\t\tpointsUvs: object.isPoints === true && !! geometry.attributes.uv && ( HAS_MAP || HAS_ALPHAMAP ),\n\n\t\t\tfog: !! fog,\n\t\t\tuseFog: material.fog === true,\n\t\t\tfogExp2: ( !! fog && fog.isFogExp2 ),\n\n\t\t\tflatShading: material.flatShading === true,\n\n\t\t\tsizeAttenuation: material.sizeAttenuation === true,\n\t\t\tlogarithmicDepthBuffer: logarithmicDepthBuffer,\n\n\t\t\tskinning: object.isSkinnedMesh === true,\n\n\t\t\tmorphTargets: geometry.morphAttributes.position !== undefined,\n\t\t\tmorphNormals: geometry.morphAttributes.normal !== undefined,\n\t\t\tmorphColors: geometry.morphAttributes.color !== undefined,\n\t\t\tmorphTargetsCount: morphTargetsCount,\n\t\t\tmorphTextureStride: morphTextureStride,\n\n\t\t\tnumDirLights: lights.directional.length,\n\t\t\tnumPointLights: lights.point.length,\n\t\t\tnumSpotLights: lights.spot.length,\n\t\t\tnumSpotLightMaps: lights.spotLightMap.length,\n\t\t\tnumRectAreaLights: lights.rectArea.length,\n\t\t\tnumHemiLights: lights.hemi.length,\n\n\t\t\tnumDirLightShadows: lights.directionalShadowMap.length,\n\t\t\tnumPointLightShadows: lights.pointShadowMap.length,\n\t\t\tnumSpotLightShadows: lights.spotShadowMap.length,\n\t\t\tnumSpotLightShadowsWithMaps: lights.numSpotLightShadowsWithMaps,\n\n\t\t\tnumLightProbes: lights.numLightProbes,\n\n\t\t\tnumClippingPlanes: clipping.numPlanes,\n\t\t\tnumClipIntersection: clipping.numIntersection,\n\n\t\t\tdithering: material.dithering,\n\n\t\t\tshadowMapEnabled: renderer.shadowMap.enabled && shadows.length > 0,\n\t\t\tshadowMapType: renderer.shadowMap.type,\n\n\t\t\ttoneMapping: toneMapping,\n\n\t\t\tdecodeVideoTexture: HAS_MAP && ( material.map.isVideoTexture === true ) && ( ColorManagement.getTransfer( material.map.colorSpace ) === SRGBTransfer ),\n\n\t\t\tpremultipliedAlpha: material.premultipliedAlpha,\n\n\t\t\tdoubleSided: material.side === DoubleSide,\n\t\t\tflipSided: material.side === BackSide,\n\n\t\t\tuseDepthPacking: material.depthPacking >= 0,\n\t\t\tdepthPacking: material.depthPacking || 0,\n\n\t\t\tindex0AttributeName: material.index0AttributeName,\n\n\t\t\textensionClipCullDistance: HAS_EXTENSIONS && material.extensions.clipCullDistance === true && extensions.has( 'WEBGL_clip_cull_distance' ),\n\t\t\textensionMultiDraw: ( HAS_EXTENSIONS && material.extensions.multiDraw === true || IS_BATCHEDMESH ) && extensions.has( 'WEBGL_multi_draw' ),\n\n\t\t\trendererExtensionParallelShaderCompile: extensions.has( 'KHR_parallel_shader_compile' ),\n\n\t\t\tcustomProgramCacheKey: material.customProgramCacheKey()\n\n\t\t};\n\n\t\t// the usage of getChannel() determines the active texture channels for this shader\n\n\t\tparameters.vertexUv1s = _activeChannels.has( 1 );\n\t\tparameters.vertexUv2s = _activeChannels.has( 2 );\n\t\tparameters.vertexUv3s = _activeChannels.has( 3 );\n\n\t\t_activeChannels.clear();\n\n\t\treturn parameters;\n\n\t}\n\n\tfunction getProgramCacheKey( parameters ) {\n\n\t\tconst array = [];\n\n\t\tif ( parameters.shaderID ) {\n\n\t\t\tarray.push( parameters.shaderID );\n\n\t\t} else {\n\n\t\t\tarray.push( parameters.customVertexShaderID );\n\t\t\tarray.push( parameters.customFragmentShaderID );\n\n\t\t}\n\n\t\tif ( parameters.defines !== undefined ) {\n\n\t\t\tfor ( const name in parameters.defines ) {\n\n\t\t\t\tarray.push( name );\n\t\t\t\tarray.push( parameters.defines[ name ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( parameters.isRawShaderMaterial === false ) {\n\n\t\t\tgetProgramCacheKeyParameters( array, parameters );\n\t\t\tgetProgramCacheKeyBooleans( array, parameters );\n\t\t\tarray.push( renderer.outputColorSpace );\n\n\t\t}\n\n\t\tarray.push( parameters.customProgramCacheKey );\n\n\t\treturn array.join();\n\n\t}\n\n\tfunction getProgramCacheKeyParameters( array, parameters ) {\n\n\t\tarray.push( parameters.precision );\n\t\tarray.push( parameters.outputColorSpace );\n\t\tarray.push( parameters.envMapMode );\n\t\tarray.push( parameters.envMapCubeUVHeight );\n\t\tarray.push( parameters.mapUv );\n\t\tarray.push( parameters.alphaMapUv );\n\t\tarray.push( parameters.lightMapUv );\n\t\tarray.push( parameters.aoMapUv );\n\t\tarray.push( parameters.bumpMapUv );\n\t\tarray.push( parameters.normalMapUv );\n\t\tarray.push( parameters.displacementMapUv );\n\t\tarray.push( parameters.emissiveMapUv );\n\t\tarray.push( parameters.metalnessMapUv );\n\t\tarray.push( parameters.roughnessMapUv );\n\t\tarray.push( parameters.anisotropyMapUv );\n\t\tarray.push( parameters.clearcoatMapUv );\n\t\tarray.push( parameters.clearcoatNormalMapUv );\n\t\tarray.push( parameters.clearcoatRoughnessMapUv );\n\t\tarray.push( parameters.iridescenceMapUv );\n\t\tarray.push( parameters.iridescenceThicknessMapUv );\n\t\tarray.push( parameters.sheenColorMapUv );\n\t\tarray.push( parameters.sheenRoughnessMapUv );\n\t\tarray.push( parameters.specularMapUv );\n\t\tarray.push( parameters.specularColorMapUv );\n\t\tarray.push( parameters.specularIntensityMapUv );\n\t\tarray.push( parameters.transmissionMapUv );\n\t\tarray.push( parameters.thicknessMapUv );\n\t\tarray.push( parameters.combine );\n\t\tarray.push( parameters.fogExp2 );\n\t\tarray.push( parameters.sizeAttenuation );\n\t\tarray.push( parameters.morphTargetsCount );\n\t\tarray.push( parameters.morphAttributeCount );\n\t\tarray.push( parameters.numDirLights );\n\t\tarray.push( parameters.numPointLights );\n\t\tarray.push( parameters.numSpotLights );\n\t\tarray.push( parameters.numSpotLightMaps );\n\t\tarray.push( parameters.numHemiLights );\n\t\tarray.push( parameters.numRectAreaLights );\n\t\tarray.push( parameters.numDirLightShadows );\n\t\tarray.push( parameters.numPointLightShadows );\n\t\tarray.push( parameters.numSpotLightShadows );\n\t\tarray.push( parameters.numSpotLightShadowsWithMaps );\n\t\tarray.push( parameters.numLightProbes );\n\t\tarray.push( parameters.shadowMapType );\n\t\tarray.push( parameters.toneMapping );\n\t\tarray.push( parameters.numClippingPlanes );\n\t\tarray.push( parameters.numClipIntersection );\n\t\tarray.push( parameters.depthPacking );\n\n\t}\n\n\tfunction getProgramCacheKeyBooleans( array, parameters ) {\n\n\t\t_programLayers.disableAll();\n\n\t\tif ( parameters.supportsVertexTextures )\n\t\t\t_programLayers.enable( 0 );\n\t\tif ( parameters.instancing )\n\t\t\t_programLayers.enable( 1 );\n\t\tif ( parameters.instancingColor )\n\t\t\t_programLayers.enable( 2 );\n\t\tif ( parameters.instancingMorph )\n\t\t\t_programLayers.enable( 3 );\n\t\tif ( parameters.matcap )\n\t\t\t_programLayers.enable( 4 );\n\t\tif ( parameters.envMap )\n\t\t\t_programLayers.enable( 5 );\n\t\tif ( parameters.normalMapObjectSpace )\n\t\t\t_programLayers.enable( 6 );\n\t\tif ( parameters.normalMapTangentSpace )\n\t\t\t_programLayers.enable( 7 );\n\t\tif ( parameters.clearcoat )\n\t\t\t_programLayers.enable( 8 );\n\t\tif ( parameters.iridescence )\n\t\t\t_programLayers.enable( 9 );\n\t\tif ( parameters.alphaTest )\n\t\t\t_programLayers.enable( 10 );\n\t\tif ( parameters.vertexColors )\n\t\t\t_programLayers.enable( 11 );\n\t\tif ( parameters.vertexAlphas )\n\t\t\t_programLayers.enable( 12 );\n\t\tif ( parameters.vertexUv1s )\n\t\t\t_programLayers.enable( 13 );\n\t\tif ( parameters.vertexUv2s )\n\t\t\t_programLayers.enable( 14 );\n\t\tif ( parameters.vertexUv3s )\n\t\t\t_programLayers.enable( 15 );\n\t\tif ( parameters.vertexTangents )\n\t\t\t_programLayers.enable( 16 );\n\t\tif ( parameters.anisotropy )\n\t\t\t_programLayers.enable( 17 );\n\t\tif ( parameters.alphaHash )\n\t\t\t_programLayers.enable( 18 );\n\t\tif ( parameters.batching )\n\t\t\t_programLayers.enable( 19 );\n\t\tif ( parameters.dispersion )\n\t\t\t_programLayers.enable( 20 );\n\t\tif ( parameters.batchingColor )\n\t\t\t_programLayers.enable( 21 );\n\n\t\tarray.push( _programLayers.mask );\n\t\t_programLayers.disableAll();\n\n\t\tif ( parameters.fog )\n\t\t\t_programLayers.enable( 0 );\n\t\tif ( parameters.useFog )\n\t\t\t_programLayers.enable( 1 );\n\t\tif ( parameters.flatShading )\n\t\t\t_programLayers.enable( 2 );\n\t\tif ( parameters.logarithmicDepthBuffer )\n\t\t\t_programLayers.enable( 3 );\n\t\tif ( parameters.skinning )\n\t\t\t_programLayers.enable( 4 );\n\t\tif ( parameters.morphTargets )\n\t\t\t_programLayers.enable( 5 );\n\t\tif ( parameters.morphNormals )\n\t\t\t_programLayers.enable( 6 );\n\t\tif ( parameters.morphColors )\n\t\t\t_programLayers.enable( 7 );\n\t\tif ( parameters.premultipliedAlpha )\n\t\t\t_programLayers.enable( 8 );\n\t\tif ( parameters.shadowMapEnabled )\n\t\t\t_programLayers.enable( 9 );\n\t\tif ( parameters.doubleSided )\n\t\t\t_programLayers.enable( 10 );\n\t\tif ( parameters.flipSided )\n\t\t\t_programLayers.enable( 11 );\n\t\tif ( parameters.useDepthPacking )\n\t\t\t_programLayers.enable( 12 );\n\t\tif ( parameters.dithering )\n\t\t\t_programLayers.enable( 13 );\n\t\tif ( parameters.transmission )\n\t\t\t_programLayers.enable( 14 );\n\t\tif ( parameters.sheen )\n\t\t\t_programLayers.enable( 15 );\n\t\tif ( parameters.opaque )\n\t\t\t_programLayers.enable( 16 );\n\t\tif ( parameters.pointsUvs )\n\t\t\t_programLayers.enable( 17 );\n\t\tif ( parameters.decodeVideoTexture )\n\t\t\t_programLayers.enable( 18 );\n\t\tif ( parameters.alphaToCoverage )\n\t\t\t_programLayers.enable( 19 );\n\n\t\tarray.push( _programLayers.mask );\n\n\t}\n\n\tfunction getUniforms( material ) {\n\n\t\tconst shaderID = shaderIDs[ material.type ];\n\t\tlet uniforms;\n\n\t\tif ( shaderID ) {\n\n\t\t\tconst shader = ShaderLib[ shaderID ];\n\t\t\tuniforms = UniformsUtils.clone( shader.uniforms );\n\n\t\t} else {\n\n\t\t\tuniforms = material.uniforms;\n\n\t\t}\n\n\t\treturn uniforms;\n\n\t}\n\n\tfunction acquireProgram( parameters, cacheKey ) {\n\n\t\tlet program;\n\n\t\t// Check if code has been already compiled\n\t\tfor ( let p = 0, pl = programs.length; p < pl; p ++ ) {\n\n\t\t\tconst preexistingProgram = programs[ p ];\n\n\t\t\tif ( preexistingProgram.cacheKey === cacheKey ) {\n\n\t\t\t\tprogram = preexistingProgram;\n\t\t\t\t++ program.usedTimes;\n\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( program === undefined ) {\n\n\t\t\tprogram = new WebGLProgram( renderer, cacheKey, parameters, bindingStates );\n\t\t\tprograms.push( program );\n\n\t\t}\n\n\t\treturn program;\n\n\t}\n\n\tfunction releaseProgram( program ) {\n\n\t\tif ( -- program.usedTimes === 0 ) {\n\n\t\t\t// Remove from unordered set\n\t\t\tconst i = programs.indexOf( program );\n\t\t\tprograms[ i ] = programs[ programs.length - 1 ];\n\t\t\tprograms.pop();\n\n\t\t\t// Free WebGL resources\n\t\t\tprogram.destroy();\n\n\t\t}\n\n\t}\n\n\tfunction releaseShaderCache( material ) {\n\n\t\t_customShaders.remove( material );\n\n\t}\n\n\tfunction dispose() {\n\n\t\t_customShaders.dispose();\n\n\t}\n\n\treturn {\n\t\tgetParameters: getParameters,\n\t\tgetProgramCacheKey: getProgramCacheKey,\n\t\tgetUniforms: getUniforms,\n\t\tacquireProgram: acquireProgram,\n\t\treleaseProgram: releaseProgram,\n\t\treleaseShaderCache: releaseShaderCache,\n\t\t// Exposed for resource monitoring & error feedback via renderer.info:\n\t\tprograms: programs,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction WebGLProperties() {\n\n\tlet properties = new WeakMap();\n\n\tfunction get( object ) {\n\n\t\tlet map = properties.get( object );\n\n\t\tif ( map === undefined ) {\n\n\t\t\tmap = {};\n\t\t\tproperties.set( object, map );\n\n\t\t}\n\n\t\treturn map;\n\n\t}\n\n\tfunction remove( object ) {\n\n\t\tproperties.delete( object );\n\n\t}\n\n\tfunction update( object, key, value ) {\n\n\t\tproperties.get( object )[ key ] = value;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tproperties = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction painterSortStable( a, b ) {\n\n\tif ( a.groupOrder !== b.groupOrder ) {\n\n\t\treturn a.groupOrder - b.groupOrder;\n\n\t} else if ( a.renderOrder !== b.renderOrder ) {\n\n\t\treturn a.renderOrder - b.renderOrder;\n\n\t} else if ( a.material.id !== b.material.id ) {\n\n\t\treturn a.material.id - b.material.id;\n\n\t} else if ( a.z !== b.z ) {\n\n\t\treturn a.z - b.z;\n\n\t} else {\n\n\t\treturn a.id - b.id;\n\n\t}\n\n}\n\nfunction reversePainterSortStable( a, b ) {\n\n\tif ( a.groupOrder !== b.groupOrder ) {\n\n\t\treturn a.groupOrder - b.groupOrder;\n\n\t} else if ( a.renderOrder !== b.renderOrder ) {\n\n\t\treturn a.renderOrder - b.renderOrder;\n\n\t} else if ( a.z !== b.z ) {\n\n\t\treturn b.z - a.z;\n\n\t} else {\n\n\t\treturn a.id - b.id;\n\n\t}\n\n}\n\n\nfunction WebGLRenderList() {\n\n\tconst renderItems = [];\n\tlet renderItemsIndex = 0;\n\n\tconst opaque = [];\n\tconst transmissive = [];\n\tconst transparent = [];\n\n\tfunction init() {\n\n\t\trenderItemsIndex = 0;\n\n\t\topaque.length = 0;\n\t\ttransmissive.length = 0;\n\t\ttransparent.length = 0;\n\n\t}\n\n\tfunction getNextRenderItem( object, geometry, material, groupOrder, z, group ) {\n\n\t\tlet renderItem = renderItems[ renderItemsIndex ];\n\n\t\tif ( renderItem === undefined ) {\n\n\t\t\trenderItem = {\n\t\t\t\tid: object.id,\n\t\t\t\tobject: object,\n\t\t\t\tgeometry: geometry,\n\t\t\t\tmaterial: material,\n\t\t\t\tgroupOrder: groupOrder,\n\t\t\t\trenderOrder: object.renderOrder,\n\t\t\t\tz: z,\n\t\t\t\tgroup: group\n\t\t\t};\n\n\t\t\trenderItems[ renderItemsIndex ] = renderItem;\n\n\t\t} else {\n\n\t\t\trenderItem.id = object.id;\n\t\t\trenderItem.object = object;\n\t\t\trenderItem.geometry = geometry;\n\t\t\trenderItem.material = material;\n\t\t\trenderItem.groupOrder = groupOrder;\n\t\t\trenderItem.renderOrder = object.renderOrder;\n\t\t\trenderItem.z = z;\n\t\t\trenderItem.group = group;\n\n\t\t}\n\n\t\trenderItemsIndex ++;\n\n\t\treturn renderItem;\n\n\t}\n\n\tfunction push( object, geometry, material, groupOrder, z, group ) {\n\n\t\tconst renderItem = getNextRenderItem( object, geometry, material, groupOrder, z, group );\n\n\t\tif ( material.transmission > 0.0 ) {\n\n\t\t\ttransmissive.push( renderItem );\n\n\t\t} else if ( material.transparent === true ) {\n\n\t\t\ttransparent.push( renderItem );\n\n\t\t} else {\n\n\t\t\topaque.push( renderItem );\n\n\t\t}\n\n\t}\n\n\tfunction unshift( object, geometry, material, groupOrder, z, group ) {\n\n\t\tconst renderItem = getNextRenderItem( object, geometry, material, groupOrder, z, group );\n\n\t\tif ( material.transmission > 0.0 ) {\n\n\t\t\ttransmissive.unshift( renderItem );\n\n\t\t} else if ( material.transparent === true ) {\n\n\t\t\ttransparent.unshift( renderItem );\n\n\t\t} else {\n\n\t\t\topaque.unshift( renderItem );\n\n\t\t}\n\n\t}\n\n\tfunction sort( customOpaqueSort, customTransparentSort ) {\n\n\t\tif ( opaque.length > 1 ) opaque.sort( customOpaqueSort || painterSortStable );\n\t\tif ( transmissive.length > 1 ) transmissive.sort( customTransparentSort || reversePainterSortStable );\n\t\tif ( transparent.length > 1 ) transparent.sort( customTransparentSort || reversePainterSortStable );\n\n\t}\n\n\tfunction finish() {\n\n\t\t// Clear references from inactive renderItems in the list\n\n\t\tfor ( let i = renderItemsIndex, il = renderItems.length; i < il; i ++ ) {\n\n\t\t\tconst renderItem = renderItems[ i ];\n\n\t\t\tif ( renderItem.id === null ) break;\n\n\t\t\trenderItem.id = null;\n\t\t\trenderItem.object = null;\n\t\t\trenderItem.geometry = null;\n\t\t\trenderItem.material = null;\n\t\t\trenderItem.group = null;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\topaque: opaque,\n\t\ttransmissive: transmissive,\n\t\ttransparent: transparent,\n\n\t\tinit: init,\n\t\tpush: push,\n\t\tunshift: unshift,\n\t\tfinish: finish,\n\n\t\tsort: sort\n\t};\n\n}\n\nfunction WebGLRenderLists() {\n\n\tlet lists = new WeakMap();\n\n\tfunction get( scene, renderCallDepth ) {\n\n\t\tconst listArray = lists.get( scene );\n\t\tlet list;\n\n\t\tif ( listArray === undefined ) {\n\n\t\t\tlist = new WebGLRenderList();\n\t\t\tlists.set( scene, [ list ] );\n\n\t\t} else {\n\n\t\t\tif ( renderCallDepth >= listArray.length ) {\n\n\t\t\t\tlist = new WebGLRenderList();\n\t\t\t\tlistArray.push( list );\n\n\t\t\t} else {\n\n\t\t\t\tlist = listArray[ renderCallDepth ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn list;\n\n\t}\n\n\tfunction dispose() {\n\n\t\tlists = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nfunction UniformsCache() {\n\n\tconst lights = {};\n\n\treturn {\n\n\t\tget: function ( light ) {\n\n\t\t\tif ( lights[ light.id ] !== undefined ) {\n\n\t\t\t\treturn lights[ light.id ];\n\n\t\t\t}\n\n\t\t\tlet uniforms;\n\n\t\t\tswitch ( light.type ) {\n\n\t\t\t\tcase 'DirectionalLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tcolor: new Color()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SpotLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tdistance: 0,\n\t\t\t\t\t\tconeCos: 0,\n\t\t\t\t\t\tpenumbraCos: 0,\n\t\t\t\t\t\tdecay: 0\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'PointLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tdistance: 0,\n\t\t\t\t\t\tdecay: 0\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'HemisphereLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tdirection: new Vector3(),\n\t\t\t\t\t\tskyColor: new Color(),\n\t\t\t\t\t\tgroundColor: new Color()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'RectAreaLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tcolor: new Color(),\n\t\t\t\t\t\tposition: new Vector3(),\n\t\t\t\t\t\thalfWidth: new Vector3(),\n\t\t\t\t\t\thalfHeight: new Vector3()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tlights[ light.id ] = uniforms;\n\n\t\t\treturn uniforms;\n\n\t\t}\n\n\t};\n\n}\n\nfunction ShadowUniformsCache() {\n\n\tconst lights = {};\n\n\treturn {\n\n\t\tget: function ( light ) {\n\n\t\t\tif ( lights[ light.id ] !== undefined ) {\n\n\t\t\t\treturn lights[ light.id ];\n\n\t\t\t}\n\n\t\t\tlet uniforms;\n\n\t\t\tswitch ( light.type ) {\n\n\t\t\t\tcase 'DirectionalLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowIntensity: 1,\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SpotLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowIntensity: 1,\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2()\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'PointLight':\n\t\t\t\t\tuniforms = {\n\t\t\t\t\t\tshadowIntensity: 1,\n\t\t\t\t\t\tshadowBias: 0,\n\t\t\t\t\t\tshadowNormalBias: 0,\n\t\t\t\t\t\tshadowRadius: 1,\n\t\t\t\t\t\tshadowMapSize: new Vector2(),\n\t\t\t\t\t\tshadowCameraNear: 1,\n\t\t\t\t\t\tshadowCameraFar: 1000\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\t// TODO (abelnation): set RectAreaLight shadow uniforms\n\n\t\t\t}\n\n\t\t\tlights[ light.id ] = uniforms;\n\n\t\t\treturn uniforms;\n\n\t\t}\n\n\t};\n\n}\n\n\n\nlet nextVersion = 0;\n\nfunction shadowCastingAndTexturingLightsFirst( lightA, lightB ) {\n\n\treturn ( lightB.castShadow ? 2 : 0 ) - ( lightA.castShadow ? 2 : 0 ) + ( lightB.map ? 1 : 0 ) - ( lightA.map ? 1 : 0 );\n\n}\n\nfunction WebGLLights( extensions ) {\n\n\tconst cache = new UniformsCache();\n\n\tconst shadowCache = ShadowUniformsCache();\n\n\tconst state = {\n\n\t\tversion: 0,\n\n\t\thash: {\n\t\t\tdirectionalLength: - 1,\n\t\t\tpointLength: - 1,\n\t\t\tspotLength: - 1,\n\t\t\trectAreaLength: - 1,\n\t\t\themiLength: - 1,\n\n\t\t\tnumDirectionalShadows: - 1,\n\t\t\tnumPointShadows: - 1,\n\t\t\tnumSpotShadows: - 1,\n\t\t\tnumSpotMaps: - 1,\n\n\t\t\tnumLightProbes: - 1\n\t\t},\n\n\t\tambient: [ 0, 0, 0 ],\n\t\tprobe: [],\n\t\tdirectional: [],\n\t\tdirectionalShadow: [],\n\t\tdirectionalShadowMap: [],\n\t\tdirectionalShadowMatrix: [],\n\t\tspot: [],\n\t\tspotLightMap: [],\n\t\tspotShadow: [],\n\t\tspotShadowMap: [],\n\t\tspotLightMatrix: [],\n\t\trectArea: [],\n\t\trectAreaLTC1: null,\n\t\trectAreaLTC2: null,\n\t\tpoint: [],\n\t\tpointShadow: [],\n\t\tpointShadowMap: [],\n\t\tpointShadowMatrix: [],\n\t\themi: [],\n\t\tnumSpotLightShadowsWithMaps: 0,\n\t\tnumLightProbes: 0\n\n\t};\n\n\tfor ( let i = 0; i < 9; i ++ ) state.probe.push( new Vector3() );\n\n\tconst vector3 = new Vector3();\n\tconst matrix4 = new Matrix4();\n\tconst matrix42 = new Matrix4();\n\n\tfunction setup( lights ) {\n\n\t\tlet r = 0, g = 0, b = 0;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) state.probe[ i ].set( 0, 0, 0 );\n\n\t\tlet directionalLength = 0;\n\t\tlet pointLength = 0;\n\t\tlet spotLength = 0;\n\t\tlet rectAreaLength = 0;\n\t\tlet hemiLength = 0;\n\n\t\tlet numDirectionalShadows = 0;\n\t\tlet numPointShadows = 0;\n\t\tlet numSpotShadows = 0;\n\t\tlet numSpotMaps = 0;\n\t\tlet numSpotShadowsWithMaps = 0;\n\n\t\tlet numLightProbes = 0;\n\n\t\t// ordering : [shadow casting + map texturing, map texturing, shadow casting, none ]\n\t\tlights.sort( shadowCastingAndTexturingLightsFirst );\n\n\t\tfor ( let i = 0, l = lights.length; i < l; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\n\t\t\tconst color = light.color;\n\t\t\tconst intensity = light.intensity;\n\t\t\tconst distance = light.distance;\n\n\t\t\tconst shadowMap = ( light.shadow && light.shadow.map ) ? light.shadow.map.texture : null;\n\n\t\t\tif ( light.isAmbientLight ) {\n\n\t\t\t\tr += color.r * intensity;\n\t\t\t\tg += color.g * intensity;\n\t\t\t\tb += color.b * intensity;\n\n\t\t\t} else if ( light.isLightProbe ) {\n\n\t\t\t\tfor ( let j = 0; j < 9; j ++ ) {\n\n\t\t\t\t\tstate.probe[ j ].addScaledVector( light.sh.coefficients[ j ], intensity );\n\n\t\t\t\t}\n\n\t\t\t\tnumLightProbes ++;\n\n\t\t\t} else if ( light.isDirectionalLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( light.color ).multiplyScalar( light.intensity );\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowIntensity = shadow.intensity;\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\n\t\t\t\t\tstate.directionalShadow[ directionalLength ] = shadowUniforms;\n\t\t\t\t\tstate.directionalShadowMap[ directionalLength ] = shadowMap;\n\t\t\t\t\tstate.directionalShadowMatrix[ directionalLength ] = light.shadow.matrix;\n\n\t\t\t\t\tnumDirectionalShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.directional[ directionalLength ] = uniforms;\n\n\t\t\t\tdirectionalLength ++;\n\n\t\t\t} else if ( light.isSpotLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\n\t\t\t\tuniforms.color.copy( color ).multiplyScalar( intensity );\n\t\t\t\tuniforms.distance = distance;\n\n\t\t\t\tuniforms.coneCos = Math.cos( light.angle );\n\t\t\t\tuniforms.penumbraCos = Math.cos( light.angle * ( 1 - light.penumbra ) );\n\t\t\t\tuniforms.decay = light.decay;\n\n\t\t\t\tstate.spot[ spotLength ] = uniforms;\n\n\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\tif ( light.map ) {\n\n\t\t\t\t\tstate.spotLightMap[ numSpotMaps ] = light.map;\n\t\t\t\t\tnumSpotMaps ++;\n\n\t\t\t\t\t// make sure the lightMatrix is up to date\n\t\t\t\t\t// TODO : do it if required only\n\t\t\t\t\tshadow.updateMatrices( light );\n\n\t\t\t\t\tif ( light.castShadow ) numSpotShadowsWithMaps ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.spotLightMatrix[ spotLength ] = shadow.matrix;\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowIntensity = shadow.intensity;\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\n\t\t\t\t\tstate.spotShadow[ spotLength ] = shadowUniforms;\n\t\t\t\t\tstate.spotShadowMap[ spotLength ] = shadowMap;\n\n\t\t\t\t\tnumSpotShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tspotLength ++;\n\n\t\t\t} else if ( light.isRectAreaLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( color ).multiplyScalar( intensity );\n\n\t\t\t\tuniforms.halfWidth.set( light.width * 0.5, 0.0, 0.0 );\n\t\t\t\tuniforms.halfHeight.set( 0.0, light.height * 0.5, 0.0 );\n\n\t\t\t\tstate.rectArea[ rectAreaLength ] = uniforms;\n\n\t\t\t\trectAreaLength ++;\n\n\t\t\t} else if ( light.isPointLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.color.copy( light.color ).multiplyScalar( light.intensity );\n\t\t\t\tuniforms.distance = light.distance;\n\t\t\t\tuniforms.decay = light.decay;\n\n\t\t\t\tif ( light.castShadow ) {\n\n\t\t\t\t\tconst shadow = light.shadow;\n\n\t\t\t\t\tconst shadowUniforms = shadowCache.get( light );\n\n\t\t\t\t\tshadowUniforms.shadowIntensity = shadow.intensity;\n\t\t\t\t\tshadowUniforms.shadowBias = shadow.bias;\n\t\t\t\t\tshadowUniforms.shadowNormalBias = shadow.normalBias;\n\t\t\t\t\tshadowUniforms.shadowRadius = shadow.radius;\n\t\t\t\t\tshadowUniforms.shadowMapSize = shadow.mapSize;\n\t\t\t\t\tshadowUniforms.shadowCameraNear = shadow.camera.near;\n\t\t\t\t\tshadowUniforms.shadowCameraFar = shadow.camera.far;\n\n\t\t\t\t\tstate.pointShadow[ pointLength ] = shadowUniforms;\n\t\t\t\t\tstate.pointShadowMap[ pointLength ] = shadowMap;\n\t\t\t\t\tstate.pointShadowMatrix[ pointLength ] = light.shadow.matrix;\n\n\t\t\t\t\tnumPointShadows ++;\n\n\t\t\t\t}\n\n\t\t\t\tstate.point[ pointLength ] = uniforms;\n\n\t\t\t\tpointLength ++;\n\n\t\t\t} else if ( light.isHemisphereLight ) {\n\n\t\t\t\tconst uniforms = cache.get( light );\n\n\t\t\t\tuniforms.skyColor.copy( light.color ).multiplyScalar( intensity );\n\t\t\t\tuniforms.groundColor.copy( light.groundColor ).multiplyScalar( intensity );\n\n\t\t\t\tstate.hemi[ hemiLength ] = uniforms;\n\n\t\t\t\themiLength ++;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( rectAreaLength > 0 ) {\n\n\t\t\tif ( extensions.has( 'OES_texture_float_linear' ) === true ) {\n\n\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_FLOAT_1;\n\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_FLOAT_2;\n\n\t\t\t} else {\n\n\t\t\t\tstate.rectAreaLTC1 = UniformsLib.LTC_HALF_1;\n\t\t\t\tstate.rectAreaLTC2 = UniformsLib.LTC_HALF_2;\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.ambient[ 0 ] = r;\n\t\tstate.ambient[ 1 ] = g;\n\t\tstate.ambient[ 2 ] = b;\n\n\t\tconst hash = state.hash;\n\n\t\tif ( hash.directionalLength !== directionalLength ||\n\t\t\thash.pointLength !== pointLength ||\n\t\t\thash.spotLength !== spotLength ||\n\t\t\thash.rectAreaLength !== rectAreaLength ||\n\t\t\thash.hemiLength !== hemiLength ||\n\t\t\thash.numDirectionalShadows !== numDirectionalShadows ||\n\t\t\thash.numPointShadows !== numPointShadows ||\n\t\t\thash.numSpotShadows !== numSpotShadows ||\n\t\t\thash.numSpotMaps !== numSpotMaps ||\n\t\t\thash.numLightProbes !== numLightProbes ) {\n\n\t\t\tstate.directional.length = directionalLength;\n\t\t\tstate.spot.length = spotLength;\n\t\t\tstate.rectArea.length = rectAreaLength;\n\t\t\tstate.point.length = pointLength;\n\t\t\tstate.hemi.length = hemiLength;\n\n\t\t\tstate.directionalShadow.length = numDirectionalShadows;\n\t\t\tstate.directionalShadowMap.length = numDirectionalShadows;\n\t\t\tstate.pointShadow.length = numPointShadows;\n\t\t\tstate.pointShadowMap.length = numPointShadows;\n\t\t\tstate.spotShadow.length = numSpotShadows;\n\t\t\tstate.spotShadowMap.length = numSpotShadows;\n\t\t\tstate.directionalShadowMatrix.length = numDirectionalShadows;\n\t\t\tstate.pointShadowMatrix.length = numPointShadows;\n\t\t\tstate.spotLightMatrix.length = numSpotShadows + numSpotMaps - numSpotShadowsWithMaps;\n\t\t\tstate.spotLightMap.length = numSpotMaps;\n\t\t\tstate.numSpotLightShadowsWithMaps = numSpotShadowsWithMaps;\n\t\t\tstate.numLightProbes = numLightProbes;\n\n\t\t\thash.directionalLength = directionalLength;\n\t\t\thash.pointLength = pointLength;\n\t\t\thash.spotLength = spotLength;\n\t\t\thash.rectAreaLength = rectAreaLength;\n\t\t\thash.hemiLength = hemiLength;\n\n\t\t\thash.numDirectionalShadows = numDirectionalShadows;\n\t\t\thash.numPointShadows = numPointShadows;\n\t\t\thash.numSpotShadows = numSpotShadows;\n\t\t\thash.numSpotMaps = numSpotMaps;\n\n\t\t\thash.numLightProbes = numLightProbes;\n\n\t\t\tstate.version = nextVersion ++;\n\n\t\t}\n\n\t}\n\n\tfunction setupView( lights, camera ) {\n\n\t\tlet directionalLength = 0;\n\t\tlet pointLength = 0;\n\t\tlet spotLength = 0;\n\t\tlet rectAreaLength = 0;\n\t\tlet hemiLength = 0;\n\n\t\tconst viewMatrix = camera.matrixWorldInverse;\n\n\t\tfor ( let i = 0, l = lights.length; i < l; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\n\t\t\tif ( light.isDirectionalLight ) {\n\n\t\t\t\tconst uniforms = state.directional[ directionalLength ];\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tvector3.setFromMatrixPosition( light.target.matrixWorld );\n\t\t\t\tuniforms.direction.sub( vector3 );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\tdirectionalLength ++;\n\n\t\t\t} else if ( light.isSpotLight ) {\n\n\t\t\t\tconst uniforms = state.spot[ spotLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tvector3.setFromMatrixPosition( light.target.matrixWorld );\n\t\t\t\tuniforms.direction.sub( vector3 );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\tspotLength ++;\n\n\t\t\t} else if ( light.isRectAreaLight ) {\n\n\t\t\t\tconst uniforms = state.rectArea[ rectAreaLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\t// extract local rotation of light to derive width/height half vectors\n\t\t\t\tmatrix42.identity();\n\t\t\t\tmatrix4.copy( light.matrixWorld );\n\t\t\t\tmatrix4.premultiply( viewMatrix );\n\t\t\t\tmatrix42.extractRotation( matrix4 );\n\n\t\t\t\tuniforms.halfWidth.set( light.width * 0.5, 0.0, 0.0 );\n\t\t\t\tuniforms.halfHeight.set( 0.0, light.height * 0.5, 0.0 );\n\n\t\t\t\tuniforms.halfWidth.applyMatrix4( matrix42 );\n\t\t\t\tuniforms.halfHeight.applyMatrix4( matrix42 );\n\n\t\t\t\trectAreaLength ++;\n\n\t\t\t} else if ( light.isPointLight ) {\n\n\t\t\t\tconst uniforms = state.point[ pointLength ];\n\n\t\t\t\tuniforms.position.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.position.applyMatrix4( viewMatrix );\n\n\t\t\t\tpointLength ++;\n\n\t\t\t} else if ( light.isHemisphereLight ) {\n\n\t\t\t\tconst uniforms = state.hemi[ hemiLength ];\n\n\t\t\t\tuniforms.direction.setFromMatrixPosition( light.matrixWorld );\n\t\t\t\tuniforms.direction.transformDirection( viewMatrix );\n\n\t\t\t\themiLength ++;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn {\n\t\tsetup: setup,\n\t\tsetupView: setupView,\n\t\tstate: state\n\t};\n\n}\n\nfunction WebGLRenderState( extensions ) {\n\n\tconst lights = new WebGLLights( extensions );\n\n\tconst lightsArray = [];\n\tconst shadowsArray = [];\n\n\tfunction init( camera ) {\n\n\t\tstate.camera = camera;\n\n\t\tlightsArray.length = 0;\n\t\tshadowsArray.length = 0;\n\n\t}\n\n\tfunction pushLight( light ) {\n\n\t\tlightsArray.push( light );\n\n\t}\n\n\tfunction pushShadow( shadowLight ) {\n\n\t\tshadowsArray.push( shadowLight );\n\n\t}\n\n\tfunction setupLights() {\n\n\t\tlights.setup( lightsArray );\n\n\t}\n\n\tfunction setupLightsView( camera ) {\n\n\t\tlights.setupView( lightsArray, camera );\n\n\t}\n\n\tconst state = {\n\t\tlightsArray: lightsArray,\n\t\tshadowsArray: shadowsArray,\n\n\t\tcamera: null,\n\n\t\tlights: lights,\n\n\t\ttransmissionRenderTarget: {}\n\t};\n\n\treturn {\n\t\tinit: init,\n\t\tstate: state,\n\t\tsetupLights: setupLights,\n\t\tsetupLightsView: setupLightsView,\n\n\t\tpushLight: pushLight,\n\t\tpushShadow: pushShadow\n\t};\n\n}\n\nfunction WebGLRenderStates( extensions ) {\n\n\tlet renderStates = new WeakMap();\n\n\tfunction get( scene, renderCallDepth = 0 ) {\n\n\t\tconst renderStateArray = renderStates.get( scene );\n\t\tlet renderState;\n\n\t\tif ( renderStateArray === undefined ) {\n\n\t\t\trenderState = new WebGLRenderState( extensions );\n\t\t\trenderStates.set( scene, [ renderState ] );\n\n\t\t} else {\n\n\t\t\tif ( renderCallDepth >= renderStateArray.length ) {\n\n\t\t\t\trenderState = new WebGLRenderState( extensions );\n\t\t\t\trenderStateArray.push( renderState );\n\n\t\t\t} else {\n\n\t\t\t\trenderState = renderStateArray[ renderCallDepth ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn renderState;\n\n\t}\n\n\tfunction dispose() {\n\n\t\trenderStates = new WeakMap();\n\n\t}\n\n\treturn {\n\t\tget: get,\n\t\tdispose: dispose\n\t};\n\n}\n\nclass MeshDepthMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshDepthMaterial = true;\n\n\t\tthis.type = 'MeshDepthMaterial';\n\n\t\tthis.depthPacking = BasicDepthPacking;\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.depthPacking = source.depthPacking;\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshDistanceMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshDistanceMaterial = true;\n\n\t\tthis.type = 'MeshDistanceMaterial';\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst vertex = \"void main() {\\n\\tgl_Position = vec4( position, 1.0 );\\n}\";\n\nconst fragment = \"uniform sampler2D shadow_pass;\\nuniform vec2 resolution;\\nuniform float radius;\\n#include \\nvoid main() {\\n\\tconst float samples = float( VSM_SAMPLES );\\n\\tfloat mean = 0.0;\\n\\tfloat squared_mean = 0.0;\\n\\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\\n\\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\\n\\tfor ( float i = 0.0; i < samples; i ++ ) {\\n\\t\\tfloat uvOffset = uvStart + i * uvStride;\\n\\t\\t#ifdef HORIZONTAL_PASS\\n\\t\\t\\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\\n\\t\\t\\tmean += distribution.x;\\n\\t\\t\\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\\n\\t\\t#else\\n\\t\\t\\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\\n\\t\\t\\tmean += depth;\\n\\t\\t\\tsquared_mean += depth * depth;\\n\\t\\t#endif\\n\\t}\\n\\tmean = mean / samples;\\n\\tsquared_mean = squared_mean / samples;\\n\\tfloat std_dev = sqrt( squared_mean - mean * mean );\\n\\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\\n}\";\n\nfunction WebGLShadowMap( renderer, objects, capabilities ) {\n\n\tlet _frustum = new Frustum();\n\n\tconst _shadowMapSize = new Vector2(),\n\t\t_viewportSize = new Vector2(),\n\n\t\t_viewport = new Vector4(),\n\n\t\t_depthMaterial = new MeshDepthMaterial( { depthPacking: RGBADepthPacking } ),\n\t\t_distanceMaterial = new MeshDistanceMaterial(),\n\n\t\t_materialCache = {},\n\n\t\t_maxTextureSize = capabilities.maxTextureSize;\n\n\tconst shadowSide = { [ FrontSide ]: BackSide, [ BackSide ]: FrontSide, [ DoubleSide ]: DoubleSide };\n\n\tconst shadowMaterialVertical = new ShaderMaterial( {\n\t\tdefines: {\n\t\t\tVSM_SAMPLES: 8\n\t\t},\n\t\tuniforms: {\n\t\t\tshadow_pass: { value: null },\n\t\t\tresolution: { value: new Vector2() },\n\t\t\tradius: { value: 4.0 }\n\t\t},\n\n\t\tvertexShader: vertex,\n\t\tfragmentShader: fragment\n\n\t} );\n\n\tconst shadowMaterialHorizontal = shadowMaterialVertical.clone();\n\tshadowMaterialHorizontal.defines.HORIZONTAL_PASS = 1;\n\n\tconst fullScreenTri = new BufferGeometry();\n\tfullScreenTri.setAttribute(\n\t\t'position',\n\t\tnew BufferAttribute(\n\t\t\tnew Float32Array( [ - 1, - 1, 0.5, 3, - 1, 0.5, - 1, 3, 0.5 ] ),\n\t\t\t3\n\t\t)\n\t);\n\n\tconst fullScreenMesh = new Mesh( fullScreenTri, shadowMaterialVertical );\n\n\tconst scope = this;\n\n\tthis.enabled = false;\n\n\tthis.autoUpdate = true;\n\tthis.needsUpdate = false;\n\n\tthis.type = PCFShadowMap;\n\tlet _previousType = this.type;\n\n\tthis.render = function ( lights, scene, camera ) {\n\n\t\tif ( scope.enabled === false ) return;\n\t\tif ( scope.autoUpdate === false && scope.needsUpdate === false ) return;\n\n\t\tif ( lights.length === 0 ) return;\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\t\tconst activeCubeFace = renderer.getActiveCubeFace();\n\t\tconst activeMipmapLevel = renderer.getActiveMipmapLevel();\n\n\t\tconst _state = renderer.state;\n\n\t\t// Set GL state for depth map.\n\t\t_state.setBlending( NoBlending );\n\t\t_state.buffers.color.setClear( 1, 1, 1, 1 );\n\t\t_state.buffers.depth.setTest( true );\n\t\t_state.setScissorTest( false );\n\n\t\t// check for shadow map type changes\n\n\t\tconst toVSM = ( _previousType !== VSMShadowMap && this.type === VSMShadowMap );\n\t\tconst fromVSM = ( _previousType === VSMShadowMap && this.type !== VSMShadowMap );\n\n\t\t// render depth map\n\n\t\tfor ( let i = 0, il = lights.length; i < il; i ++ ) {\n\n\t\t\tconst light = lights[ i ];\n\t\t\tconst shadow = light.shadow;\n\n\t\t\tif ( shadow === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLShadowMap:', light, 'has no shadow.' );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( shadow.autoUpdate === false && shadow.needsUpdate === false ) continue;\n\n\t\t\t_shadowMapSize.copy( shadow.mapSize );\n\n\t\t\tconst shadowFrameExtents = shadow.getFrameExtents();\n\n\t\t\t_shadowMapSize.multiply( shadowFrameExtents );\n\n\t\t\t_viewportSize.copy( shadow.mapSize );\n\n\t\t\tif ( _shadowMapSize.x > _maxTextureSize || _shadowMapSize.y > _maxTextureSize ) {\n\n\t\t\t\tif ( _shadowMapSize.x > _maxTextureSize ) {\n\n\t\t\t\t\t_viewportSize.x = Math.floor( _maxTextureSize / shadowFrameExtents.x );\n\t\t\t\t\t_shadowMapSize.x = _viewportSize.x * shadowFrameExtents.x;\n\t\t\t\t\tshadow.mapSize.x = _viewportSize.x;\n\n\t\t\t\t}\n\n\t\t\t\tif ( _shadowMapSize.y > _maxTextureSize ) {\n\n\t\t\t\t\t_viewportSize.y = Math.floor( _maxTextureSize / shadowFrameExtents.y );\n\t\t\t\t\t_shadowMapSize.y = _viewportSize.y * shadowFrameExtents.y;\n\t\t\t\t\tshadow.mapSize.y = _viewportSize.y;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( shadow.map === null || toVSM === true || fromVSM === true ) {\n\n\t\t\t\tconst pars = ( this.type !== VSMShadowMap ) ? { minFilter: NearestFilter, magFilter: NearestFilter } : {};\n\n\t\t\t\tif ( shadow.map !== null ) {\n\n\t\t\t\t\tshadow.map.dispose();\n\n\t\t\t\t}\n\n\t\t\t\tshadow.map = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y, pars );\n\t\t\t\tshadow.map.texture.name = light.name + '.shadowMap';\n\n\t\t\t\tshadow.camera.updateProjectionMatrix();\n\n\t\t\t}\n\n\t\t\trenderer.setRenderTarget( shadow.map );\n\t\t\trenderer.clear();\n\n\t\t\tconst viewportCount = shadow.getViewportCount();\n\n\t\t\tfor ( let vp = 0; vp < viewportCount; vp ++ ) {\n\n\t\t\t\tconst viewport = shadow.getViewport( vp );\n\n\t\t\t\t_viewport.set(\n\t\t\t\t\t_viewportSize.x * viewport.x,\n\t\t\t\t\t_viewportSize.y * viewport.y,\n\t\t\t\t\t_viewportSize.x * viewport.z,\n\t\t\t\t\t_viewportSize.y * viewport.w\n\t\t\t\t);\n\n\t\t\t\t_state.viewport( _viewport );\n\n\t\t\t\tshadow.updateMatrices( light, vp );\n\n\t\t\t\t_frustum = shadow.getFrustum();\n\n\t\t\t\trenderObject( scene, camera, shadow.camera, light, this.type );\n\n\t\t\t}\n\n\t\t\t// do blur pass for VSM\n\n\t\t\tif ( shadow.isPointLightShadow !== true && this.type === VSMShadowMap ) {\n\n\t\t\t\tVSMPass( shadow, camera );\n\n\t\t\t}\n\n\t\t\tshadow.needsUpdate = false;\n\n\t\t}\n\n\t\t_previousType = this.type;\n\n\t\tscope.needsUpdate = false;\n\n\t\trenderer.setRenderTarget( currentRenderTarget, activeCubeFace, activeMipmapLevel );\n\n\t};\n\n\tfunction VSMPass( shadow, camera ) {\n\n\t\tconst geometry = objects.update( fullScreenMesh );\n\n\t\tif ( shadowMaterialVertical.defines.VSM_SAMPLES !== shadow.blurSamples ) {\n\n\t\t\tshadowMaterialVertical.defines.VSM_SAMPLES = shadow.blurSamples;\n\t\t\tshadowMaterialHorizontal.defines.VSM_SAMPLES = shadow.blurSamples;\n\n\t\t\tshadowMaterialVertical.needsUpdate = true;\n\t\t\tshadowMaterialHorizontal.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( shadow.mapPass === null ) {\n\n\t\t\tshadow.mapPass = new WebGLRenderTarget( _shadowMapSize.x, _shadowMapSize.y );\n\n\t\t}\n\n\t\t// vertical pass\n\n\t\tshadowMaterialVertical.uniforms.shadow_pass.value = shadow.map.texture;\n\t\tshadowMaterialVertical.uniforms.resolution.value = shadow.mapSize;\n\t\tshadowMaterialVertical.uniforms.radius.value = shadow.radius;\n\t\trenderer.setRenderTarget( shadow.mapPass );\n\t\trenderer.clear();\n\t\trenderer.renderBufferDirect( camera, null, geometry, shadowMaterialVertical, fullScreenMesh, null );\n\n\t\t// horizontal pass\n\n\t\tshadowMaterialHorizontal.uniforms.shadow_pass.value = shadow.mapPass.texture;\n\t\tshadowMaterialHorizontal.uniforms.resolution.value = shadow.mapSize;\n\t\tshadowMaterialHorizontal.uniforms.radius.value = shadow.radius;\n\t\trenderer.setRenderTarget( shadow.map );\n\t\trenderer.clear();\n\t\trenderer.renderBufferDirect( camera, null, geometry, shadowMaterialHorizontal, fullScreenMesh, null );\n\n\t}\n\n\tfunction getDepthMaterial( object, material, light, type ) {\n\n\t\tlet result = null;\n\n\t\tconst customMaterial = ( light.isPointLight === true ) ? object.customDistanceMaterial : object.customDepthMaterial;\n\n\t\tif ( customMaterial !== undefined ) {\n\n\t\t\tresult = customMaterial;\n\n\t\t} else {\n\n\t\t\tresult = ( light.isPointLight === true ) ? _distanceMaterial : _depthMaterial;\n\n\t\t\tif ( ( renderer.localClippingEnabled && material.clipShadows === true && Array.isArray( material.clippingPlanes ) && material.clippingPlanes.length !== 0 ) ||\n\t\t\t\t( material.displacementMap && material.displacementScale !== 0 ) ||\n\t\t\t\t( material.alphaMap && material.alphaTest > 0 ) ||\n\t\t\t\t( material.map && material.alphaTest > 0 ) ) {\n\n\t\t\t\t// in this case we need a unique material instance reflecting the\n\t\t\t\t// appropriate state\n\n\t\t\t\tconst keyA = result.uuid, keyB = material.uuid;\n\n\t\t\t\tlet materialsForVariant = _materialCache[ keyA ];\n\n\t\t\t\tif ( materialsForVariant === undefined ) {\n\n\t\t\t\t\tmaterialsForVariant = {};\n\t\t\t\t\t_materialCache[ keyA ] = materialsForVariant;\n\n\t\t\t\t}\n\n\t\t\t\tlet cachedMaterial = materialsForVariant[ keyB ];\n\n\t\t\t\tif ( cachedMaterial === undefined ) {\n\n\t\t\t\t\tcachedMaterial = result.clone();\n\t\t\t\t\tmaterialsForVariant[ keyB ] = cachedMaterial;\n\t\t\t\t\tmaterial.addEventListener( 'dispose', onMaterialDispose );\n\n\t\t\t\t}\n\n\t\t\t\tresult = cachedMaterial;\n\n\t\t\t}\n\n\t\t}\n\n\t\tresult.visible = material.visible;\n\t\tresult.wireframe = material.wireframe;\n\n\t\tif ( type === VSMShadowMap ) {\n\n\t\t\tresult.side = ( material.shadowSide !== null ) ? material.shadowSide : material.side;\n\n\t\t} else {\n\n\t\t\tresult.side = ( material.shadowSide !== null ) ? material.shadowSide : shadowSide[ material.side ];\n\n\t\t}\n\n\t\tresult.alphaMap = material.alphaMap;\n\t\tresult.alphaTest = material.alphaTest;\n\t\tresult.map = material.map;\n\n\t\tresult.clipShadows = material.clipShadows;\n\t\tresult.clippingPlanes = material.clippingPlanes;\n\t\tresult.clipIntersection = material.clipIntersection;\n\n\t\tresult.displacementMap = material.displacementMap;\n\t\tresult.displacementScale = material.displacementScale;\n\t\tresult.displacementBias = material.displacementBias;\n\n\t\tresult.wireframeLinewidth = material.wireframeLinewidth;\n\t\tresult.linewidth = material.linewidth;\n\n\t\tif ( light.isPointLight === true && result.isMeshDistanceMaterial === true ) {\n\n\t\t\tconst materialProperties = renderer.properties.get( result );\n\t\t\tmaterialProperties.light = light;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\tfunction renderObject( object, camera, shadowCamera, light, type ) {\n\n\t\tif ( object.visible === false ) return;\n\n\t\tconst visible = object.layers.test( camera.layers );\n\n\t\tif ( visible && ( object.isMesh || object.isLine || object.isPoints ) ) {\n\n\t\t\tif ( ( object.castShadow || ( object.receiveShadow && type === VSMShadowMap ) ) && ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) ) {\n\n\t\t\t\tobject.modelViewMatrix.multiplyMatrices( shadowCamera.matrixWorldInverse, object.matrixWorld );\n\n\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\tconst material = object.material;\n\n\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\tconst groups = geometry.groups;\n\n\t\t\t\t\tfor ( let k = 0, kl = groups.length; k < kl; k ++ ) {\n\n\t\t\t\t\t\tconst group = groups[ k ];\n\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\tif ( groupMaterial && groupMaterial.visible ) {\n\n\t\t\t\t\t\t\tconst depthMaterial = getDepthMaterial( object, groupMaterial, light, type );\n\n\t\t\t\t\t\t\tobject.onBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, group );\n\n\t\t\t\t\t\t\trenderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, group );\n\n\t\t\t\t\t\t\tobject.onAfterShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, group );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( material.visible ) {\n\n\t\t\t\t\tconst depthMaterial = getDepthMaterial( object, material, light, type );\n\n\t\t\t\t\tobject.onBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, null );\n\n\t\t\t\t\trenderer.renderBufferDirect( shadowCamera, null, geometry, depthMaterial, object, null );\n\n\t\t\t\t\tobject.onAfterShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial, null );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\trenderObject( children[ i ], camera, shadowCamera, light, type );\n\n\t\t}\n\n\t}\n\n\tfunction onMaterialDispose( event ) {\n\n\t\tconst material = event.target;\n\n\t\tmaterial.removeEventListener( 'dispose', onMaterialDispose );\n\n\t\t// make sure to remove the unique distance/depth materials used for shadow map rendering\n\n\t\tfor ( const id in _materialCache ) {\n\n\t\t\tconst cache = _materialCache[ id ];\n\n\t\t\tconst uuid = event.target.uuid;\n\n\t\t\tif ( uuid in cache ) {\n\n\t\t\t\tconst shadowMaterial = cache[ uuid ];\n\t\t\t\tshadowMaterial.dispose();\n\t\t\t\tdelete cache[ uuid ];\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction WebGLState( gl ) {\n\n\tfunction ColorBuffer() {\n\n\t\tlet locked = false;\n\n\t\tconst color = new Vector4();\n\t\tlet currentColorMask = null;\n\t\tconst currentColorClear = new Vector4( 0, 0, 0, 0 );\n\n\t\treturn {\n\n\t\t\tsetMask: function ( colorMask ) {\n\n\t\t\t\tif ( currentColorMask !== colorMask && ! locked ) {\n\n\t\t\t\t\tgl.colorMask( colorMask, colorMask, colorMask, colorMask );\n\t\t\t\t\tcurrentColorMask = colorMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( r, g, b, a, premultipliedAlpha ) {\n\n\t\t\t\tif ( premultipliedAlpha === true ) {\n\n\t\t\t\t\tr *= a; g *= a; b *= a;\n\n\t\t\t\t}\n\n\t\t\t\tcolor.set( r, g, b, a );\n\n\t\t\t\tif ( currentColorClear.equals( color ) === false ) {\n\n\t\t\t\t\tgl.clearColor( r, g, b, a );\n\t\t\t\t\tcurrentColorClear.copy( color );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentColorMask = null;\n\t\t\t\tcurrentColorClear.set( - 1, 0, 0, 0 ); // set to invalid state\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tfunction DepthBuffer() {\n\n\t\tlet locked = false;\n\n\t\tlet currentDepthMask = null;\n\t\tlet currentDepthFunc = null;\n\t\tlet currentDepthClear = null;\n\n\t\treturn {\n\n\t\t\tsetTest: function ( depthTest ) {\n\n\t\t\t\tif ( depthTest ) {\n\n\t\t\t\t\tenable( gl.DEPTH_TEST );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tdisable( gl.DEPTH_TEST );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetMask: function ( depthMask ) {\n\n\t\t\t\tif ( currentDepthMask !== depthMask && ! locked ) {\n\n\t\t\t\t\tgl.depthMask( depthMask );\n\t\t\t\t\tcurrentDepthMask = depthMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetFunc: function ( depthFunc ) {\n\n\t\t\t\tif ( currentDepthFunc !== depthFunc ) {\n\n\t\t\t\t\tswitch ( depthFunc ) {\n\n\t\t\t\t\t\tcase NeverDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.NEVER );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AlwaysDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.ALWAYS );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase LessDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.LESS );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase LessEqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.LEQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase EqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.EQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase GreaterEqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.GEQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase GreaterDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.GREATER );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase NotEqualDepth:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.NOTEQUAL );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\n\t\t\t\t\t\t\tgl.depthFunc( gl.LEQUAL );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrentDepthFunc = depthFunc;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( depth ) {\n\n\t\t\t\tif ( currentDepthClear !== depth ) {\n\n\t\t\t\t\tgl.clearDepth( depth );\n\t\t\t\t\tcurrentDepthClear = depth;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentDepthMask = null;\n\t\t\t\tcurrentDepthFunc = null;\n\t\t\t\tcurrentDepthClear = null;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tfunction StencilBuffer() {\n\n\t\tlet locked = false;\n\n\t\tlet currentStencilMask = null;\n\t\tlet currentStencilFunc = null;\n\t\tlet currentStencilRef = null;\n\t\tlet currentStencilFuncMask = null;\n\t\tlet currentStencilFail = null;\n\t\tlet currentStencilZFail = null;\n\t\tlet currentStencilZPass = null;\n\t\tlet currentStencilClear = null;\n\n\t\treturn {\n\n\t\t\tsetTest: function ( stencilTest ) {\n\n\t\t\t\tif ( ! locked ) {\n\n\t\t\t\t\tif ( stencilTest ) {\n\n\t\t\t\t\t\tenable( gl.STENCIL_TEST );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tdisable( gl.STENCIL_TEST );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetMask: function ( stencilMask ) {\n\n\t\t\t\tif ( currentStencilMask !== stencilMask && ! locked ) {\n\n\t\t\t\t\tgl.stencilMask( stencilMask );\n\t\t\t\t\tcurrentStencilMask = stencilMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetFunc: function ( stencilFunc, stencilRef, stencilMask ) {\n\n\t\t\t\tif ( currentStencilFunc !== stencilFunc ||\n\t\t\t\t currentStencilRef !== stencilRef ||\n\t\t\t\t currentStencilFuncMask !== stencilMask ) {\n\n\t\t\t\t\tgl.stencilFunc( stencilFunc, stencilRef, stencilMask );\n\n\t\t\t\t\tcurrentStencilFunc = stencilFunc;\n\t\t\t\t\tcurrentStencilRef = stencilRef;\n\t\t\t\t\tcurrentStencilFuncMask = stencilMask;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetOp: function ( stencilFail, stencilZFail, stencilZPass ) {\n\n\t\t\t\tif ( currentStencilFail !== stencilFail ||\n\t\t\t\t currentStencilZFail !== stencilZFail ||\n\t\t\t\t currentStencilZPass !== stencilZPass ) {\n\n\t\t\t\t\tgl.stencilOp( stencilFail, stencilZFail, stencilZPass );\n\n\t\t\t\t\tcurrentStencilFail = stencilFail;\n\t\t\t\t\tcurrentStencilZFail = stencilZFail;\n\t\t\t\t\tcurrentStencilZPass = stencilZPass;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\tsetLocked: function ( lock ) {\n\n\t\t\t\tlocked = lock;\n\n\t\t\t},\n\n\t\t\tsetClear: function ( stencil ) {\n\n\t\t\t\tif ( currentStencilClear !== stencil ) {\n\n\t\t\t\t\tgl.clearStencil( stencil );\n\t\t\t\t\tcurrentStencilClear = stencil;\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\treset: function () {\n\n\t\t\t\tlocked = false;\n\n\t\t\t\tcurrentStencilMask = null;\n\t\t\t\tcurrentStencilFunc = null;\n\t\t\t\tcurrentStencilRef = null;\n\t\t\t\tcurrentStencilFuncMask = null;\n\t\t\t\tcurrentStencilFail = null;\n\t\t\t\tcurrentStencilZFail = null;\n\t\t\t\tcurrentStencilZPass = null;\n\t\t\t\tcurrentStencilClear = null;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\t//\n\n\tconst colorBuffer = new ColorBuffer();\n\tconst depthBuffer = new DepthBuffer();\n\tconst stencilBuffer = new StencilBuffer();\n\n\tconst uboBindings = new WeakMap();\n\tconst uboProgramMap = new WeakMap();\n\n\tlet enabledCapabilities = {};\n\n\tlet currentBoundFramebuffers = {};\n\tlet currentDrawbuffers = new WeakMap();\n\tlet defaultDrawbuffers = [];\n\n\tlet currentProgram = null;\n\n\tlet currentBlendingEnabled = false;\n\tlet currentBlending = null;\n\tlet currentBlendEquation = null;\n\tlet currentBlendSrc = null;\n\tlet currentBlendDst = null;\n\tlet currentBlendEquationAlpha = null;\n\tlet currentBlendSrcAlpha = null;\n\tlet currentBlendDstAlpha = null;\n\tlet currentBlendColor = new Color( 0, 0, 0 );\n\tlet currentBlendAlpha = 0;\n\tlet currentPremultipledAlpha = false;\n\n\tlet currentFlipSided = null;\n\tlet currentCullFace = null;\n\n\tlet currentLineWidth = null;\n\n\tlet currentPolygonOffsetFactor = null;\n\tlet currentPolygonOffsetUnits = null;\n\n\tconst maxTextures = gl.getParameter( gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS );\n\n\tlet lineWidthAvailable = false;\n\tlet version = 0;\n\tconst glVersion = gl.getParameter( gl.VERSION );\n\n\tif ( glVersion.indexOf( 'WebGL' ) !== - 1 ) {\n\n\t\tversion = parseFloat( /^WebGL (\\d)/.exec( glVersion )[ 1 ] );\n\t\tlineWidthAvailable = ( version >= 1.0 );\n\n\t} else if ( glVersion.indexOf( 'OpenGL ES' ) !== - 1 ) {\n\n\t\tversion = parseFloat( /^OpenGL ES (\\d)/.exec( glVersion )[ 1 ] );\n\t\tlineWidthAvailable = ( version >= 2.0 );\n\n\t}\n\n\tlet currentTextureSlot = null;\n\tlet currentBoundTextures = {};\n\n\tconst scissorParam = gl.getParameter( gl.SCISSOR_BOX );\n\tconst viewportParam = gl.getParameter( gl.VIEWPORT );\n\n\tconst currentScissor = new Vector4().fromArray( scissorParam );\n\tconst currentViewport = new Vector4().fromArray( viewportParam );\n\n\tfunction createTexture( type, target, count, dimensions ) {\n\n\t\tconst data = new Uint8Array( 4 ); // 4 is required to match default unpack alignment of 4.\n\t\tconst texture = gl.createTexture();\n\n\t\tgl.bindTexture( type, texture );\n\t\tgl.texParameteri( type, gl.TEXTURE_MIN_FILTER, gl.NEAREST );\n\t\tgl.texParameteri( type, gl.TEXTURE_MAG_FILTER, gl.NEAREST );\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tif ( type === gl.TEXTURE_3D || type === gl.TEXTURE_2D_ARRAY ) {\n\n\t\t\t\tgl.texImage3D( target, 0, gl.RGBA, 1, 1, dimensions, 0, gl.RGBA, gl.UNSIGNED_BYTE, data );\n\n\t\t\t} else {\n\n\t\t\t\tgl.texImage2D( target + i, 0, gl.RGBA, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, data );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n\tconst emptyTextures = {};\n\temptyTextures[ gl.TEXTURE_2D ] = createTexture( gl.TEXTURE_2D, gl.TEXTURE_2D, 1 );\n\temptyTextures[ gl.TEXTURE_CUBE_MAP ] = createTexture( gl.TEXTURE_CUBE_MAP, gl.TEXTURE_CUBE_MAP_POSITIVE_X, 6 );\n\temptyTextures[ gl.TEXTURE_2D_ARRAY ] = createTexture( gl.TEXTURE_2D_ARRAY, gl.TEXTURE_2D_ARRAY, 1, 1 );\n\temptyTextures[ gl.TEXTURE_3D ] = createTexture( gl.TEXTURE_3D, gl.TEXTURE_3D, 1, 1 );\n\n\t// init\n\n\tcolorBuffer.setClear( 0, 0, 0, 1 );\n\tdepthBuffer.setClear( 1 );\n\tstencilBuffer.setClear( 0 );\n\n\tenable( gl.DEPTH_TEST );\n\tdepthBuffer.setFunc( LessEqualDepth );\n\n\tsetFlipSided( false );\n\tsetCullFace( CullFaceBack );\n\tenable( gl.CULL_FACE );\n\n\tsetBlending( NoBlending );\n\n\t//\n\n\tfunction enable( id ) {\n\n\t\tif ( enabledCapabilities[ id ] !== true ) {\n\n\t\t\tgl.enable( id );\n\t\t\tenabledCapabilities[ id ] = true;\n\n\t\t}\n\n\t}\n\n\tfunction disable( id ) {\n\n\t\tif ( enabledCapabilities[ id ] !== false ) {\n\n\t\t\tgl.disable( id );\n\t\t\tenabledCapabilities[ id ] = false;\n\n\t\t}\n\n\t}\n\n\tfunction bindFramebuffer( target, framebuffer ) {\n\n\t\tif ( currentBoundFramebuffers[ target ] !== framebuffer ) {\n\n\t\t\tgl.bindFramebuffer( target, framebuffer );\n\n\t\t\tcurrentBoundFramebuffers[ target ] = framebuffer;\n\n\t\t\t// gl.DRAW_FRAMEBUFFER is equivalent to gl.FRAMEBUFFER\n\n\t\t\tif ( target === gl.DRAW_FRAMEBUFFER ) {\n\n\t\t\t\tcurrentBoundFramebuffers[ gl.FRAMEBUFFER ] = framebuffer;\n\n\t\t\t}\n\n\t\t\tif ( target === gl.FRAMEBUFFER ) {\n\n\t\t\t\tcurrentBoundFramebuffers[ gl.DRAW_FRAMEBUFFER ] = framebuffer;\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tfunction drawBuffers( renderTarget, framebuffer ) {\n\n\t\tlet drawBuffers = defaultDrawbuffers;\n\n\t\tlet needsUpdate = false;\n\n\t\tif ( renderTarget ) {\n\n\t\t\tdrawBuffers = currentDrawbuffers.get( framebuffer );\n\n\t\t\tif ( drawBuffers === undefined ) {\n\n\t\t\t\tdrawBuffers = [];\n\t\t\t\tcurrentDrawbuffers.set( framebuffer, drawBuffers );\n\n\t\t\t}\n\n\t\t\tconst textures = renderTarget.textures;\n\n\t\t\tif ( drawBuffers.length !== textures.length || drawBuffers[ 0 ] !== gl.COLOR_ATTACHMENT0 ) {\n\n\t\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\t\tdrawBuffers[ i ] = gl.COLOR_ATTACHMENT0 + i;\n\n\t\t\t\t}\n\n\t\t\t\tdrawBuffers.length = textures.length;\n\n\t\t\t\tneedsUpdate = true;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( drawBuffers[ 0 ] !== gl.BACK ) {\n\n\t\t\t\tdrawBuffers[ 0 ] = gl.BACK;\n\n\t\t\t\tneedsUpdate = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( needsUpdate ) {\n\n\t\t\tgl.drawBuffers( drawBuffers );\n\n\t\t}\n\n\t}\n\n\tfunction useProgram( program ) {\n\n\t\tif ( currentProgram !== program ) {\n\n\t\t\tgl.useProgram( program );\n\n\t\t\tcurrentProgram = program;\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tconst equationToGL = {\n\t\t[ AddEquation ]: gl.FUNC_ADD,\n\t\t[ SubtractEquation ]: gl.FUNC_SUBTRACT,\n\t\t[ ReverseSubtractEquation ]: gl.FUNC_REVERSE_SUBTRACT\n\t};\n\n\tequationToGL[ MinEquation ] = gl.MIN;\n\tequationToGL[ MaxEquation ] = gl.MAX;\n\n\tconst factorToGL = {\n\t\t[ ZeroFactor ]: gl.ZERO,\n\t\t[ OneFactor ]: gl.ONE,\n\t\t[ SrcColorFactor ]: gl.SRC_COLOR,\n\t\t[ SrcAlphaFactor ]: gl.SRC_ALPHA,\n\t\t[ SrcAlphaSaturateFactor ]: gl.SRC_ALPHA_SATURATE,\n\t\t[ DstColorFactor ]: gl.DST_COLOR,\n\t\t[ DstAlphaFactor ]: gl.DST_ALPHA,\n\t\t[ OneMinusSrcColorFactor ]: gl.ONE_MINUS_SRC_COLOR,\n\t\t[ OneMinusSrcAlphaFactor ]: gl.ONE_MINUS_SRC_ALPHA,\n\t\t[ OneMinusDstColorFactor ]: gl.ONE_MINUS_DST_COLOR,\n\t\t[ OneMinusDstAlphaFactor ]: gl.ONE_MINUS_DST_ALPHA,\n\t\t[ ConstantColorFactor ]: gl.CONSTANT_COLOR,\n\t\t[ OneMinusConstantColorFactor ]: gl.ONE_MINUS_CONSTANT_COLOR,\n\t\t[ ConstantAlphaFactor ]: gl.CONSTANT_ALPHA,\n\t\t[ OneMinusConstantAlphaFactor ]: gl.ONE_MINUS_CONSTANT_ALPHA\n\t};\n\n\tfunction setBlending( blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha, blendColor, blendAlpha, premultipliedAlpha ) {\n\n\t\tif ( blending === NoBlending ) {\n\n\t\t\tif ( currentBlendingEnabled === true ) {\n\n\t\t\t\tdisable( gl.BLEND );\n\t\t\t\tcurrentBlendingEnabled = false;\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( currentBlendingEnabled === false ) {\n\n\t\t\tenable( gl.BLEND );\n\t\t\tcurrentBlendingEnabled = true;\n\n\t\t}\n\n\t\tif ( blending !== CustomBlending ) {\n\n\t\t\tif ( blending !== currentBlending || premultipliedAlpha !== currentPremultipledAlpha ) {\n\n\t\t\t\tif ( currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation ) {\n\n\t\t\t\t\tgl.blendEquation( gl.FUNC_ADD );\n\n\t\t\t\t\tcurrentBlendEquation = AddEquation;\n\t\t\t\t\tcurrentBlendEquationAlpha = AddEquation;\n\n\t\t\t\t}\n\n\t\t\t\tif ( premultipliedAlpha ) {\n\n\t\t\t\t\tswitch ( blending ) {\n\n\t\t\t\t\t\tcase NormalBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ONE, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AdditiveBlending:\n\t\t\t\t\t\t\tgl.blendFunc( gl.ONE, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase SubtractiveBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase MultiplyBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ZERO, gl.SRC_COLOR, gl.ZERO, gl.SRC_ALPHA );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tconsole.error( 'THREE.WebGLState: Invalid blending: ', blending );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tswitch ( blending ) {\n\n\t\t\t\t\t\tcase NormalBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase AdditiveBlending:\n\t\t\t\t\t\t\tgl.blendFunc( gl.SRC_ALPHA, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase SubtractiveBlending:\n\t\t\t\t\t\t\tgl.blendFuncSeparate( gl.ZERO, gl.ONE_MINUS_SRC_COLOR, gl.ZERO, gl.ONE );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase MultiplyBlending:\n\t\t\t\t\t\t\tgl.blendFunc( gl.ZERO, gl.SRC_COLOR );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tconsole.error( 'THREE.WebGLState: Invalid blending: ', blending );\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tcurrentBlendSrc = null;\n\t\t\t\tcurrentBlendDst = null;\n\t\t\t\tcurrentBlendSrcAlpha = null;\n\t\t\t\tcurrentBlendDstAlpha = null;\n\t\t\t\tcurrentBlendColor.set( 0, 0, 0 );\n\t\t\t\tcurrentBlendAlpha = 0;\n\n\t\t\t\tcurrentBlending = blending;\n\t\t\t\tcurrentPremultipledAlpha = premultipliedAlpha;\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// custom blending\n\n\t\tblendEquationAlpha = blendEquationAlpha || blendEquation;\n\t\tblendSrcAlpha = blendSrcAlpha || blendSrc;\n\t\tblendDstAlpha = blendDstAlpha || blendDst;\n\n\t\tif ( blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha ) {\n\n\t\t\tgl.blendEquationSeparate( equationToGL[ blendEquation ], equationToGL[ blendEquationAlpha ] );\n\n\t\t\tcurrentBlendEquation = blendEquation;\n\t\t\tcurrentBlendEquationAlpha = blendEquationAlpha;\n\n\t\t}\n\n\t\tif ( blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha ) {\n\n\t\t\tgl.blendFuncSeparate( factorToGL[ blendSrc ], factorToGL[ blendDst ], factorToGL[ blendSrcAlpha ], factorToGL[ blendDstAlpha ] );\n\n\t\t\tcurrentBlendSrc = blendSrc;\n\t\t\tcurrentBlendDst = blendDst;\n\t\t\tcurrentBlendSrcAlpha = blendSrcAlpha;\n\t\t\tcurrentBlendDstAlpha = blendDstAlpha;\n\n\t\t}\n\n\t\tif ( blendColor.equals( currentBlendColor ) === false || blendAlpha !== currentBlendAlpha ) {\n\n\t\t\tgl.blendColor( blendColor.r, blendColor.g, blendColor.b, blendAlpha );\n\n\t\t\tcurrentBlendColor.copy( blendColor );\n\t\t\tcurrentBlendAlpha = blendAlpha;\n\n\t\t}\n\n\t\tcurrentBlending = blending;\n\t\tcurrentPremultipledAlpha = false;\n\n\t}\n\n\tfunction setMaterial( material, frontFaceCW ) {\n\n\t\tmaterial.side === DoubleSide\n\t\t\t? disable( gl.CULL_FACE )\n\t\t\t: enable( gl.CULL_FACE );\n\n\t\tlet flipSided = ( material.side === BackSide );\n\t\tif ( frontFaceCW ) flipSided = ! flipSided;\n\n\t\tsetFlipSided( flipSided );\n\n\t\t( material.blending === NormalBlending && material.transparent === false )\n\t\t\t? setBlending( NoBlending )\n\t\t\t: setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha, material.blendColor, material.blendAlpha, material.premultipliedAlpha );\n\n\t\tdepthBuffer.setFunc( material.depthFunc );\n\t\tdepthBuffer.setTest( material.depthTest );\n\t\tdepthBuffer.setMask( material.depthWrite );\n\t\tcolorBuffer.setMask( material.colorWrite );\n\n\t\tconst stencilWrite = material.stencilWrite;\n\t\tstencilBuffer.setTest( stencilWrite );\n\t\tif ( stencilWrite ) {\n\n\t\t\tstencilBuffer.setMask( material.stencilWriteMask );\n\t\t\tstencilBuffer.setFunc( material.stencilFunc, material.stencilRef, material.stencilFuncMask );\n\t\t\tstencilBuffer.setOp( material.stencilFail, material.stencilZFail, material.stencilZPass );\n\n\t\t}\n\n\t\tsetPolygonOffset( material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits );\n\n\t\tmaterial.alphaToCoverage === true\n\t\t\t? enable( gl.SAMPLE_ALPHA_TO_COVERAGE )\n\t\t\t: disable( gl.SAMPLE_ALPHA_TO_COVERAGE );\n\n\t}\n\n\t//\n\n\tfunction setFlipSided( flipSided ) {\n\n\t\tif ( currentFlipSided !== flipSided ) {\n\n\t\t\tif ( flipSided ) {\n\n\t\t\t\tgl.frontFace( gl.CW );\n\n\t\t\t} else {\n\n\t\t\t\tgl.frontFace( gl.CCW );\n\n\t\t\t}\n\n\t\t\tcurrentFlipSided = flipSided;\n\n\t\t}\n\n\t}\n\n\tfunction setCullFace( cullFace ) {\n\n\t\tif ( cullFace !== CullFaceNone ) {\n\n\t\t\tenable( gl.CULL_FACE );\n\n\t\t\tif ( cullFace !== currentCullFace ) {\n\n\t\t\t\tif ( cullFace === CullFaceBack ) {\n\n\t\t\t\t\tgl.cullFace( gl.BACK );\n\n\t\t\t\t} else if ( cullFace === CullFaceFront ) {\n\n\t\t\t\t\tgl.cullFace( gl.FRONT );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tgl.cullFace( gl.FRONT_AND_BACK );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tdisable( gl.CULL_FACE );\n\n\t\t}\n\n\t\tcurrentCullFace = cullFace;\n\n\t}\n\n\tfunction setLineWidth( width ) {\n\n\t\tif ( width !== currentLineWidth ) {\n\n\t\t\tif ( lineWidthAvailable ) gl.lineWidth( width );\n\n\t\t\tcurrentLineWidth = width;\n\n\t\t}\n\n\t}\n\n\tfunction setPolygonOffset( polygonOffset, factor, units ) {\n\n\t\tif ( polygonOffset ) {\n\n\t\t\tenable( gl.POLYGON_OFFSET_FILL );\n\n\t\t\tif ( currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units ) {\n\n\t\t\t\tgl.polygonOffset( factor, units );\n\n\t\t\t\tcurrentPolygonOffsetFactor = factor;\n\t\t\t\tcurrentPolygonOffsetUnits = units;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tdisable( gl.POLYGON_OFFSET_FILL );\n\n\t\t}\n\n\t}\n\n\tfunction setScissorTest( scissorTest ) {\n\n\t\tif ( scissorTest ) {\n\n\t\t\tenable( gl.SCISSOR_TEST );\n\n\t\t} else {\n\n\t\t\tdisable( gl.SCISSOR_TEST );\n\n\t\t}\n\n\t}\n\n\t// texture\n\n\tfunction activeTexture( webglSlot ) {\n\n\t\tif ( webglSlot === undefined ) webglSlot = gl.TEXTURE0 + maxTextures - 1;\n\n\t\tif ( currentTextureSlot !== webglSlot ) {\n\n\t\t\tgl.activeTexture( webglSlot );\n\t\t\tcurrentTextureSlot = webglSlot;\n\n\t\t}\n\n\t}\n\n\tfunction bindTexture( webglType, webglTexture, webglSlot ) {\n\n\t\tif ( webglSlot === undefined ) {\n\n\t\t\tif ( currentTextureSlot === null ) {\n\n\t\t\t\twebglSlot = gl.TEXTURE0 + maxTextures - 1;\n\n\t\t\t} else {\n\n\t\t\t\twebglSlot = currentTextureSlot;\n\n\t\t\t}\n\n\t\t}\n\n\t\tlet boundTexture = currentBoundTextures[ webglSlot ];\n\n\t\tif ( boundTexture === undefined ) {\n\n\t\t\tboundTexture = { type: undefined, texture: undefined };\n\t\t\tcurrentBoundTextures[ webglSlot ] = boundTexture;\n\n\t\t}\n\n\t\tif ( boundTexture.type !== webglType || boundTexture.texture !== webglTexture ) {\n\n\t\t\tif ( currentTextureSlot !== webglSlot ) {\n\n\t\t\t\tgl.activeTexture( webglSlot );\n\t\t\t\tcurrentTextureSlot = webglSlot;\n\n\t\t\t}\n\n\t\t\tgl.bindTexture( webglType, webglTexture || emptyTextures[ webglType ] );\n\n\t\t\tboundTexture.type = webglType;\n\t\t\tboundTexture.texture = webglTexture;\n\n\t\t}\n\n\t}\n\n\tfunction unbindTexture() {\n\n\t\tconst boundTexture = currentBoundTextures[ currentTextureSlot ];\n\n\t\tif ( boundTexture !== undefined && boundTexture.type !== undefined ) {\n\n\t\t\tgl.bindTexture( boundTexture.type, null );\n\n\t\t\tboundTexture.type = undefined;\n\t\t\tboundTexture.texture = undefined;\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texSubImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texSubImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texSubImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texSubImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexSubImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexSubImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction compressedTexSubImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.compressedTexSubImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texStorage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texStorage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texStorage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texStorage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texImage2D() {\n\n\t\ttry {\n\n\t\t\tgl.texImage2D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\tfunction texImage3D() {\n\n\t\ttry {\n\n\t\t\tgl.texImage3D.apply( gl, arguments );\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLState:', error );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction scissor( scissor ) {\n\n\t\tif ( currentScissor.equals( scissor ) === false ) {\n\n\t\t\tgl.scissor( scissor.x, scissor.y, scissor.z, scissor.w );\n\t\t\tcurrentScissor.copy( scissor );\n\n\t\t}\n\n\t}\n\n\tfunction viewport( viewport ) {\n\n\t\tif ( currentViewport.equals( viewport ) === false ) {\n\n\t\t\tgl.viewport( viewport.x, viewport.y, viewport.z, viewport.w );\n\t\t\tcurrentViewport.copy( viewport );\n\n\t\t}\n\n\t}\n\n\tfunction updateUBOMapping( uniformsGroup, program ) {\n\n\t\tlet mapping = uboProgramMap.get( program );\n\n\t\tif ( mapping === undefined ) {\n\n\t\t\tmapping = new WeakMap();\n\n\t\t\tuboProgramMap.set( program, mapping );\n\n\t\t}\n\n\t\tlet blockIndex = mapping.get( uniformsGroup );\n\n\t\tif ( blockIndex === undefined ) {\n\n\t\t\tblockIndex = gl.getUniformBlockIndex( program, uniformsGroup.name );\n\n\t\t\tmapping.set( uniformsGroup, blockIndex );\n\n\t\t}\n\n\t}\n\n\tfunction uniformBlockBinding( uniformsGroup, program ) {\n\n\t\tconst mapping = uboProgramMap.get( program );\n\t\tconst blockIndex = mapping.get( uniformsGroup );\n\n\t\tif ( uboBindings.get( program ) !== blockIndex ) {\n\n\t\t\t// bind shader specific block index to global block point\n\t\t\tgl.uniformBlockBinding( program, blockIndex, uniformsGroup.__bindingPointIndex );\n\n\t\t\tuboBindings.set( program, blockIndex );\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction reset() {\n\n\t\t// reset state\n\n\t\tgl.disable( gl.BLEND );\n\t\tgl.disable( gl.CULL_FACE );\n\t\tgl.disable( gl.DEPTH_TEST );\n\t\tgl.disable( gl.POLYGON_OFFSET_FILL );\n\t\tgl.disable( gl.SCISSOR_TEST );\n\t\tgl.disable( gl.STENCIL_TEST );\n\t\tgl.disable( gl.SAMPLE_ALPHA_TO_COVERAGE );\n\n\t\tgl.blendEquation( gl.FUNC_ADD );\n\t\tgl.blendFunc( gl.ONE, gl.ZERO );\n\t\tgl.blendFuncSeparate( gl.ONE, gl.ZERO, gl.ONE, gl.ZERO );\n\t\tgl.blendColor( 0, 0, 0, 0 );\n\n\t\tgl.colorMask( true, true, true, true );\n\t\tgl.clearColor( 0, 0, 0, 0 );\n\n\t\tgl.depthMask( true );\n\t\tgl.depthFunc( gl.LESS );\n\t\tgl.clearDepth( 1 );\n\n\t\tgl.stencilMask( 0xffffffff );\n\t\tgl.stencilFunc( gl.ALWAYS, 0, 0xffffffff );\n\t\tgl.stencilOp( gl.KEEP, gl.KEEP, gl.KEEP );\n\t\tgl.clearStencil( 0 );\n\n\t\tgl.cullFace( gl.BACK );\n\t\tgl.frontFace( gl.CCW );\n\n\t\tgl.polygonOffset( 0, 0 );\n\n\t\tgl.activeTexture( gl.TEXTURE0 );\n\n\t\tgl.bindFramebuffer( gl.FRAMEBUFFER, null );\n\t\tgl.bindFramebuffer( gl.DRAW_FRAMEBUFFER, null );\n\t\tgl.bindFramebuffer( gl.READ_FRAMEBUFFER, null );\n\n\t\tgl.useProgram( null );\n\n\t\tgl.lineWidth( 1 );\n\n\t\tgl.scissor( 0, 0, gl.canvas.width, gl.canvas.height );\n\t\tgl.viewport( 0, 0, gl.canvas.width, gl.canvas.height );\n\n\t\t// reset internals\n\n\t\tenabledCapabilities = {};\n\n\t\tcurrentTextureSlot = null;\n\t\tcurrentBoundTextures = {};\n\n\t\tcurrentBoundFramebuffers = {};\n\t\tcurrentDrawbuffers = new WeakMap();\n\t\tdefaultDrawbuffers = [];\n\n\t\tcurrentProgram = null;\n\n\t\tcurrentBlendingEnabled = false;\n\t\tcurrentBlending = null;\n\t\tcurrentBlendEquation = null;\n\t\tcurrentBlendSrc = null;\n\t\tcurrentBlendDst = null;\n\t\tcurrentBlendEquationAlpha = null;\n\t\tcurrentBlendSrcAlpha = null;\n\t\tcurrentBlendDstAlpha = null;\n\t\tcurrentBlendColor = new Color( 0, 0, 0 );\n\t\tcurrentBlendAlpha = 0;\n\t\tcurrentPremultipledAlpha = false;\n\n\t\tcurrentFlipSided = null;\n\t\tcurrentCullFace = null;\n\n\t\tcurrentLineWidth = null;\n\n\t\tcurrentPolygonOffsetFactor = null;\n\t\tcurrentPolygonOffsetUnits = null;\n\n\t\tcurrentScissor.set( 0, 0, gl.canvas.width, gl.canvas.height );\n\t\tcurrentViewport.set( 0, 0, gl.canvas.width, gl.canvas.height );\n\n\t\tcolorBuffer.reset();\n\t\tdepthBuffer.reset();\n\t\tstencilBuffer.reset();\n\n\t}\n\n\treturn {\n\n\t\tbuffers: {\n\t\t\tcolor: colorBuffer,\n\t\t\tdepth: depthBuffer,\n\t\t\tstencil: stencilBuffer\n\t\t},\n\n\t\tenable: enable,\n\t\tdisable: disable,\n\n\t\tbindFramebuffer: bindFramebuffer,\n\t\tdrawBuffers: drawBuffers,\n\n\t\tuseProgram: useProgram,\n\n\t\tsetBlending: setBlending,\n\t\tsetMaterial: setMaterial,\n\n\t\tsetFlipSided: setFlipSided,\n\t\tsetCullFace: setCullFace,\n\n\t\tsetLineWidth: setLineWidth,\n\t\tsetPolygonOffset: setPolygonOffset,\n\n\t\tsetScissorTest: setScissorTest,\n\n\t\tactiveTexture: activeTexture,\n\t\tbindTexture: bindTexture,\n\t\tunbindTexture: unbindTexture,\n\t\tcompressedTexImage2D: compressedTexImage2D,\n\t\tcompressedTexImage3D: compressedTexImage3D,\n\t\ttexImage2D: texImage2D,\n\t\ttexImage3D: texImage3D,\n\n\t\tupdateUBOMapping: updateUBOMapping,\n\t\tuniformBlockBinding: uniformBlockBinding,\n\n\t\ttexStorage2D: texStorage2D,\n\t\ttexStorage3D: texStorage3D,\n\t\ttexSubImage2D: texSubImage2D,\n\t\ttexSubImage3D: texSubImage3D,\n\t\tcompressedTexSubImage2D: compressedTexSubImage2D,\n\t\tcompressedTexSubImage3D: compressedTexSubImage3D,\n\n\t\tscissor: scissor,\n\t\tviewport: viewport,\n\n\t\treset: reset\n\n\t};\n\n}\n\nfunction contain( texture, aspect ) {\n\n\tconst imageAspect = ( texture.image && texture.image.width ) ? texture.image.width / texture.image.height : 1;\n\n\tif ( imageAspect > aspect ) {\n\n\t\ttexture.repeat.x = 1;\n\t\ttexture.repeat.y = imageAspect / aspect;\n\n\t\ttexture.offset.x = 0;\n\t\ttexture.offset.y = ( 1 - texture.repeat.y ) / 2;\n\n\t} else {\n\n\t\ttexture.repeat.x = aspect / imageAspect;\n\t\ttexture.repeat.y = 1;\n\n\t\ttexture.offset.x = ( 1 - texture.repeat.x ) / 2;\n\t\ttexture.offset.y = 0;\n\n\t}\n\n\treturn texture;\n\n}\n\nfunction cover( texture, aspect ) {\n\n\tconst imageAspect = ( texture.image && texture.image.width ) ? texture.image.width / texture.image.height : 1;\n\n\tif ( imageAspect > aspect ) {\n\n\t\ttexture.repeat.x = aspect / imageAspect;\n\t\ttexture.repeat.y = 1;\n\n\t\ttexture.offset.x = ( 1 - texture.repeat.x ) / 2;\n\t\ttexture.offset.y = 0;\n\n\t} else {\n\n\t\ttexture.repeat.x = 1;\n\t\ttexture.repeat.y = imageAspect / aspect;\n\n\t\ttexture.offset.x = 0;\n\t\ttexture.offset.y = ( 1 - texture.repeat.y ) / 2;\n\n\t}\n\n\treturn texture;\n\n}\n\nfunction fill( texture ) {\n\n\ttexture.repeat.x = 1;\n\ttexture.repeat.y = 1;\n\n\ttexture.offset.x = 0;\n\ttexture.offset.y = 0;\n\n\treturn texture;\n\n}\n\n\n\n/**\n * Given the width, height, format, and type of a texture. Determines how many\n * bytes must be used to represent the texture.\n */\nfunction getByteLength( width, height, format, type ) {\n\n\tconst typeByteLength = getTextureTypeByteLength( type );\n\n\tswitch ( format ) {\n\n\t\t// https://registry.khronos.org/OpenGL-Refpages/es3.0/html/glTexImage2D.xhtml\n\t\tcase AlphaFormat:\n\t\t\treturn width * height;\n\t\tcase LuminanceFormat:\n\t\t\treturn width * height;\n\t\tcase LuminanceAlphaFormat:\n\t\t\treturn width * height * 2;\n\t\tcase RedFormat:\n\t\t\treturn ( ( width * height ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RedIntegerFormat:\n\t\t\treturn ( ( width * height ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGFormat:\n\t\t\treturn ( ( width * height * 2 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGIntegerFormat:\n\t\t\treturn ( ( width * height * 2 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGBFormat:\n\t\t\treturn ( ( width * height * 3 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGBAFormat:\n\t\t\treturn ( ( width * height * 4 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\t\tcase RGBAIntegerFormat:\n\t\t\treturn ( ( width * height * 4 ) / typeByteLength.components ) * typeByteLength.byteLength;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_s3tc_srgb/\n\t\tcase RGB_S3TC_DXT1_Format:\n\t\tcase RGBA_S3TC_DXT1_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 8;\n\t\tcase RGBA_S3TC_DXT3_Format:\n\t\tcase RGBA_S3TC_DXT5_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_pvrtc/\n\t\tcase RGB_PVRTC_2BPPV1_Format:\n\t\tcase RGBA_PVRTC_2BPPV1_Format:\n\t\t\treturn ( Math.max( width, 16 ) * Math.max( height, 8 ) ) / 4;\n\t\tcase RGB_PVRTC_4BPPV1_Format:\n\t\tcase RGBA_PVRTC_4BPPV1_Format:\n\t\t\treturn ( Math.max( width, 8 ) * Math.max( height, 8 ) ) / 2;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_etc/\n\t\tcase RGB_ETC1_Format:\n\t\tcase RGB_ETC2_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 8;\n\t\tcase RGBA_ETC2_EAC_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_astc/\n\t\tcase RGBA_ASTC_4x4_Format:\n\t\t\treturn Math.floor( ( width + 3 ) / 4 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\t\tcase RGBA_ASTC_5x4_Format:\n\t\t\treturn Math.floor( ( width + 4 ) / 5 ) * Math.floor( ( height + 3 ) / 4 ) * 16;\n\t\tcase RGBA_ASTC_5x5_Format:\n\t\t\treturn Math.floor( ( width + 4 ) / 5 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_6x5_Format:\n\t\t\treturn Math.floor( ( width + 5 ) / 6 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_6x6_Format:\n\t\t\treturn Math.floor( ( width + 5 ) / 6 ) * Math.floor( ( height + 5 ) / 6 ) * 16;\n\t\tcase RGBA_ASTC_8x5_Format:\n\t\t\treturn Math.floor( ( width + 7 ) / 8 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_8x6_Format:\n\t\t\treturn Math.floor( ( width + 7 ) / 8 ) * Math.floor( ( height + 5 ) / 6 ) * 16;\n\t\tcase RGBA_ASTC_8x8_Format:\n\t\t\treturn Math.floor( ( width + 7 ) / 8 ) * Math.floor( ( height + 7 ) / 8 ) * 16;\n\t\tcase RGBA_ASTC_10x5_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 4 ) / 5 ) * 16;\n\t\tcase RGBA_ASTC_10x6_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 5 ) / 6 ) * 16;\n\t\tcase RGBA_ASTC_10x8_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 7 ) / 8 ) * 16;\n\t\tcase RGBA_ASTC_10x10_Format:\n\t\t\treturn Math.floor( ( width + 9 ) / 10 ) * Math.floor( ( height + 9 ) / 10 ) * 16;\n\t\tcase RGBA_ASTC_12x10_Format:\n\t\t\treturn Math.floor( ( width + 11 ) / 12 ) * Math.floor( ( height + 9 ) / 10 ) * 16;\n\t\tcase RGBA_ASTC_12x12_Format:\n\t\t\treturn Math.floor( ( width + 11 ) / 12 ) * Math.floor( ( height + 11 ) / 12 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/EXT_texture_compression_bptc/\n\t\tcase RGBA_BPTC_Format:\n\t\tcase RGB_BPTC_SIGNED_Format:\n\t\tcase RGB_BPTC_UNSIGNED_Format:\n\t\t\treturn Math.ceil( width / 4 ) * Math.ceil( height / 4 ) * 16;\n\n\t\t// https://registry.khronos.org/webgl/extensions/EXT_texture_compression_rgtc/\n\t\tcase RED_RGTC1_Format:\n\t\tcase SIGNED_RED_RGTC1_Format:\n\t\t\treturn Math.ceil( width / 4 ) * Math.ceil( height / 4 ) * 8;\n\t\tcase RED_GREEN_RGTC2_Format:\n\t\tcase SIGNED_RED_GREEN_RGTC2_Format:\n\t\t\treturn Math.ceil( width / 4 ) * Math.ceil( height / 4 ) * 16;\n\n\t}\n\n\tthrow new Error(\n\t\t`Unable to determine texture byte length for ${format} format.`,\n\t);\n\n}\n\nfunction getTextureTypeByteLength( type ) {\n\n\tswitch ( type ) {\n\n\t\tcase UnsignedByteType:\n\t\tcase ByteType:\n\t\t\treturn { byteLength: 1, components: 1 };\n\t\tcase UnsignedShortType:\n\t\tcase ShortType:\n\t\tcase HalfFloatType:\n\t\t\treturn { byteLength: 2, components: 1 };\n\t\tcase UnsignedShort4444Type:\n\t\tcase UnsignedShort5551Type:\n\t\t\treturn { byteLength: 2, components: 4 };\n\t\tcase UnsignedIntType:\n\t\tcase IntType:\n\t\tcase FloatType:\n\t\t\treturn { byteLength: 4, components: 1 };\n\t\tcase UnsignedInt5999Type:\n\t\t\treturn { byteLength: 4, components: 3 };\n\n\t}\n\n\tthrow new Error( `Unknown texture type ${type}.` );\n\n}\n\nconst TextureUtils = {\n\tcontain,\n\tcover,\n\tfill,\n\tgetByteLength\n};\n\nfunction WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info ) {\n\n\tconst multisampledRTTExt = extensions.has( 'WEBGL_multisampled_render_to_texture' ) ? extensions.get( 'WEBGL_multisampled_render_to_texture' ) : null;\n\tconst supportsInvalidateFramebuffer = typeof navigator === 'undefined' ? false : /OculusBrowser/g.test( navigator.userAgent );\n\n\tconst _imageDimensions = new Vector2();\n\tconst _videoTextures = new WeakMap();\n\tlet _canvas;\n\n\tconst _sources = new WeakMap(); // maps WebglTexture objects to instances of Source\n\n\t// cordova iOS (as of 5.0) still uses UIWebView, which provides OffscreenCanvas,\n\t// also OffscreenCanvas.getContext(\"webgl\"), but not OffscreenCanvas.getContext(\"2d\")!\n\t// Some implementations may only implement OffscreenCanvas partially (e.g. lacking 2d).\n\n\tlet useOffscreenCanvas = false;\n\n\ttry {\n\n\t\tuseOffscreenCanvas = typeof OffscreenCanvas !== 'undefined'\n\t\t\t// eslint-disable-next-line compat/compat\n\t\t\t&& ( new OffscreenCanvas( 1, 1 ).getContext( '2d' ) ) !== null;\n\n\t} catch ( err ) {\n\n\t\t// Ignore any errors\n\n\t}\n\n\tfunction createCanvas( width, height ) {\n\n\t\t// Use OffscreenCanvas when available. Specially needed in web workers\n\n\t\treturn useOffscreenCanvas ?\n\t\t\t// eslint-disable-next-line compat/compat\n\t\t\tnew OffscreenCanvas( width, height ) : createElementNS( 'canvas' );\n\n\t}\n\n\tfunction resizeImage( image, needsNewCanvas, maxSize ) {\n\n\t\tlet scale = 1;\n\n\t\tconst dimensions = getDimensions( image );\n\n\t\t// handle case if texture exceeds max size\n\n\t\tif ( dimensions.width > maxSize || dimensions.height > maxSize ) {\n\n\t\t\tscale = maxSize / Math.max( dimensions.width, dimensions.height );\n\n\t\t}\n\n\t\t// only perform resize if necessary\n\n\t\tif ( scale < 1 ) {\n\n\t\t\t// only perform resize for certain image types\n\n\t\t\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ||\n\t\t\t\t( typeof VideoFrame !== 'undefined' && image instanceof VideoFrame ) ) {\n\n\t\t\t\tconst width = Math.floor( scale * dimensions.width );\n\t\t\t\tconst height = Math.floor( scale * dimensions.height );\n\n\t\t\t\tif ( _canvas === undefined ) _canvas = createCanvas( width, height );\n\n\t\t\t\t// cube textures can't reuse the same canvas\n\n\t\t\t\tconst canvas = needsNewCanvas ? createCanvas( width, height ) : _canvas;\n\n\t\t\t\tcanvas.width = width;\n\t\t\t\tcanvas.height = height;\n\n\t\t\t\tconst context = canvas.getContext( '2d' );\n\t\t\t\tcontext.drawImage( image, 0, 0, width, height );\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture has been resized from (' + dimensions.width + 'x' + dimensions.height + ') to (' + width + 'x' + height + ').' );\n\n\t\t\t\treturn canvas;\n\n\t\t\t} else {\n\n\t\t\t\tif ( 'data' in image ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Image in DataTexture is too big (' + dimensions.width + 'x' + dimensions.height + ').' );\n\n\t\t\t\t}\n\n\t\t\t\treturn image;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn image;\n\n\t}\n\n\tfunction textureNeedsGenerateMipmaps( texture ) {\n\n\t\treturn texture.generateMipmaps && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter;\n\n\t}\n\n\tfunction generateMipmap( target ) {\n\n\t\t_gl.generateMipmap( target );\n\n\t}\n\n\tfunction getInternalFormat( internalFormatName, glFormat, glType, colorSpace, forceLinearTransfer = false ) {\n\n\t\tif ( internalFormatName !== null ) {\n\n\t\t\tif ( _gl[ internalFormatName ] !== undefined ) return _gl[ internalFormatName ];\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format \\'' + internalFormatName + '\\'' );\n\n\t\t}\n\n\t\tlet internalFormat = glFormat;\n\n\t\tif ( glFormat === _gl.RED ) {\n\n\t\t\tif ( glType === _gl.FLOAT ) internalFormat = _gl.R32F;\n\t\t\tif ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.R16F;\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.R8;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RED_INTEGER ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.R8UI;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.R16UI;\n\t\t\tif ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.R32UI;\n\t\t\tif ( glType === _gl.BYTE ) internalFormat = _gl.R8I;\n\t\t\tif ( glType === _gl.SHORT ) internalFormat = _gl.R16I;\n\t\t\tif ( glType === _gl.INT ) internalFormat = _gl.R32I;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RG ) {\n\n\t\t\tif ( glType === _gl.FLOAT ) internalFormat = _gl.RG32F;\n\t\t\tif ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RG16F;\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RG8;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RG_INTEGER ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = _gl.RG8UI;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT ) internalFormat = _gl.RG16UI;\n\t\t\tif ( glType === _gl.UNSIGNED_INT ) internalFormat = _gl.RG32UI;\n\t\t\tif ( glType === _gl.BYTE ) internalFormat = _gl.RG8I;\n\t\t\tif ( glType === _gl.SHORT ) internalFormat = _gl.RG16I;\n\t\t\tif ( glType === _gl.INT ) internalFormat = _gl.RG32I;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RGB ) {\n\n\t\t\tif ( glType === _gl.UNSIGNED_INT_5_9_9_9_REV ) internalFormat = _gl.RGB9_E5;\n\n\t\t}\n\n\t\tif ( glFormat === _gl.RGBA ) {\n\n\t\t\tconst transfer = forceLinearTransfer ? LinearTransfer : ColorManagement.getTransfer( colorSpace );\n\n\t\t\tif ( glType === _gl.FLOAT ) internalFormat = _gl.RGBA32F;\n\t\t\tif ( glType === _gl.HALF_FLOAT ) internalFormat = _gl.RGBA16F;\n\t\t\tif ( glType === _gl.UNSIGNED_BYTE ) internalFormat = ( transfer === SRGBTransfer ) ? _gl.SRGB8_ALPHA8 : _gl.RGBA8;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT_4_4_4_4 ) internalFormat = _gl.RGBA4;\n\t\t\tif ( glType === _gl.UNSIGNED_SHORT_5_5_5_1 ) internalFormat = _gl.RGB5_A1;\n\n\t\t}\n\n\t\tif ( internalFormat === _gl.R16F || internalFormat === _gl.R32F ||\n\t\t\tinternalFormat === _gl.RG16F || internalFormat === _gl.RG32F ||\n\t\t\tinternalFormat === _gl.RGBA16F || internalFormat === _gl.RGBA32F ) {\n\n\t\t\textensions.get( 'EXT_color_buffer_float' );\n\n\t\t}\n\n\t\treturn internalFormat;\n\n\t}\n\n\tfunction getInternalDepthFormat( useStencil, depthType ) {\n\n\t\tlet glInternalFormat;\n\t\tif ( useStencil ) {\n\n\t\t\tif ( depthType === null || depthType === UnsignedIntType || depthType === UnsignedInt248Type ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH24_STENCIL8;\n\n\t\t\t} else if ( depthType === FloatType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH32F_STENCIL8;\n\n\t\t\t} else if ( depthType === UnsignedShortType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH24_STENCIL8;\n\t\t\t\tconsole.warn( 'DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.' );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( depthType === null || depthType === UnsignedIntType || depthType === UnsignedInt248Type ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH_COMPONENT24;\n\n\t\t\t} else if ( depthType === FloatType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH_COMPONENT32F;\n\n\t\t\t} else if ( depthType === UnsignedShortType ) {\n\n\t\t\t\tglInternalFormat = _gl.DEPTH_COMPONENT16;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn glInternalFormat;\n\n\t}\n\n\tfunction getMipLevels( texture, image ) {\n\n\t\tif ( textureNeedsGenerateMipmaps( texture ) === true || ( texture.isFramebufferTexture && texture.minFilter !== NearestFilter && texture.minFilter !== LinearFilter ) ) {\n\n\t\t\treturn Math.log2( Math.max( image.width, image.height ) ) + 1;\n\n\t\t} else if ( texture.mipmaps !== undefined && texture.mipmaps.length > 0 ) {\n\n\t\t\t// user-defined mipmaps\n\n\t\t\treturn texture.mipmaps.length;\n\n\t\t} else if ( texture.isCompressedTexture && Array.isArray( texture.image ) ) {\n\n\t\t\treturn image.mipmaps.length;\n\n\t\t} else {\n\n\t\t\t// texture without mipmaps (only base level)\n\n\t\t\treturn 1;\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction onTextureDispose( event ) {\n\n\t\tconst texture = event.target;\n\n\t\ttexture.removeEventListener( 'dispose', onTextureDispose );\n\n\t\tdeallocateTexture( texture );\n\n\t\tif ( texture.isVideoTexture ) {\n\n\t\t\t_videoTextures.delete( texture );\n\n\t\t}\n\n\t}\n\n\tfunction onRenderTargetDispose( event ) {\n\n\t\tconst renderTarget = event.target;\n\n\t\trenderTarget.removeEventListener( 'dispose', onRenderTargetDispose );\n\n\t\tdeallocateRenderTarget( renderTarget );\n\n\t}\n\n\t//\n\n\tfunction deallocateTexture( texture ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( textureProperties.__webglInit === undefined ) return;\n\n\t\t// check if it's necessary to remove the WebGLTexture object\n\n\t\tconst source = texture.source;\n\t\tconst webglTextures = _sources.get( source );\n\n\t\tif ( webglTextures ) {\n\n\t\t\tconst webglTexture = webglTextures[ textureProperties.__cacheKey ];\n\t\t\twebglTexture.usedTimes --;\n\n\t\t\t// the WebGLTexture object is not used anymore, remove it\n\n\t\t\tif ( webglTexture.usedTimes === 0 ) {\n\n\t\t\t\tdeleteTexture( texture );\n\n\t\t\t}\n\n\t\t\t// remove the weak map entry if no WebGLTexture uses the source anymore\n\n\t\t\tif ( Object.keys( webglTextures ).length === 0 ) {\n\n\t\t\t\t_sources.delete( source );\n\n\t\t\t}\n\n\t\t}\n\n\t\tproperties.remove( texture );\n\n\t}\n\n\tfunction deleteTexture( texture ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\t\t_gl.deleteTexture( textureProperties.__webglTexture );\n\n\t\tconst source = texture.source;\n\t\tconst webglTextures = _sources.get( source );\n\t\tdelete webglTextures[ textureProperties.__cacheKey ];\n\n\t\tinfo.memory.textures --;\n\n\t}\n\n\tfunction deallocateRenderTarget( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\tif ( renderTarget.depthTexture ) {\n\n\t\t\trenderTarget.depthTexture.dispose();\n\n\t\t}\n\n\t\tif ( renderTarget.isWebGLCubeRenderTarget ) {\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( Array.isArray( renderTargetProperties.__webglFramebuffer[ i ] ) ) {\n\n\t\t\t\t\tfor ( let level = 0; level < renderTargetProperties.__webglFramebuffer[ i ].length; level ++ ) _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ][ level ] );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ i ] );\n\n\t\t\t\t}\n\n\t\t\t\tif ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer[ i ] );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( Array.isArray( renderTargetProperties.__webglFramebuffer ) ) {\n\n\t\t\t\tfor ( let level = 0; level < renderTargetProperties.__webglFramebuffer.length; level ++ ) _gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer[ level ] );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.deleteFramebuffer( renderTargetProperties.__webglFramebuffer );\n\n\t\t\t}\n\n\t\t\tif ( renderTargetProperties.__webglDepthbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthbuffer );\n\t\t\tif ( renderTargetProperties.__webglMultisampledFramebuffer ) _gl.deleteFramebuffer( renderTargetProperties.__webglMultisampledFramebuffer );\n\n\t\t\tif ( renderTargetProperties.__webglColorRenderbuffer ) {\n\n\t\t\t\tfor ( let i = 0; i < renderTargetProperties.__webglColorRenderbuffer.length; i ++ ) {\n\n\t\t\t\t\tif ( renderTargetProperties.__webglColorRenderbuffer[ i ] ) _gl.deleteRenderbuffer( renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( renderTargetProperties.__webglDepthRenderbuffer ) _gl.deleteRenderbuffer( renderTargetProperties.__webglDepthRenderbuffer );\n\n\t\t}\n\n\t\tconst textures = renderTarget.textures;\n\n\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\tconst attachmentProperties = properties.get( textures[ i ] );\n\n\t\t\tif ( attachmentProperties.__webglTexture ) {\n\n\t\t\t\t_gl.deleteTexture( attachmentProperties.__webglTexture );\n\n\t\t\t\tinfo.memory.textures --;\n\n\t\t\t}\n\n\t\t\tproperties.remove( textures[ i ] );\n\n\t\t}\n\n\t\tproperties.remove( renderTarget );\n\n\t}\n\n\t//\n\n\tlet textureUnits = 0;\n\n\tfunction resetTextureUnits() {\n\n\t\ttextureUnits = 0;\n\n\t}\n\n\tfunction allocateTextureUnit() {\n\n\t\tconst textureUnit = textureUnits;\n\n\t\tif ( textureUnit >= capabilities.maxTextures ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLTextures: Trying to use ' + textureUnit + ' texture units while this GPU supports only ' + capabilities.maxTextures );\n\n\t\t}\n\n\t\ttextureUnits += 1;\n\n\t\treturn textureUnit;\n\n\t}\n\n\tfunction getTextureCacheKey( texture ) {\n\n\t\tconst array = [];\n\n\t\tarray.push( texture.wrapS );\n\t\tarray.push( texture.wrapT );\n\t\tarray.push( texture.wrapR || 0 );\n\t\tarray.push( texture.magFilter );\n\t\tarray.push( texture.minFilter );\n\t\tarray.push( texture.anisotropy );\n\t\tarray.push( texture.internalFormat );\n\t\tarray.push( texture.format );\n\t\tarray.push( texture.type );\n\t\tarray.push( texture.generateMipmaps );\n\t\tarray.push( texture.premultiplyAlpha );\n\t\tarray.push( texture.flipY );\n\t\tarray.push( texture.unpackAlignment );\n\t\tarray.push( texture.colorSpace );\n\n\t\treturn array.join();\n\n\t}\n\n\t//\n\n\tfunction setTexture2D( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.isVideoTexture ) updateVideoTexture( texture );\n\n\t\tif ( texture.isRenderTargetTexture === false && texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tconst image = texture.image;\n\n\t\t\tif ( image === null ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture marked for update but no image data found.' );\n\n\t\t\t} else if ( image.complete === false ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture marked for update but image is incomplete' );\n\n\t\t\t} else {\n\n\t\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_2D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tfunction setTexture2DArray( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_2D_ARRAY, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tfunction setTexture3D( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_3D, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tfunction setTextureCube( texture, slot ) {\n\n\t\tconst textureProperties = properties.get( texture );\n\n\t\tif ( texture.version > 0 && textureProperties.__version !== texture.version ) {\n\n\t\t\tuploadCubeTexture( textureProperties, texture, slot );\n\t\t\treturn;\n\n\t\t}\n\n\t\tstate.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t}\n\n\tconst wrappingToGL = {\n\t\t[ RepeatWrapping ]: _gl.REPEAT,\n\t\t[ ClampToEdgeWrapping ]: _gl.CLAMP_TO_EDGE,\n\t\t[ MirroredRepeatWrapping ]: _gl.MIRRORED_REPEAT\n\t};\n\n\tconst filterToGL = {\n\t\t[ NearestFilter ]: _gl.NEAREST,\n\t\t[ NearestMipmapNearestFilter ]: _gl.NEAREST_MIPMAP_NEAREST,\n\t\t[ NearestMipmapLinearFilter ]: _gl.NEAREST_MIPMAP_LINEAR,\n\n\t\t[ LinearFilter ]: _gl.LINEAR,\n\t\t[ LinearMipmapNearestFilter ]: _gl.LINEAR_MIPMAP_NEAREST,\n\t\t[ LinearMipmapLinearFilter ]: _gl.LINEAR_MIPMAP_LINEAR\n\t};\n\n\tconst compareToGL = {\n\t\t[ NeverCompare ]: _gl.NEVER,\n\t\t[ AlwaysCompare ]: _gl.ALWAYS,\n\t\t[ LessCompare ]: _gl.LESS,\n\t\t[ LessEqualCompare ]: _gl.LEQUAL,\n\t\t[ EqualCompare ]: _gl.EQUAL,\n\t\t[ GreaterEqualCompare ]: _gl.GEQUAL,\n\t\t[ GreaterCompare ]: _gl.GREATER,\n\t\t[ NotEqualCompare ]: _gl.NOTEQUAL\n\t};\n\n\tfunction setTextureParameters( textureType, texture ) {\n\n\t\tif ( texture.type === FloatType && extensions.has( 'OES_texture_float_linear' ) === false &&\n\t\t\t( texture.magFilter === LinearFilter || texture.magFilter === LinearMipmapNearestFilter || texture.magFilter === NearestMipmapLinearFilter || texture.magFilter === LinearMipmapLinearFilter ||\n\t\t\ttexture.minFilter === LinearFilter || texture.minFilter === LinearMipmapNearestFilter || texture.minFilter === NearestMipmapLinearFilter || texture.minFilter === LinearMipmapLinearFilter ) ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.' );\n\n\t\t}\n\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_WRAP_S, wrappingToGL[ texture.wrapS ] );\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_WRAP_T, wrappingToGL[ texture.wrapT ] );\n\n\t\tif ( textureType === _gl.TEXTURE_3D || textureType === _gl.TEXTURE_2D_ARRAY ) {\n\n\t\t\t_gl.texParameteri( textureType, _gl.TEXTURE_WRAP_R, wrappingToGL[ texture.wrapR ] );\n\n\t\t}\n\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_MAG_FILTER, filterToGL[ texture.magFilter ] );\n\t\t_gl.texParameteri( textureType, _gl.TEXTURE_MIN_FILTER, filterToGL[ texture.minFilter ] );\n\n\t\tif ( texture.compareFunction ) {\n\n\t\t\t_gl.texParameteri( textureType, _gl.TEXTURE_COMPARE_MODE, _gl.COMPARE_REF_TO_TEXTURE );\n\t\t\t_gl.texParameteri( textureType, _gl.TEXTURE_COMPARE_FUNC, compareToGL[ texture.compareFunction ] );\n\n\t\t}\n\n\t\tif ( extensions.has( 'EXT_texture_filter_anisotropic' ) === true ) {\n\n\t\t\tif ( texture.magFilter === NearestFilter ) return;\n\t\t\tif ( texture.minFilter !== NearestMipmapLinearFilter && texture.minFilter !== LinearMipmapLinearFilter ) return;\n\t\t\tif ( texture.type === FloatType && extensions.has( 'OES_texture_float_linear' ) === false ) return; // verify extension\n\n\t\t\tif ( texture.anisotropy > 1 || properties.get( texture ).__currentAnisotropy ) {\n\n\t\t\t\tconst extension = extensions.get( 'EXT_texture_filter_anisotropic' );\n\t\t\t\t_gl.texParameterf( textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min( texture.anisotropy, capabilities.getMaxAnisotropy() ) );\n\t\t\t\tproperties.get( texture ).__currentAnisotropy = texture.anisotropy;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction initTexture( textureProperties, texture ) {\n\n\t\tlet forceUpload = false;\n\n\t\tif ( textureProperties.__webglInit === undefined ) {\n\n\t\t\ttextureProperties.__webglInit = true;\n\n\t\t\ttexture.addEventListener( 'dispose', onTextureDispose );\n\n\t\t}\n\n\t\t// create Source <-> WebGLTextures mapping if necessary\n\n\t\tconst source = texture.source;\n\t\tlet webglTextures = _sources.get( source );\n\n\t\tif ( webglTextures === undefined ) {\n\n\t\t\twebglTextures = {};\n\t\t\t_sources.set( source, webglTextures );\n\n\t\t}\n\n\t\t// check if there is already a WebGLTexture object for the given texture parameters\n\n\t\tconst textureCacheKey = getTextureCacheKey( texture );\n\n\t\tif ( textureCacheKey !== textureProperties.__cacheKey ) {\n\n\t\t\t// if not, create a new instance of WebGLTexture\n\n\t\t\tif ( webglTextures[ textureCacheKey ] === undefined ) {\n\n\t\t\t\t// create new entry\n\n\t\t\t\twebglTextures[ textureCacheKey ] = {\n\t\t\t\t\ttexture: _gl.createTexture(),\n\t\t\t\t\tusedTimes: 0\n\t\t\t\t};\n\n\t\t\t\tinfo.memory.textures ++;\n\n\t\t\t\t// when a new instance of WebGLTexture was created, a texture upload is required\n\t\t\t\t// even if the image contents are identical\n\n\t\t\t\tforceUpload = true;\n\n\t\t\t}\n\n\t\t\twebglTextures[ textureCacheKey ].usedTimes ++;\n\n\t\t\t// every time the texture cache key changes, it's necessary to check if an instance of\n\t\t\t// WebGLTexture can be deleted in order to avoid a memory leak.\n\n\t\t\tconst webglTexture = webglTextures[ textureProperties.__cacheKey ];\n\n\t\t\tif ( webglTexture !== undefined ) {\n\n\t\t\t\twebglTextures[ textureProperties.__cacheKey ].usedTimes --;\n\n\t\t\t\tif ( webglTexture.usedTimes === 0 ) {\n\n\t\t\t\t\tdeleteTexture( texture );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// store references to cache key and WebGLTexture object\n\n\t\t\ttextureProperties.__cacheKey = textureCacheKey;\n\t\t\ttextureProperties.__webglTexture = webglTextures[ textureCacheKey ].texture;\n\n\t\t}\n\n\t\treturn forceUpload;\n\n\t}\n\n\tfunction uploadTexture( textureProperties, texture, slot ) {\n\n\t\tlet textureType = _gl.TEXTURE_2D;\n\n\t\tif ( texture.isDataArrayTexture || texture.isCompressedArrayTexture ) textureType = _gl.TEXTURE_2D_ARRAY;\n\t\tif ( texture.isData3DTexture ) textureType = _gl.TEXTURE_3D;\n\n\t\tconst forceUpload = initTexture( textureProperties, texture );\n\t\tconst source = texture.source;\n\n\t\tstate.bindTexture( textureType, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t\tconst sourceProperties = properties.get( source );\n\n\t\tif ( source.version !== sourceProperties.__version || forceUpload === true ) {\n\n\t\t\tstate.activeTexture( _gl.TEXTURE0 + slot );\n\n\t\t\tconst workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace );\n\t\t\tconst texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries( texture.colorSpace );\n\t\t\tconst unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL;\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion );\n\n\t\t\tlet image = resizeImage( texture.image, false, capabilities.maxTextureSize );\n\t\t\timage = verifyColorSpace( texture, image );\n\n\t\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\n\t\t\tconst glType = utils.convert( texture.type );\n\t\t\tlet glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace, texture.isVideoTexture );\n\n\t\t\tsetTextureParameters( textureType, texture );\n\n\t\t\tlet mipmap;\n\t\t\tconst mipmaps = texture.mipmaps;\n\n\t\t\tconst useTexStorage = ( texture.isVideoTexture !== true );\n\t\t\tconst allocateMemory = ( sourceProperties.__version === undefined ) || ( forceUpload === true );\n\t\t\tconst dataReady = source.dataReady;\n\t\t\tconst levels = getMipLevels( texture, image );\n\n\t\t\tif ( texture.isDepthTexture ) {\n\n\t\t\t\tglInternalFormat = getInternalDepthFormat( texture.format === DepthStencilFormat, texture.type );\n\n\t\t\t\t//\n\n\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, 1, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, null );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isDataTexture ) {\n\n\t\t\t\t// use manually created mipmaps if available\n\t\t\t\t// if there are no manual mipmaps\n\t\t\t\t// set 0 level mipmap and then use GL to generate other mipmap levels\n\n\t\t\t\tif ( mipmaps.length > 0 ) {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.generateMipmaps = false;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, 0, 0, 0, image.width, image.height, glFormat, glType, image.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, image.width, image.height, 0, glFormat, glType, image.data );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isCompressedTexture ) {\n\n\t\t\t\tif ( texture.isCompressedArrayTexture ) {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage3D( _gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height, image.depth );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\t\tif ( texture.layerUpdates.size > 0 ) {\n\n\t\t\t\t\t\t\t\t\t\t\tconst layerByteLength = getByteLength( mipmap.width, mipmap.height, texture.format, texture.type );\n\n\t\t\t\t\t\t\t\t\t\t\tfor ( const layerIndex of texture.layerUpdates ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\tconst layerData = mipmap.data.subarray(\n\t\t\t\t\t\t\t\t\t\t\t\t\tlayerIndex * layerByteLength / mipmap.data.BYTES_PER_ELEMENT,\n\t\t\t\t\t\t\t\t\t\t\t\t\t( layerIndex + 1 ) * layerByteLength / mipmap.data.BYTES_PER_ELEMENT\n\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage3D( _gl.TEXTURE_2D_ARRAY, i, 0, 0, layerIndex, mipmap.width, mipmap.height, 1, glFormat, layerData, 0, 0 );\n\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\ttexture.clearLayerUpdates();\n\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage3D( _gl.TEXTURE_2D_ARRAY, i, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, mipmap.data, 0, 0 );\n\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tstate.compressedTexImage3D( _gl.TEXTURE_2D_ARRAY, i, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, mipmap.data, 0, 0 );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_2D_ARRAY, i, 0, 0, 0, mipmap.width, mipmap.height, image.depth, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage3D( _gl.TEXTURE_2D_ARRAY, i, glInternalFormat, mipmap.width, mipmap.height, image.depth, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, mipmaps[ 0 ].width, mipmaps[ 0 ].height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage2D( _gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data );\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tstate.compressedTexImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()' );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, i, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isDataArrayTexture ) {\n\n\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage3D( _gl.TEXTURE_2D_ARRAY, levels, glInternalFormat, image.width, image.height, image.depth );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\tif ( texture.layerUpdates.size > 0 ) {\n\n\t\t\t\t\t\t\tconst layerByteLength = getByteLength( image.width, image.height, texture.format, texture.type );\n\n\t\t\t\t\t\t\tfor ( const layerIndex of texture.layerUpdates ) {\n\n\t\t\t\t\t\t\t\tconst layerData = image.data.subarray(\n\t\t\t\t\t\t\t\t\tlayerIndex * layerByteLength / image.data.BYTES_PER_ELEMENT,\n\t\t\t\t\t\t\t\t\t( layerIndex + 1 ) * layerByteLength / image.data.BYTES_PER_ELEMENT\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_2D_ARRAY, 0, 0, 0, layerIndex, image.width, image.height, 1, glFormat, glType, layerData );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttexture.clearLayerUpdates();\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_2D_ARRAY, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tstate.texImage3D( _gl.TEXTURE_2D_ARRAY, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data );\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isData3DTexture ) {\n\n\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\tstate.texStorage3D( _gl.TEXTURE_3D, levels, glInternalFormat, image.width, image.height, image.depth );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\tstate.texSubImage3D( _gl.TEXTURE_3D, 0, 0, 0, 0, image.width, image.height, image.depth, glFormat, glType, image.data );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tstate.texImage3D( _gl.TEXTURE_3D, 0, glInternalFormat, image.width, image.height, image.depth, 0, glFormat, glType, image.data );\n\n\t\t\t\t}\n\n\t\t\t} else if ( texture.isFramebufferTexture ) {\n\n\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tlet width = image.width, height = image.height;\n\n\t\t\t\t\t\tfor ( let i = 0; i < levels; i ++ ) {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, width, height, 0, glFormat, glType, null );\n\n\t\t\t\t\t\t\twidth >>= 1;\n\t\t\t\t\t\t\theight >>= 1;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// regular Texture (image, video, canvas)\n\n\t\t\t\t// use manually created mipmaps if available\n\t\t\t\t// if there are no manual mipmaps\n\t\t\t\t// set 0 level mipmap and then use GL to generate other mipmap levels\n\n\t\t\t\tif ( mipmaps.length > 0 ) {\n\n\t\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t\tconst dimensions = getDimensions( mipmaps[ 0 ] );\n\n\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, dimensions.width, dimensions.height );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfor ( let i = 0, il = mipmaps.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tmipmap = mipmaps[ i ];\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, i, 0, 0, glFormat, glType, mipmap );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, i, glInternalFormat, glFormat, glType, mipmap );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.generateMipmaps = false;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\tif ( allocateMemory ) {\n\n\t\t\t\t\t\t\tconst dimensions = getDimensions( image );\n\n\t\t\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_2D, levels, glInternalFormat, dimensions.width, dimensions.height );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_2D, 0, 0, 0, glFormat, glType, image );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_2D, 0, glInternalFormat, glFormat, glType, image );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tgenerateMipmap( textureType );\n\n\t\t\t}\n\n\t\t\tsourceProperties.__version = source.version;\n\n\t\t\tif ( texture.onUpdate ) texture.onUpdate( texture );\n\n\t\t}\n\n\t\ttextureProperties.__version = texture.version;\n\n\t}\n\n\tfunction uploadCubeTexture( textureProperties, texture, slot ) {\n\n\t\tif ( texture.image.length !== 6 ) return;\n\n\t\tconst forceUpload = initTexture( textureProperties, texture );\n\t\tconst source = texture.source;\n\n\t\tstate.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture, _gl.TEXTURE0 + slot );\n\n\t\tconst sourceProperties = properties.get( source );\n\n\t\tif ( source.version !== sourceProperties.__version || forceUpload === true ) {\n\n\t\t\tstate.activeTexture( _gl.TEXTURE0 + slot );\n\n\t\t\tconst workingPrimaries = ColorManagement.getPrimaries( ColorManagement.workingColorSpace );\n\t\t\tconst texturePrimaries = texture.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries( texture.colorSpace );\n\t\t\tconst unpackConversion = texture.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries ? _gl.NONE : _gl.BROWSER_DEFAULT_WEBGL;\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion );\n\n\t\t\tconst isCompressed = ( texture.isCompressedTexture || texture.image[ 0 ].isCompressedTexture );\n\t\t\tconst isDataTexture = ( texture.image[ 0 ] && texture.image[ 0 ].isDataTexture );\n\n\t\t\tconst cubeImage = [];\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( ! isCompressed && ! isDataTexture ) {\n\n\t\t\t\t\tcubeImage[ i ] = resizeImage( texture.image[ i ], true, capabilities.maxCubemapSize );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tcubeImage[ i ] = isDataTexture ? texture.image[ i ].image : texture.image[ i ];\n\n\t\t\t\t}\n\n\t\t\t\tcubeImage[ i ] = verifyColorSpace( texture, cubeImage[ i ] );\n\n\t\t\t}\n\n\t\t\tconst image = cubeImage[ 0 ],\n\t\t\t\tglFormat = utils.convert( texture.format, texture.colorSpace ),\n\t\t\t\tglType = utils.convert( texture.type ),\n\t\t\t\tglInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace );\n\n\t\t\tconst useTexStorage = ( texture.isVideoTexture !== true );\n\t\t\tconst allocateMemory = ( sourceProperties.__version === undefined ) || ( forceUpload === true );\n\t\t\tconst dataReady = source.dataReady;\n\t\t\tlet levels = getMipLevels( texture, image );\n\n\t\t\tsetTextureParameters( _gl.TEXTURE_CUBE_MAP, texture );\n\n\t\t\tlet mipmaps;\n\n\t\t\tif ( isCompressed ) {\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, image.width, image.height );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tmipmaps = cubeImage[ i ].mipmaps;\n\n\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\n\t\t\t\t\t\tif ( texture.format !== RGBAFormat ) {\n\n\t\t\t\t\t\t\tif ( glFormat !== null ) {\n\n\t\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\t\tstate.compressedTexSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, mipmap.data );\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\tstate.compressedTexImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()' );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, 0, 0, mipmap.width, mipmap.height, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glInternalFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tmipmaps = texture.mipmaps;\n\n\t\t\t\tif ( useTexStorage && allocateMemory ) {\n\n\t\t\t\t\t// TODO: Uniformly handle mipmap definitions\n\t\t\t\t\t// Normal textures and compressed cube textures define base level + mips with their mipmap array\n\t\t\t\t\t// Uncompressed cube textures use their mipmap array only for mips (no base level)\n\n\t\t\t\t\tif ( mipmaps.length > 0 ) levels ++;\n\n\t\t\t\t\tconst dimensions = getDimensions( cubeImage[ 0 ] );\n\n\t\t\t\t\tstate.texStorage2D( _gl.TEXTURE_CUBE_MAP, levels, glInternalFormat, dimensions.width, dimensions.height );\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tif ( isDataTexture ) {\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 0, 0, cubeImage[ i ].width, cubeImage[ i ].height, glFormat, glType, cubeImage[ i ].data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, cubeImage[ i ].width, cubeImage[ i ].height, 0, glFormat, glType, cubeImage[ i ].data );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\t\t\t\t\t\t\tconst mipmapImage = mipmap.image[ i ].image;\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, 0, 0, mipmapImage.width, mipmapImage.height, glFormat, glType, mipmapImage.data );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, mipmapImage.width, mipmapImage.height, 0, glFormat, glType, mipmapImage.data );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, 0, 0, glFormat, glType, cubeImage[ i ] );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glInternalFormat, glFormat, glType, cubeImage[ i ] );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor ( let j = 0; j < mipmaps.length; j ++ ) {\n\n\t\t\t\t\t\t\tconst mipmap = mipmaps[ j ];\n\n\t\t\t\t\t\t\tif ( useTexStorage ) {\n\n\t\t\t\t\t\t\t\tif ( dataReady ) {\n\n\t\t\t\t\t\t\t\t\tstate.texSubImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, 0, 0, glFormat, glType, mipmap.image[ i ] );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tstate.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j + 1, glInternalFormat, glFormat, glType, mipmap.image[ i ] );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\t// We assume images for cube map have the same size.\n\t\t\t\tgenerateMipmap( _gl.TEXTURE_CUBE_MAP );\n\n\t\t\t}\n\n\t\t\tsourceProperties.__version = source.version;\n\n\t\t\tif ( texture.onUpdate ) texture.onUpdate( texture );\n\n\t\t}\n\n\t\ttextureProperties.__version = texture.version;\n\n\t}\n\n\t// Render targets\n\n\t// Setup storage for target texture and bind it to correct framebuffer\n\tfunction setupFrameBufferTexture( framebuffer, renderTarget, texture, attachment, textureTarget, level ) {\n\n\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\t\tconst glType = utils.convert( texture.type );\n\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace );\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\tif ( ! renderTargetProperties.__hasExternalTextures ) {\n\n\t\t\tconst width = Math.max( 1, renderTarget.width >> level );\n\t\t\tconst height = Math.max( 1, renderTarget.height >> level );\n\n\t\t\tif ( textureTarget === _gl.TEXTURE_3D || textureTarget === _gl.TEXTURE_2D_ARRAY ) {\n\n\t\t\t\tstate.texImage3D( textureTarget, level, glInternalFormat, width, height, renderTarget.depth, 0, glFormat, glType, null );\n\n\t\t\t} else {\n\n\t\t\t\tstate.texImage2D( textureTarget, level, glInternalFormat, width, height, 0, glFormat, glType, null );\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( _gl.FRAMEBUFFER, attachment, textureTarget, properties.get( texture ).__webglTexture, 0, getRenderTargetSamples( renderTarget ) );\n\n\t\t} else if ( textureTarget === _gl.TEXTURE_2D || ( textureTarget >= _gl.TEXTURE_CUBE_MAP_POSITIVE_X && textureTarget <= _gl.TEXTURE_CUBE_MAP_NEGATIVE_Z ) ) { // see #24753\n\n\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, attachment, textureTarget, properties.get( texture ).__webglTexture, level );\n\n\t\t}\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\n\t}\n\n\t// Setup storage for internal depth/stencil buffers and bind to correct framebuffer\n\tfunction setupRenderBufferStorage( renderbuffer, renderTarget, isMultisample ) {\n\n\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbuffer );\n\n\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\t// retrieve the depth attachment types\n\t\t\tconst depthTexture = renderTarget.depthTexture;\n\t\t\tconst depthType = depthTexture && depthTexture.isDepthTexture ? depthTexture.type : null;\n\t\t\tconst glInternalFormat = getInternalDepthFormat( renderTarget.stencilBuffer, depthType );\n\t\t\tconst glAttachmentType = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\n\t\t\t// set up the attachment\n\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\t\t\tconst isUseMultisampledRTT = useMultisampledRTT( renderTarget );\n\t\t\tif ( isUseMultisampledRTT ) {\n\n\t\t\t\tmultisampledRTTExt.renderbufferStorageMultisampleEXT( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t} else if ( isMultisample ) {\n\n\t\t\t\t_gl.renderbufferStorageMultisample( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.renderbufferStorage( _gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t}\n\n\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, glAttachmentType, _gl.RENDERBUFFER, renderbuffer );\n\n\t\t} else {\n\n\t\t\tconst textures = renderTarget.textures;\n\n\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\tconst texture = textures[ i ];\n\n\t\t\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\t\t\t\tconst glType = utils.convert( texture.type );\n\t\t\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace );\n\t\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\t\t\tif ( isMultisample && useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\t\t_gl.renderbufferStorageMultisample( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t} else if ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\t\tmultisampledRTTExt.renderbufferStorageMultisampleEXT( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_gl.renderbufferStorage( _gl.RENDERBUFFER, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, null );\n\n\t}\n\n\t// Setup resources for a Depth Texture for a FBO (needs an extension)\n\tfunction setupDepthTexture( framebuffer, renderTarget ) {\n\n\t\tconst isCube = ( renderTarget && renderTarget.isWebGLCubeRenderTarget );\n\t\tif ( isCube ) throw new Error( 'Depth Texture with cube render targets is not supported' );\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\tif ( ! ( renderTarget.depthTexture && renderTarget.depthTexture.isDepthTexture ) ) {\n\n\t\t\tthrow new Error( 'renderTarget.depthTexture must be an instance of THREE.DepthTexture' );\n\n\t\t}\n\n\t\t// upload an empty depth texture with framebuffer size\n\t\tif ( ! properties.get( renderTarget.depthTexture ).__webglTexture ||\n\t\t\t\trenderTarget.depthTexture.image.width !== renderTarget.width ||\n\t\t\t\trenderTarget.depthTexture.image.height !== renderTarget.height ) {\n\n\t\t\trenderTarget.depthTexture.image.width = renderTarget.width;\n\t\t\trenderTarget.depthTexture.image.height = renderTarget.height;\n\t\t\trenderTarget.depthTexture.needsUpdate = true;\n\n\t\t}\n\n\t\tsetTexture2D( renderTarget.depthTexture, 0 );\n\n\t\tconst webglDepthTexture = properties.get( renderTarget.depthTexture ).__webglTexture;\n\t\tconst samples = getRenderTargetSamples( renderTarget );\n\n\t\tif ( renderTarget.depthTexture.format === DepthFormat ) {\n\n\t\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( _gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0 );\n\n\t\t\t}\n\n\t\t} else if ( renderTarget.depthTexture.format === DepthStencilFormat ) {\n\n\t\t\tif ( useMultisampledRTT( renderTarget ) ) {\n\n\t\t\t\tmultisampledRTTExt.framebufferTexture2DMultisampleEXT( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0, samples );\n\n\t\t\t} else {\n\n\t\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.TEXTURE_2D, webglDepthTexture, 0 );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthrow new Error( 'Unknown depthTexture format' );\n\n\t\t}\n\n\t}\n\n\t// Setup GL resources for a non-texture depth buffer\n\tfunction setupDepthRenderbuffer( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst isCube = ( renderTarget.isWebGLCubeRenderTarget === true );\n\n\t\tif ( renderTarget.depthTexture && ! renderTargetProperties.__autoAllocateDepthBuffer ) {\n\n\t\t\tif ( isCube ) throw new Error( 'target.depthTexture not supported in Cube render targets' );\n\n\t\t\tsetupDepthTexture( renderTargetProperties.__webglFramebuffer, renderTarget );\n\n\t\t} else {\n\n\t\t\tif ( isCube ) {\n\n\t\t\t\trenderTargetProperties.__webglDepthbuffer = [];\n\n\t\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer[ i ] );\n\t\t\t\t\trenderTargetProperties.__webglDepthbuffer[ i ] = _gl.createRenderbuffer();\n\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer[ i ], renderTarget, false );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\t\t\t\trenderTargetProperties.__webglDepthbuffer = _gl.createRenderbuffer();\n\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthbuffer, renderTarget, false );\n\n\t\t\t}\n\n\t\t}\n\n\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\n\t}\n\n\t// rebind framebuffer with external textures\n\tfunction rebindTextures( renderTarget, colorTexture, depthTexture ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\tif ( colorTexture !== undefined ) {\n\n\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, renderTarget.texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, 0 );\n\n\t\t}\n\n\t\tif ( depthTexture !== undefined ) {\n\n\t\t\tsetupDepthRenderbuffer( renderTarget );\n\n\t\t}\n\n\t}\n\n\t// Set up GL resources for the render target\n\tfunction setupRenderTarget( renderTarget ) {\n\n\t\tconst texture = renderTarget.texture;\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\tconst textureProperties = properties.get( texture );\n\n\t\trenderTarget.addEventListener( 'dispose', onRenderTargetDispose );\n\n\t\tconst textures = renderTarget.textures;\n\n\t\tconst isCube = ( renderTarget.isWebGLCubeRenderTarget === true );\n\t\tconst isMultipleRenderTargets = ( textures.length > 1 );\n\n\t\tif ( ! isMultipleRenderTargets ) {\n\n\t\t\tif ( textureProperties.__webglTexture === undefined ) {\n\n\t\t\t\ttextureProperties.__webglTexture = _gl.createTexture();\n\n\t\t\t}\n\n\t\t\ttextureProperties.__version = texture.version;\n\t\t\tinfo.memory.textures ++;\n\n\t\t}\n\n\t\t// Setup framebuffer\n\n\t\tif ( isCube ) {\n\n\t\t\trenderTargetProperties.__webglFramebuffer = [];\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ i ] = [];\n\n\t\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ i ][ level ] = _gl.createFramebuffer();\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ i ] = _gl.createFramebuffer();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\trenderTargetProperties.__webglFramebuffer = [];\n\n\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\trenderTargetProperties.__webglFramebuffer[ level ] = _gl.createFramebuffer();\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\trenderTargetProperties.__webglFramebuffer = _gl.createFramebuffer();\n\n\t\t\t}\n\n\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst attachmentProperties = properties.get( textures[ i ] );\n\n\t\t\t\t\tif ( attachmentProperties.__webglTexture === undefined ) {\n\n\t\t\t\t\t\tattachmentProperties.__webglTexture = _gl.createTexture();\n\n\t\t\t\t\t\tinfo.memory.textures ++;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( ( renderTarget.samples > 0 ) && useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\trenderTargetProperties.__webglMultisampledFramebuffer = _gl.createFramebuffer();\n\t\t\t\trenderTargetProperties.__webglColorRenderbuffer = [];\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\n\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\tconst texture = textures[ i ];\n\t\t\t\t\trenderTargetProperties.__webglColorRenderbuffer[ i ] = _gl.createRenderbuffer();\n\n\t\t\t\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t\tconst glFormat = utils.convert( texture.format, texture.colorSpace );\n\t\t\t\t\tconst glType = utils.convert( texture.type );\n\t\t\t\t\tconst glInternalFormat = getInternalFormat( texture.internalFormat, glFormat, glType, texture.colorSpace, renderTarget.isXRRenderTarget === true );\n\t\t\t\t\tconst samples = getRenderTargetSamples( renderTarget );\n\t\t\t\t\t_gl.renderbufferStorageMultisample( _gl.RENDERBUFFER, samples, glInternalFormat, renderTarget.width, renderTarget.height );\n\n\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t}\n\n\t\t\t\t_gl.bindRenderbuffer( _gl.RENDERBUFFER, null );\n\n\t\t\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\t\t\trenderTargetProperties.__webglDepthRenderbuffer = _gl.createRenderbuffer();\n\t\t\t\t\tsetupRenderBufferStorage( renderTargetProperties.__webglDepthRenderbuffer, renderTarget, true );\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Setup color buffer\n\n\t\tif ( isCube ) {\n\n\t\t\tstate.bindTexture( _gl.TEXTURE_CUBE_MAP, textureProperties.__webglTexture );\n\t\t\tsetTextureParameters( _gl.TEXTURE_CUBE_MAP, texture );\n\n\t\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ][ level ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, level );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ i ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tgenerateMipmap( _gl.TEXTURE_CUBE_MAP );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t} else if ( isMultipleRenderTargets ) {\n\n\t\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\t\tconst attachment = textures[ i ];\n\t\t\t\tconst attachmentProperties = properties.get( attachment );\n\n\t\t\t\tstate.bindTexture( _gl.TEXTURE_2D, attachmentProperties.__webglTexture );\n\t\t\t\tsetTextureParameters( _gl.TEXTURE_2D, attachment );\n\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, attachment, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, 0 );\n\n\t\t\t\tif ( textureNeedsGenerateMipmaps( attachment ) ) {\n\n\t\t\t\t\tgenerateMipmap( _gl.TEXTURE_2D );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t} else {\n\n\t\t\tlet glTextureType = _gl.TEXTURE_2D;\n\n\t\t\tif ( renderTarget.isWebGL3DRenderTarget || renderTarget.isWebGLArrayRenderTarget ) {\n\n\t\t\t\tglTextureType = renderTarget.isWebGL3DRenderTarget ? _gl.TEXTURE_3D : _gl.TEXTURE_2D_ARRAY;\n\n\t\t\t}\n\n\t\t\tstate.bindTexture( glTextureType, textureProperties.__webglTexture );\n\t\t\tsetTextureParameters( glTextureType, texture );\n\n\t\t\tif ( texture.mipmaps && texture.mipmaps.length > 0 ) {\n\n\t\t\t\tfor ( let level = 0; level < texture.mipmaps.length; level ++ ) {\n\n\t\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer[ level ], renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, level );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tsetupFrameBufferTexture( renderTargetProperties.__webglFramebuffer, renderTarget, texture, _gl.COLOR_ATTACHMENT0, glTextureType, 0 );\n\n\t\t\t}\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tgenerateMipmap( glTextureType );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t}\n\n\t\t// Setup depth and stencil buffers\n\n\t\tif ( renderTarget.depthBuffer ) {\n\n\t\t\tsetupDepthRenderbuffer( renderTarget );\n\n\t\t}\n\n\t}\n\n\tfunction updateRenderTargetMipmap( renderTarget ) {\n\n\t\tconst textures = renderTarget.textures;\n\n\t\tfor ( let i = 0, il = textures.length; i < il; i ++ ) {\n\n\t\t\tconst texture = textures[ i ];\n\n\t\t\tif ( textureNeedsGenerateMipmaps( texture ) ) {\n\n\t\t\t\tconst target = renderTarget.isWebGLCubeRenderTarget ? _gl.TEXTURE_CUBE_MAP : _gl.TEXTURE_2D;\n\t\t\t\tconst webglTexture = properties.get( texture ).__webglTexture;\n\n\t\t\t\tstate.bindTexture( target, webglTexture );\n\t\t\t\tgenerateMipmap( target );\n\t\t\t\tstate.unbindTexture();\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tconst invalidationArrayRead = [];\n\tconst invalidationArrayDraw = [];\n\n\tfunction updateMultisampleRenderTarget( renderTarget ) {\n\n\t\tif ( renderTarget.samples > 0 ) {\n\n\t\t\tif ( useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\tconst textures = renderTarget.textures;\n\t\t\t\tconst width = renderTarget.width;\n\t\t\t\tconst height = renderTarget.height;\n\t\t\t\tlet mask = _gl.COLOR_BUFFER_BIT;\n\t\t\t\tconst depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\t\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\t\t\tconst isMultipleRenderTargets = ( textures.length > 1 );\n\n\t\t\t\t// If MRT we need to remove FBO attachments\n\t\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, null );\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\t\t\t\t\t\t_gl.framebufferTexture2D( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, null, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\n\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\tif ( renderTarget.resolveDepthBuffer ) {\n\n\t\t\t\t\t\tif ( renderTarget.depthBuffer ) mask |= _gl.DEPTH_BUFFER_BIT;\n\n\t\t\t\t\t\t// resolving stencil is slow with a D3D backend. disable it for all transmission render targets (see #27799)\n\n\t\t\t\t\t\tif ( renderTarget.stencilBuffer && renderTarget.resolveStencilBuffer ) mask |= _gl.STENCIL_BUFFER_BIT;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.READ_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t\t\tconst webglTexture = properties.get( textures[ i ] ).__webglTexture;\n\t\t\t\t\t\t_gl.framebufferTexture2D( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_2D, webglTexture, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t_gl.blitFramebuffer( 0, 0, width, height, 0, 0, width, height, mask, _gl.NEAREST );\n\n\t\t\t\t\tif ( supportsInvalidateFramebuffer === true ) {\n\n\t\t\t\t\t\tinvalidationArrayRead.length = 0;\n\t\t\t\t\t\tinvalidationArrayDraw.length = 0;\n\n\t\t\t\t\t\tinvalidationArrayRead.push( _gl.COLOR_ATTACHMENT0 + i );\n\n\t\t\t\t\t\tif ( renderTarget.depthBuffer && renderTarget.resolveDepthBuffer === false ) {\n\n\t\t\t\t\t\t\tinvalidationArrayRead.push( depthStyle );\n\t\t\t\t\t\t\tinvalidationArrayDraw.push( depthStyle );\n\n\t\t\t\t\t\t\t_gl.invalidateFramebuffer( _gl.DRAW_FRAMEBUFFER, invalidationArrayDraw );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_gl.invalidateFramebuffer( _gl.READ_FRAMEBUFFER, invalidationArrayRead );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.READ_FRAMEBUFFER, null );\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, null );\n\n\t\t\t\t// If MRT since pre-blit we removed the FBO we need to reconstruct the attachments\n\t\t\t\tif ( isMultipleRenderTargets ) {\n\n\t\t\t\t\tfor ( let i = 0; i < textures.length; i ++ ) {\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\t\t\t\t\t\t_gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.RENDERBUFFER, renderTargetProperties.__webglColorRenderbuffer[ i ] );\n\n\t\t\t\t\t\tconst webglTexture = properties.get( textures[ i ] ).__webglTexture;\n\n\t\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, renderTargetProperties.__webglFramebuffer );\n\t\t\t\t\t\t_gl.framebufferTexture2D( _gl.DRAW_FRAMEBUFFER, _gl.COLOR_ATTACHMENT0 + i, _gl.TEXTURE_2D, webglTexture, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tstate.bindFramebuffer( _gl.DRAW_FRAMEBUFFER, renderTargetProperties.__webglMultisampledFramebuffer );\n\n\t\t\t} else {\n\n\t\t\t\tif ( renderTarget.depthBuffer && renderTarget.resolveDepthBuffer === false && supportsInvalidateFramebuffer ) {\n\n\t\t\t\t\tconst depthStyle = renderTarget.stencilBuffer ? _gl.DEPTH_STENCIL_ATTACHMENT : _gl.DEPTH_ATTACHMENT;\n\n\t\t\t\t\t_gl.invalidateFramebuffer( _gl.DRAW_FRAMEBUFFER, [ depthStyle ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tfunction getRenderTargetSamples( renderTarget ) {\n\n\t\treturn Math.min( capabilities.maxSamples, renderTarget.samples );\n\n\t}\n\n\tfunction useMultisampledRTT( renderTarget ) {\n\n\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\treturn renderTarget.samples > 0 && extensions.has( 'WEBGL_multisampled_render_to_texture' ) === true && renderTargetProperties.__useRenderToTexture !== false;\n\n\t}\n\n\tfunction updateVideoTexture( texture ) {\n\n\t\tconst frame = info.render.frame;\n\n\t\t// Check the last frame we updated the VideoTexture\n\n\t\tif ( _videoTextures.get( texture ) !== frame ) {\n\n\t\t\t_videoTextures.set( texture, frame );\n\t\t\ttexture.update();\n\n\t\t}\n\n\t}\n\n\tfunction verifyColorSpace( texture, image ) {\n\n\t\tconst colorSpace = texture.colorSpace;\n\t\tconst format = texture.format;\n\t\tconst type = texture.type;\n\n\t\tif ( texture.isCompressedTexture === true || texture.isVideoTexture === true ) return image;\n\n\t\tif ( colorSpace !== LinearSRGBColorSpace && colorSpace !== NoColorSpace ) {\n\n\t\t\t// sRGB\n\n\t\t\tif ( ColorManagement.getTransfer( colorSpace ) === SRGBTransfer ) {\n\n\t\t\t\t// in WebGL 2 uncompressed textures can only be sRGB encoded if they have the RGBA8 format\n\n\t\t\t\tif ( format !== RGBAFormat || type !== UnsignedByteType ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.' );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( 'THREE.WebGLTextures: Unsupported texture color space:', colorSpace );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn image;\n\n\t}\n\n\tfunction getDimensions( image ) {\n\n\t\tif ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) {\n\n\t\t\t// if intrinsic data are not available, fallback to width/height\n\n\t\t\t_imageDimensions.width = image.naturalWidth || image.width;\n\t\t\t_imageDimensions.height = image.naturalHeight || image.height;\n\n\t\t} else if ( typeof VideoFrame !== 'undefined' && image instanceof VideoFrame ) {\n\n\t\t\t_imageDimensions.width = image.displayWidth;\n\t\t\t_imageDimensions.height = image.displayHeight;\n\n\t\t} else {\n\n\t\t\t_imageDimensions.width = image.width;\n\t\t\t_imageDimensions.height = image.height;\n\n\t\t}\n\n\t\treturn _imageDimensions;\n\n\t}\n\n\t//\n\n\tthis.allocateTextureUnit = allocateTextureUnit;\n\tthis.resetTextureUnits = resetTextureUnits;\n\n\tthis.setTexture2D = setTexture2D;\n\tthis.setTexture2DArray = setTexture2DArray;\n\tthis.setTexture3D = setTexture3D;\n\tthis.setTextureCube = setTextureCube;\n\tthis.rebindTextures = rebindTextures;\n\tthis.setupRenderTarget = setupRenderTarget;\n\tthis.updateRenderTargetMipmap = updateRenderTargetMipmap;\n\tthis.updateMultisampleRenderTarget = updateMultisampleRenderTarget;\n\tthis.setupDepthRenderbuffer = setupDepthRenderbuffer;\n\tthis.setupFrameBufferTexture = setupFrameBufferTexture;\n\tthis.useMultisampledRTT = useMultisampledRTT;\n\n}\n\nfunction WebGLUtils( gl, extensions ) {\n\n\tfunction convert( p, colorSpace = NoColorSpace ) {\n\n\t\tlet extension;\n\n\t\tconst transfer = ColorManagement.getTransfer( colorSpace );\n\n\t\tif ( p === UnsignedByteType ) return gl.UNSIGNED_BYTE;\n\t\tif ( p === UnsignedShort4444Type ) return gl.UNSIGNED_SHORT_4_4_4_4;\n\t\tif ( p === UnsignedShort5551Type ) return gl.UNSIGNED_SHORT_5_5_5_1;\n\t\tif ( p === UnsignedInt5999Type ) return gl.UNSIGNED_INT_5_9_9_9_REV;\n\n\t\tif ( p === ByteType ) return gl.BYTE;\n\t\tif ( p === ShortType ) return gl.SHORT;\n\t\tif ( p === UnsignedShortType ) return gl.UNSIGNED_SHORT;\n\t\tif ( p === IntType ) return gl.INT;\n\t\tif ( p === UnsignedIntType ) return gl.UNSIGNED_INT;\n\t\tif ( p === FloatType ) return gl.FLOAT;\n\t\tif ( p === HalfFloatType ) return gl.HALF_FLOAT;\n\n\t\tif ( p === AlphaFormat ) return gl.ALPHA;\n\t\tif ( p === RGBFormat ) return gl.RGB;\n\t\tif ( p === RGBAFormat ) return gl.RGBA;\n\t\tif ( p === LuminanceFormat ) return gl.LUMINANCE;\n\t\tif ( p === LuminanceAlphaFormat ) return gl.LUMINANCE_ALPHA;\n\t\tif ( p === DepthFormat ) return gl.DEPTH_COMPONENT;\n\t\tif ( p === DepthStencilFormat ) return gl.DEPTH_STENCIL;\n\n\t\t// WebGL2 formats.\n\n\t\tif ( p === RedFormat ) return gl.RED;\n\t\tif ( p === RedIntegerFormat ) return gl.RED_INTEGER;\n\t\tif ( p === RGFormat ) return gl.RG;\n\t\tif ( p === RGIntegerFormat ) return gl.RG_INTEGER;\n\t\tif ( p === RGBAIntegerFormat ) return gl.RGBA_INTEGER;\n\n\t\t// S3TC\n\n\t\tif ( p === RGB_S3TC_DXT1_Format || p === RGBA_S3TC_DXT1_Format || p === RGBA_S3TC_DXT3_Format || p === RGBA_S3TC_DXT5_Format ) {\n\n\t\t\tif ( transfer === SRGBTransfer ) {\n\n\t\t\t\textension = extensions.get( 'WEBGL_compressed_texture_s3tc_srgb' );\n\n\t\t\t\tif ( extension !== null ) {\n\n\t\t\t\t\tif ( p === RGB_S3TC_DXT1_Format ) return extension.COMPRESSED_SRGB_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT1_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT3_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT5_Format ) return extension.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT;\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\textension = extensions.get( 'WEBGL_compressed_texture_s3tc' );\n\n\t\t\t\tif ( extension !== null ) {\n\n\t\t\t\t\tif ( p === RGB_S3TC_DXT1_Format ) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT1_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT3_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT;\n\t\t\t\t\tif ( p === RGBA_S3TC_DXT5_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT;\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// PVRTC\n\n\t\tif ( p === RGB_PVRTC_4BPPV1_Format || p === RGB_PVRTC_2BPPV1_Format || p === RGBA_PVRTC_4BPPV1_Format || p === RGBA_PVRTC_2BPPV1_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_pvrtc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGB_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;\n\t\t\t\tif ( p === RGB_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;\n\t\t\t\tif ( p === RGBA_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;\n\t\t\t\tif ( p === RGBA_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ETC\n\n\t\tif ( p === RGB_ETC1_Format || p === RGB_ETC2_Format || p === RGBA_ETC2_EAC_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_etc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGB_ETC1_Format || p === RGB_ETC2_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ETC2 : extension.COMPRESSED_RGB8_ETC2;\n\t\t\t\tif ( p === RGBA_ETC2_EAC_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC : extension.COMPRESSED_RGBA8_ETC2_EAC;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ASTC\n\n\t\tif ( p === RGBA_ASTC_4x4_Format || p === RGBA_ASTC_5x4_Format || p === RGBA_ASTC_5x5_Format ||\n\t\t\tp === RGBA_ASTC_6x5_Format || p === RGBA_ASTC_6x6_Format || p === RGBA_ASTC_8x5_Format ||\n\t\t\tp === RGBA_ASTC_8x6_Format || p === RGBA_ASTC_8x8_Format || p === RGBA_ASTC_10x5_Format ||\n\t\t\tp === RGBA_ASTC_10x6_Format || p === RGBA_ASTC_10x8_Format || p === RGBA_ASTC_10x10_Format ||\n\t\t\tp === RGBA_ASTC_12x10_Format || p === RGBA_ASTC_12x12_Format ) {\n\n\t\t\textension = extensions.get( 'WEBGL_compressed_texture_astc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_ASTC_4x4_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR : extension.COMPRESSED_RGBA_ASTC_4x4_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_5x4_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR : extension.COMPRESSED_RGBA_ASTC_5x4_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_5x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR : extension.COMPRESSED_RGBA_ASTC_5x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_6x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR : extension.COMPRESSED_RGBA_ASTC_6x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_6x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR : extension.COMPRESSED_RGBA_ASTC_6x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR : extension.COMPRESSED_RGBA_ASTC_8x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR : extension.COMPRESSED_RGBA_ASTC_8x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_8x8_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR : extension.COMPRESSED_RGBA_ASTC_8x8_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x5_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR : extension.COMPRESSED_RGBA_ASTC_10x5_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x6_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR : extension.COMPRESSED_RGBA_ASTC_10x6_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x8_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR : extension.COMPRESSED_RGBA_ASTC_10x8_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_10x10_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR : extension.COMPRESSED_RGBA_ASTC_10x10_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_12x10_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR : extension.COMPRESSED_RGBA_ASTC_12x10_KHR;\n\t\t\t\tif ( p === RGBA_ASTC_12x12_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR : extension.COMPRESSED_RGBA_ASTC_12x12_KHR;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// BPTC\n\n\t\tif ( p === RGBA_BPTC_Format || p === RGB_BPTC_SIGNED_Format || p === RGB_BPTC_UNSIGNED_Format ) {\n\n\t\t\textension = extensions.get( 'EXT_texture_compression_bptc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_BPTC_Format ) return ( transfer === SRGBTransfer ) ? extension.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT : extension.COMPRESSED_RGBA_BPTC_UNORM_EXT;\n\t\t\t\tif ( p === RGB_BPTC_SIGNED_Format ) return extension.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;\n\t\t\t\tif ( p === RGB_BPTC_UNSIGNED_Format ) return extension.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// RGTC\n\n\t\tif ( p === RED_RGTC1_Format || p === SIGNED_RED_RGTC1_Format || p === RED_GREEN_RGTC2_Format || p === SIGNED_RED_GREEN_RGTC2_Format ) {\n\n\t\t\textension = extensions.get( 'EXT_texture_compression_rgtc' );\n\n\t\t\tif ( extension !== null ) {\n\n\t\t\t\tif ( p === RGBA_BPTC_Format ) return extension.COMPRESSED_RED_RGTC1_EXT;\n\t\t\t\tif ( p === SIGNED_RED_RGTC1_Format ) return extension.COMPRESSED_SIGNED_RED_RGTC1_EXT;\n\t\t\t\tif ( p === RED_GREEN_RGTC2_Format ) return extension.COMPRESSED_RED_GREEN_RGTC2_EXT;\n\t\t\t\tif ( p === SIGNED_RED_GREEN_RGTC2_Format ) return extension.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT;\n\n\t\t\t} else {\n\n\t\t\t\treturn null;\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( p === UnsignedInt248Type ) return gl.UNSIGNED_INT_24_8;\n\n\t\t// if \"p\" can't be resolved, assume the user defines a WebGL constant as a string (fallback/workaround for packed RGB formats)\n\n\t\treturn ( gl[ p ] !== undefined ) ? gl[ p ] : null;\n\n\t}\n\n\treturn { convert: convert };\n\n}\n\nclass ArrayCamera extends PerspectiveCamera {\n\n\tconstructor( array = [] ) {\n\n\t\tsuper();\n\n\t\tthis.isArrayCamera = true;\n\n\t\tthis.cameras = array;\n\n\t}\n\n}\n\nclass Group extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isGroup = true;\n\n\t\tthis.type = 'Group';\n\n\t}\n\n}\n\nconst _moveEvent = { type: 'move' };\n\nclass WebXRController {\n\n\tconstructor() {\n\n\t\tthis._targetRay = null;\n\t\tthis._grip = null;\n\t\tthis._hand = null;\n\n\t}\n\n\tgetHandSpace() {\n\n\t\tif ( this._hand === null ) {\n\n\t\t\tthis._hand = new Group();\n\t\t\tthis._hand.matrixAutoUpdate = false;\n\t\t\tthis._hand.visible = false;\n\n\t\t\tthis._hand.joints = {};\n\t\t\tthis._hand.inputState = { pinching: false };\n\n\t\t}\n\n\t\treturn this._hand;\n\n\t}\n\n\tgetTargetRaySpace() {\n\n\t\tif ( this._targetRay === null ) {\n\n\t\t\tthis._targetRay = new Group();\n\t\t\tthis._targetRay.matrixAutoUpdate = false;\n\t\t\tthis._targetRay.visible = false;\n\t\t\tthis._targetRay.hasLinearVelocity = false;\n\t\t\tthis._targetRay.linearVelocity = new Vector3();\n\t\t\tthis._targetRay.hasAngularVelocity = false;\n\t\t\tthis._targetRay.angularVelocity = new Vector3();\n\n\t\t}\n\n\t\treturn this._targetRay;\n\n\t}\n\n\tgetGripSpace() {\n\n\t\tif ( this._grip === null ) {\n\n\t\t\tthis._grip = new Group();\n\t\t\tthis._grip.matrixAutoUpdate = false;\n\t\t\tthis._grip.visible = false;\n\t\t\tthis._grip.hasLinearVelocity = false;\n\t\t\tthis._grip.linearVelocity = new Vector3();\n\t\t\tthis._grip.hasAngularVelocity = false;\n\t\t\tthis._grip.angularVelocity = new Vector3();\n\n\t\t}\n\n\t\treturn this._grip;\n\n\t}\n\n\tdispatchEvent( event ) {\n\n\t\tif ( this._targetRay !== null ) {\n\n\t\t\tthis._targetRay.dispatchEvent( event );\n\n\t\t}\n\n\t\tif ( this._grip !== null ) {\n\n\t\t\tthis._grip.dispatchEvent( event );\n\n\t\t}\n\n\t\tif ( this._hand !== null ) {\n\n\t\t\tthis._hand.dispatchEvent( event );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tconnect( inputSource ) {\n\n\t\tif ( inputSource && inputSource.hand ) {\n\n\t\t\tconst hand = this._hand;\n\n\t\t\tif ( hand ) {\n\n\t\t\t\tfor ( const inputjoint of inputSource.hand.values() ) {\n\n\t\t\t\t\t// Initialize hand with joints when connected\n\t\t\t\t\tthis._getHandJoint( hand, inputjoint );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.dispatchEvent( { type: 'connected', data: inputSource } );\n\n\t\treturn this;\n\n\t}\n\n\tdisconnect( inputSource ) {\n\n\t\tthis.dispatchEvent( { type: 'disconnected', data: inputSource } );\n\n\t\tif ( this._targetRay !== null ) {\n\n\t\t\tthis._targetRay.visible = false;\n\n\t\t}\n\n\t\tif ( this._grip !== null ) {\n\n\t\t\tthis._grip.visible = false;\n\n\t\t}\n\n\t\tif ( this._hand !== null ) {\n\n\t\t\tthis._hand.visible = false;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tupdate( inputSource, frame, referenceSpace ) {\n\n\t\tlet inputPose = null;\n\t\tlet gripPose = null;\n\t\tlet handPose = null;\n\n\t\tconst targetRay = this._targetRay;\n\t\tconst grip = this._grip;\n\t\tconst hand = this._hand;\n\n\t\tif ( inputSource && frame.session.visibilityState !== 'visible-blurred' ) {\n\n\t\t\tif ( hand && inputSource.hand ) {\n\n\t\t\t\thandPose = true;\n\n\t\t\t\tfor ( const inputjoint of inputSource.hand.values() ) {\n\n\t\t\t\t\t// Update the joints groups with the XRJoint poses\n\t\t\t\t\tconst jointPose = frame.getJointPose( inputjoint, referenceSpace );\n\n\t\t\t\t\t// The transform of this joint will be updated with the joint pose on each frame\n\t\t\t\t\tconst joint = this._getHandJoint( hand, inputjoint );\n\n\t\t\t\t\tif ( jointPose !== null ) {\n\n\t\t\t\t\t\tjoint.matrix.fromArray( jointPose.transform.matrix );\n\t\t\t\t\t\tjoint.matrix.decompose( joint.position, joint.rotation, joint.scale );\n\t\t\t\t\t\tjoint.matrixWorldNeedsUpdate = true;\n\t\t\t\t\t\tjoint.jointRadius = jointPose.radius;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tjoint.visible = jointPose !== null;\n\n\t\t\t\t}\n\n\t\t\t\t// Custom events\n\n\t\t\t\t// Check pinchz\n\t\t\t\tconst indexTip = hand.joints[ 'index-finger-tip' ];\n\t\t\t\tconst thumbTip = hand.joints[ 'thumb-tip' ];\n\t\t\t\tconst distance = indexTip.position.distanceTo( thumbTip.position );\n\n\t\t\t\tconst distanceToPinch = 0.02;\n\t\t\t\tconst threshold = 0.005;\n\n\t\t\t\tif ( hand.inputState.pinching && distance > distanceToPinch + threshold ) {\n\n\t\t\t\t\thand.inputState.pinching = false;\n\t\t\t\t\tthis.dispatchEvent( {\n\t\t\t\t\t\ttype: 'pinchend',\n\t\t\t\t\t\thandedness: inputSource.handedness,\n\t\t\t\t\t\ttarget: this\n\t\t\t\t\t} );\n\n\t\t\t\t} else if ( ! hand.inputState.pinching && distance <= distanceToPinch - threshold ) {\n\n\t\t\t\t\thand.inputState.pinching = true;\n\t\t\t\t\tthis.dispatchEvent( {\n\t\t\t\t\t\ttype: 'pinchstart',\n\t\t\t\t\t\thandedness: inputSource.handedness,\n\t\t\t\t\t\ttarget: this\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( grip !== null && inputSource.gripSpace ) {\n\n\t\t\t\t\tgripPose = frame.getPose( inputSource.gripSpace, referenceSpace );\n\n\t\t\t\t\tif ( gripPose !== null ) {\n\n\t\t\t\t\t\tgrip.matrix.fromArray( gripPose.transform.matrix );\n\t\t\t\t\t\tgrip.matrix.decompose( grip.position, grip.rotation, grip.scale );\n\t\t\t\t\t\tgrip.matrixWorldNeedsUpdate = true;\n\n\t\t\t\t\t\tif ( gripPose.linearVelocity ) {\n\n\t\t\t\t\t\t\tgrip.hasLinearVelocity = true;\n\t\t\t\t\t\t\tgrip.linearVelocity.copy( gripPose.linearVelocity );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tgrip.hasLinearVelocity = false;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( gripPose.angularVelocity ) {\n\n\t\t\t\t\t\t\tgrip.hasAngularVelocity = true;\n\t\t\t\t\t\t\tgrip.angularVelocity.copy( gripPose.angularVelocity );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tgrip.hasAngularVelocity = false;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( targetRay !== null ) {\n\n\t\t\t\tinputPose = frame.getPose( inputSource.targetRaySpace, referenceSpace );\n\n\t\t\t\t// Some runtimes (namely Vive Cosmos with Vive OpenXR Runtime) have only grip space and ray space is equal to it\n\t\t\t\tif ( inputPose === null && gripPose !== null ) {\n\n\t\t\t\t\tinputPose = gripPose;\n\n\t\t\t\t}\n\n\t\t\t\tif ( inputPose !== null ) {\n\n\t\t\t\t\ttargetRay.matrix.fromArray( inputPose.transform.matrix );\n\t\t\t\t\ttargetRay.matrix.decompose( targetRay.position, targetRay.rotation, targetRay.scale );\n\t\t\t\t\ttargetRay.matrixWorldNeedsUpdate = true;\n\n\t\t\t\t\tif ( inputPose.linearVelocity ) {\n\n\t\t\t\t\t\ttargetRay.hasLinearVelocity = true;\n\t\t\t\t\t\ttargetRay.linearVelocity.copy( inputPose.linearVelocity );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttargetRay.hasLinearVelocity = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( inputPose.angularVelocity ) {\n\n\t\t\t\t\t\ttargetRay.hasAngularVelocity = true;\n\t\t\t\t\t\ttargetRay.angularVelocity.copy( inputPose.angularVelocity );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttargetRay.hasAngularVelocity = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.dispatchEvent( _moveEvent );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t}\n\n\t\tif ( targetRay !== null ) {\n\n\t\t\ttargetRay.visible = ( inputPose !== null );\n\n\t\t}\n\n\t\tif ( grip !== null ) {\n\n\t\t\tgrip.visible = ( gripPose !== null );\n\n\t\t}\n\n\t\tif ( hand !== null ) {\n\n\t\t\thand.visible = ( handPose !== null );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// private method\n\n\t_getHandJoint( hand, inputjoint ) {\n\n\t\tif ( hand.joints[ inputjoint.jointName ] === undefined ) {\n\n\t\t\tconst joint = new Group();\n\t\t\tjoint.matrixAutoUpdate = false;\n\t\t\tjoint.visible = false;\n\t\t\thand.joints[ inputjoint.jointName ] = joint;\n\n\t\t\thand.add( joint );\n\n\t\t}\n\n\t\treturn hand.joints[ inputjoint.jointName ];\n\n\t}\n\n}\n\nconst _occlusion_vertex = `\nvoid main() {\n\n\tgl_Position = vec4( position, 1.0 );\n\n}`;\n\nconst _occlusion_fragment = `\nuniform sampler2DArray depthColor;\nuniform float depthWidth;\nuniform float depthHeight;\n\nvoid main() {\n\n\tvec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );\n\n\tif ( coord.x >= 1.0 ) {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;\n\n\t} else {\n\n\t\tgl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;\n\n\t}\n\n}`;\n\nclass WebXRDepthSensing {\n\n\tconstructor() {\n\n\t\tthis.texture = null;\n\t\tthis.mesh = null;\n\n\t\tthis.depthNear = 0;\n\t\tthis.depthFar = 0;\n\n\t}\n\n\tinit( renderer, depthData, renderState ) {\n\n\t\tif ( this.texture === null ) {\n\n\t\t\tconst texture = new Texture();\n\n\t\t\tconst texProps = renderer.properties.get( texture );\n\t\t\ttexProps.__webglTexture = depthData.texture;\n\n\t\t\tif ( ( depthData.depthNear != renderState.depthNear ) || ( depthData.depthFar != renderState.depthFar ) ) {\n\n\t\t\t\tthis.depthNear = depthData.depthNear;\n\t\t\t\tthis.depthFar = depthData.depthFar;\n\n\t\t\t}\n\n\t\t\tthis.texture = texture;\n\n\t\t}\n\n\t}\n\n\tgetMesh( cameraXR ) {\n\n\t\tif ( this.texture !== null ) {\n\n\t\t\tif ( this.mesh === null ) {\n\n\t\t\t\tconst viewport = cameraXR.cameras[ 0 ].viewport;\n\t\t\t\tconst material = new ShaderMaterial( {\n\t\t\t\t\tvertexShader: _occlusion_vertex,\n\t\t\t\t\tfragmentShader: _occlusion_fragment,\n\t\t\t\t\tuniforms: {\n\t\t\t\t\t\tdepthColor: { value: this.texture },\n\t\t\t\t\t\tdepthWidth: { value: viewport.z },\n\t\t\t\t\t\tdepthHeight: { value: viewport.w }\n\t\t\t\t\t}\n\t\t\t\t} );\n\n\t\t\t\tthis.mesh = new Mesh( new PlaneGeometry( 20, 20 ), material );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this.mesh;\n\n\t}\n\n\treset() {\n\n\t\tthis.texture = null;\n\t\tthis.mesh = null;\n\n\t}\n\n\tgetDepthTexture() {\n\n\t\treturn this.texture;\n\n\t}\n\n}\n\nclass WebXRManager extends EventDispatcher {\n\n\tconstructor( renderer, gl ) {\n\n\t\tsuper();\n\n\t\tconst scope = this;\n\n\t\tlet session = null;\n\n\t\tlet framebufferScaleFactor = 1.0;\n\n\t\tlet referenceSpace = null;\n\t\tlet referenceSpaceType = 'local-floor';\n\t\t// Set default foveation to maximum.\n\t\tlet foveation = 1.0;\n\t\tlet customReferenceSpace = null;\n\n\t\tlet pose = null;\n\t\tlet glBinding = null;\n\t\tlet glProjLayer = null;\n\t\tlet glBaseLayer = null;\n\t\tlet xrFrame = null;\n\n\t\tconst depthSensing = new WebXRDepthSensing();\n\t\tconst attributes = gl.getContextAttributes();\n\n\t\tlet initialRenderTarget = null;\n\t\tlet newRenderTarget = null;\n\n\t\tconst controllers = [];\n\t\tconst controllerInputSources = [];\n\n\t\tconst currentSize = new Vector2();\n\t\tlet currentPixelRatio = null;\n\n\t\t//\n\n\t\tconst cameraL = new PerspectiveCamera();\n\t\tcameraL.layers.enable( 1 );\n\t\tcameraL.viewport = new Vector4();\n\n\t\tconst cameraR = new PerspectiveCamera();\n\t\tcameraR.layers.enable( 2 );\n\t\tcameraR.viewport = new Vector4();\n\n\t\tconst cameras = [ cameraL, cameraR ];\n\n\t\tconst cameraXR = new ArrayCamera();\n\t\tcameraXR.layers.enable( 1 );\n\t\tcameraXR.layers.enable( 2 );\n\n\t\tlet _currentDepthNear = null;\n\t\tlet _currentDepthFar = null;\n\n\t\t//\n\n\t\tthis.cameraAutoUpdate = true;\n\t\tthis.enabled = false;\n\n\t\tthis.isPresenting = false;\n\n\t\tthis.getController = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getTargetRaySpace();\n\n\t\t};\n\n\t\tthis.getControllerGrip = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getGripSpace();\n\n\t\t};\n\n\t\tthis.getHand = function ( index ) {\n\n\t\t\tlet controller = controllers[ index ];\n\n\t\t\tif ( controller === undefined ) {\n\n\t\t\t\tcontroller = new WebXRController();\n\t\t\t\tcontrollers[ index ] = controller;\n\n\t\t\t}\n\n\t\t\treturn controller.getHandSpace();\n\n\t\t};\n\n\t\t//\n\n\t\tfunction onSessionEvent( event ) {\n\n\t\t\tconst controllerIndex = controllerInputSources.indexOf( event.inputSource );\n\n\t\t\tif ( controllerIndex === - 1 ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tconst controller = controllers[ controllerIndex ];\n\n\t\t\tif ( controller !== undefined ) {\n\n\t\t\t\tcontroller.update( event.inputSource, event.frame, customReferenceSpace || referenceSpace );\n\t\t\t\tcontroller.dispatchEvent( { type: event.type, data: event.inputSource } );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onSessionEnd() {\n\n\t\t\tsession.removeEventListener( 'select', onSessionEvent );\n\t\t\tsession.removeEventListener( 'selectstart', onSessionEvent );\n\t\t\tsession.removeEventListener( 'selectend', onSessionEvent );\n\t\t\tsession.removeEventListener( 'squeeze', onSessionEvent );\n\t\t\tsession.removeEventListener( 'squeezestart', onSessionEvent );\n\t\t\tsession.removeEventListener( 'squeezeend', onSessionEvent );\n\t\t\tsession.removeEventListener( 'end', onSessionEnd );\n\t\t\tsession.removeEventListener( 'inputsourceschange', onInputSourcesChange );\n\n\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\tconst inputSource = controllerInputSources[ i ];\n\n\t\t\t\tif ( inputSource === null ) continue;\n\n\t\t\t\tcontrollerInputSources[ i ] = null;\n\n\t\t\t\tcontrollers[ i ].disconnect( inputSource );\n\n\t\t\t}\n\n\t\t\t_currentDepthNear = null;\n\t\t\t_currentDepthFar = null;\n\n\t\t\tdepthSensing.reset();\n\n\t\t\t// restore framebuffer/rendering state\n\n\t\t\trenderer.setRenderTarget( initialRenderTarget );\n\n\t\t\tglBaseLayer = null;\n\t\t\tglProjLayer = null;\n\t\t\tglBinding = null;\n\t\t\tsession = null;\n\t\t\tnewRenderTarget = null;\n\n\t\t\t//\n\n\t\t\tanimation.stop();\n\n\t\t\tscope.isPresenting = false;\n\n\t\t\trenderer.setPixelRatio( currentPixelRatio );\n\t\t\trenderer.setSize( currentSize.width, currentSize.height, false );\n\n\t\t\tscope.dispatchEvent( { type: 'sessionend' } );\n\n\t\t}\n\n\t\tthis.setFramebufferScaleFactor = function ( value ) {\n\n\t\t\tframebufferScaleFactor = value;\n\n\t\t\tif ( scope.isPresenting === true ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebXRManager: Cannot change framebuffer scale while presenting.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setReferenceSpaceType = function ( value ) {\n\n\t\t\treferenceSpaceType = value;\n\n\t\t\tif ( scope.isPresenting === true ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebXRManager: Cannot change reference space type while presenting.' );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getReferenceSpace = function () {\n\n\t\t\treturn customReferenceSpace || referenceSpace;\n\n\t\t};\n\n\t\tthis.setReferenceSpace = function ( space ) {\n\n\t\t\tcustomReferenceSpace = space;\n\n\t\t};\n\n\t\tthis.getBaseLayer = function () {\n\n\t\t\treturn glProjLayer !== null ? glProjLayer : glBaseLayer;\n\n\t\t};\n\n\t\tthis.getBinding = function () {\n\n\t\t\treturn glBinding;\n\n\t\t};\n\n\t\tthis.getFrame = function () {\n\n\t\t\treturn xrFrame;\n\n\t\t};\n\n\t\tthis.getSession = function () {\n\n\t\t\treturn session;\n\n\t\t};\n\n\t\tthis.setSession = async function ( value ) {\n\n\t\t\tsession = value;\n\n\t\t\tif ( session !== null ) {\n\n\t\t\t\tinitialRenderTarget = renderer.getRenderTarget();\n\n\t\t\t\tsession.addEventListener( 'select', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'selectstart', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'selectend', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeeze', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeezestart', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'squeezeend', onSessionEvent );\n\t\t\t\tsession.addEventListener( 'end', onSessionEnd );\n\t\t\t\tsession.addEventListener( 'inputsourceschange', onInputSourcesChange );\n\n\t\t\t\tif ( attributes.xrCompatible !== true ) {\n\n\t\t\t\t\tawait gl.makeXRCompatible();\n\n\t\t\t\t}\n\n\t\t\t\tcurrentPixelRatio = renderer.getPixelRatio();\n\t\t\t\trenderer.getSize( currentSize );\n\n\t\t\t\tif ( session.renderState.layers === undefined ) {\n\n\t\t\t\t\tconst layerInit = {\n\t\t\t\t\t\tantialias: attributes.antialias,\n\t\t\t\t\t\talpha: true,\n\t\t\t\t\t\tdepth: attributes.depth,\n\t\t\t\t\t\tstencil: attributes.stencil,\n\t\t\t\t\t\tframebufferScaleFactor: framebufferScaleFactor\n\t\t\t\t\t};\n\n\t\t\t\t\tglBaseLayer = new XRWebGLLayer( session, gl, layerInit );\n\n\t\t\t\t\tsession.updateRenderState( { baseLayer: glBaseLayer } );\n\n\t\t\t\t\trenderer.setPixelRatio( 1 );\n\t\t\t\t\trenderer.setSize( glBaseLayer.framebufferWidth, glBaseLayer.framebufferHeight, false );\n\n\t\t\t\t\tnewRenderTarget = new WebGLRenderTarget(\n\t\t\t\t\t\tglBaseLayer.framebufferWidth,\n\t\t\t\t\t\tglBaseLayer.framebufferHeight,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tformat: RGBAFormat,\n\t\t\t\t\t\t\ttype: UnsignedByteType,\n\t\t\t\t\t\t\tcolorSpace: renderer.outputColorSpace,\n\t\t\t\t\t\t\tstencilBuffer: attributes.stencil\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t} else {\n\n\t\t\t\t\tlet depthFormat = null;\n\t\t\t\t\tlet depthType = null;\n\t\t\t\t\tlet glDepthFormat = null;\n\n\t\t\t\t\tif ( attributes.depth ) {\n\n\t\t\t\t\t\tglDepthFormat = attributes.stencil ? gl.DEPTH24_STENCIL8 : gl.DEPTH_COMPONENT24;\n\t\t\t\t\t\tdepthFormat = attributes.stencil ? DepthStencilFormat : DepthFormat;\n\t\t\t\t\t\tdepthType = attributes.stencil ? UnsignedInt248Type : UnsignedIntType;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst projectionlayerInit = {\n\t\t\t\t\t\tcolorFormat: gl.RGBA8,\n\t\t\t\t\t\tdepthFormat: glDepthFormat,\n\t\t\t\t\t\tscaleFactor: framebufferScaleFactor\n\t\t\t\t\t};\n\n\t\t\t\t\tglBinding = new XRWebGLBinding( session, gl );\n\n\t\t\t\t\tglProjLayer = glBinding.createProjectionLayer( projectionlayerInit );\n\n\t\t\t\t\tsession.updateRenderState( { layers: [ glProjLayer ] } );\n\n\t\t\t\t\trenderer.setPixelRatio( 1 );\n\t\t\t\t\trenderer.setSize( glProjLayer.textureWidth, glProjLayer.textureHeight, false );\n\n\t\t\t\t\tnewRenderTarget = new WebGLRenderTarget(\n\t\t\t\t\t\tglProjLayer.textureWidth,\n\t\t\t\t\t\tglProjLayer.textureHeight,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tformat: RGBAFormat,\n\t\t\t\t\t\t\ttype: UnsignedByteType,\n\t\t\t\t\t\t\tdepthTexture: new DepthTexture( glProjLayer.textureWidth, glProjLayer.textureHeight, depthType, undefined, undefined, undefined, undefined, undefined, undefined, depthFormat ),\n\t\t\t\t\t\t\tstencilBuffer: attributes.stencil,\n\t\t\t\t\t\t\tcolorSpace: renderer.outputColorSpace,\n\t\t\t\t\t\t\tsamples: attributes.antialias ? 4 : 0,\n\t\t\t\t\t\t\tresolveDepthBuffer: ( glProjLayer.ignoreDepthValues === false )\n\t\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t\tnewRenderTarget.isXRRenderTarget = true; // TODO Remove this when possible, see #23278\n\n\t\t\t\tthis.setFoveation( foveation );\n\n\t\t\t\tcustomReferenceSpace = null;\n\t\t\t\treferenceSpace = await session.requestReferenceSpace( referenceSpaceType );\n\n\t\t\t\tanimation.setContext( session );\n\t\t\t\tanimation.start();\n\n\t\t\t\tscope.isPresenting = true;\n\n\t\t\t\tscope.dispatchEvent( { type: 'sessionstart' } );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getEnvironmentBlendMode = function () {\n\n\t\t\tif ( session !== null ) {\n\n\t\t\t\treturn session.environmentBlendMode;\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.getDepthTexture = function () {\n\n\t\t\treturn depthSensing.getDepthTexture();\n\n\t\t};\n\n\t\tfunction onInputSourcesChange( event ) {\n\n\t\t\t// Notify disconnected\n\n\t\t\tfor ( let i = 0; i < event.removed.length; i ++ ) {\n\n\t\t\t\tconst inputSource = event.removed[ i ];\n\t\t\t\tconst index = controllerInputSources.indexOf( inputSource );\n\n\t\t\t\tif ( index >= 0 ) {\n\n\t\t\t\t\tcontrollerInputSources[ index ] = null;\n\t\t\t\t\tcontrollers[ index ].disconnect( inputSource );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Notify connected\n\n\t\t\tfor ( let i = 0; i < event.added.length; i ++ ) {\n\n\t\t\t\tconst inputSource = event.added[ i ];\n\n\t\t\t\tlet controllerIndex = controllerInputSources.indexOf( inputSource );\n\n\t\t\t\tif ( controllerIndex === - 1 ) {\n\n\t\t\t\t\t// Assign input source a controller that currently has no input source\n\n\t\t\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\t\t\tif ( i >= controllerInputSources.length ) {\n\n\t\t\t\t\t\t\tcontrollerInputSources.push( inputSource );\n\t\t\t\t\t\t\tcontrollerIndex = i;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t} else if ( controllerInputSources[ i ] === null ) {\n\n\t\t\t\t\t\t\tcontrollerInputSources[ i ] = inputSource;\n\t\t\t\t\t\t\tcontrollerIndex = i;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// If all controllers do currently receive input we ignore new ones\n\n\t\t\t\t\tif ( controllerIndex === - 1 ) break;\n\n\t\t\t\t}\n\n\t\t\t\tconst controller = controllers[ controllerIndex ];\n\n\t\t\t\tif ( controller ) {\n\n\t\t\t\t\tcontroller.connect( inputSource );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tconst cameraLPos = new Vector3();\n\t\tconst cameraRPos = new Vector3();\n\n\t\t/**\n\t\t * Assumes 2 cameras that are parallel and share an X-axis, and that\n\t\t * the cameras' projection and world matrices have already been set.\n\t\t * And that near and far planes are identical for both cameras.\n\t\t * Visualization of this technique: https://computergraphics.stackexchange.com/a/4765\n\t\t */\n\t\tfunction setProjectionFromUnion( camera, cameraL, cameraR ) {\n\n\t\t\tcameraLPos.setFromMatrixPosition( cameraL.matrixWorld );\n\t\t\tcameraRPos.setFromMatrixPosition( cameraR.matrixWorld );\n\n\t\t\tconst ipd = cameraLPos.distanceTo( cameraRPos );\n\n\t\t\tconst projL = cameraL.projectionMatrix.elements;\n\t\t\tconst projR = cameraR.projectionMatrix.elements;\n\n\t\t\t// VR systems will have identical far and near planes, and\n\t\t\t// most likely identical top and bottom frustum extents.\n\t\t\t// Use the left camera for these values.\n\t\t\tconst near = projL[ 14 ] / ( projL[ 10 ] - 1 );\n\t\t\tconst far = projL[ 14 ] / ( projL[ 10 ] + 1 );\n\t\t\tconst topFov = ( projL[ 9 ] + 1 ) / projL[ 5 ];\n\t\t\tconst bottomFov = ( projL[ 9 ] - 1 ) / projL[ 5 ];\n\n\t\t\tconst leftFov = ( projL[ 8 ] - 1 ) / projL[ 0 ];\n\t\t\tconst rightFov = ( projR[ 8 ] + 1 ) / projR[ 0 ];\n\t\t\tconst left = near * leftFov;\n\t\t\tconst right = near * rightFov;\n\n\t\t\t// Calculate the new camera's position offset from the\n\t\t\t// left camera. xOffset should be roughly half `ipd`.\n\t\t\tconst zOffset = ipd / ( - leftFov + rightFov );\n\t\t\tconst xOffset = zOffset * - leftFov;\n\n\t\t\t// TODO: Better way to apply this offset?\n\t\t\tcameraL.matrixWorld.decompose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.translateX( xOffset );\n\t\t\tcamera.translateZ( zOffset );\n\t\t\tcamera.matrixWorld.compose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.matrixWorldInverse.copy( camera.matrixWorld ).invert();\n\n\t\t\t// Find the union of the frustum values of the cameras and scale\n\t\t\t// the values so that the near plane's position does not change in world space,\n\t\t\t// although must now be relative to the new union camera.\n\t\t\tconst near2 = near + zOffset;\n\t\t\tconst far2 = far + zOffset;\n\t\t\tconst left2 = left - xOffset;\n\t\t\tconst right2 = right + ( ipd - xOffset );\n\t\t\tconst top2 = topFov * far / far2 * near2;\n\t\t\tconst bottom2 = bottomFov * far / far2 * near2;\n\n\t\t\tcamera.projectionMatrix.makePerspective( left2, right2, top2, bottom2, near2, far2 );\n\t\t\tcamera.projectionMatrixInverse.copy( camera.projectionMatrix ).invert();\n\n\t\t}\n\n\t\tfunction updateCamera( camera, parent ) {\n\n\t\t\tif ( parent === null ) {\n\n\t\t\t\tcamera.matrixWorld.copy( camera.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tcamera.matrixWorld.multiplyMatrices( parent.matrixWorld, camera.matrix );\n\n\t\t\t}\n\n\t\t\tcamera.matrixWorldInverse.copy( camera.matrixWorld ).invert();\n\n\t\t}\n\n\t\tthis.updateCamera = function ( camera ) {\n\n\t\t\tif ( session === null ) return;\n\n\t\t\tif ( depthSensing.texture !== null ) {\n\n\t\t\t\tcamera.near = depthSensing.depthNear;\n\t\t\t\tcamera.far = depthSensing.depthFar;\n\n\t\t\t}\n\n\t\t\tcameraXR.near = cameraR.near = cameraL.near = camera.near;\n\t\t\tcameraXR.far = cameraR.far = cameraL.far = camera.far;\n\n\t\t\tif ( _currentDepthNear !== cameraXR.near || _currentDepthFar !== cameraXR.far ) {\n\n\t\t\t\t// Note that the new renderState won't apply until the next frame. See #18320\n\n\t\t\t\tsession.updateRenderState( {\n\t\t\t\t\tdepthNear: cameraXR.near,\n\t\t\t\t\tdepthFar: cameraXR.far\n\t\t\t\t} );\n\n\t\t\t\t_currentDepthNear = cameraXR.near;\n\t\t\t\t_currentDepthFar = cameraXR.far;\n\n\t\t\t\tcameraL.near = _currentDepthNear;\n\t\t\t\tcameraL.far = _currentDepthFar;\n\t\t\t\tcameraR.near = _currentDepthNear;\n\t\t\t\tcameraR.far = _currentDepthFar;\n\n\t\t\t\tcameraL.updateProjectionMatrix();\n\t\t\t\tcameraR.updateProjectionMatrix();\n\t\t\t\tcamera.updateProjectionMatrix();\n\n\t\t\t}\n\n\t\t\tconst parent = camera.parent;\n\t\t\tconst cameras = cameraXR.cameras;\n\n\t\t\tupdateCamera( cameraXR, parent );\n\n\t\t\tfor ( let i = 0; i < cameras.length; i ++ ) {\n\n\t\t\t\tupdateCamera( cameras[ i ], parent );\n\n\t\t\t}\n\n\t\t\t// update projection matrix for proper view frustum culling\n\n\t\t\tif ( cameras.length === 2 ) {\n\n\t\t\t\tsetProjectionFromUnion( cameraXR, cameraL, cameraR );\n\n\t\t\t} else {\n\n\t\t\t\t// assume single camera setup (AR)\n\n\t\t\t\tcameraXR.projectionMatrix.copy( cameraL.projectionMatrix );\n\n\t\t\t}\n\n\t\t\t// update user camera and its children\n\n\t\t\tupdateUserCamera( camera, cameraXR, parent );\n\n\t\t};\n\n\t\tfunction updateUserCamera( camera, cameraXR, parent ) {\n\n\t\t\tif ( parent === null ) {\n\n\t\t\t\tcamera.matrix.copy( cameraXR.matrixWorld );\n\n\t\t\t} else {\n\n\t\t\t\tcamera.matrix.copy( parent.matrixWorld );\n\t\t\t\tcamera.matrix.invert();\n\t\t\t\tcamera.matrix.multiply( cameraXR.matrixWorld );\n\n\t\t\t}\n\n\t\t\tcamera.matrix.decompose( camera.position, camera.quaternion, camera.scale );\n\t\t\tcamera.updateMatrixWorld( true );\n\n\t\t\tcamera.projectionMatrix.copy( cameraXR.projectionMatrix );\n\t\t\tcamera.projectionMatrixInverse.copy( cameraXR.projectionMatrixInverse );\n\n\t\t\tif ( camera.isPerspectiveCamera ) {\n\n\t\t\t\tcamera.fov = RAD2DEG * 2 * Math.atan( 1 / camera.projectionMatrix.elements[ 5 ] );\n\t\t\t\tcamera.zoom = 1;\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.getCamera = function () {\n\n\t\t\treturn cameraXR;\n\n\t\t};\n\n\t\tthis.getFoveation = function () {\n\n\t\t\tif ( glProjLayer === null && glBaseLayer === null ) {\n\n\t\t\t\treturn undefined;\n\n\t\t\t}\n\n\t\t\treturn foveation;\n\n\t\t};\n\n\t\tthis.setFoveation = function ( value ) {\n\n\t\t\t// 0 = no foveation = full resolution\n\t\t\t// 1 = maximum foveation = the edges render at lower resolution\n\n\t\t\tfoveation = value;\n\n\t\t\tif ( glProjLayer !== null ) {\n\n\t\t\t\tglProjLayer.fixedFoveation = value;\n\n\t\t\t}\n\n\t\t\tif ( glBaseLayer !== null && glBaseLayer.fixedFoveation !== undefined ) {\n\n\t\t\t\tglBaseLayer.fixedFoveation = value;\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.hasDepthSensing = function () {\n\n\t\t\treturn depthSensing.texture !== null;\n\n\t\t};\n\n\t\tthis.getDepthSensingMesh = function () {\n\n\t\t\treturn depthSensing.getMesh( cameraXR );\n\n\t\t};\n\n\t\t// Animation Loop\n\n\t\tlet onAnimationFrameCallback = null;\n\n\t\tfunction onAnimationFrame( time, frame ) {\n\n\t\t\tpose = frame.getViewerPose( customReferenceSpace || referenceSpace );\n\t\t\txrFrame = frame;\n\n\t\t\tif ( pose !== null ) {\n\n\t\t\t\tconst views = pose.views;\n\n\t\t\t\tif ( glBaseLayer !== null ) {\n\n\t\t\t\t\trenderer.setRenderTargetFramebuffer( newRenderTarget, glBaseLayer.framebuffer );\n\t\t\t\t\trenderer.setRenderTarget( newRenderTarget );\n\n\t\t\t\t}\n\n\t\t\t\tlet cameraXRNeedsUpdate = false;\n\n\t\t\t\t// check if it's necessary to rebuild cameraXR's camera list\n\n\t\t\t\tif ( views.length !== cameraXR.cameras.length ) {\n\n\t\t\t\t\tcameraXR.cameras.length = 0;\n\t\t\t\t\tcameraXRNeedsUpdate = true;\n\n\t\t\t\t}\n\n\t\t\t\tfor ( let i = 0; i < views.length; i ++ ) {\n\n\t\t\t\t\tconst view = views[ i ];\n\n\t\t\t\t\tlet viewport = null;\n\n\t\t\t\t\tif ( glBaseLayer !== null ) {\n\n\t\t\t\t\t\tviewport = glBaseLayer.getViewport( view );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst glSubImage = glBinding.getViewSubImage( glProjLayer, view );\n\t\t\t\t\t\tviewport = glSubImage.viewport;\n\n\t\t\t\t\t\t// For side-by-side projection, we only produce a single texture for both eyes.\n\t\t\t\t\t\tif ( i === 0 ) {\n\n\t\t\t\t\t\t\trenderer.setRenderTargetTextures(\n\t\t\t\t\t\t\t\tnewRenderTarget,\n\t\t\t\t\t\t\t\tglSubImage.colorTexture,\n\t\t\t\t\t\t\t\tglProjLayer.ignoreDepthValues ? undefined : glSubImage.depthStencilTexture );\n\n\t\t\t\t\t\t\trenderer.setRenderTarget( newRenderTarget );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tlet camera = cameras[ i ];\n\n\t\t\t\t\tif ( camera === undefined ) {\n\n\t\t\t\t\t\tcamera = new PerspectiveCamera();\n\t\t\t\t\t\tcamera.layers.enable( i );\n\t\t\t\t\t\tcamera.viewport = new Vector4();\n\t\t\t\t\t\tcameras[ i ] = camera;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcamera.matrix.fromArray( view.transform.matrix );\n\t\t\t\t\tcamera.matrix.decompose( camera.position, camera.quaternion, camera.scale );\n\t\t\t\t\tcamera.projectionMatrix.fromArray( view.projectionMatrix );\n\t\t\t\t\tcamera.projectionMatrixInverse.copy( camera.projectionMatrix ).invert();\n\t\t\t\t\tcamera.viewport.set( viewport.x, viewport.y, viewport.width, viewport.height );\n\n\t\t\t\t\tif ( i === 0 ) {\n\n\t\t\t\t\t\tcameraXR.matrix.copy( camera.matrix );\n\t\t\t\t\t\tcameraXR.matrix.decompose( cameraXR.position, cameraXR.quaternion, cameraXR.scale );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( cameraXRNeedsUpdate === true ) {\n\n\t\t\t\t\t\tcameraXR.cameras.push( camera );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t//\n\n\t\t\t\tconst enabledFeatures = session.enabledFeatures;\n\n\t\t\t\tif ( enabledFeatures && enabledFeatures.includes( 'depth-sensing' ) ) {\n\n\t\t\t\t\tconst depthData = glBinding.getDepthInformation( views[ 0 ] );\n\n\t\t\t\t\tif ( depthData && depthData.isValid && depthData.texture ) {\n\n\t\t\t\t\t\tdepthSensing.init( renderer, depthData, session.renderState );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tfor ( let i = 0; i < controllers.length; i ++ ) {\n\n\t\t\t\tconst inputSource = controllerInputSources[ i ];\n\t\t\t\tconst controller = controllers[ i ];\n\n\t\t\t\tif ( inputSource !== null && controller !== undefined ) {\n\n\t\t\t\t\tcontroller.update( inputSource, frame, customReferenceSpace || referenceSpace );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( onAnimationFrameCallback ) onAnimationFrameCallback( time, frame );\n\n\t\t\tif ( frame.detectedPlanes ) {\n\n\t\t\t\tscope.dispatchEvent( { type: 'planesdetected', data: frame } );\n\n\t\t\t}\n\n\t\t\txrFrame = null;\n\n\t\t}\n\n\t\tconst animation = new WebGLAnimation();\n\n\t\tanimation.setAnimationLoop( onAnimationFrame );\n\n\t\tthis.setAnimationLoop = function ( callback ) {\n\n\t\t\tonAnimationFrameCallback = callback;\n\n\t\t};\n\n\t\tthis.dispose = function () {};\n\n\t}\n\n}\n\nconst _e1 = /*@__PURE__*/ new Euler();\nconst _m1 = /*@__PURE__*/ new Matrix4();\n\nfunction WebGLMaterials( renderer, properties ) {\n\n\tfunction refreshTransformUniform( map, uniform ) {\n\n\t\tif ( map.matrixAutoUpdate === true ) {\n\n\t\t\tmap.updateMatrix();\n\n\t\t}\n\n\t\tuniform.value.copy( map.matrix );\n\n\t}\n\n\tfunction refreshFogUniforms( uniforms, fog ) {\n\n\t\tfog.color.getRGB( uniforms.fogColor.value, getUnlitUniformColorSpace( renderer ) );\n\n\t\tif ( fog.isFog ) {\n\n\t\t\tuniforms.fogNear.value = fog.near;\n\t\t\tuniforms.fogFar.value = fog.far;\n\n\t\t} else if ( fog.isFogExp2 ) {\n\n\t\t\tuniforms.fogDensity.value = fog.density;\n\n\t\t}\n\n\t}\n\n\tfunction refreshMaterialUniforms( uniforms, material, pixelRatio, height, transmissionRenderTarget ) {\n\n\t\tif ( material.isMeshBasicMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshLambertMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshToonMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsToon( uniforms, material );\n\n\t\t} else if ( material.isMeshPhongMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsPhong( uniforms, material );\n\n\t\t} else if ( material.isMeshStandardMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsStandard( uniforms, material );\n\n\t\t\tif ( material.isMeshPhysicalMaterial ) {\n\n\t\t\t\trefreshUniformsPhysical( uniforms, material, transmissionRenderTarget );\n\n\t\t\t}\n\n\t\t} else if ( material.isMeshMatcapMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsMatcap( uniforms, material );\n\n\t\t} else if ( material.isMeshDepthMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isMeshDistanceMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\t\t\trefreshUniformsDistance( uniforms, material );\n\n\t\t} else if ( material.isMeshNormalMaterial ) {\n\n\t\t\trefreshUniformsCommon( uniforms, material );\n\n\t\t} else if ( material.isLineBasicMaterial ) {\n\n\t\t\trefreshUniformsLine( uniforms, material );\n\n\t\t\tif ( material.isLineDashedMaterial ) {\n\n\t\t\t\trefreshUniformsDash( uniforms, material );\n\n\t\t\t}\n\n\t\t} else if ( material.isPointsMaterial ) {\n\n\t\t\trefreshUniformsPoints( uniforms, material, pixelRatio, height );\n\n\t\t} else if ( material.isSpriteMaterial ) {\n\n\t\t\trefreshUniformsSprites( uniforms, material );\n\n\t\t} else if ( material.isShadowMaterial ) {\n\n\t\t\tuniforms.color.value.copy( material.color );\n\t\t\tuniforms.opacity.value = material.opacity;\n\n\t\t} else if ( material.isShaderMaterial ) {\n\n\t\t\tmaterial.uniformsNeedUpdate = false; // #15581\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsCommon( uniforms, material ) {\n\n\t\tuniforms.opacity.value = material.opacity;\n\n\t\tif ( material.color ) {\n\n\t\t\tuniforms.diffuse.value.copy( material.color );\n\n\t\t}\n\n\t\tif ( material.emissive ) {\n\n\t\t\tuniforms.emissive.value.copy( material.emissive ).multiplyScalar( material.emissiveIntensity );\n\n\t\t}\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.mapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t\trefreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );\n\n\t\t}\n\n\t\tif ( material.bumpMap ) {\n\n\t\t\tuniforms.bumpMap.value = material.bumpMap;\n\n\t\t\trefreshTransformUniform( material.bumpMap, uniforms.bumpMapTransform );\n\n\t\t\tuniforms.bumpScale.value = material.bumpScale;\n\n\t\t\tif ( material.side === BackSide ) {\n\n\t\t\t\tuniforms.bumpScale.value *= - 1;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.normalMap ) {\n\n\t\t\tuniforms.normalMap.value = material.normalMap;\n\n\t\t\trefreshTransformUniform( material.normalMap, uniforms.normalMapTransform );\n\n\t\t\tuniforms.normalScale.value.copy( material.normalScale );\n\n\t\t\tif ( material.side === BackSide ) {\n\n\t\t\t\tuniforms.normalScale.value.negate();\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.displacementMap ) {\n\n\t\t\tuniforms.displacementMap.value = material.displacementMap;\n\n\t\t\trefreshTransformUniform( material.displacementMap, uniforms.displacementMapTransform );\n\n\t\t\tuniforms.displacementScale.value = material.displacementScale;\n\t\t\tuniforms.displacementBias.value = material.displacementBias;\n\n\t\t}\n\n\t\tif ( material.emissiveMap ) {\n\n\t\t\tuniforms.emissiveMap.value = material.emissiveMap;\n\n\t\t\trefreshTransformUniform( material.emissiveMap, uniforms.emissiveMapTransform );\n\n\t\t}\n\n\t\tif ( material.specularMap ) {\n\n\t\t\tuniforms.specularMap.value = material.specularMap;\n\n\t\t\trefreshTransformUniform( material.specularMap, uniforms.specularMapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t\tconst materialProperties = properties.get( material );\n\n\t\tconst envMap = materialProperties.envMap;\n\t\tconst envMapRotation = materialProperties.envMapRotation;\n\n\t\tif ( envMap ) {\n\n\t\t\tuniforms.envMap.value = envMap;\n\n\t\t\t_e1.copy( envMapRotation );\n\n\t\t\t// accommodate left-handed frame\n\t\t\t_e1.x *= - 1; _e1.y *= - 1; _e1.z *= - 1;\n\n\t\t\tif ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) {\n\n\t\t\t\t// environment maps which are not cube render targets or PMREMs follow a different convention\n\t\t\t\t_e1.y *= - 1;\n\t\t\t\t_e1.z *= - 1;\n\n\t\t\t}\n\n\t\t\tuniforms.envMapRotation.value.setFromMatrix4( _m1.makeRotationFromEuler( _e1 ) );\n\n\t\t\tuniforms.flipEnvMap.value = ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t\tuniforms.reflectivity.value = material.reflectivity;\n\t\t\tuniforms.ior.value = material.ior;\n\t\t\tuniforms.refractionRatio.value = material.refractionRatio;\n\n\t\t}\n\n\t\tif ( material.lightMap ) {\n\n\t\t\tuniforms.lightMap.value = material.lightMap;\n\t\t\tuniforms.lightMapIntensity.value = material.lightMapIntensity;\n\n\t\t\trefreshTransformUniform( material.lightMap, uniforms.lightMapTransform );\n\n\t\t}\n\n\t\tif ( material.aoMap ) {\n\n\t\t\tuniforms.aoMap.value = material.aoMap;\n\t\t\tuniforms.aoMapIntensity.value = material.aoMapIntensity;\n\n\t\t\trefreshTransformUniform( material.aoMap, uniforms.aoMapTransform );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsLine( uniforms, material ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.mapTransform );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsDash( uniforms, material ) {\n\n\t\tuniforms.dashSize.value = material.dashSize;\n\t\tuniforms.totalSize.value = material.dashSize + material.gapSize;\n\t\tuniforms.scale.value = material.scale;\n\n\t}\n\n\tfunction refreshUniformsPoints( uniforms, material, pixelRatio, height ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\t\tuniforms.size.value = material.size * pixelRatio;\n\t\tuniforms.scale.value = height * 0.5;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.uvTransform );\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t\trefreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsSprites( uniforms, material ) {\n\n\t\tuniforms.diffuse.value.copy( material.color );\n\t\tuniforms.opacity.value = material.opacity;\n\t\tuniforms.rotation.value = material.rotation;\n\n\t\tif ( material.map ) {\n\n\t\t\tuniforms.map.value = material.map;\n\n\t\t\trefreshTransformUniform( material.map, uniforms.mapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaMap ) {\n\n\t\t\tuniforms.alphaMap.value = material.alphaMap;\n\n\t\t\trefreshTransformUniform( material.alphaMap, uniforms.alphaMapTransform );\n\n\t\t}\n\n\t\tif ( material.alphaTest > 0 ) {\n\n\t\t\tuniforms.alphaTest.value = material.alphaTest;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsPhong( uniforms, material ) {\n\n\t\tuniforms.specular.value.copy( material.specular );\n\t\tuniforms.shininess.value = Math.max( material.shininess, 1e-4 ); // to prevent pow( 0.0, 0.0 )\n\n\t}\n\n\tfunction refreshUniformsToon( uniforms, material ) {\n\n\t\tif ( material.gradientMap ) {\n\n\t\t\tuniforms.gradientMap.value = material.gradientMap;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsStandard( uniforms, material ) {\n\n\t\tuniforms.metalness.value = material.metalness;\n\n\t\tif ( material.metalnessMap ) {\n\n\t\t\tuniforms.metalnessMap.value = material.metalnessMap;\n\n\t\t\trefreshTransformUniform( material.metalnessMap, uniforms.metalnessMapTransform );\n\n\t\t}\n\n\t\tuniforms.roughness.value = material.roughness;\n\n\t\tif ( material.roughnessMap ) {\n\n\t\t\tuniforms.roughnessMap.value = material.roughnessMap;\n\n\t\t\trefreshTransformUniform( material.roughnessMap, uniforms.roughnessMapTransform );\n\n\t\t}\n\n\t\tif ( material.envMap ) {\n\n\t\t\t//uniforms.envMap.value = material.envMap; // part of uniforms common\n\n\t\t\tuniforms.envMapIntensity.value = material.envMapIntensity;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsPhysical( uniforms, material, transmissionRenderTarget ) {\n\n\t\tuniforms.ior.value = material.ior; // also part of uniforms common\n\n\t\tif ( material.sheen > 0 ) {\n\n\t\t\tuniforms.sheenColor.value.copy( material.sheenColor ).multiplyScalar( material.sheen );\n\n\t\t\tuniforms.sheenRoughness.value = material.sheenRoughness;\n\n\t\t\tif ( material.sheenColorMap ) {\n\n\t\t\t\tuniforms.sheenColorMap.value = material.sheenColorMap;\n\n\t\t\t\trefreshTransformUniform( material.sheenColorMap, uniforms.sheenColorMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.sheenRoughnessMap ) {\n\n\t\t\t\tuniforms.sheenRoughnessMap.value = material.sheenRoughnessMap;\n\n\t\t\t\trefreshTransformUniform( material.sheenRoughnessMap, uniforms.sheenRoughnessMapTransform );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.clearcoat > 0 ) {\n\n\t\t\tuniforms.clearcoat.value = material.clearcoat;\n\t\t\tuniforms.clearcoatRoughness.value = material.clearcoatRoughness;\n\n\t\t\tif ( material.clearcoatMap ) {\n\n\t\t\t\tuniforms.clearcoatMap.value = material.clearcoatMap;\n\n\t\t\t\trefreshTransformUniform( material.clearcoatMap, uniforms.clearcoatMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.clearcoatRoughnessMap ) {\n\n\t\t\t\tuniforms.clearcoatRoughnessMap.value = material.clearcoatRoughnessMap;\n\n\t\t\t\trefreshTransformUniform( material.clearcoatRoughnessMap, uniforms.clearcoatRoughnessMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.clearcoatNormalMap ) {\n\n\t\t\t\tuniforms.clearcoatNormalMap.value = material.clearcoatNormalMap;\n\n\t\t\t\trefreshTransformUniform( material.clearcoatNormalMap, uniforms.clearcoatNormalMapTransform );\n\n\t\t\t\tuniforms.clearcoatNormalScale.value.copy( material.clearcoatNormalScale );\n\n\t\t\t\tif ( material.side === BackSide ) {\n\n\t\t\t\t\tuniforms.clearcoatNormalScale.value.negate();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.dispersion > 0 ) {\n\n\t\t\tuniforms.dispersion.value = material.dispersion;\n\n\t\t}\n\n\t\tif ( material.iridescence > 0 ) {\n\n\t\t\tuniforms.iridescence.value = material.iridescence;\n\t\t\tuniforms.iridescenceIOR.value = material.iridescenceIOR;\n\t\t\tuniforms.iridescenceThicknessMinimum.value = material.iridescenceThicknessRange[ 0 ];\n\t\t\tuniforms.iridescenceThicknessMaximum.value = material.iridescenceThicknessRange[ 1 ];\n\n\t\t\tif ( material.iridescenceMap ) {\n\n\t\t\t\tuniforms.iridescenceMap.value = material.iridescenceMap;\n\n\t\t\t\trefreshTransformUniform( material.iridescenceMap, uniforms.iridescenceMapTransform );\n\n\t\t\t}\n\n\t\t\tif ( material.iridescenceThicknessMap ) {\n\n\t\t\t\tuniforms.iridescenceThicknessMap.value = material.iridescenceThicknessMap;\n\n\t\t\t\trefreshTransformUniform( material.iridescenceThicknessMap, uniforms.iridescenceThicknessMapTransform );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( material.transmission > 0 ) {\n\n\t\t\tuniforms.transmission.value = material.transmission;\n\t\t\tuniforms.transmissionSamplerMap.value = transmissionRenderTarget.texture;\n\t\t\tuniforms.transmissionSamplerSize.value.set( transmissionRenderTarget.width, transmissionRenderTarget.height );\n\n\t\t\tif ( material.transmissionMap ) {\n\n\t\t\t\tuniforms.transmissionMap.value = material.transmissionMap;\n\n\t\t\t\trefreshTransformUniform( material.transmissionMap, uniforms.transmissionMapTransform );\n\n\t\t\t}\n\n\t\t\tuniforms.thickness.value = material.thickness;\n\n\t\t\tif ( material.thicknessMap ) {\n\n\t\t\t\tuniforms.thicknessMap.value = material.thicknessMap;\n\n\t\t\t\trefreshTransformUniform( material.thicknessMap, uniforms.thicknessMapTransform );\n\n\t\t\t}\n\n\t\t\tuniforms.attenuationDistance.value = material.attenuationDistance;\n\t\t\tuniforms.attenuationColor.value.copy( material.attenuationColor );\n\n\t\t}\n\n\t\tif ( material.anisotropy > 0 ) {\n\n\t\t\tuniforms.anisotropyVector.value.set( material.anisotropy * Math.cos( material.anisotropyRotation ), material.anisotropy * Math.sin( material.anisotropyRotation ) );\n\n\t\t\tif ( material.anisotropyMap ) {\n\n\t\t\t\tuniforms.anisotropyMap.value = material.anisotropyMap;\n\n\t\t\t\trefreshTransformUniform( material.anisotropyMap, uniforms.anisotropyMapTransform );\n\n\t\t\t}\n\n\t\t}\n\n\t\tuniforms.specularIntensity.value = material.specularIntensity;\n\t\tuniforms.specularColor.value.copy( material.specularColor );\n\n\t\tif ( material.specularColorMap ) {\n\n\t\t\tuniforms.specularColorMap.value = material.specularColorMap;\n\n\t\t\trefreshTransformUniform( material.specularColorMap, uniforms.specularColorMapTransform );\n\n\t\t}\n\n\t\tif ( material.specularIntensityMap ) {\n\n\t\t\tuniforms.specularIntensityMap.value = material.specularIntensityMap;\n\n\t\t\trefreshTransformUniform( material.specularIntensityMap, uniforms.specularIntensityMapTransform );\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsMatcap( uniforms, material ) {\n\n\t\tif ( material.matcap ) {\n\n\t\t\tuniforms.matcap.value = material.matcap;\n\n\t\t}\n\n\t}\n\n\tfunction refreshUniformsDistance( uniforms, material ) {\n\n\t\tconst light = properties.get( material ).light;\n\n\t\tuniforms.referencePosition.value.setFromMatrixPosition( light.matrixWorld );\n\t\tuniforms.nearDistance.value = light.shadow.camera.near;\n\t\tuniforms.farDistance.value = light.shadow.camera.far;\n\n\t}\n\n\treturn {\n\t\trefreshFogUniforms: refreshFogUniforms,\n\t\trefreshMaterialUniforms: refreshMaterialUniforms\n\t};\n\n}\n\nfunction WebGLUniformsGroups( gl, info, capabilities, state ) {\n\n\tlet buffers = {};\n\tlet updateList = {};\n\tlet allocatedBindingPoints = [];\n\n\tconst maxBindingPoints = gl.getParameter( gl.MAX_UNIFORM_BUFFER_BINDINGS ); // binding points are global whereas block indices are per shader program\n\n\tfunction bind( uniformsGroup, program ) {\n\n\t\tconst webglProgram = program.program;\n\t\tstate.uniformBlockBinding( uniformsGroup, webglProgram );\n\n\t}\n\n\tfunction update( uniformsGroup, program ) {\n\n\t\tlet buffer = buffers[ uniformsGroup.id ];\n\n\t\tif ( buffer === undefined ) {\n\n\t\t\tprepareUniformsGroup( uniformsGroup );\n\n\t\t\tbuffer = createBuffer( uniformsGroup );\n\t\t\tbuffers[ uniformsGroup.id ] = buffer;\n\n\t\t\tuniformsGroup.addEventListener( 'dispose', onUniformsGroupsDispose );\n\n\t\t}\n\n\t\t// ensure to update the binding points/block indices mapping for this program\n\n\t\tconst webglProgram = program.program;\n\t\tstate.updateUBOMapping( uniformsGroup, webglProgram );\n\n\t\t// update UBO once per frame\n\n\t\tconst frame = info.render.frame;\n\n\t\tif ( updateList[ uniformsGroup.id ] !== frame ) {\n\n\t\t\tupdateBufferData( uniformsGroup );\n\n\t\t\tupdateList[ uniformsGroup.id ] = frame;\n\n\t\t}\n\n\t}\n\n\tfunction createBuffer( uniformsGroup ) {\n\n\t\t// the setup of an UBO is independent of a particular shader program but global\n\n\t\tconst bindingPointIndex = allocateBindingPointIndex();\n\t\tuniformsGroup.__bindingPointIndex = bindingPointIndex;\n\n\t\tconst buffer = gl.createBuffer();\n\t\tconst size = uniformsGroup.__size;\n\t\tconst usage = uniformsGroup.usage;\n\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, buffer );\n\t\tgl.bufferData( gl.UNIFORM_BUFFER, size, usage );\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, null );\n\t\tgl.bindBufferBase( gl.UNIFORM_BUFFER, bindingPointIndex, buffer );\n\n\t\treturn buffer;\n\n\t}\n\n\tfunction allocateBindingPointIndex() {\n\n\t\tfor ( let i = 0; i < maxBindingPoints; i ++ ) {\n\n\t\t\tif ( allocatedBindingPoints.indexOf( i ) === - 1 ) {\n\n\t\t\t\tallocatedBindingPoints.push( i );\n\t\t\t\treturn i;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconsole.error( 'THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.' );\n\n\t\treturn 0;\n\n\t}\n\n\tfunction updateBufferData( uniformsGroup ) {\n\n\t\tconst buffer = buffers[ uniformsGroup.id ];\n\t\tconst uniforms = uniformsGroup.uniforms;\n\t\tconst cache = uniformsGroup.__cache;\n\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, buffer );\n\n\t\tfor ( let i = 0, il = uniforms.length; i < il; i ++ ) {\n\n\t\t\tconst uniformArray = Array.isArray( uniforms[ i ] ) ? uniforms[ i ] : [ uniforms[ i ] ];\n\n\t\t\tfor ( let j = 0, jl = uniformArray.length; j < jl; j ++ ) {\n\n\t\t\t\tconst uniform = uniformArray[ j ];\n\n\t\t\t\tif ( hasUniformChanged( uniform, i, j, cache ) === true ) {\n\n\t\t\t\t\tconst offset = uniform.__offset;\n\n\t\t\t\t\tconst values = Array.isArray( uniform.value ) ? uniform.value : [ uniform.value ];\n\n\t\t\t\t\tlet arrayOffset = 0;\n\n\t\t\t\t\tfor ( let k = 0; k < values.length; k ++ ) {\n\n\t\t\t\t\t\tconst value = values[ k ];\n\n\t\t\t\t\t\tconst info = getUniformSize( value );\n\n\t\t\t\t\t\t// TODO add integer and struct support\n\t\t\t\t\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t\t\t\t\tuniform.__data[ 0 ] = value;\n\t\t\t\t\t\t\tgl.bufferSubData( gl.UNIFORM_BUFFER, offset + arrayOffset, uniform.__data );\n\n\t\t\t\t\t\t} else if ( value.isMatrix3 ) {\n\n\t\t\t\t\t\t\t// manually converting 3x3 to 3x4\n\n\t\t\t\t\t\t\tuniform.__data[ 0 ] = value.elements[ 0 ];\n\t\t\t\t\t\t\tuniform.__data[ 1 ] = value.elements[ 1 ];\n\t\t\t\t\t\t\tuniform.__data[ 2 ] = value.elements[ 2 ];\n\t\t\t\t\t\t\tuniform.__data[ 3 ] = 0;\n\t\t\t\t\t\t\tuniform.__data[ 4 ] = value.elements[ 3 ];\n\t\t\t\t\t\t\tuniform.__data[ 5 ] = value.elements[ 4 ];\n\t\t\t\t\t\t\tuniform.__data[ 6 ] = value.elements[ 5 ];\n\t\t\t\t\t\t\tuniform.__data[ 7 ] = 0;\n\t\t\t\t\t\t\tuniform.__data[ 8 ] = value.elements[ 6 ];\n\t\t\t\t\t\t\tuniform.__data[ 9 ] = value.elements[ 7 ];\n\t\t\t\t\t\t\tuniform.__data[ 10 ] = value.elements[ 8 ];\n\t\t\t\t\t\t\tuniform.__data[ 11 ] = 0;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tvalue.toArray( uniform.__data, arrayOffset );\n\n\t\t\t\t\t\t\tarrayOffset += info.storage / Float32Array.BYTES_PER_ELEMENT;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tgl.bufferSubData( gl.UNIFORM_BUFFER, offset, uniform.__data );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tgl.bindBuffer( gl.UNIFORM_BUFFER, null );\n\n\t}\n\n\tfunction hasUniformChanged( uniform, index, indexArray, cache ) {\n\n\t\tconst value = uniform.value;\n\t\tconst indexString = index + '_' + indexArray;\n\n\t\tif ( cache[ indexString ] === undefined ) {\n\n\t\t\t// cache entry does not exist so far\n\n\t\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t\tcache[ indexString ] = value;\n\n\t\t\t} else {\n\n\t\t\t\tcache[ indexString ] = value.clone();\n\n\t\t\t}\n\n\t\t\treturn true;\n\n\t\t} else {\n\n\t\t\tconst cachedObject = cache[ indexString ];\n\n\t\t\t// compare current value with cached entry\n\n\t\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t\tif ( cachedObject !== value ) {\n\n\t\t\t\t\tcache[ indexString ] = value;\n\t\t\t\t\treturn true;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( cachedObject.equals( value ) === false ) {\n\n\t\t\t\t\tcachedObject.copy( value );\n\t\t\t\t\treturn true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\tfunction prepareUniformsGroup( uniformsGroup ) {\n\n\t\t// determine total buffer size according to the STD140 layout\n\t\t// Hint: STD140 is the only supported layout in WebGL 2\n\n\t\tconst uniforms = uniformsGroup.uniforms;\n\n\t\tlet offset = 0; // global buffer offset in bytes\n\t\tconst chunkSize = 16; // size of a chunk in bytes\n\n\t\tfor ( let i = 0, l = uniforms.length; i < l; i ++ ) {\n\n\t\t\tconst uniformArray = Array.isArray( uniforms[ i ] ) ? uniforms[ i ] : [ uniforms[ i ] ];\n\n\t\t\tfor ( let j = 0, jl = uniformArray.length; j < jl; j ++ ) {\n\n\t\t\t\tconst uniform = uniformArray[ j ];\n\n\t\t\t\tconst values = Array.isArray( uniform.value ) ? uniform.value : [ uniform.value ];\n\n\t\t\t\tfor ( let k = 0, kl = values.length; k < kl; k ++ ) {\n\n\t\t\t\t\tconst value = values[ k ];\n\n\t\t\t\t\tconst info = getUniformSize( value );\n\n\t\t\t\t\t// Calculate the chunk offset\n\t\t\t\t\tconst chunkOffsetUniform = offset % chunkSize;\n\n\t\t\t\t\t// Check for chunk overflow\n\t\t\t\t\tif ( chunkOffsetUniform !== 0 && ( chunkSize - chunkOffsetUniform ) < info.boundary ) {\n\n\t\t\t\t\t\t// Add padding and adjust offset\n\t\t\t\t\t\toffset += ( chunkSize - chunkOffsetUniform );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the following two properties will be used for partial buffer updates\n\n\t\t\t\t\tuniform.__data = new Float32Array( info.storage / Float32Array.BYTES_PER_ELEMENT );\n\t\t\t\t\tuniform.__offset = offset;\n\n\n\t\t\t\t\t// Update the global offset\n\t\t\t\t\toffset += info.storage;\n\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// ensure correct final padding\n\n\t\tconst chunkOffset = offset % chunkSize;\n\n\t\tif ( chunkOffset > 0 ) offset += ( chunkSize - chunkOffset );\n\n\t\t//\n\n\t\tuniformsGroup.__size = offset;\n\t\tuniformsGroup.__cache = {};\n\n\t\treturn this;\n\n\t}\n\n\tfunction getUniformSize( value ) {\n\n\t\tconst info = {\n\t\t\tboundary: 0, // bytes\n\t\t\tstorage: 0 // bytes\n\t\t};\n\n\t\t// determine sizes according to STD140\n\n\t\tif ( typeof value === 'number' || typeof value === 'boolean' ) {\n\n\t\t\t// float/int/bool\n\n\t\t\tinfo.boundary = 4;\n\t\t\tinfo.storage = 4;\n\n\t\t} else if ( value.isVector2 ) {\n\n\t\t\t// vec2\n\n\t\t\tinfo.boundary = 8;\n\t\t\tinfo.storage = 8;\n\n\t\t} else if ( value.isVector3 || value.isColor ) {\n\n\t\t\t// vec3\n\n\t\t\tinfo.boundary = 16;\n\t\t\tinfo.storage = 12; // evil: vec3 must start on a 16-byte boundary but it only consumes 12 bytes\n\n\t\t} else if ( value.isVector4 ) {\n\n\t\t\t// vec4\n\n\t\t\tinfo.boundary = 16;\n\t\t\tinfo.storage = 16;\n\n\t\t} else if ( value.isMatrix3 ) {\n\n\t\t\t// mat3 (in STD140 a 3x3 matrix is represented as 3x4)\n\n\t\t\tinfo.boundary = 48;\n\t\t\tinfo.storage = 48;\n\n\t\t} else if ( value.isMatrix4 ) {\n\n\t\t\t// mat4\n\n\t\t\tinfo.boundary = 64;\n\t\t\tinfo.storage = 64;\n\n\t\t} else if ( value.isTexture ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.' );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.WebGLRenderer: Unsupported uniform value type.', value );\n\n\t\t}\n\n\t\treturn info;\n\n\t}\n\n\tfunction onUniformsGroupsDispose( event ) {\n\n\t\tconst uniformsGroup = event.target;\n\n\t\tuniformsGroup.removeEventListener( 'dispose', onUniformsGroupsDispose );\n\n\t\tconst index = allocatedBindingPoints.indexOf( uniformsGroup.__bindingPointIndex );\n\t\tallocatedBindingPoints.splice( index, 1 );\n\n\t\tgl.deleteBuffer( buffers[ uniformsGroup.id ] );\n\n\t\tdelete buffers[ uniformsGroup.id ];\n\t\tdelete updateList[ uniformsGroup.id ];\n\n\t}\n\n\tfunction dispose() {\n\n\t\tfor ( const id in buffers ) {\n\n\t\t\tgl.deleteBuffer( buffers[ id ] );\n\n\t\t}\n\n\t\tallocatedBindingPoints = [];\n\t\tbuffers = {};\n\t\tupdateList = {};\n\n\t}\n\n\treturn {\n\n\t\tbind: bind,\n\t\tupdate: update,\n\n\t\tdispose: dispose\n\n\t};\n\n}\n\nclass WebGLRenderer {\n\n\tconstructor( parameters = {} ) {\n\n\t\tconst {\n\t\t\tcanvas = createCanvasElement(),\n\t\t\tcontext = null,\n\t\t\tdepth = true,\n\t\t\tstencil = false,\n\t\t\talpha = false,\n\t\t\tantialias = false,\n\t\t\tpremultipliedAlpha = true,\n\t\t\tpreserveDrawingBuffer = false,\n\t\t\tpowerPreference = 'default',\n\t\t\tfailIfMajorPerformanceCaveat = false,\n\t\t} = parameters;\n\n\t\tthis.isWebGLRenderer = true;\n\n\t\tlet _alpha;\n\n\t\tif ( context !== null ) {\n\n\t\t\tif ( typeof WebGLRenderingContext !== 'undefined' && context instanceof WebGLRenderingContext ) {\n\n\t\t\t\tthrow new Error( 'THREE.WebGLRenderer: WebGL 1 is not supported since r163.' );\n\n\t\t\t}\n\n\t\t\t_alpha = context.getContextAttributes().alpha;\n\n\t\t} else {\n\n\t\t\t_alpha = alpha;\n\n\t\t}\n\n\t\tconst uintClearColor = new Uint32Array( 4 );\n\t\tconst intClearColor = new Int32Array( 4 );\n\n\t\tlet currentRenderList = null;\n\t\tlet currentRenderState = null;\n\n\t\t// render() can be called from within a callback triggered by another render.\n\t\t// We track this so that the nested render call gets its list and state isolated from the parent render call.\n\n\t\tconst renderListStack = [];\n\t\tconst renderStateStack = [];\n\n\t\t// public properties\n\n\t\tthis.domElement = canvas;\n\n\t\t// Debug configuration container\n\t\tthis.debug = {\n\n\t\t\t/**\n\t\t\t * Enables error checking and reporting when shader programs are being compiled\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tcheckShaderErrors: true,\n\t\t\t/**\n\t\t\t * Callback for custom error reporting.\n\t\t\t * @type {?Function}\n\t\t\t */\n\t\t\tonShaderError: null\n\t\t};\n\n\t\t// clearing\n\n\t\tthis.autoClear = true;\n\t\tthis.autoClearColor = true;\n\t\tthis.autoClearDepth = true;\n\t\tthis.autoClearStencil = true;\n\n\t\t// scene graph\n\n\t\tthis.sortObjects = true;\n\n\t\t// user-defined clipping\n\n\t\tthis.clippingPlanes = [];\n\t\tthis.localClippingEnabled = false;\n\n\t\t// physically based shading\n\n\t\tthis._outputColorSpace = SRGBColorSpace;\n\n\t\t// tone mapping\n\n\t\tthis.toneMapping = NoToneMapping;\n\t\tthis.toneMappingExposure = 1.0;\n\n\t\t// internal properties\n\n\t\tconst _this = this;\n\n\t\tlet _isContextLost = false;\n\n\t\t// internal state cache\n\n\t\tlet _currentActiveCubeFace = 0;\n\t\tlet _currentActiveMipmapLevel = 0;\n\t\tlet _currentRenderTarget = null;\n\t\tlet _currentMaterialId = - 1;\n\n\t\tlet _currentCamera = null;\n\n\t\tconst _currentViewport = new Vector4();\n\t\tconst _currentScissor = new Vector4();\n\t\tlet _currentScissorTest = null;\n\n\t\tconst _currentClearColor = new Color( 0x000000 );\n\t\tlet _currentClearAlpha = 0;\n\n\t\t//\n\n\t\tlet _width = canvas.width;\n\t\tlet _height = canvas.height;\n\n\t\tlet _pixelRatio = 1;\n\t\tlet _opaqueSort = null;\n\t\tlet _transparentSort = null;\n\n\t\tconst _viewport = new Vector4( 0, 0, _width, _height );\n\t\tconst _scissor = new Vector4( 0, 0, _width, _height );\n\t\tlet _scissorTest = false;\n\n\t\t// frustum\n\n\t\tconst _frustum = new Frustum();\n\n\t\t// clipping\n\n\t\tlet _clippingEnabled = false;\n\t\tlet _localClippingEnabled = false;\n\n\t\t// camera matrices cache\n\n\t\tconst _projScreenMatrix = new Matrix4();\n\n\t\tconst _vector3 = new Vector3();\n\n\t\tconst _vector4 = new Vector4();\n\n\t\tconst _emptyScene = { background: null, fog: null, environment: null, overrideMaterial: null, isScene: true };\n\n\t\tlet _renderBackground = false;\n\n\t\tfunction getTargetPixelRatio() {\n\n\t\t\treturn _currentRenderTarget === null ? _pixelRatio : 1;\n\n\t\t}\n\n\t\t// initialize\n\n\t\tlet _gl = context;\n\n\t\tfunction getContext( contextName, contextAttributes ) {\n\n\t\t\treturn canvas.getContext( contextName, contextAttributes );\n\n\t\t}\n\n\t\ttry {\n\n\t\t\tconst contextAttributes = {\n\t\t\t\talpha: true,\n\t\t\t\tdepth,\n\t\t\t\tstencil,\n\t\t\t\tantialias,\n\t\t\t\tpremultipliedAlpha,\n\t\t\t\tpreserveDrawingBuffer,\n\t\t\t\tpowerPreference,\n\t\t\t\tfailIfMajorPerformanceCaveat,\n\t\t\t};\n\n\t\t\t// OffscreenCanvas does not have setAttribute, see #22811\n\t\t\tif ( 'setAttribute' in canvas ) canvas.setAttribute( 'data-engine', `three.js r${REVISION}` );\n\n\t\t\t// event listeners must be registered before WebGL context is created, see #12753\n\t\t\tcanvas.addEventListener( 'webglcontextlost', onContextLost, false );\n\t\t\tcanvas.addEventListener( 'webglcontextrestored', onContextRestore, false );\n\t\t\tcanvas.addEventListener( 'webglcontextcreationerror', onContextCreationError, false );\n\n\t\t\tif ( _gl === null ) {\n\n\t\t\t\tconst contextName = 'webgl2';\n\n\t\t\t\t_gl = getContext( contextName, contextAttributes );\n\n\t\t\t\tif ( _gl === null ) {\n\n\t\t\t\t\tif ( getContext( contextName ) ) {\n\n\t\t\t\t\t\tthrow new Error( 'Error creating WebGL context with your selected attributes.' );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthrow new Error( 'Error creating WebGL context.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} catch ( error ) {\n\n\t\t\tconsole.error( 'THREE.WebGLRenderer: ' + error.message );\n\t\t\tthrow error;\n\n\t\t}\n\n\t\tlet extensions, capabilities, state, info;\n\t\tlet properties, textures, cubemaps, cubeuvmaps, attributes, geometries, objects;\n\t\tlet programCache, materials, renderLists, renderStates, clipping, shadowMap;\n\n\t\tlet background, morphtargets, bufferRenderer, indexedBufferRenderer;\n\n\t\tlet utils, bindingStates, uniformsGroups;\n\n\t\tfunction initGLContext() {\n\n\t\t\textensions = new WebGLExtensions( _gl );\n\t\t\textensions.init();\n\n\t\t\tutils = new WebGLUtils( _gl, extensions );\n\n\t\t\tcapabilities = new WebGLCapabilities( _gl, extensions, parameters, utils );\n\n\t\t\tstate = new WebGLState( _gl );\n\n\t\t\tinfo = new WebGLInfo( _gl );\n\t\t\tproperties = new WebGLProperties();\n\t\t\ttextures = new WebGLTextures( _gl, extensions, state, properties, capabilities, utils, info );\n\t\t\tcubemaps = new WebGLCubeMaps( _this );\n\t\t\tcubeuvmaps = new WebGLCubeUVMaps( _this );\n\t\t\tattributes = new WebGLAttributes( _gl );\n\t\t\tbindingStates = new WebGLBindingStates( _gl, attributes );\n\t\t\tgeometries = new WebGLGeometries( _gl, attributes, info, bindingStates );\n\t\t\tobjects = new WebGLObjects( _gl, geometries, attributes, info );\n\t\t\tmorphtargets = new WebGLMorphtargets( _gl, capabilities, textures );\n\t\t\tclipping = new WebGLClipping( properties );\n\t\t\tprogramCache = new WebGLPrograms( _this, cubemaps, cubeuvmaps, extensions, capabilities, bindingStates, clipping );\n\t\t\tmaterials = new WebGLMaterials( _this, properties );\n\t\t\trenderLists = new WebGLRenderLists();\n\t\t\trenderStates = new WebGLRenderStates( extensions );\n\t\t\tbackground = new WebGLBackground( _this, cubemaps, cubeuvmaps, state, objects, _alpha, premultipliedAlpha );\n\t\t\tshadowMap = new WebGLShadowMap( _this, objects, capabilities );\n\t\t\tuniformsGroups = new WebGLUniformsGroups( _gl, info, capabilities, state );\n\n\t\t\tbufferRenderer = new WebGLBufferRenderer( _gl, extensions, info );\n\t\t\tindexedBufferRenderer = new WebGLIndexedBufferRenderer( _gl, extensions, info );\n\n\t\t\tinfo.programs = programCache.programs;\n\n\t\t\t_this.capabilities = capabilities;\n\t\t\t_this.extensions = extensions;\n\t\t\t_this.properties = properties;\n\t\t\t_this.renderLists = renderLists;\n\t\t\t_this.shadowMap = shadowMap;\n\t\t\t_this.state = state;\n\t\t\t_this.info = info;\n\n\t\t}\n\n\t\tinitGLContext();\n\n\t\t// xr\n\n\t\tconst xr = new WebXRManager( _this, _gl );\n\n\t\tthis.xr = xr;\n\n\t\t// API\n\n\t\tthis.getContext = function () {\n\n\t\t\treturn _gl;\n\n\t\t};\n\n\t\tthis.getContextAttributes = function () {\n\n\t\t\treturn _gl.getContextAttributes();\n\n\t\t};\n\n\t\tthis.forceContextLoss = function () {\n\n\t\t\tconst extension = extensions.get( 'WEBGL_lose_context' );\n\t\t\tif ( extension ) extension.loseContext();\n\n\t\t};\n\n\t\tthis.forceContextRestore = function () {\n\n\t\t\tconst extension = extensions.get( 'WEBGL_lose_context' );\n\t\t\tif ( extension ) extension.restoreContext();\n\n\t\t};\n\n\t\tthis.getPixelRatio = function () {\n\n\t\t\treturn _pixelRatio;\n\n\t\t};\n\n\t\tthis.setPixelRatio = function ( value ) {\n\n\t\t\tif ( value === undefined ) return;\n\n\t\t\t_pixelRatio = value;\n\n\t\t\tthis.setSize( _width, _height, false );\n\n\t\t};\n\n\t\tthis.getSize = function ( target ) {\n\n\t\t\treturn target.set( _width, _height );\n\n\t\t};\n\n\t\tthis.setSize = function ( width, height, updateStyle = true ) {\n\n\t\t\tif ( xr.isPresenting ) {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Can\\'t change size while VR device is presenting.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\t_width = width;\n\t\t\t_height = height;\n\n\t\t\tcanvas.width = Math.floor( width * _pixelRatio );\n\t\t\tcanvas.height = Math.floor( height * _pixelRatio );\n\n\t\t\tif ( updateStyle === true ) {\n\n\t\t\t\tcanvas.style.width = width + 'px';\n\t\t\t\tcanvas.style.height = height + 'px';\n\n\t\t\t}\n\n\t\t\tthis.setViewport( 0, 0, width, height );\n\n\t\t};\n\n\t\tthis.getDrawingBufferSize = function ( target ) {\n\n\t\t\treturn target.set( _width * _pixelRatio, _height * _pixelRatio ).floor();\n\n\t\t};\n\n\t\tthis.setDrawingBufferSize = function ( width, height, pixelRatio ) {\n\n\t\t\t_width = width;\n\t\t\t_height = height;\n\n\t\t\t_pixelRatio = pixelRatio;\n\n\t\t\tcanvas.width = Math.floor( width * pixelRatio );\n\t\t\tcanvas.height = Math.floor( height * pixelRatio );\n\n\t\t\tthis.setViewport( 0, 0, width, height );\n\n\t\t};\n\n\t\tthis.getCurrentViewport = function ( target ) {\n\n\t\t\treturn target.copy( _currentViewport );\n\n\t\t};\n\n\t\tthis.getViewport = function ( target ) {\n\n\t\t\treturn target.copy( _viewport );\n\n\t\t};\n\n\t\tthis.setViewport = function ( x, y, width, height ) {\n\n\t\t\tif ( x.isVector4 ) {\n\n\t\t\t\t_viewport.set( x.x, x.y, x.z, x.w );\n\n\t\t\t} else {\n\n\t\t\t\t_viewport.set( x, y, width, height );\n\n\t\t\t}\n\n\t\t\tstate.viewport( _currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ).round() );\n\n\t\t};\n\n\t\tthis.getScissor = function ( target ) {\n\n\t\t\treturn target.copy( _scissor );\n\n\t\t};\n\n\t\tthis.setScissor = function ( x, y, width, height ) {\n\n\t\t\tif ( x.isVector4 ) {\n\n\t\t\t\t_scissor.set( x.x, x.y, x.z, x.w );\n\n\t\t\t} else {\n\n\t\t\t\t_scissor.set( x, y, width, height );\n\n\t\t\t}\n\n\t\t\tstate.scissor( _currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ).round() );\n\n\t\t};\n\n\t\tthis.getScissorTest = function () {\n\n\t\t\treturn _scissorTest;\n\n\t\t};\n\n\t\tthis.setScissorTest = function ( boolean ) {\n\n\t\t\tstate.setScissorTest( _scissorTest = boolean );\n\n\t\t};\n\n\t\tthis.setOpaqueSort = function ( method ) {\n\n\t\t\t_opaqueSort = method;\n\n\t\t};\n\n\t\tthis.setTransparentSort = function ( method ) {\n\n\t\t\t_transparentSort = method;\n\n\t\t};\n\n\t\t// Clearing\n\n\t\tthis.getClearColor = function ( target ) {\n\n\t\t\treturn target.copy( background.getClearColor() );\n\n\t\t};\n\n\t\tthis.setClearColor = function () {\n\n\t\t\tbackground.setClearColor.apply( background, arguments );\n\n\t\t};\n\n\t\tthis.getClearAlpha = function () {\n\n\t\t\treturn background.getClearAlpha();\n\n\t\t};\n\n\t\tthis.setClearAlpha = function () {\n\n\t\t\tbackground.setClearAlpha.apply( background, arguments );\n\n\t\t};\n\n\t\tthis.clear = function ( color = true, depth = true, stencil = true ) {\n\n\t\t\tlet bits = 0;\n\n\t\t\tif ( color ) {\n\n\t\t\t\t// check if we're trying to clear an integer target\n\t\t\t\tlet isIntegerFormat = false;\n\t\t\t\tif ( _currentRenderTarget !== null ) {\n\n\t\t\t\t\tconst targetFormat = _currentRenderTarget.texture.format;\n\t\t\t\t\tisIntegerFormat = targetFormat === RGBAIntegerFormat ||\n\t\t\t\t\t\ttargetFormat === RGIntegerFormat ||\n\t\t\t\t\t\ttargetFormat === RedIntegerFormat;\n\n\t\t\t\t}\n\n\t\t\t\t// use the appropriate clear functions to clear the target if it's a signed\n\t\t\t\t// or unsigned integer target\n\t\t\t\tif ( isIntegerFormat ) {\n\n\t\t\t\t\tconst targetType = _currentRenderTarget.texture.type;\n\t\t\t\t\tconst isUnsignedType = targetType === UnsignedByteType ||\n\t\t\t\t\t\ttargetType === UnsignedIntType ||\n\t\t\t\t\t\ttargetType === UnsignedShortType ||\n\t\t\t\t\t\ttargetType === UnsignedInt248Type ||\n\t\t\t\t\t\ttargetType === UnsignedShort4444Type ||\n\t\t\t\t\t\ttargetType === UnsignedShort5551Type;\n\n\t\t\t\t\tconst clearColor = background.getClearColor();\n\t\t\t\t\tconst a = background.getClearAlpha();\n\t\t\t\t\tconst r = clearColor.r;\n\t\t\t\t\tconst g = clearColor.g;\n\t\t\t\t\tconst b = clearColor.b;\n\n\t\t\t\t\tif ( isUnsignedType ) {\n\n\t\t\t\t\t\tuintClearColor[ 0 ] = r;\n\t\t\t\t\t\tuintClearColor[ 1 ] = g;\n\t\t\t\t\t\tuintClearColor[ 2 ] = b;\n\t\t\t\t\t\tuintClearColor[ 3 ] = a;\n\t\t\t\t\t\t_gl.clearBufferuiv( _gl.COLOR, 0, uintClearColor );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tintClearColor[ 0 ] = r;\n\t\t\t\t\t\tintClearColor[ 1 ] = g;\n\t\t\t\t\t\tintClearColor[ 2 ] = b;\n\t\t\t\t\t\tintClearColor[ 3 ] = a;\n\t\t\t\t\t\t_gl.clearBufferiv( _gl.COLOR, 0, intClearColor );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbits |= _gl.COLOR_BUFFER_BIT;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( depth ) bits |= _gl.DEPTH_BUFFER_BIT;\n\t\t\tif ( stencil ) {\n\n\t\t\t\tbits |= _gl.STENCIL_BUFFER_BIT;\n\t\t\t\tthis.state.buffers.stencil.setMask( 0xffffffff );\n\n\t\t\t}\n\n\t\t\t_gl.clear( bits );\n\n\t\t};\n\n\t\tthis.clearColor = function () {\n\n\t\t\tthis.clear( true, false, false );\n\n\t\t};\n\n\t\tthis.clearDepth = function () {\n\n\t\t\tthis.clear( false, true, false );\n\n\t\t};\n\n\t\tthis.clearStencil = function () {\n\n\t\t\tthis.clear( false, false, true );\n\n\t\t};\n\n\t\t//\n\n\t\tthis.dispose = function () {\n\n\t\t\tcanvas.removeEventListener( 'webglcontextlost', onContextLost, false );\n\t\t\tcanvas.removeEventListener( 'webglcontextrestored', onContextRestore, false );\n\t\t\tcanvas.removeEventListener( 'webglcontextcreationerror', onContextCreationError, false );\n\n\t\t\trenderLists.dispose();\n\t\t\trenderStates.dispose();\n\t\t\tproperties.dispose();\n\t\t\tcubemaps.dispose();\n\t\t\tcubeuvmaps.dispose();\n\t\t\tobjects.dispose();\n\t\t\tbindingStates.dispose();\n\t\t\tuniformsGroups.dispose();\n\t\t\tprogramCache.dispose();\n\n\t\t\txr.dispose();\n\n\t\t\txr.removeEventListener( 'sessionstart', onXRSessionStart );\n\t\t\txr.removeEventListener( 'sessionend', onXRSessionEnd );\n\n\t\t\tanimation.stop();\n\n\t\t};\n\n\t\t// Events\n\n\t\tfunction onContextLost( event ) {\n\n\t\t\tevent.preventDefault();\n\n\t\t\tconsole.log( 'THREE.WebGLRenderer: Context Lost.' );\n\n\t\t\t_isContextLost = true;\n\n\t\t}\n\n\t\tfunction onContextRestore( /* event */ ) {\n\n\t\t\tconsole.log( 'THREE.WebGLRenderer: Context Restored.' );\n\n\t\t\t_isContextLost = false;\n\n\t\t\tconst infoAutoReset = info.autoReset;\n\t\t\tconst shadowMapEnabled = shadowMap.enabled;\n\t\t\tconst shadowMapAutoUpdate = shadowMap.autoUpdate;\n\t\t\tconst shadowMapNeedsUpdate = shadowMap.needsUpdate;\n\t\t\tconst shadowMapType = shadowMap.type;\n\n\t\t\tinitGLContext();\n\n\t\t\tinfo.autoReset = infoAutoReset;\n\t\t\tshadowMap.enabled = shadowMapEnabled;\n\t\t\tshadowMap.autoUpdate = shadowMapAutoUpdate;\n\t\t\tshadowMap.needsUpdate = shadowMapNeedsUpdate;\n\t\t\tshadowMap.type = shadowMapType;\n\n\t\t}\n\n\t\tfunction onContextCreationError( event ) {\n\n\t\t\tconsole.error( 'THREE.WebGLRenderer: A WebGL context could not be created. Reason: ', event.statusMessage );\n\n\t\t}\n\n\t\tfunction onMaterialDispose( event ) {\n\n\t\t\tconst material = event.target;\n\n\t\t\tmaterial.removeEventListener( 'dispose', onMaterialDispose );\n\n\t\t\tdeallocateMaterial( material );\n\n\t\t}\n\n\t\t// Buffer deallocation\n\n\t\tfunction deallocateMaterial( material ) {\n\n\t\t\treleaseMaterialProgramReferences( material );\n\n\t\t\tproperties.remove( material );\n\n\t\t}\n\n\n\t\tfunction releaseMaterialProgramReferences( material ) {\n\n\t\t\tconst programs = properties.get( material ).programs;\n\n\t\t\tif ( programs !== undefined ) {\n\n\t\t\t\tprograms.forEach( function ( program ) {\n\n\t\t\t\t\tprogramCache.releaseProgram( program );\n\n\t\t\t\t} );\n\n\t\t\t\tif ( material.isShaderMaterial ) {\n\n\t\t\t\t\tprogramCache.releaseShaderCache( material );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Buffer rendering\n\n\t\tthis.renderBufferDirect = function ( camera, scene, geometry, material, object, group ) {\n\n\t\t\tif ( scene === null ) scene = _emptyScene; // renderBufferDirect second parameter used to be fog (could be null)\n\n\t\t\tconst frontFaceCW = ( object.isMesh && object.matrixWorld.determinant() < 0 );\n\n\t\t\tconst program = setProgram( camera, scene, geometry, material, object );\n\n\t\t\tstate.setMaterial( material, frontFaceCW );\n\n\t\t\t//\n\n\t\t\tlet index = geometry.index;\n\t\t\tlet rangeFactor = 1;\n\n\t\t\tif ( material.wireframe === true ) {\n\n\t\t\t\tindex = geometries.getWireframeAttribute( geometry );\n\n\t\t\t\tif ( index === undefined ) return;\n\n\t\t\t\trangeFactor = 2;\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tconst drawRange = geometry.drawRange;\n\t\t\tconst position = geometry.attributes.position;\n\n\t\t\tlet drawStart = drawRange.start * rangeFactor;\n\t\t\tlet drawEnd = ( drawRange.start + drawRange.count ) * rangeFactor;\n\n\t\t\tif ( group !== null ) {\n\n\t\t\t\tdrawStart = Math.max( drawStart, group.start * rangeFactor );\n\t\t\t\tdrawEnd = Math.min( drawEnd, ( group.start + group.count ) * rangeFactor );\n\n\t\t\t}\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tdrawStart = Math.max( drawStart, 0 );\n\t\t\t\tdrawEnd = Math.min( drawEnd, index.count );\n\n\t\t\t} else if ( position !== undefined && position !== null ) {\n\n\t\t\t\tdrawStart = Math.max( drawStart, 0 );\n\t\t\t\tdrawEnd = Math.min( drawEnd, position.count );\n\n\t\t\t}\n\n\t\t\tconst drawCount = drawEnd - drawStart;\n\n\t\t\tif ( drawCount < 0 || drawCount === Infinity ) return;\n\n\t\t\t//\n\n\t\t\tbindingStates.setup( object, material, program, geometry, index );\n\n\t\t\tlet attribute;\n\t\t\tlet renderer = bufferRenderer;\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\tattribute = attributes.get( index );\n\n\t\t\t\trenderer = indexedBufferRenderer;\n\t\t\t\trenderer.setIndex( attribute );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tif ( object.isMesh ) {\n\n\t\t\t\tif ( material.wireframe === true ) {\n\n\t\t\t\t\tstate.setLineWidth( material.wireframeLinewidth * getTargetPixelRatio() );\n\t\t\t\t\trenderer.setMode( _gl.LINES );\n\n\t\t\t\t} else {\n\n\t\t\t\t\trenderer.setMode( _gl.TRIANGLES );\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isLine ) {\n\n\t\t\t\tlet lineWidth = material.linewidth;\n\n\t\t\t\tif ( lineWidth === undefined ) lineWidth = 1; // Not using Line*Material\n\n\t\t\t\tstate.setLineWidth( lineWidth * getTargetPixelRatio() );\n\n\t\t\t\tif ( object.isLineSegments ) {\n\n\t\t\t\t\trenderer.setMode( _gl.LINES );\n\n\t\t\t\t} else if ( object.isLineLoop ) {\n\n\t\t\t\t\trenderer.setMode( _gl.LINE_LOOP );\n\n\t\t\t\t} else {\n\n\t\t\t\t\trenderer.setMode( _gl.LINE_STRIP );\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isPoints ) {\n\n\t\t\t\trenderer.setMode( _gl.POINTS );\n\n\t\t\t} else if ( object.isSprite ) {\n\n\t\t\t\trenderer.setMode( _gl.TRIANGLES );\n\n\t\t\t}\n\n\t\t\tif ( object.isBatchedMesh ) {\n\n\t\t\t\tif ( object._multiDrawInstances !== null ) {\n\n\t\t\t\t\trenderer.renderMultiDrawInstances( object._multiDrawStarts, object._multiDrawCounts, object._multiDrawCount, object._multiDrawInstances );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( ! extensions.get( 'WEBGL_multi_draw' ) ) {\n\n\t\t\t\t\t\tconst starts = object._multiDrawStarts;\n\t\t\t\t\t\tconst counts = object._multiDrawCounts;\n\t\t\t\t\t\tconst drawCount = object._multiDrawCount;\n\t\t\t\t\t\tconst bytesPerElement = index ? attributes.get( index ).bytesPerElement : 1;\n\t\t\t\t\t\tconst uniforms = properties.get( material ).currentProgram.getUniforms();\n\t\t\t\t\t\tfor ( let i = 0; i < drawCount; i ++ ) {\n\n\t\t\t\t\t\t\tuniforms.setValue( _gl, '_gl_DrawID', i );\n\t\t\t\t\t\t\trenderer.render( starts[ i ] / bytesPerElement, counts[ i ] );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\trenderer.renderMultiDraw( object._multiDrawStarts, object._multiDrawCounts, object._multiDrawCount );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( object.isInstancedMesh ) {\n\n\t\t\t\trenderer.renderInstances( drawStart, drawCount, object.count );\n\n\t\t\t} else if ( geometry.isInstancedBufferGeometry ) {\n\n\t\t\t\tconst maxInstanceCount = geometry._maxInstanceCount !== undefined ? geometry._maxInstanceCount : Infinity;\n\t\t\t\tconst instanceCount = Math.min( geometry.instanceCount, maxInstanceCount );\n\n\t\t\t\trenderer.renderInstances( drawStart, drawCount, instanceCount );\n\n\t\t\t} else {\n\n\t\t\t\trenderer.render( drawStart, drawCount );\n\n\t\t\t}\n\n\t\t};\n\n\t\t// Compile\n\n\t\tfunction prepareMaterial( material, scene, object ) {\n\n\t\t\tif ( material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false ) {\n\n\t\t\t\tmaterial.side = BackSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\tgetProgram( material, scene, object );\n\n\t\t\t\tmaterial.side = FrontSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\tgetProgram( material, scene, object );\n\n\t\t\t\tmaterial.side = DoubleSide;\n\n\t\t\t} else {\n\n\t\t\t\tgetProgram( material, scene, object );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.compile = function ( scene, camera, targetScene = null ) {\n\n\t\t\tif ( targetScene === null ) targetScene = scene;\n\n\t\t\tcurrentRenderState = renderStates.get( targetScene );\n\t\t\tcurrentRenderState.init( camera );\n\n\t\t\trenderStateStack.push( currentRenderState );\n\n\t\t\t// gather lights from both the target scene and the new object that will be added to the scene.\n\n\t\t\ttargetScene.traverseVisible( function ( object ) {\n\n\t\t\t\tif ( object.isLight && object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\tif ( scene !== targetScene ) {\n\n\t\t\t\tscene.traverseVisible( function ( object ) {\n\n\t\t\t\t\tif ( object.isLight && object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\tcurrentRenderState.setupLights();\n\n\t\t\t// Only initialize materials in the new scene, not the targetScene.\n\n\t\t\tconst materials = new Set();\n\n\t\t\tscene.traverse( function ( object ) {\n\n\t\t\t\tconst material = object.material;\n\n\t\t\t\tif ( material ) {\n\n\t\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\t\tfor ( let i = 0; i < material.length; i ++ ) {\n\n\t\t\t\t\t\t\tconst material2 = material[ i ];\n\n\t\t\t\t\t\t\tprepareMaterial( material2, targetScene, object );\n\t\t\t\t\t\t\tmaterials.add( material2 );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tprepareMaterial( material, targetScene, object );\n\t\t\t\t\t\tmaterials.add( material );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t\trenderStateStack.pop();\n\t\t\tcurrentRenderState = null;\n\n\t\t\treturn materials;\n\n\t\t};\n\n\t\t// compileAsync\n\n\t\tthis.compileAsync = function ( scene, camera, targetScene = null ) {\n\n\t\t\tconst materials = this.compile( scene, camera, targetScene );\n\n\t\t\t// Wait for all the materials in the new object to indicate that they're\n\t\t\t// ready to be used before resolving the promise.\n\n\t\t\treturn new Promise( ( resolve ) => {\n\n\t\t\t\tfunction checkMaterialsReady() {\n\n\t\t\t\t\tmaterials.forEach( function ( material ) {\n\n\t\t\t\t\t\tconst materialProperties = properties.get( material );\n\t\t\t\t\t\tconst program = materialProperties.currentProgram;\n\n\t\t\t\t\t\tif ( program.isReady() ) {\n\n\t\t\t\t\t\t\t// remove any programs that report they're ready to use from the list\n\t\t\t\t\t\t\tmaterials.delete( material );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t\t// once the list of compiling materials is empty, call the callback\n\n\t\t\t\t\tif ( materials.size === 0 ) {\n\n\t\t\t\t\t\tresolve( scene );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// if some materials are still not ready, wait a bit and check again\n\n\t\t\t\t\tsetTimeout( checkMaterialsReady, 10 );\n\n\t\t\t\t}\n\n\t\t\t\tif ( extensions.get( 'KHR_parallel_shader_compile' ) !== null ) {\n\n\t\t\t\t\t// If we can check the compilation status of the materials without\n\t\t\t\t\t// blocking then do so right away.\n\n\t\t\t\t\tcheckMaterialsReady();\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Otherwise start by waiting a bit to give the materials we just\n\t\t\t\t\t// initialized a chance to finish.\n\n\t\t\t\t\tsetTimeout( checkMaterialsReady, 10 );\n\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t};\n\n\t\t// Animation Loop\n\n\t\tlet onAnimationFrameCallback = null;\n\n\t\tfunction onAnimationFrame( time ) {\n\n\t\t\tif ( onAnimationFrameCallback ) onAnimationFrameCallback( time );\n\n\t\t}\n\n\t\tfunction onXRSessionStart() {\n\n\t\t\tanimation.stop();\n\n\t\t}\n\n\t\tfunction onXRSessionEnd() {\n\n\t\t\tanimation.start();\n\n\t\t}\n\n\t\tconst animation = new WebGLAnimation();\n\t\tanimation.setAnimationLoop( onAnimationFrame );\n\n\t\tif ( typeof self !== 'undefined' ) animation.setContext( self );\n\n\t\tthis.setAnimationLoop = function ( callback ) {\n\n\t\t\tonAnimationFrameCallback = callback;\n\t\t\txr.setAnimationLoop( callback );\n\n\t\t\t( callback === null ) ? animation.stop() : animation.start();\n\n\t\t};\n\n\t\txr.addEventListener( 'sessionstart', onXRSessionStart );\n\t\txr.addEventListener( 'sessionend', onXRSessionEnd );\n\n\t\t// Rendering\n\n\t\tthis.render = function ( scene, camera ) {\n\n\t\t\tif ( camera !== undefined && camera.isCamera !== true ) {\n\n\t\t\t\tconsole.error( 'THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tif ( _isContextLost === true ) return;\n\n\t\t\t// update scene graph\n\n\t\t\tif ( scene.matrixWorldAutoUpdate === true ) scene.updateMatrixWorld();\n\n\t\t\t// update camera matrices and frustum\n\n\t\t\tif ( camera.parent === null && camera.matrixWorldAutoUpdate === true ) camera.updateMatrixWorld();\n\n\t\t\tif ( xr.enabled === true && xr.isPresenting === true ) {\n\n\t\t\t\tif ( xr.cameraAutoUpdate === true ) xr.updateCamera( camera );\n\n\t\t\t\tcamera = xr.getCamera(); // use XR camera for rendering\n\n\t\t\t}\n\n\t\t\t//\n\t\t\tif ( scene.isScene === true ) scene.onBeforeRender( _this, scene, camera, _currentRenderTarget );\n\n\t\t\tcurrentRenderState = renderStates.get( scene, renderStateStack.length );\n\t\t\tcurrentRenderState.init( camera );\n\n\t\t\trenderStateStack.push( currentRenderState );\n\n\t\t\t_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );\n\t\t\t_frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t\t\t_localClippingEnabled = this.localClippingEnabled;\n\t\t\t_clippingEnabled = clipping.init( this.clippingPlanes, _localClippingEnabled );\n\n\t\t\tcurrentRenderList = renderLists.get( scene, renderListStack.length );\n\t\t\tcurrentRenderList.init();\n\n\t\t\trenderListStack.push( currentRenderList );\n\n\t\t\tif ( xr.enabled === true && xr.isPresenting === true ) {\n\n\t\t\t\tconst depthSensingMesh = _this.xr.getDepthSensingMesh();\n\n\t\t\t\tif ( depthSensingMesh !== null ) {\n\n\t\t\t\t\tprojectObject( depthSensingMesh, camera, - Infinity, _this.sortObjects );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tprojectObject( scene, camera, 0, _this.sortObjects );\n\n\t\t\tcurrentRenderList.finish();\n\n\t\t\tif ( _this.sortObjects === true ) {\n\n\t\t\t\tcurrentRenderList.sort( _opaqueSort, _transparentSort );\n\n\t\t\t}\n\n\t\t\t_renderBackground = xr.enabled === false || xr.isPresenting === false || xr.hasDepthSensing() === false;\n\t\t\tif ( _renderBackground ) {\n\n\t\t\t\tbackground.addToRenderList( currentRenderList, scene );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tthis.info.render.frame ++;\n\n\t\t\tif ( _clippingEnabled === true ) clipping.beginShadows();\n\n\t\t\tconst shadowsArray = currentRenderState.state.shadowsArray;\n\n\t\t\tshadowMap.render( shadowsArray, scene, camera );\n\n\t\t\tif ( _clippingEnabled === true ) clipping.endShadows();\n\n\t\t\t//\n\n\t\t\tif ( this.info.autoReset === true ) this.info.reset();\n\n\t\t\t// render scene\n\n\t\t\tconst opaqueObjects = currentRenderList.opaque;\n\t\t\tconst transmissiveObjects = currentRenderList.transmissive;\n\n\t\t\tcurrentRenderState.setupLights();\n\n\t\t\tif ( camera.isArrayCamera ) {\n\n\t\t\t\tconst cameras = camera.cameras;\n\n\t\t\t\tif ( transmissiveObjects.length > 0 ) {\n\n\t\t\t\t\tfor ( let i = 0, l = cameras.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst camera2 = cameras[ i ];\n\n\t\t\t\t\t\trenderTransmissionPass( opaqueObjects, transmissiveObjects, scene, camera2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( _renderBackground ) background.render( scene );\n\n\t\t\t\tfor ( let i = 0, l = cameras.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst camera2 = cameras[ i ];\n\n\t\t\t\t\trenderScene( currentRenderList, scene, camera2, camera2.viewport );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( transmissiveObjects.length > 0 ) renderTransmissionPass( opaqueObjects, transmissiveObjects, scene, camera );\n\n\t\t\t\tif ( _renderBackground ) background.render( scene );\n\n\t\t\t\trenderScene( currentRenderList, scene, camera );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tif ( _currentRenderTarget !== null ) {\n\n\t\t\t\t// resolve multisample renderbuffers to a single-sample texture if necessary\n\n\t\t\t\ttextures.updateMultisampleRenderTarget( _currentRenderTarget );\n\n\t\t\t\t// Generate mipmap if we're using any kind of mipmap filtering\n\n\t\t\t\ttextures.updateRenderTargetMipmap( _currentRenderTarget );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tif ( scene.isScene === true ) scene.onAfterRender( _this, scene, camera );\n\n\t\t\t// _gl.finish();\n\n\t\t\tbindingStates.resetDefaultState();\n\t\t\t_currentMaterialId = - 1;\n\t\t\t_currentCamera = null;\n\n\t\t\trenderStateStack.pop();\n\n\t\t\tif ( renderStateStack.length > 0 ) {\n\n\t\t\t\tcurrentRenderState = renderStateStack[ renderStateStack.length - 1 ];\n\n\t\t\t\tif ( _clippingEnabled === true ) clipping.setGlobalState( _this.clippingPlanes, currentRenderState.state.camera );\n\n\t\t\t} else {\n\n\t\t\t\tcurrentRenderState = null;\n\n\t\t\t}\n\n\t\t\trenderListStack.pop();\n\n\t\t\tif ( renderListStack.length > 0 ) {\n\n\t\t\t\tcurrentRenderList = renderListStack[ renderListStack.length - 1 ];\n\n\t\t\t} else {\n\n\t\t\t\tcurrentRenderList = null;\n\n\t\t\t}\n\n\t\t};\n\n\t\tfunction projectObject( object, camera, groupOrder, sortObjects ) {\n\n\t\t\tif ( object.visible === false ) return;\n\n\t\t\tconst visible = object.layers.test( camera.layers );\n\n\t\t\tif ( visible ) {\n\n\t\t\t\tif ( object.isGroup ) {\n\n\t\t\t\t\tgroupOrder = object.renderOrder;\n\n\t\t\t\t} else if ( object.isLOD ) {\n\n\t\t\t\t\tif ( object.autoUpdate === true ) object.update( camera );\n\n\t\t\t\t} else if ( object.isLight ) {\n\n\t\t\t\t\tcurrentRenderState.pushLight( object );\n\n\t\t\t\t\tif ( object.castShadow ) {\n\n\t\t\t\t\t\tcurrentRenderState.pushShadow( object );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( object.isSprite ) {\n\n\t\t\t\t\tif ( ! object.frustumCulled || _frustum.intersectsSprite( object ) ) {\n\n\t\t\t\t\t\tif ( sortObjects ) {\n\n\t\t\t\t\t\t\t_vector4.setFromMatrixPosition( object.matrixWorld )\n\t\t\t\t\t\t\t\t.applyMatrix4( _projScreenMatrix );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\t\t\tconst material = object.material;\n\n\t\t\t\t\t\tif ( material.visible ) {\n\n\t\t\t\t\t\t\tcurrentRenderList.push( object, geometry, material, groupOrder, _vector4.z, null );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( object.isMesh || object.isLine || object.isPoints ) {\n\n\t\t\t\t\tif ( ! object.frustumCulled || _frustum.intersectsObject( object ) ) {\n\n\t\t\t\t\t\tconst geometry = objects.update( object );\n\t\t\t\t\t\tconst material = object.material;\n\n\t\t\t\t\t\tif ( sortObjects ) {\n\n\t\t\t\t\t\t\tif ( object.boundingSphere !== undefined ) {\n\n\t\t\t\t\t\t\t\tif ( object.boundingSphere === null ) object.computeBoundingSphere();\n\t\t\t\t\t\t\t\t_vector4.copy( object.boundingSphere.center );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\t\t\t\t\t\t\t\t_vector4.copy( geometry.boundingSphere.center );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t_vector4\n\t\t\t\t\t\t\t\t.applyMatrix4( object.matrixWorld )\n\t\t\t\t\t\t\t\t.applyMatrix4( _projScreenMatrix );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\t\t\tconst groups = geometry.groups;\n\n\t\t\t\t\t\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\t\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\t\t\tif ( groupMaterial && groupMaterial.visible ) {\n\n\t\t\t\t\t\t\t\t\tcurrentRenderList.push( object, geometry, groupMaterial, groupOrder, _vector4.z, group );\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else if ( material.visible ) {\n\n\t\t\t\t\t\t\tcurrentRenderList.push( object, geometry, material, groupOrder, _vector4.z, null );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst children = object.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tprojectObject( children[ i ], camera, groupOrder, sortObjects );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction renderScene( currentRenderList, scene, camera, viewport ) {\n\n\t\t\tconst opaqueObjects = currentRenderList.opaque;\n\t\t\tconst transmissiveObjects = currentRenderList.transmissive;\n\t\t\tconst transparentObjects = currentRenderList.transparent;\n\n\t\t\tcurrentRenderState.setupLightsView( camera );\n\n\t\t\tif ( _clippingEnabled === true ) clipping.setGlobalState( _this.clippingPlanes, camera );\n\n\t\t\tif ( viewport ) state.viewport( _currentViewport.copy( viewport ) );\n\n\t\t\tif ( opaqueObjects.length > 0 ) renderObjects( opaqueObjects, scene, camera );\n\t\t\tif ( transmissiveObjects.length > 0 ) renderObjects( transmissiveObjects, scene, camera );\n\t\t\tif ( transparentObjects.length > 0 ) renderObjects( transparentObjects, scene, camera );\n\n\t\t\t// Ensure depth buffer writing is enabled so it can be cleared on next render\n\n\t\t\tstate.buffers.depth.setTest( true );\n\t\t\tstate.buffers.depth.setMask( true );\n\t\t\tstate.buffers.color.setMask( true );\n\n\t\t\tstate.setPolygonOffset( false );\n\n\t\t}\n\n\t\tfunction renderTransmissionPass( opaqueObjects, transmissiveObjects, scene, camera ) {\n\n\t\t\tconst overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n\n\t\t\tif ( overrideMaterial !== null ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tif ( currentRenderState.state.transmissionRenderTarget[ camera.id ] === undefined ) {\n\n\t\t\t\tcurrentRenderState.state.transmissionRenderTarget[ camera.id ] = new WebGLRenderTarget( 1, 1, {\n\t\t\t\t\tgenerateMipmaps: true,\n\t\t\t\t\ttype: ( extensions.has( 'EXT_color_buffer_half_float' ) || extensions.has( 'EXT_color_buffer_float' ) ) ? HalfFloatType : UnsignedByteType,\n\t\t\t\t\tminFilter: LinearMipmapLinearFilter,\n\t\t\t\t\tsamples: 4,\n\t\t\t\t\tstencilBuffer: stencil,\n\t\t\t\t\tresolveDepthBuffer: false,\n\t\t\t\t\tresolveStencilBuffer: false,\n\t\t\t\t\tcolorSpace: ColorManagement.workingColorSpace,\n\t\t\t\t} );\n\n\t\t\t\t// debug\n\n\t\t\t\t/*\n\t\t\t\tconst geometry = new PlaneGeometry();\n\t\t\t\tconst material = new MeshBasicMaterial( { map: _transmissionRenderTarget.texture } );\n\n\t\t\t\tconst mesh = new Mesh( geometry, material );\n\t\t\t\tscene.add( mesh );\n\t\t\t\t*/\n\n\t\t\t}\n\n\t\t\tconst transmissionRenderTarget = currentRenderState.state.transmissionRenderTarget[ camera.id ];\n\n\t\t\tconst activeViewport = camera.viewport || _currentViewport;\n\t\t\ttransmissionRenderTarget.setSize( activeViewport.z, activeViewport.w );\n\n\t\t\t//\n\n\t\t\tconst currentRenderTarget = _this.getRenderTarget();\n\t\t\t_this.setRenderTarget( transmissionRenderTarget );\n\n\t\t\t_this.getClearColor( _currentClearColor );\n\t\t\t_currentClearAlpha = _this.getClearAlpha();\n\t\t\tif ( _currentClearAlpha < 1 ) _this.setClearColor( 0xffffff, 0.5 );\n\n\t\t\tif ( _renderBackground ) {\n\n\t\t\t\tbackground.render( scene );\n\n\t\t\t} else {\n\n\t\t\t\t_this.clear();\n\n\t\t\t}\n\n\t\t\t// Turn off the features which can affect the frag color for opaque objects pass.\n\t\t\t// Otherwise they are applied twice in opaque objects pass and transmission objects pass.\n\t\t\tconst currentToneMapping = _this.toneMapping;\n\t\t\t_this.toneMapping = NoToneMapping;\n\n\t\t\t// Remove viewport from camera to avoid nested render calls resetting viewport to it (e.g Reflector).\n\t\t\t// Transmission render pass requires viewport to match the transmissionRenderTarget.\n\t\t\tconst currentCameraViewport = camera.viewport;\n\t\t\tif ( camera.viewport !== undefined ) camera.viewport = undefined;\n\n\t\t\tcurrentRenderState.setupLightsView( camera );\n\n\t\t\tif ( _clippingEnabled === true ) clipping.setGlobalState( _this.clippingPlanes, camera );\n\n\t\t\trenderObjects( opaqueObjects, scene, camera );\n\n\t\t\ttextures.updateMultisampleRenderTarget( transmissionRenderTarget );\n\t\t\ttextures.updateRenderTargetMipmap( transmissionRenderTarget );\n\n\t\t\tif ( extensions.has( 'WEBGL_multisampled_render_to_texture' ) === false ) { // see #28131\n\n\t\t\t\tlet renderTargetNeedsUpdate = false;\n\n\t\t\t\tfor ( let i = 0, l = transmissiveObjects.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst renderItem = transmissiveObjects[ i ];\n\n\t\t\t\t\tconst object = renderItem.object;\n\t\t\t\t\tconst geometry = renderItem.geometry;\n\t\t\t\t\tconst material = renderItem.material;\n\t\t\t\t\tconst group = renderItem.group;\n\n\t\t\t\t\tif ( material.side === DoubleSide && object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\t\tconst currentSide = material.side;\n\n\t\t\t\t\t\tmaterial.side = BackSide;\n\t\t\t\t\t\tmaterial.needsUpdate = true;\n\n\t\t\t\t\t\trenderObject( object, scene, camera, geometry, material, group );\n\n\t\t\t\t\t\tmaterial.side = currentSide;\n\t\t\t\t\t\tmaterial.needsUpdate = true;\n\n\t\t\t\t\t\trenderTargetNeedsUpdate = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( renderTargetNeedsUpdate === true ) {\n\n\t\t\t\t\ttextures.updateMultisampleRenderTarget( transmissionRenderTarget );\n\t\t\t\t\ttextures.updateRenderTargetMipmap( transmissionRenderTarget );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_this.setRenderTarget( currentRenderTarget );\n\n\t\t\t_this.setClearColor( _currentClearColor, _currentClearAlpha );\n\n\t\t\tif ( currentCameraViewport !== undefined ) camera.viewport = currentCameraViewport;\n\n\t\t\t_this.toneMapping = currentToneMapping;\n\n\t\t}\n\n\t\tfunction renderObjects( renderList, scene, camera ) {\n\n\t\t\tconst overrideMaterial = scene.isScene === true ? scene.overrideMaterial : null;\n\n\t\t\tfor ( let i = 0, l = renderList.length; i < l; i ++ ) {\n\n\t\t\t\tconst renderItem = renderList[ i ];\n\n\t\t\t\tconst object = renderItem.object;\n\t\t\t\tconst geometry = renderItem.geometry;\n\t\t\t\tconst material = overrideMaterial === null ? renderItem.material : overrideMaterial;\n\t\t\t\tconst group = renderItem.group;\n\n\t\t\t\tif ( object.layers.test( camera.layers ) ) {\n\n\t\t\t\t\trenderObject( object, scene, camera, geometry, material, group );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction renderObject( object, scene, camera, geometry, material, group ) {\n\n\t\t\tobject.onBeforeRender( _this, scene, camera, geometry, material, group );\n\n\t\t\tobject.modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld );\n\t\t\tobject.normalMatrix.getNormalMatrix( object.modelViewMatrix );\n\n\t\t\tif ( material.transparent === true && material.side === DoubleSide && material.forceSinglePass === false ) {\n\n\t\t\t\tmaterial.side = BackSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\t\tmaterial.side = FrontSide;\n\t\t\t\tmaterial.needsUpdate = true;\n\t\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\t\tmaterial.side = DoubleSide;\n\n\t\t\t} else {\n\n\t\t\t\t_this.renderBufferDirect( camera, scene, geometry, material, object, group );\n\n\t\t\t}\n\n\t\t\tobject.onAfterRender( _this, scene, camera, geometry, material, group );\n\n\t\t}\n\n\t\tfunction getProgram( material, scene, object ) {\n\n\t\t\tif ( scene.isScene !== true ) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\n\n\t\t\tconst materialProperties = properties.get( material );\n\n\t\t\tconst lights = currentRenderState.state.lights;\n\t\t\tconst shadowsArray = currentRenderState.state.shadowsArray;\n\n\t\t\tconst lightsStateVersion = lights.state.version;\n\n\t\t\tconst parameters = programCache.getParameters( material, lights.state, shadowsArray, scene, object );\n\t\t\tconst programCacheKey = programCache.getProgramCacheKey( parameters );\n\n\t\t\tlet programs = materialProperties.programs;\n\n\t\t\t// always update environment and fog - changing these trigger an getProgram call, but it's possible that the program doesn't change\n\n\t\t\tmaterialProperties.environment = material.isMeshStandardMaterial ? scene.environment : null;\n\t\t\tmaterialProperties.fog = scene.fog;\n\t\t\tmaterialProperties.envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || materialProperties.environment );\n\t\t\tmaterialProperties.envMapRotation = ( materialProperties.environment !== null && material.envMap === null ) ? scene.environmentRotation : material.envMapRotation;\n\n\t\t\tif ( programs === undefined ) {\n\n\t\t\t\t// new material\n\n\t\t\t\tmaterial.addEventListener( 'dispose', onMaterialDispose );\n\n\t\t\t\tprograms = new Map();\n\t\t\t\tmaterialProperties.programs = programs;\n\n\t\t\t}\n\n\t\t\tlet program = programs.get( programCacheKey );\n\n\t\t\tif ( program !== undefined ) {\n\n\t\t\t\t// early out if program and light state is identical\n\n\t\t\t\tif ( materialProperties.currentProgram === program && materialProperties.lightsStateVersion === lightsStateVersion ) {\n\n\t\t\t\t\tupdateCommonMaterialProperties( material, parameters );\n\n\t\t\t\t\treturn program;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tparameters.uniforms = programCache.getUniforms( material );\n\n\t\t\t\tmaterial.onBeforeCompile( parameters, _this );\n\n\t\t\t\tprogram = programCache.acquireProgram( parameters, programCacheKey );\n\t\t\t\tprograms.set( programCacheKey, program );\n\n\t\t\t\tmaterialProperties.uniforms = parameters.uniforms;\n\n\t\t\t}\n\n\t\t\tconst uniforms = materialProperties.uniforms;\n\n\t\t\tif ( ( ! material.isShaderMaterial && ! material.isRawShaderMaterial ) || material.clipping === true ) {\n\n\t\t\t\tuniforms.clippingPlanes = clipping.uniform;\n\n\t\t\t}\n\n\t\t\tupdateCommonMaterialProperties( material, parameters );\n\n\t\t\t// store the light setup it was created for\n\n\t\t\tmaterialProperties.needsLights = materialNeedsLights( material );\n\t\t\tmaterialProperties.lightsStateVersion = lightsStateVersion;\n\n\t\t\tif ( materialProperties.needsLights ) {\n\n\t\t\t\t// wire up the material to this renderer's lighting state\n\n\t\t\t\tuniforms.ambientLightColor.value = lights.state.ambient;\n\t\t\t\tuniforms.lightProbe.value = lights.state.probe;\n\t\t\t\tuniforms.directionalLights.value = lights.state.directional;\n\t\t\t\tuniforms.directionalLightShadows.value = lights.state.directionalShadow;\n\t\t\t\tuniforms.spotLights.value = lights.state.spot;\n\t\t\t\tuniforms.spotLightShadows.value = lights.state.spotShadow;\n\t\t\t\tuniforms.rectAreaLights.value = lights.state.rectArea;\n\t\t\t\tuniforms.ltc_1.value = lights.state.rectAreaLTC1;\n\t\t\t\tuniforms.ltc_2.value = lights.state.rectAreaLTC2;\n\t\t\t\tuniforms.pointLights.value = lights.state.point;\n\t\t\t\tuniforms.pointLightShadows.value = lights.state.pointShadow;\n\t\t\t\tuniforms.hemisphereLights.value = lights.state.hemi;\n\n\t\t\t\tuniforms.directionalShadowMap.value = lights.state.directionalShadowMap;\n\t\t\t\tuniforms.directionalShadowMatrix.value = lights.state.directionalShadowMatrix;\n\t\t\t\tuniforms.spotShadowMap.value = lights.state.spotShadowMap;\n\t\t\t\tuniforms.spotLightMatrix.value = lights.state.spotLightMatrix;\n\t\t\t\tuniforms.spotLightMap.value = lights.state.spotLightMap;\n\t\t\t\tuniforms.pointShadowMap.value = lights.state.pointShadowMap;\n\t\t\t\tuniforms.pointShadowMatrix.value = lights.state.pointShadowMatrix;\n\t\t\t\t// TODO (abelnation): add area lights shadow info to uniforms\n\n\t\t\t}\n\n\t\t\tmaterialProperties.currentProgram = program;\n\t\t\tmaterialProperties.uniformsList = null;\n\n\t\t\treturn program;\n\n\t\t}\n\n\t\tfunction getUniformList( materialProperties ) {\n\n\t\t\tif ( materialProperties.uniformsList === null ) {\n\n\t\t\t\tconst progUniforms = materialProperties.currentProgram.getUniforms();\n\t\t\t\tmaterialProperties.uniformsList = WebGLUniforms.seqWithValue( progUniforms.seq, materialProperties.uniforms );\n\n\t\t\t}\n\n\t\t\treturn materialProperties.uniformsList;\n\n\t\t}\n\n\t\tfunction updateCommonMaterialProperties( material, parameters ) {\n\n\t\t\tconst materialProperties = properties.get( material );\n\n\t\t\tmaterialProperties.outputColorSpace = parameters.outputColorSpace;\n\t\t\tmaterialProperties.batching = parameters.batching;\n\t\t\tmaterialProperties.batchingColor = parameters.batchingColor;\n\t\t\tmaterialProperties.instancing = parameters.instancing;\n\t\t\tmaterialProperties.instancingColor = parameters.instancingColor;\n\t\t\tmaterialProperties.instancingMorph = parameters.instancingMorph;\n\t\t\tmaterialProperties.skinning = parameters.skinning;\n\t\t\tmaterialProperties.morphTargets = parameters.morphTargets;\n\t\t\tmaterialProperties.morphNormals = parameters.morphNormals;\n\t\t\tmaterialProperties.morphColors = parameters.morphColors;\n\t\t\tmaterialProperties.morphTargetsCount = parameters.morphTargetsCount;\n\t\t\tmaterialProperties.numClippingPlanes = parameters.numClippingPlanes;\n\t\t\tmaterialProperties.numIntersection = parameters.numClipIntersection;\n\t\t\tmaterialProperties.vertexAlphas = parameters.vertexAlphas;\n\t\t\tmaterialProperties.vertexTangents = parameters.vertexTangents;\n\t\t\tmaterialProperties.toneMapping = parameters.toneMapping;\n\n\t\t}\n\n\t\tfunction setProgram( camera, scene, geometry, material, object ) {\n\n\t\t\tif ( scene.isScene !== true ) scene = _emptyScene; // scene could be a Mesh, Line, Points, ...\n\n\t\t\ttextures.resetTextureUnits();\n\n\t\t\tconst fog = scene.fog;\n\t\t\tconst environment = material.isMeshStandardMaterial ? scene.environment : null;\n\t\t\tconst colorSpace = ( _currentRenderTarget === null ) ? _this.outputColorSpace : ( _currentRenderTarget.isXRRenderTarget === true ? _currentRenderTarget.texture.colorSpace : LinearSRGBColorSpace );\n\t\t\tconst envMap = ( material.isMeshStandardMaterial ? cubeuvmaps : cubemaps ).get( material.envMap || environment );\n\t\t\tconst vertexAlphas = material.vertexColors === true && !! geometry.attributes.color && geometry.attributes.color.itemSize === 4;\n\t\t\tconst vertexTangents = !! geometry.attributes.tangent && ( !! material.normalMap || material.anisotropy > 0 );\n\t\t\tconst morphTargets = !! geometry.morphAttributes.position;\n\t\t\tconst morphNormals = !! geometry.morphAttributes.normal;\n\t\t\tconst morphColors = !! geometry.morphAttributes.color;\n\n\t\t\tlet toneMapping = NoToneMapping;\n\n\t\t\tif ( material.toneMapped ) {\n\n\t\t\t\tif ( _currentRenderTarget === null || _currentRenderTarget.isXRRenderTarget === true ) {\n\n\t\t\t\t\ttoneMapping = _this.toneMapping;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst morphAttribute = geometry.morphAttributes.position || geometry.morphAttributes.normal || geometry.morphAttributes.color;\n\t\t\tconst morphTargetsCount = ( morphAttribute !== undefined ) ? morphAttribute.length : 0;\n\n\t\t\tconst materialProperties = properties.get( material );\n\t\t\tconst lights = currentRenderState.state.lights;\n\n\t\t\tif ( _clippingEnabled === true ) {\n\n\t\t\t\tif ( _localClippingEnabled === true || camera !== _currentCamera ) {\n\n\t\t\t\t\tconst useCache =\n\t\t\t\t\t\tcamera === _currentCamera &&\n\t\t\t\t\t\tmaterial.id === _currentMaterialId;\n\n\t\t\t\t\t// we might want to call this function with some ClippingGroup\n\t\t\t\t\t// object instead of the material, once it becomes feasible\n\t\t\t\t\t// (#8465, #8379)\n\t\t\t\t\tclipping.setState( material, camera, useCache );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tlet needsProgramChange = false;\n\n\t\t\tif ( material.version === materialProperties.__version ) {\n\n\t\t\t\tif ( materialProperties.needsLights && ( materialProperties.lightsStateVersion !== lights.state.version ) ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.outputColorSpace !== colorSpace ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isBatchedMesh && materialProperties.batching === false ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( ! object.isBatchedMesh && materialProperties.batching === true ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isBatchedMesh && materialProperties.batchingColor === true && object.colorTexture === null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isBatchedMesh && materialProperties.batchingColor === false && object.colorTexture !== null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancing === false ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( ! object.isInstancedMesh && materialProperties.instancing === true ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isSkinnedMesh && materialProperties.skinning === false ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( ! object.isSkinnedMesh && materialProperties.skinning === true ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingColor === true && object.instanceColor === null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingColor === false && object.instanceColor !== null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingMorph === true && object.morphTexture === null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( object.isInstancedMesh && materialProperties.instancingMorph === false && object.morphTexture !== null ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.envMap !== envMap ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( material.fog === true && materialProperties.fog !== fog ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.numClippingPlanes !== undefined &&\n\t\t\t\t\t( materialProperties.numClippingPlanes !== clipping.numPlanes ||\n\t\t\t\t\tmaterialProperties.numIntersection !== clipping.numIntersection ) ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.vertexAlphas !== vertexAlphas ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.vertexTangents !== vertexTangents ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphTargets !== morphTargets ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphNormals !== morphNormals ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphColors !== morphColors ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.toneMapping !== toneMapping ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t} else if ( materialProperties.morphTargetsCount !== morphTargetsCount ) {\n\n\t\t\t\t\tneedsProgramChange = true;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tneedsProgramChange = true;\n\t\t\t\tmaterialProperties.__version = material.version;\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tlet program = materialProperties.currentProgram;\n\n\t\t\tif ( needsProgramChange === true ) {\n\n\t\t\t\tprogram = getProgram( material, scene, object );\n\n\t\t\t}\n\n\t\t\tlet refreshProgram = false;\n\t\t\tlet refreshMaterial = false;\n\t\t\tlet refreshLights = false;\n\n\t\t\tconst p_uniforms = program.getUniforms(),\n\t\t\t\tm_uniforms = materialProperties.uniforms;\n\n\t\t\tif ( state.useProgram( program.program ) ) {\n\n\t\t\t\trefreshProgram = true;\n\t\t\t\trefreshMaterial = true;\n\t\t\t\trefreshLights = true;\n\n\t\t\t}\n\n\t\t\tif ( material.id !== _currentMaterialId ) {\n\n\t\t\t\t_currentMaterialId = material.id;\n\n\t\t\t\trefreshMaterial = true;\n\n\t\t\t}\n\n\t\t\tif ( refreshProgram || _currentCamera !== camera ) {\n\n\t\t\t\t// common camera uniforms\n\n\t\t\t\tp_uniforms.setValue( _gl, 'projectionMatrix', camera.projectionMatrix );\n\t\t\t\tp_uniforms.setValue( _gl, 'viewMatrix', camera.matrixWorldInverse );\n\n\t\t\t\tconst uCamPos = p_uniforms.map.cameraPosition;\n\n\t\t\t\tif ( uCamPos !== undefined ) {\n\n\t\t\t\t\tuCamPos.setValue( _gl, _vector3.setFromMatrixPosition( camera.matrixWorld ) );\n\n\t\t\t\t}\n\n\t\t\t\tif ( capabilities.logarithmicDepthBuffer ) {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'logDepthBufFC',\n\t\t\t\t\t\t2.0 / ( Math.log( camera.far + 1.0 ) / Math.LN2 ) );\n\n\t\t\t\t}\n\n\t\t\t\t// consider moving isOrthographic to UniformLib and WebGLMaterials, see https://github.com/mrdoob/three.js/pull/26467#issuecomment-1645185067\n\n\t\t\t\tif ( material.isMeshPhongMaterial ||\n\t\t\t\t\tmaterial.isMeshToonMaterial ||\n\t\t\t\t\tmaterial.isMeshLambertMaterial ||\n\t\t\t\t\tmaterial.isMeshBasicMaterial ||\n\t\t\t\t\tmaterial.isMeshStandardMaterial ||\n\t\t\t\t\tmaterial.isShaderMaterial ) {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'isOrthographic', camera.isOrthographicCamera === true );\n\n\t\t\t\t}\n\n\t\t\t\tif ( _currentCamera !== camera ) {\n\n\t\t\t\t\t_currentCamera = camera;\n\n\t\t\t\t\t// lighting uniforms depend on the camera so enforce an update\n\t\t\t\t\t// now, in case this material supports lights - or later, when\n\t\t\t\t\t// the next material that does gets activated:\n\n\t\t\t\t\trefreshMaterial = true;\t\t// set to true on material change\n\t\t\t\t\trefreshLights = true;\t\t// remains set until update done\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// skinning and morph target uniforms must be set even if material didn't change\n\t\t\t// auto-setting of texture unit for bone and morph texture must go before other textures\n\t\t\t// otherwise textures used for skinning and morphing can take over texture units reserved for other material textures\n\n\t\t\tif ( object.isSkinnedMesh ) {\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'bindMatrix' );\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'bindMatrixInverse' );\n\n\t\t\t\tconst skeleton = object.skeleton;\n\n\t\t\t\tif ( skeleton ) {\n\n\t\t\t\t\tif ( skeleton.boneTexture === null ) skeleton.computeBoneTexture();\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'boneTexture', skeleton.boneTexture, textures );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( object.isBatchedMesh ) {\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'batchingTexture' );\n\t\t\t\tp_uniforms.setValue( _gl, 'batchingTexture', object._matricesTexture, textures );\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'batchingIdTexture' );\n\t\t\t\tp_uniforms.setValue( _gl, 'batchingIdTexture', object._indirectTexture, textures );\n\n\t\t\t\tp_uniforms.setOptional( _gl, object, 'batchingColorTexture' );\n\t\t\t\tif ( object._colorsTexture !== null ) {\n\n\t\t\t\t\tp_uniforms.setValue( _gl, 'batchingColorTexture', object._colorsTexture, textures );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst morphAttributes = geometry.morphAttributes;\n\n\t\t\tif ( morphAttributes.position !== undefined || morphAttributes.normal !== undefined || ( morphAttributes.color !== undefined ) ) {\n\n\t\t\t\tmorphtargets.update( object, geometry, program );\n\n\t\t\t}\n\n\t\t\tif ( refreshMaterial || materialProperties.receiveShadow !== object.receiveShadow ) {\n\n\t\t\t\tmaterialProperties.receiveShadow = object.receiveShadow;\n\t\t\t\tp_uniforms.setValue( _gl, 'receiveShadow', object.receiveShadow );\n\n\t\t\t}\n\n\t\t\t// https://github.com/mrdoob/three.js/pull/24467#issuecomment-1209031512\n\n\t\t\tif ( material.isMeshGouraudMaterial && material.envMap !== null ) {\n\n\t\t\t\tm_uniforms.envMap.value = envMap;\n\n\t\t\t\tm_uniforms.flipEnvMap.value = ( envMap.isCubeTexture && envMap.isRenderTargetTexture === false ) ? - 1 : 1;\n\n\t\t\t}\n\n\t\t\tif ( material.isMeshStandardMaterial && material.envMap === null && scene.environment !== null ) {\n\n\t\t\t\tm_uniforms.envMapIntensity.value = scene.environmentIntensity;\n\n\t\t\t}\n\n\t\t\tif ( refreshMaterial ) {\n\n\t\t\t\tp_uniforms.setValue( _gl, 'toneMappingExposure', _this.toneMappingExposure );\n\n\t\t\t\tif ( materialProperties.needsLights ) {\n\n\t\t\t\t\t// the current material requires lighting info\n\n\t\t\t\t\t// note: all lighting uniforms are always set correctly\n\t\t\t\t\t// they simply reference the renderer's state for their\n\t\t\t\t\t// values\n\t\t\t\t\t//\n\t\t\t\t\t// use the current material's .needsUpdate flags to set\n\t\t\t\t\t// the GL state when required\n\n\t\t\t\t\tmarkUniformsLightsNeedsUpdate( m_uniforms, refreshLights );\n\n\t\t\t\t}\n\n\t\t\t\t// refresh uniforms common to several materials\n\n\t\t\t\tif ( fog && material.fog === true ) {\n\n\t\t\t\t\tmaterials.refreshFogUniforms( m_uniforms, fog );\n\n\t\t\t\t}\n\n\t\t\t\tmaterials.refreshMaterialUniforms( m_uniforms, material, _pixelRatio, _height, currentRenderState.state.transmissionRenderTarget[ camera.id ] );\n\n\t\t\t\tWebGLUniforms.upload( _gl, getUniformList( materialProperties ), m_uniforms, textures );\n\n\t\t\t}\n\n\t\t\tif ( material.isShaderMaterial && material.uniformsNeedUpdate === true ) {\n\n\t\t\t\tWebGLUniforms.upload( _gl, getUniformList( materialProperties ), m_uniforms, textures );\n\t\t\t\tmaterial.uniformsNeedUpdate = false;\n\n\t\t\t}\n\n\t\t\tif ( material.isSpriteMaterial ) {\n\n\t\t\t\tp_uniforms.setValue( _gl, 'center', object.center );\n\n\t\t\t}\n\n\t\t\t// common matrices\n\n\t\t\tp_uniforms.setValue( _gl, 'modelViewMatrix', object.modelViewMatrix );\n\t\t\tp_uniforms.setValue( _gl, 'normalMatrix', object.normalMatrix );\n\t\t\tp_uniforms.setValue( _gl, 'modelMatrix', object.matrixWorld );\n\n\t\t\t// UBOs\n\n\t\t\tif ( material.isShaderMaterial || material.isRawShaderMaterial ) {\n\n\t\t\t\tconst groups = material.uniformsGroups;\n\n\t\t\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst group = groups[ i ];\n\n\t\t\t\t\tuniformsGroups.update( group, program );\n\t\t\t\t\tuniformsGroups.bind( group, program );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn program;\n\n\t\t}\n\n\t\t// If uniforms are marked as clean, they don't need to be loaded to the GPU.\n\n\t\tfunction markUniformsLightsNeedsUpdate( uniforms, value ) {\n\n\t\t\tuniforms.ambientLightColor.needsUpdate = value;\n\t\t\tuniforms.lightProbe.needsUpdate = value;\n\n\t\t\tuniforms.directionalLights.needsUpdate = value;\n\t\t\tuniforms.directionalLightShadows.needsUpdate = value;\n\t\t\tuniforms.pointLights.needsUpdate = value;\n\t\t\tuniforms.pointLightShadows.needsUpdate = value;\n\t\t\tuniforms.spotLights.needsUpdate = value;\n\t\t\tuniforms.spotLightShadows.needsUpdate = value;\n\t\t\tuniforms.rectAreaLights.needsUpdate = value;\n\t\t\tuniforms.hemisphereLights.needsUpdate = value;\n\n\t\t}\n\n\t\tfunction materialNeedsLights( material ) {\n\n\t\t\treturn material.isMeshLambertMaterial || material.isMeshToonMaterial || material.isMeshPhongMaterial ||\n\t\t\t\tmaterial.isMeshStandardMaterial || material.isShadowMaterial ||\n\t\t\t\t( material.isShaderMaterial && material.lights === true );\n\n\t\t}\n\n\t\tthis.getActiveCubeFace = function () {\n\n\t\t\treturn _currentActiveCubeFace;\n\n\t\t};\n\n\t\tthis.getActiveMipmapLevel = function () {\n\n\t\t\treturn _currentActiveMipmapLevel;\n\n\t\t};\n\n\t\tthis.getRenderTarget = function () {\n\n\t\t\treturn _currentRenderTarget;\n\n\t\t};\n\n\t\tthis.setRenderTargetTextures = function ( renderTarget, colorTexture, depthTexture ) {\n\n\t\t\tproperties.get( renderTarget.texture ).__webglTexture = colorTexture;\n\t\t\tproperties.get( renderTarget.depthTexture ).__webglTexture = depthTexture;\n\n\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\t\trenderTargetProperties.__hasExternalTextures = true;\n\n\t\t\trenderTargetProperties.__autoAllocateDepthBuffer = depthTexture === undefined;\n\n\t\t\tif ( ! renderTargetProperties.__autoAllocateDepthBuffer ) {\n\n\t\t\t\t// The multisample_render_to_texture extension doesn't work properly if there\n\t\t\t\t// are midframe flushes and an external depth buffer. Disable use of the extension.\n\t\t\t\tif ( extensions.has( 'WEBGL_multisampled_render_to_texture' ) === true ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided' );\n\t\t\t\t\trenderTargetProperties.__useRenderToTexture = false;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.setRenderTargetFramebuffer = function ( renderTarget, defaultFramebuffer ) {\n\n\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\t\t\trenderTargetProperties.__webglFramebuffer = defaultFramebuffer;\n\t\t\trenderTargetProperties.__useDefaultFramebuffer = defaultFramebuffer === undefined;\n\n\t\t};\n\n\t\tthis.setRenderTarget = function ( renderTarget, activeCubeFace = 0, activeMipmapLevel = 0 ) {\n\n\t\t\t_currentRenderTarget = renderTarget;\n\t\t\t_currentActiveCubeFace = activeCubeFace;\n\t\t\t_currentActiveMipmapLevel = activeMipmapLevel;\n\n\t\t\tlet useDefaultFramebuffer = true;\n\t\t\tlet framebuffer = null;\n\t\t\tlet isCube = false;\n\t\t\tlet isRenderTarget3D = false;\n\n\t\t\tif ( renderTarget ) {\n\n\t\t\t\tconst renderTargetProperties = properties.get( renderTarget );\n\n\t\t\t\tif ( renderTargetProperties.__useDefaultFramebuffer !== undefined ) {\n\n\t\t\t\t\t// We need to make sure to rebind the framebuffer.\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, null );\n\t\t\t\t\tuseDefaultFramebuffer = false;\n\n\t\t\t\t} else if ( renderTargetProperties.__webglFramebuffer === undefined ) {\n\n\t\t\t\t\ttextures.setupRenderTarget( renderTarget );\n\n\t\t\t\t} else if ( renderTargetProperties.__hasExternalTextures ) {\n\n\t\t\t\t\t// Color and depth texture must be rebound in order for the swapchain to update.\n\t\t\t\t\ttextures.rebindTextures( renderTarget, properties.get( renderTarget.texture ).__webglTexture, properties.get( renderTarget.depthTexture ).__webglTexture );\n\n\t\t\t\t}\n\n\t\t\t\tconst texture = renderTarget.texture;\n\n\t\t\t\tif ( texture.isData3DTexture || texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {\n\n\t\t\t\t\tisRenderTarget3D = true;\n\n\t\t\t\t}\n\n\t\t\t\tconst __webglFramebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\n\t\t\t\tif ( renderTarget.isWebGLCubeRenderTarget ) {\n\n\t\t\t\t\tif ( Array.isArray( __webglFramebuffer[ activeCubeFace ] ) ) {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer[ activeCubeFace ][ activeMipmapLevel ];\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer[ activeCubeFace ];\n\n\t\t\t\t\t}\n\n\t\t\t\t\tisCube = true;\n\n\t\t\t\t} else if ( ( renderTarget.samples > 0 ) && textures.useMultisampledRTT( renderTarget ) === false ) {\n\n\t\t\t\t\tframebuffer = properties.get( renderTarget ).__webglMultisampledFramebuffer;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( Array.isArray( __webglFramebuffer ) ) {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer[ activeMipmapLevel ];\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tframebuffer = __webglFramebuffer;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t_currentViewport.copy( renderTarget.viewport );\n\t\t\t\t_currentScissor.copy( renderTarget.scissor );\n\t\t\t\t_currentScissorTest = renderTarget.scissorTest;\n\n\t\t\t} else {\n\n\t\t\t\t_currentViewport.copy( _viewport ).multiplyScalar( _pixelRatio ).floor();\n\t\t\t\t_currentScissor.copy( _scissor ).multiplyScalar( _pixelRatio ).floor();\n\t\t\t\t_currentScissorTest = _scissorTest;\n\n\t\t\t}\n\n\t\t\tconst framebufferBound = state.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\tif ( framebufferBound && useDefaultFramebuffer ) {\n\n\t\t\t\tstate.drawBuffers( renderTarget, framebuffer );\n\n\t\t\t}\n\n\t\t\tstate.viewport( _currentViewport );\n\t\t\tstate.scissor( _currentScissor );\n\t\t\tstate.setScissorTest( _currentScissorTest );\n\n\t\t\tif ( isCube ) {\n\n\t\t\t\tconst textureProperties = properties.get( renderTarget.texture );\n\t\t\t\t_gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + activeCubeFace, textureProperties.__webglTexture, activeMipmapLevel );\n\n\t\t\t} else if ( isRenderTarget3D ) {\n\n\t\t\t\tconst textureProperties = properties.get( renderTarget.texture );\n\t\t\t\tconst layer = activeCubeFace || 0;\n\t\t\t\t_gl.framebufferTextureLayer( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, textureProperties.__webglTexture, activeMipmapLevel || 0, layer );\n\n\t\t\t}\n\n\t\t\t_currentMaterialId = - 1; // reset current material to ensure correct uniform bindings\n\n\t\t};\n\n\t\tthis.readRenderTargetPixels = function ( renderTarget, x, y, width, height, buffer, activeCubeFaceIndex ) {\n\n\t\t\tif ( ! ( renderTarget && renderTarget.isWebGLRenderTarget ) ) {\n\n\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tlet framebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\n\t\t\tif ( renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== undefined ) {\n\n\t\t\t\tframebuffer = framebuffer[ activeCubeFaceIndex ];\n\n\t\t\t}\n\n\t\t\tif ( framebuffer ) {\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\t\ttry {\n\n\t\t\t\t\tconst texture = renderTarget.texture;\n\t\t\t\t\tconst textureFormat = texture.format;\n\t\t\t\t\tconst textureType = texture.type;\n\n\t\t\t\t\tif ( ! capabilities.textureFormatReadable( textureFormat ) ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.' );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! capabilities.textureTypeReadable( textureType ) ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.' );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)\n\n\t\t\t\t\tif ( ( x >= 0 && x <= ( renderTarget.width - width ) ) && ( y >= 0 && y <= ( renderTarget.height - height ) ) ) {\n\n\t\t\t\t\t\t_gl.readPixels( x, y, width, height, utils.convert( textureFormat ), utils.convert( textureType ), buffer );\n\n\t\t\t\t\t}\n\n\t\t\t\t} finally {\n\n\t\t\t\t\t// restore framebuffer of current render target if necessary\n\n\t\t\t\t\tconst framebuffer = ( _currentRenderTarget !== null ) ? properties.get( _currentRenderTarget ).__webglFramebuffer : null;\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.readRenderTargetPixelsAsync = async function ( renderTarget, x, y, width, height, buffer, activeCubeFaceIndex ) {\n\n\t\t\tif ( ! ( renderTarget && renderTarget.isWebGLRenderTarget ) ) {\n\n\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.' );\n\n\t\t\t}\n\n\t\t\tlet framebuffer = properties.get( renderTarget ).__webglFramebuffer;\n\t\t\tif ( renderTarget.isWebGLCubeRenderTarget && activeCubeFaceIndex !== undefined ) {\n\n\t\t\t\tframebuffer = framebuffer[ activeCubeFaceIndex ];\n\n\t\t\t}\n\n\t\t\tif ( framebuffer ) {\n\n\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\t\ttry {\n\n\t\t\t\t\tconst texture = renderTarget.texture;\n\t\t\t\t\tconst textureFormat = texture.format;\n\t\t\t\t\tconst textureType = texture.type;\n\n\t\t\t\t\tif ( ! capabilities.textureFormatReadable( textureFormat ) ) {\n\n\t\t\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! capabilities.textureTypeReadable( textureType ) ) {\n\n\t\t\t\t\t\tthrow new Error( 'THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the following if statement ensures valid read requests (no out-of-bounds pixels, see #8604)\n\t\t\t\t\tif ( ( x >= 0 && x <= ( renderTarget.width - width ) ) && ( y >= 0 && y <= ( renderTarget.height - height ) ) ) {\n\n\t\t\t\t\t\tconst glBuffer = _gl.createBuffer();\n\t\t\t\t\t\t_gl.bindBuffer( _gl.PIXEL_PACK_BUFFER, glBuffer );\n\t\t\t\t\t\t_gl.bufferData( _gl.PIXEL_PACK_BUFFER, buffer.byteLength, _gl.STREAM_READ );\n\t\t\t\t\t\t_gl.readPixels( x, y, width, height, utils.convert( textureFormat ), utils.convert( textureType ), 0 );\n\t\t\t\t\t\t_gl.flush();\n\n\t\t\t\t\t\t// check if the commands have finished every 8 ms\n\t\t\t\t\t\tconst sync = _gl.fenceSync( _gl.SYNC_GPU_COMMANDS_COMPLETE, 0 );\n\t\t\t\t\t\tawait probeAsync( _gl, sync, 4 );\n\n\t\t\t\t\t\ttry {\n\n\t\t\t\t\t\t\t_gl.bindBuffer( _gl.PIXEL_PACK_BUFFER, glBuffer );\n\t\t\t\t\t\t\t_gl.getBufferSubData( _gl.PIXEL_PACK_BUFFER, 0, buffer );\n\n\t\t\t\t\t\t} finally {\n\n\t\t\t\t\t\t\t_gl.deleteBuffer( glBuffer );\n\t\t\t\t\t\t\t_gl.deleteSync( sync );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn buffer;\n\n\t\t\t\t\t}\n\n\t\t\t\t} finally {\n\n\t\t\t\t\t// restore framebuffer of current render target if necessary\n\n\t\t\t\t\tconst framebuffer = ( _currentRenderTarget !== null ) ? properties.get( _currentRenderTarget ).__webglFramebuffer : null;\n\t\t\t\t\tstate.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.copyFramebufferToTexture = function ( texture, position = null, level = 0 ) {\n\n\t\t\t// support previous signature with position first\n\t\t\tif ( texture.isTexture !== true ) {\n\n\t\t\t\t// @deprecated, r165\n\t\t\t\tconsole.warn( 'WebGLRenderer: copyFramebufferToTexture function signature has changed.' );\n\n\t\t\t\tposition = arguments[ 0 ] || null;\n\t\t\t\ttexture = arguments[ 1 ];\n\n\t\t\t}\n\n\t\t\tconst levelScale = Math.pow( 2, - level );\n\t\t\tconst width = Math.floor( texture.image.width * levelScale );\n\t\t\tconst height = Math.floor( texture.image.height * levelScale );\n\n\t\t\tconst x = position !== null ? position.x : 0;\n\t\t\tconst y = position !== null ? position.y : 0;\n\n\t\t\ttextures.setTexture2D( texture, 0 );\n\n\t\t\t_gl.copyTexSubImage2D( _gl.TEXTURE_2D, level, 0, 0, x, y, width, height );\n\n\t\t\tstate.unbindTexture();\n\n\t\t};\n\n\t\tthis.copyTextureToTexture = function ( srcTexture, dstTexture, srcRegion = null, dstPosition = null, level = 0 ) {\n\n\t\t\t// support previous signature with dstPosition first\n\t\t\tif ( srcTexture.isTexture !== true ) {\n\n\t\t\t\t// @deprecated, r165\n\t\t\t\tconsole.warn( 'WebGLRenderer: copyTextureToTexture function signature has changed.' );\n\n\t\t\t\tdstPosition = arguments[ 0 ] || null;\n\t\t\t\tsrcTexture = arguments[ 1 ];\n\t\t\t\tdstTexture = arguments[ 2 ];\n\t\t\t\tlevel = arguments[ 3 ] || 0;\n\t\t\t\tsrcRegion = null;\n\n\t\t\t}\n\n\t\t\tlet width, height, minX, minY;\n\t\t\tlet dstX, dstY;\n\t\t\tif ( srcRegion !== null ) {\n\n\t\t\t\twidth = srcRegion.max.x - srcRegion.min.x;\n\t\t\t\theight = srcRegion.max.y - srcRegion.min.y;\n\t\t\t\tminX = srcRegion.min.x;\n\t\t\t\tminY = srcRegion.min.y;\n\n\t\t\t} else {\n\n\t\t\t\twidth = srcTexture.image.width;\n\t\t\t\theight = srcTexture.image.height;\n\t\t\t\tminX = 0;\n\t\t\t\tminY = 0;\n\n\t\t\t}\n\n\t\t\tif ( dstPosition !== null ) {\n\n\t\t\t\tdstX = dstPosition.x;\n\t\t\t\tdstY = dstPosition.y;\n\n\t\t\t} else {\n\n\t\t\t\tdstX = 0;\n\t\t\t\tdstY = 0;\n\n\t\t\t}\n\n\t\t\tconst glFormat = utils.convert( dstTexture.format );\n\t\t\tconst glType = utils.convert( dstTexture.type );\n\n\t\t\ttextures.setTexture2D( dstTexture, 0 );\n\n\t\t\t// As another texture upload may have changed pixelStorei\n\t\t\t// parameters, make sure they are correct for the dstTexture\n\t\t\t_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment );\n\n\t\t\tconst currentUnpackRowLen = _gl.getParameter( _gl.UNPACK_ROW_LENGTH );\n\t\t\tconst currentUnpackImageHeight = _gl.getParameter( _gl.UNPACK_IMAGE_HEIGHT );\n\t\t\tconst currentUnpackSkipPixels = _gl.getParameter( _gl.UNPACK_SKIP_PIXELS );\n\t\t\tconst currentUnpackSkipRows = _gl.getParameter( _gl.UNPACK_SKIP_ROWS );\n\t\t\tconst currentUnpackSkipImages = _gl.getParameter( _gl.UNPACK_SKIP_IMAGES );\n\n\t\t\tconst image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[ level ] : srcTexture.image;\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ROW_LENGTH, image.width );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_IMAGE_HEIGHT, image.height );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_PIXELS, minX );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_ROWS, minY );\n\n\t\t\tif ( srcTexture.isDataTexture ) {\n\n\t\t\t\t_gl.texSubImage2D( _gl.TEXTURE_2D, level, dstX, dstY, width, height, glFormat, glType, image.data );\n\n\t\t\t} else {\n\n\t\t\t\tif ( srcTexture.isCompressedTexture ) {\n\n\t\t\t\t\t_gl.compressedTexSubImage2D( _gl.TEXTURE_2D, level, dstX, dstY, image.width, image.height, glFormat, image.data );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_gl.texSubImage2D( _gl.TEXTURE_2D, level, dstX, dstY, width, height, glFormat, glType, image );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ROW_LENGTH, currentUnpackRowLen );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_IMAGE_HEIGHT, currentUnpackImageHeight );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_PIXELS, currentUnpackSkipPixels );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_ROWS, currentUnpackSkipRows );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_IMAGES, currentUnpackSkipImages );\n\n\t\t\t// Generate mipmaps only when copying level 0\n\t\t\tif ( level === 0 && dstTexture.generateMipmaps ) _gl.generateMipmap( _gl.TEXTURE_2D );\n\n\t\t\tstate.unbindTexture();\n\n\t\t};\n\n\t\tthis.copyTextureToTexture3D = function ( srcTexture, dstTexture, srcRegion = null, dstPosition = null, level = 0 ) {\n\n\t\t\t// support previous signature with source box first\n\t\t\tif ( srcTexture.isTexture !== true ) {\n\n\t\t\t\t// @deprecated, r165\n\t\t\t\tconsole.warn( 'WebGLRenderer: copyTextureToTexture3D function signature has changed.' );\n\n\t\t\t\tsrcRegion = arguments[ 0 ] || null;\n\t\t\t\tdstPosition = arguments[ 1 ] || null;\n\t\t\t\tsrcTexture = arguments[ 2 ];\n\t\t\t\tdstTexture = arguments[ 3 ];\n\t\t\t\tlevel = arguments[ 4 ] || 0;\n\n\t\t\t}\n\n\t\t\tlet width, height, depth, minX, minY, minZ;\n\t\t\tlet dstX, dstY, dstZ;\n\t\t\tconst image = srcTexture.isCompressedTexture ? srcTexture.mipmaps[ level ] : srcTexture.image;\n\t\t\tif ( srcRegion !== null ) {\n\n\t\t\t\twidth = srcRegion.max.x - srcRegion.min.x;\n\t\t\t\theight = srcRegion.max.y - srcRegion.min.y;\n\t\t\t\tdepth = srcRegion.max.z - srcRegion.min.z;\n\t\t\t\tminX = srcRegion.min.x;\n\t\t\t\tminY = srcRegion.min.y;\n\t\t\t\tminZ = srcRegion.min.z;\n\n\t\t\t} else {\n\n\t\t\t\twidth = image.width;\n\t\t\t\theight = image.height;\n\t\t\t\tdepth = image.depth;\n\t\t\t\tminX = 0;\n\t\t\t\tminY = 0;\n\t\t\t\tminZ = 0;\n\n\t\t\t}\n\n\t\t\tif ( dstPosition !== null ) {\n\n\t\t\t\tdstX = dstPosition.x;\n\t\t\t\tdstY = dstPosition.y;\n\t\t\t\tdstZ = dstPosition.z;\n\n\t\t\t} else {\n\n\t\t\t\tdstX = 0;\n\t\t\t\tdstY = 0;\n\t\t\t\tdstZ = 0;\n\n\t\t\t}\n\n\t\t\tconst glFormat = utils.convert( dstTexture.format );\n\t\t\tconst glType = utils.convert( dstTexture.type );\n\t\t\tlet glTarget;\n\n\t\t\tif ( dstTexture.isData3DTexture ) {\n\n\t\t\t\ttextures.setTexture3D( dstTexture, 0 );\n\t\t\t\tglTarget = _gl.TEXTURE_3D;\n\n\t\t\t} else if ( dstTexture.isDataArrayTexture || dstTexture.isCompressedArrayTexture ) {\n\n\t\t\t\ttextures.setTexture2DArray( dstTexture, 0 );\n\t\t\t\tglTarget = _gl.TEXTURE_2D_ARRAY;\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.' );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, dstTexture.flipY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, dstTexture.premultiplyAlpha );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ALIGNMENT, dstTexture.unpackAlignment );\n\n\t\t\tconst currentUnpackRowLen = _gl.getParameter( _gl.UNPACK_ROW_LENGTH );\n\t\t\tconst currentUnpackImageHeight = _gl.getParameter( _gl.UNPACK_IMAGE_HEIGHT );\n\t\t\tconst currentUnpackSkipPixels = _gl.getParameter( _gl.UNPACK_SKIP_PIXELS );\n\t\t\tconst currentUnpackSkipRows = _gl.getParameter( _gl.UNPACK_SKIP_ROWS );\n\t\t\tconst currentUnpackSkipImages = _gl.getParameter( _gl.UNPACK_SKIP_IMAGES );\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ROW_LENGTH, image.width );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_IMAGE_HEIGHT, image.height );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_PIXELS, minX );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_ROWS, minY );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_IMAGES, minZ );\n\n\t\t\tif ( srcTexture.isDataTexture || srcTexture.isData3DTexture ) {\n\n\t\t\t\t_gl.texSubImage3D( glTarget, level, dstX, dstY, dstZ, width, height, depth, glFormat, glType, image.data );\n\n\t\t\t} else {\n\n\t\t\t\tif ( dstTexture.isCompressedArrayTexture ) {\n\n\t\t\t\t\t_gl.compressedTexSubImage3D( glTarget, level, dstX, dstY, dstZ, width, height, depth, glFormat, image.data );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t_gl.texSubImage3D( glTarget, level, dstX, dstY, dstZ, width, height, depth, glFormat, glType, image );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_gl.pixelStorei( _gl.UNPACK_ROW_LENGTH, currentUnpackRowLen );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_IMAGE_HEIGHT, currentUnpackImageHeight );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_PIXELS, currentUnpackSkipPixels );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_ROWS, currentUnpackSkipRows );\n\t\t\t_gl.pixelStorei( _gl.UNPACK_SKIP_IMAGES, currentUnpackSkipImages );\n\n\t\t\t// Generate mipmaps only when copying level 0\n\t\t\tif ( level === 0 && dstTexture.generateMipmaps ) _gl.generateMipmap( glTarget );\n\n\t\t\tstate.unbindTexture();\n\n\t\t};\n\n\t\tthis.initRenderTarget = function ( target ) {\n\n\t\t\tif ( properties.get( target ).__webglFramebuffer === undefined ) {\n\n\t\t\t\ttextures.setupRenderTarget( target );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.initTexture = function ( texture ) {\n\n\t\t\tif ( texture.isCubeTexture ) {\n\n\t\t\t\ttextures.setTextureCube( texture, 0 );\n\n\t\t\t} else if ( texture.isData3DTexture ) {\n\n\t\t\t\ttextures.setTexture3D( texture, 0 );\n\n\t\t\t} else if ( texture.isDataArrayTexture || texture.isCompressedArrayTexture ) {\n\n\t\t\t\ttextures.setTexture2DArray( texture, 0 );\n\n\t\t\t} else {\n\n\t\t\t\ttextures.setTexture2D( texture, 0 );\n\n\t\t\t}\n\n\t\t\tstate.unbindTexture();\n\n\t\t};\n\n\t\tthis.resetState = function () {\n\n\t\t\t_currentActiveCubeFace = 0;\n\t\t\t_currentActiveMipmapLevel = 0;\n\t\t\t_currentRenderTarget = null;\n\n\t\t\tstate.reset();\n\t\t\tbindingStates.reset();\n\n\t\t};\n\n\t\tif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t\t\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );\n\n\t\t}\n\n\t}\n\n\tget coordinateSystem() {\n\n\t\treturn WebGLCoordinateSystem;\n\n\t}\n\n\tget outputColorSpace() {\n\n\t\treturn this._outputColorSpace;\n\n\t}\n\n\tset outputColorSpace( colorSpace ) {\n\n\t\tthis._outputColorSpace = colorSpace;\n\n\t\tconst gl = this.getContext();\n\t\tgl.drawingBufferColorSpace = colorSpace === DisplayP3ColorSpace ? 'display-p3' : 'srgb';\n\t\tgl.unpackColorSpace = ColorManagement.workingColorSpace === LinearDisplayP3ColorSpace ? 'display-p3' : 'srgb';\n\n\t}\n\n}\n\nclass FogExp2 {\n\n\tconstructor( color, density = 0.00025 ) {\n\n\t\tthis.isFogExp2 = true;\n\n\t\tthis.name = '';\n\n\t\tthis.color = new Color( color );\n\t\tthis.density = density;\n\n\t}\n\n\tclone() {\n\n\t\treturn new FogExp2( this.color, this.density );\n\n\t}\n\n\ttoJSON( /* meta */ ) {\n\n\t\treturn {\n\t\t\ttype: 'FogExp2',\n\t\t\tname: this.name,\n\t\t\tcolor: this.color.getHex(),\n\t\t\tdensity: this.density\n\t\t};\n\n\t}\n\n}\n\nclass Fog {\n\n\tconstructor( color, near = 1, far = 1000 ) {\n\n\t\tthis.isFog = true;\n\n\t\tthis.name = '';\n\n\t\tthis.color = new Color( color );\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Fog( this.color, this.near, this.far );\n\n\t}\n\n\ttoJSON( /* meta */ ) {\n\n\t\treturn {\n\t\t\ttype: 'Fog',\n\t\t\tname: this.name,\n\t\t\tcolor: this.color.getHex(),\n\t\t\tnear: this.near,\n\t\t\tfar: this.far\n\t\t};\n\n\t}\n\n}\n\nclass Scene extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isScene = true;\n\n\t\tthis.type = 'Scene';\n\n\t\tthis.background = null;\n\t\tthis.environment = null;\n\t\tthis.fog = null;\n\n\t\tthis.backgroundBlurriness = 0;\n\t\tthis.backgroundIntensity = 1;\n\t\tthis.backgroundRotation = new Euler();\n\n\t\tthis.environmentIntensity = 1;\n\t\tthis.environmentRotation = new Euler();\n\n\t\tthis.overrideMaterial = null;\n\n\t\tif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t\t\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'observe', { detail: this } ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.background !== null ) this.background = source.background.clone();\n\t\tif ( source.environment !== null ) this.environment = source.environment.clone();\n\t\tif ( source.fog !== null ) this.fog = source.fog.clone();\n\n\t\tthis.backgroundBlurriness = source.backgroundBlurriness;\n\t\tthis.backgroundIntensity = source.backgroundIntensity;\n\t\tthis.backgroundRotation.copy( source.backgroundRotation );\n\n\t\tthis.environmentIntensity = source.environmentIntensity;\n\t\tthis.environmentRotation.copy( source.environmentRotation );\n\n\t\tif ( source.overrideMaterial !== null ) this.overrideMaterial = source.overrideMaterial.clone();\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.fog !== null ) data.object.fog = this.fog.toJSON();\n\n\t\tif ( this.backgroundBlurriness > 0 ) data.object.backgroundBlurriness = this.backgroundBlurriness;\n\t\tif ( this.backgroundIntensity !== 1 ) data.object.backgroundIntensity = this.backgroundIntensity;\n\t\tdata.object.backgroundRotation = this.backgroundRotation.toArray();\n\n\t\tif ( this.environmentIntensity !== 1 ) data.object.environmentIntensity = this.environmentIntensity;\n\t\tdata.object.environmentRotation = this.environmentRotation.toArray();\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass InterleavedBuffer {\n\n\tconstructor( array, stride ) {\n\n\t\tthis.isInterleavedBuffer = true;\n\n\t\tthis.array = array;\n\t\tthis.stride = stride;\n\t\tthis.count = array !== undefined ? array.length / stride : 0;\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis._updateRange = { offset: 0, count: - 1 };\n\t\tthis.updateRanges = [];\n\n\t\tthis.version = 0;\n\n\t\tthis.uuid = generateUUID();\n\n\t}\n\n\tonUploadCallback() {}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tget updateRange() {\n\n\t\twarnOnce( 'THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead.' ); // @deprecated, r159\n\t\treturn this._updateRange;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\taddUpdateRange( start, count ) {\n\n\t\tthis.updateRanges.push( { start, count } );\n\n\t}\n\n\tclearUpdateRanges() {\n\n\t\tthis.updateRanges.length = 0;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.count = source.count;\n\t\tthis.stride = source.stride;\n\t\tthis.usage = source.usage;\n\n\t\treturn this;\n\n\t}\n\n\tcopyAt( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.stride;\n\t\tindex2 *= attribute.stride;\n\n\t\tfor ( let i = 0, l = this.stride; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tset( value, offset = 0 ) {\n\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tif ( data.arrayBuffers === undefined ) {\n\n\t\t\tdata.arrayBuffers = {};\n\n\t\t}\n\n\t\tif ( this.array.buffer._uuid === undefined ) {\n\n\t\t\tthis.array.buffer._uuid = generateUUID();\n\n\t\t}\n\n\t\tif ( data.arrayBuffers[ this.array.buffer._uuid ] === undefined ) {\n\n\t\t\tdata.arrayBuffers[ this.array.buffer._uuid ] = this.array.slice( 0 ).buffer;\n\n\t\t}\n\n\t\tconst array = new this.array.constructor( data.arrayBuffers[ this.array.buffer._uuid ] );\n\n\t\tconst ib = new this.constructor( array, this.stride );\n\t\tib.setUsage( this.usage );\n\n\t\treturn ib;\n\n\t}\n\n\tonUpload( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tif ( data.arrayBuffers === undefined ) {\n\n\t\t\tdata.arrayBuffers = {};\n\n\t\t}\n\n\t\t// generate UUID for array buffer if necessary\n\n\t\tif ( this.array.buffer._uuid === undefined ) {\n\n\t\t\tthis.array.buffer._uuid = generateUUID();\n\n\t\t}\n\n\t\tif ( data.arrayBuffers[ this.array.buffer._uuid ] === undefined ) {\n\n\t\t\tdata.arrayBuffers[ this.array.buffer._uuid ] = Array.from( new Uint32Array( this.array.buffer ) );\n\n\t\t}\n\n\t\t//\n\n\t\treturn {\n\t\t\tuuid: this.uuid,\n\t\t\tbuffer: this.array.buffer._uuid,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tstride: this.stride\n\t\t};\n\n\t}\n\n}\n\nconst _vector$6 = /*@__PURE__*/ new Vector3();\n\nclass InterleavedBufferAttribute {\n\n\tconstructor( interleavedBuffer, itemSize, offset, normalized = false ) {\n\n\t\tthis.isInterleavedBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.data = interleavedBuffer;\n\t\tthis.itemSize = itemSize;\n\t\tthis.offset = offset;\n\n\t\tthis.normalized = normalized;\n\n\t}\n\n\tget count() {\n\n\t\treturn this.data.count;\n\n\t}\n\n\tget array() {\n\n\t\treturn this.data.array;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tthis.data.needsUpdate = value;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tfor ( let i = 0, l = this.data.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.fromBufferAttribute( this, i );\n\n\t\t\t_vector$6.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.fromBufferAttribute( this, i );\n\n\t\t\t_vector$6.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$6.fromBufferAttribute( this, i );\n\n\t\t\t_vector$6.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$6.x, _vector$6.y, _vector$6.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index, component ) {\n\n\t\tlet value = this.array[ index * this.data.stride + this.offset + component ];\n\n\t\tif ( this.normalized ) value = denormalize( value, this.array );\n\n\t\treturn value;\n\n\t}\n\n\tsetComponent( index, component, value ) {\n\n\t\tif ( this.normalized ) value = normalize( value, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + component ] = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( index, x ) {\n\n\t\tif ( this.normalized ) x = normalize( x, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset ] = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( index, y ) {\n\n\t\tif ( this.normalized ) y = normalize( y, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( index, z ) {\n\n\t\tif ( this.normalized ) z = normalize( z, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( index, w ) {\n\n\t\tif ( this.normalized ) w = normalize( w, this.array );\n\n\t\tthis.data.array[ index * this.data.stride + this.offset + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tgetX( index ) {\n\n\t\tlet x = this.data.array[ index * this.data.stride + this.offset ];\n\n\t\tif ( this.normalized ) x = denormalize( x, this.array );\n\n\t\treturn x;\n\n\t}\n\n\tgetY( index ) {\n\n\t\tlet y = this.data.array[ index * this.data.stride + this.offset + 1 ];\n\n\t\tif ( this.normalized ) y = denormalize( y, this.array );\n\n\t\treturn y;\n\n\t}\n\n\tgetZ( index ) {\n\n\t\tlet z = this.data.array[ index * this.data.stride + this.offset + 2 ];\n\n\t\tif ( this.normalized ) z = denormalize( z, this.array );\n\n\t\treturn z;\n\n\t}\n\n\tgetW( index ) {\n\n\t\tlet w = this.data.array[ index * this.data.stride + this.offset + 3 ];\n\n\t\tif ( this.normalized ) w = denormalize( w, this.array );\n\n\t\treturn w;\n\n\t}\n\n\tsetXY( index, x, y ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\n\t\t}\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZ( index, x, y, z ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\n\t\t}\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\t\tthis.data.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetXYZW( index, x, y, z, w ) {\n\n\t\tindex = index * this.data.stride + this.offset;\n\n\t\tif ( this.normalized ) {\n\n\t\t\tx = normalize( x, this.array );\n\t\t\ty = normalize( y, this.array );\n\t\t\tz = normalize( z, this.array );\n\t\t\tw = normalize( w, this.array );\n\n\t\t}\n\n\t\tthis.data.array[ index + 0 ] = x;\n\t\tthis.data.array[ index + 1 ] = y;\n\t\tthis.data.array[ index + 2 ] = z;\n\t\tthis.data.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tif ( data === undefined ) {\n\n\t\t\tconsole.log( 'THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.' );\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0; i < this.count; i ++ ) {\n\n\t\t\t\tconst index = i * this.data.stride + this.offset;\n\n\t\t\t\tfor ( let j = 0; j < this.itemSize; j ++ ) {\n\n\t\t\t\t\tarray.push( this.data.array[ index + j ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( new this.array.constructor( array ), this.itemSize, this.normalized );\n\n\t\t} else {\n\n\t\t\tif ( data.interleavedBuffers === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers = {};\n\n\t\t\t}\n\n\t\t\tif ( data.interleavedBuffers[ this.data.uuid ] === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers[ this.data.uuid ] = this.data.clone( data );\n\n\t\t\t}\n\n\t\t\treturn new InterleavedBufferAttribute( data.interleavedBuffers[ this.data.uuid ], this.itemSize, this.offset, this.normalized );\n\n\t\t}\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tif ( data === undefined ) {\n\n\t\t\tconsole.log( 'THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.' );\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0; i < this.count; i ++ ) {\n\n\t\t\t\tconst index = i * this.data.stride + this.offset;\n\n\t\t\t\tfor ( let j = 0; j < this.itemSize; j ++ ) {\n\n\t\t\t\t\tarray.push( this.data.array[ index + j ] );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// de-interleave data and save it as an ordinary buffer attribute for now\n\n\t\t\treturn {\n\t\t\t\titemSize: this.itemSize,\n\t\t\t\ttype: this.array.constructor.name,\n\t\t\t\tarray: array,\n\t\t\t\tnormalized: this.normalized\n\t\t\t};\n\n\t\t} else {\n\n\t\t\t// save as true interleaved attribute\n\n\t\t\tif ( data.interleavedBuffers === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers = {};\n\n\t\t\t}\n\n\t\t\tif ( data.interleavedBuffers[ this.data.uuid ] === undefined ) {\n\n\t\t\t\tdata.interleavedBuffers[ this.data.uuid ] = this.data.toJSON( data );\n\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tisInterleavedBufferAttribute: true,\n\t\t\t\titemSize: this.itemSize,\n\t\t\t\tdata: this.data.uuid,\n\t\t\t\toffset: this.offset,\n\t\t\t\tnormalized: this.normalized\n\t\t\t};\n\n\t\t}\n\n\t}\n\n}\n\nclass SpriteMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isSpriteMaterial = true;\n\n\t\tthis.type = 'SpriteMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.rotation = 0;\n\n\t\tthis.sizeAttenuation = true;\n\n\t\tthis.transparent = true;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.sizeAttenuation = source.sizeAttenuation;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nlet _geometry;\n\nconst _intersectPoint = /*@__PURE__*/ new Vector3();\nconst _worldScale = /*@__PURE__*/ new Vector3();\nconst _mvPosition = /*@__PURE__*/ new Vector3();\n\nconst _alignedPosition = /*@__PURE__*/ new Vector2();\nconst _rotatedPosition = /*@__PURE__*/ new Vector2();\nconst _viewWorldMatrix = /*@__PURE__*/ new Matrix4();\n\nconst _vA = /*@__PURE__*/ new Vector3();\nconst _vB = /*@__PURE__*/ new Vector3();\nconst _vC = /*@__PURE__*/ new Vector3();\n\nconst _uvA = /*@__PURE__*/ new Vector2();\nconst _uvB = /*@__PURE__*/ new Vector2();\nconst _uvC = /*@__PURE__*/ new Vector2();\n\nclass Sprite extends Object3D {\n\n\tconstructor( material = new SpriteMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isSprite = true;\n\n\t\tthis.type = 'Sprite';\n\n\t\tif ( _geometry === undefined ) {\n\n\t\t\t_geometry = new BufferGeometry();\n\n\t\t\tconst float32Array = new Float32Array( [\n\t\t\t\t- 0.5, - 0.5, 0, 0, 0,\n\t\t\t\t0.5, - 0.5, 0, 1, 0,\n\t\t\t\t0.5, 0.5, 0, 1, 1,\n\t\t\t\t- 0.5, 0.5, 0, 0, 1\n\t\t\t] );\n\n\t\t\tconst interleavedBuffer = new InterleavedBuffer( float32Array, 5 );\n\n\t\t\t_geometry.setIndex( [ 0, 1, 2,\t0, 2, 3 ] );\n\t\t\t_geometry.setAttribute( 'position', new InterleavedBufferAttribute( interleavedBuffer, 3, 0, false ) );\n\t\t\t_geometry.setAttribute( 'uv', new InterleavedBufferAttribute( interleavedBuffer, 2, 3, false ) );\n\n\t\t}\n\n\t\tthis.geometry = _geometry;\n\t\tthis.material = material;\n\n\t\tthis.center = new Vector2( 0.5, 0.5 );\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tif ( raycaster.camera === null ) {\n\n\t\t\tconsole.error( 'THREE.Sprite: \"Raycaster.camera\" needs to be set in order to raycast against sprites.' );\n\n\t\t}\n\n\t\t_worldScale.setFromMatrixScale( this.matrixWorld );\n\n\t\t_viewWorldMatrix.copy( raycaster.camera.matrixWorld );\n\t\tthis.modelViewMatrix.multiplyMatrices( raycaster.camera.matrixWorldInverse, this.matrixWorld );\n\n\t\t_mvPosition.setFromMatrixPosition( this.modelViewMatrix );\n\n\t\tif ( raycaster.camera.isPerspectiveCamera && this.material.sizeAttenuation === false ) {\n\n\t\t\t_worldScale.multiplyScalar( - _mvPosition.z );\n\n\t\t}\n\n\t\tconst rotation = this.material.rotation;\n\t\tlet sin, cos;\n\n\t\tif ( rotation !== 0 ) {\n\n\t\t\tcos = Math.cos( rotation );\n\t\t\tsin = Math.sin( rotation );\n\n\t\t}\n\n\t\tconst center = this.center;\n\n\t\ttransformVertex( _vA.set( - 0.5, - 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\ttransformVertex( _vB.set( 0.5, - 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\ttransformVertex( _vC.set( 0.5, 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\n\t\t_uvA.set( 0, 0 );\n\t\t_uvB.set( 1, 0 );\n\t\t_uvC.set( 1, 1 );\n\n\t\t// check first triangle\n\t\tlet intersect = raycaster.ray.intersectTriangle( _vA, _vB, _vC, false, _intersectPoint );\n\n\t\tif ( intersect === null ) {\n\n\t\t\t// check second triangle\n\t\t\ttransformVertex( _vB.set( - 0.5, 0.5, 0 ), _mvPosition, center, _worldScale, sin, cos );\n\t\t\t_uvB.set( 0, 1 );\n\n\t\t\tintersect = raycaster.ray.intersectTriangle( _vA, _vC, _vB, false, _intersectPoint );\n\t\t\tif ( intersect === null ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst distance = raycaster.ray.origin.distanceTo( _intersectPoint );\n\n\t\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\t\tintersects.push( {\n\n\t\t\tdistance: distance,\n\t\t\tpoint: _intersectPoint.clone(),\n\t\t\tuv: Triangle.getInterpolation( _intersectPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2() ),\n\t\t\tface: null,\n\t\t\tobject: this\n\n\t\t} );\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tif ( source.center !== undefined ) this.center.copy( source.center );\n\n\t\tthis.material = source.material;\n\n\t\treturn this;\n\n\t}\n\n}\n\nfunction transformVertex( vertexPosition, mvPosition, center, scale, sin, cos ) {\n\n\t// compute position in camera space\n\t_alignedPosition.subVectors( vertexPosition, center ).addScalar( 0.5 ).multiply( scale );\n\n\t// to check if rotation is not zero\n\tif ( sin !== undefined ) {\n\n\t\t_rotatedPosition.x = ( cos * _alignedPosition.x ) - ( sin * _alignedPosition.y );\n\t\t_rotatedPosition.y = ( sin * _alignedPosition.x ) + ( cos * _alignedPosition.y );\n\n\t} else {\n\n\t\t_rotatedPosition.copy( _alignedPosition );\n\n\t}\n\n\n\tvertexPosition.copy( mvPosition );\n\tvertexPosition.x += _rotatedPosition.x;\n\tvertexPosition.y += _rotatedPosition.y;\n\n\t// transform to world space\n\tvertexPosition.applyMatrix4( _viewWorldMatrix );\n\n}\n\nconst _v1$2 = /*@__PURE__*/ new Vector3();\nconst _v2$1 = /*@__PURE__*/ new Vector3();\n\nclass LOD extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis._currentLevel = 0;\n\n\t\tthis.type = 'LOD';\n\n\t\tObject.defineProperties( this, {\n\t\t\tlevels: {\n\t\t\t\tenumerable: true,\n\t\t\t\tvalue: []\n\t\t\t},\n\t\t\tisLOD: {\n\t\t\t\tvalue: true,\n\t\t\t}\n\t\t} );\n\n\t\tthis.autoUpdate = true;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source, false );\n\n\t\tconst levels = source.levels;\n\n\t\tfor ( let i = 0, l = levels.length; i < l; i ++ ) {\n\n\t\t\tconst level = levels[ i ];\n\n\t\t\tthis.addLevel( level.object.clone(), level.distance, level.hysteresis );\n\n\t\t}\n\n\t\tthis.autoUpdate = source.autoUpdate;\n\n\t\treturn this;\n\n\t}\n\n\taddLevel( object, distance = 0, hysteresis = 0 ) {\n\n\t\tdistance = Math.abs( distance );\n\n\t\tconst levels = this.levels;\n\n\t\tlet l;\n\n\t\tfor ( l = 0; l < levels.length; l ++ ) {\n\n\t\t\tif ( distance < levels[ l ].distance ) {\n\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tlevels.splice( l, 0, { distance: distance, hysteresis: hysteresis, object: object } );\n\n\t\tthis.add( object );\n\n\t\treturn this;\n\n\t}\n\n\tgetCurrentLevel() {\n\n\t\treturn this._currentLevel;\n\n\t}\n\n\n\n\tgetObjectForDistance( distance ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 0 ) {\n\n\t\t\tlet i, l;\n\n\t\t\tfor ( i = 1, l = levels.length; i < l; i ++ ) {\n\n\t\t\t\tlet levelDistance = levels[ i ].distance;\n\n\t\t\t\tif ( levels[ i ].object.visible ) {\n\n\t\t\t\t\tlevelDistance -= levelDistance * levels[ i ].hysteresis;\n\n\t\t\t\t}\n\n\t\t\t\tif ( distance < levelDistance ) {\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn levels[ i - 1 ].object;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 0 ) {\n\n\t\t\t_v1$2.setFromMatrixPosition( this.matrixWorld );\n\n\t\t\tconst distance = raycaster.ray.origin.distanceTo( _v1$2 );\n\n\t\t\tthis.getObjectForDistance( distance ).raycast( raycaster, intersects );\n\n\t\t}\n\n\t}\n\n\tupdate( camera ) {\n\n\t\tconst levels = this.levels;\n\n\t\tif ( levels.length > 1 ) {\n\n\t\t\t_v1$2.setFromMatrixPosition( camera.matrixWorld );\n\t\t\t_v2$1.setFromMatrixPosition( this.matrixWorld );\n\n\t\t\tconst distance = _v1$2.distanceTo( _v2$1 ) / camera.zoom;\n\n\t\t\tlevels[ 0 ].object.visible = true;\n\n\t\t\tlet i, l;\n\n\t\t\tfor ( i = 1, l = levels.length; i < l; i ++ ) {\n\n\t\t\t\tlet levelDistance = levels[ i ].distance;\n\n\t\t\t\tif ( levels[ i ].object.visible ) {\n\n\t\t\t\t\tlevelDistance -= levelDistance * levels[ i ].hysteresis;\n\n\t\t\t\t}\n\n\t\t\t\tif ( distance >= levelDistance ) {\n\n\t\t\t\t\tlevels[ i - 1 ].object.visible = false;\n\t\t\t\t\tlevels[ i ].object.visible = true;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._currentLevel = i - 1;\n\n\t\t\tfor ( ; i < l; i ++ ) {\n\n\t\t\t\tlevels[ i ].object.visible = false;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tif ( this.autoUpdate === false ) data.object.autoUpdate = false;\n\n\t\tdata.object.levels = [];\n\n\t\tconst levels = this.levels;\n\n\t\tfor ( let i = 0, l = levels.length; i < l; i ++ ) {\n\n\t\t\tconst level = levels[ i ];\n\n\t\t\tdata.object.levels.push( {\n\t\t\t\tobject: level.object.uuid,\n\t\t\t\tdistance: level.distance,\n\t\t\t\thysteresis: level.hysteresis\n\t\t\t} );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst _basePosition = /*@__PURE__*/ new Vector3();\n\nconst _skinIndex = /*@__PURE__*/ new Vector4();\nconst _skinWeight = /*@__PURE__*/ new Vector4();\n\nconst _vector3 = /*@__PURE__*/ new Vector3();\nconst _matrix4 = /*@__PURE__*/ new Matrix4();\nconst _vertex = /*@__PURE__*/ new Vector3();\n\nconst _sphere$4 = /*@__PURE__*/ new Sphere();\nconst _inverseMatrix$2 = /*@__PURE__*/ new Matrix4();\nconst _ray$2 = /*@__PURE__*/ new Ray();\n\nclass SkinnedMesh extends Mesh {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isSkinnedMesh = true;\n\n\t\tthis.type = 'SkinnedMesh';\n\n\t\tthis.bindMode = AttachedBindMode;\n\t\tthis.bindMatrix = new Matrix4();\n\t\tthis.bindMatrixInverse = new Matrix4();\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tthis.boundingBox.makeEmpty();\n\n\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i ++ ) {\n\n\t\t\tthis.getVertexPosition( i, _vertex );\n\t\t\tthis.boundingBox.expandByPoint( _vertex );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tthis.boundingSphere.makeEmpty();\n\n\t\tconst positionAttribute = geometry.getAttribute( 'position' );\n\n\t\tfor ( let i = 0; i < positionAttribute.count; i ++ ) {\n\n\t\t\tthis.getVertexPosition( i, _vertex );\n\t\t\tthis.boundingSphere.expandByPoint( _vertex );\n\n\t\t}\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.bindMode = source.bindMode;\n\t\tthis.bindMatrix.copy( source.bindMatrix );\n\t\tthis.bindMatrixInverse.copy( source.bindMatrixInverse );\n\n\t\tthis.skeleton = source.skeleton;\n\n\t\tif ( source.boundingBox !== null ) this.boundingBox = source.boundingBox.clone();\n\t\tif ( source.boundingSphere !== null ) this.boundingSphere = source.boundingSphere.clone();\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst material = this.material;\n\t\tconst matrixWorld = this.matrixWorld;\n\n\t\tif ( material === undefined ) return;\n\n\t\t// test with bounding sphere in world space\n\n\t\tif ( this.boundingSphere === null ) this.computeBoundingSphere();\n\n\t\t_sphere$4.copy( this.boundingSphere );\n\t\t_sphere$4.applyMatrix4( matrixWorld );\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$4 ) === false ) return;\n\n\t\t// convert ray to local space of skinned mesh\n\n\t\t_inverseMatrix$2.copy( matrixWorld ).invert();\n\t\t_ray$2.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$2 );\n\n\t\t// test with bounding box in local space\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tif ( _ray$2.intersectsBox( this.boundingBox ) === false ) return;\n\n\t\t}\n\n\t\t// test for intersections with geometry\n\n\t\tthis._computeIntersections( raycaster, intersects, _ray$2 );\n\n\t}\n\n\tgetVertexPosition( index, target ) {\n\n\t\tsuper.getVertexPosition( index, target );\n\n\t\tthis.applyBoneTransform( index, target );\n\n\t\treturn target;\n\n\t}\n\n\tbind( skeleton, bindMatrix ) {\n\n\t\tthis.skeleton = skeleton;\n\n\t\tif ( bindMatrix === undefined ) {\n\n\t\t\tthis.updateMatrixWorld( true );\n\n\t\t\tthis.skeleton.calculateInverses();\n\n\t\t\tbindMatrix = this.matrixWorld;\n\n\t\t}\n\n\t\tthis.bindMatrix.copy( bindMatrix );\n\t\tthis.bindMatrixInverse.copy( bindMatrix ).invert();\n\n\t}\n\n\tpose() {\n\n\t\tthis.skeleton.pose();\n\n\t}\n\n\tnormalizeSkinWeights() {\n\n\t\tconst vector = new Vector4();\n\n\t\tconst skinWeight = this.geometry.attributes.skinWeight;\n\n\t\tfor ( let i = 0, l = skinWeight.count; i < l; i ++ ) {\n\n\t\t\tvector.fromBufferAttribute( skinWeight, i );\n\n\t\t\tconst scale = 1.0 / vector.manhattanLength();\n\n\t\t\tif ( scale !== Infinity ) {\n\n\t\t\t\tvector.multiplyScalar( scale );\n\n\t\t\t} else {\n\n\t\t\t\tvector.set( 1, 0, 0, 0 ); // do something reasonable\n\n\t\t\t}\n\n\t\t\tskinWeight.setXYZW( i, vector.x, vector.y, vector.z, vector.w );\n\n\t\t}\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tif ( this.bindMode === AttachedBindMode ) {\n\n\t\t\tthis.bindMatrixInverse.copy( this.matrixWorld ).invert();\n\n\t\t} else if ( this.bindMode === DetachedBindMode ) {\n\n\t\t\tthis.bindMatrixInverse.copy( this.bindMatrix ).invert();\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.SkinnedMesh: Unrecognized bindMode: ' + this.bindMode );\n\n\t\t}\n\n\t}\n\n\tapplyBoneTransform( index, vector ) {\n\n\t\tconst skeleton = this.skeleton;\n\t\tconst geometry = this.geometry;\n\n\t\t_skinIndex.fromBufferAttribute( geometry.attributes.skinIndex, index );\n\t\t_skinWeight.fromBufferAttribute( geometry.attributes.skinWeight, index );\n\n\t\t_basePosition.copy( vector ).applyMatrix4( this.bindMatrix );\n\n\t\tvector.set( 0, 0, 0 );\n\n\t\tfor ( let i = 0; i < 4; i ++ ) {\n\n\t\t\tconst weight = _skinWeight.getComponent( i );\n\n\t\t\tif ( weight !== 0 ) {\n\n\t\t\t\tconst boneIndex = _skinIndex.getComponent( i );\n\n\t\t\t\t_matrix4.multiplyMatrices( skeleton.bones[ boneIndex ].matrixWorld, skeleton.boneInverses[ boneIndex ] );\n\n\t\t\t\tvector.addScaledVector( _vector3.copy( _basePosition ).applyMatrix4( _matrix4 ), weight );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn vector.applyMatrix4( this.bindMatrixInverse );\n\n\t}\n\n}\n\nclass Bone extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isBone = true;\n\n\t\tthis.type = 'Bone';\n\n\t}\n\n}\n\nclass DataTexture extends Texture {\n\n\tconstructor( data = null, width = 1, height = 1, format, type, mapping, wrapS, wrapT, magFilter = NearestFilter, minFilter = NearestFilter, anisotropy, colorSpace ) {\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\tthis.isDataTexture = true;\n\n\t\tthis.image = { data: data, width: width, height: height };\n\n\t\tthis.generateMipmaps = false;\n\t\tthis.flipY = false;\n\t\tthis.unpackAlignment = 1;\n\n\t}\n\n}\n\nconst _offsetMatrix = /*@__PURE__*/ new Matrix4();\nconst _identityMatrix$1 = /*@__PURE__*/ new Matrix4();\n\nclass Skeleton {\n\n\tconstructor( bones = [], boneInverses = [] ) {\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.bones = bones.slice( 0 );\n\t\tthis.boneInverses = boneInverses;\n\t\tthis.boneMatrices = null;\n\n\t\tthis.boneTexture = null;\n\n\t\tthis.init();\n\n\t}\n\n\tinit() {\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\n\t\tthis.boneMatrices = new Float32Array( bones.length * 16 );\n\n\t\t// calculate inverse bone matrices if necessary\n\n\t\tif ( boneInverses.length === 0 ) {\n\n\t\t\tthis.calculateInverses();\n\n\t\t} else {\n\n\t\t\t// handle special case\n\n\t\t\tif ( bones.length !== boneInverses.length ) {\n\n\t\t\t\tconsole.warn( 'THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.' );\n\n\t\t\t\tthis.boneInverses = [];\n\n\t\t\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\t\t\tthis.boneInverses.push( new Matrix4() );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcalculateInverses() {\n\n\t\tthis.boneInverses.length = 0;\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst inverse = new Matrix4();\n\n\t\t\tif ( this.bones[ i ] ) {\n\n\t\t\t\tinverse.copy( this.bones[ i ].matrixWorld ).invert();\n\n\t\t\t}\n\n\t\t\tthis.boneInverses.push( inverse );\n\n\t\t}\n\n\t}\n\n\tpose() {\n\n\t\t// recover the bind-time world matrices\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone ) {\n\n\t\t\t\tbone.matrixWorld.copy( this.boneInverses[ i ] ).invert();\n\n\t\t\t}\n\n\t\t}\n\n\t\t// compute the local matrices, positions, rotations and scales\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone ) {\n\n\t\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\t\tbone.matrix.copy( bone.parent.matrixWorld ).invert();\n\t\t\t\t\tbone.matrix.multiply( bone.matrixWorld );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tbone.matrix.copy( bone.matrixWorld );\n\n\t\t\t\t}\n\n\t\t\t\tbone.matrix.decompose( bone.position, bone.quaternion, bone.scale );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdate() {\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\t\tconst boneMatrices = this.boneMatrices;\n\t\tconst boneTexture = this.boneTexture;\n\n\t\t// flatten bone matrices to array\n\n\t\tfor ( let i = 0, il = bones.length; i < il; i ++ ) {\n\n\t\t\t// compute the offset between the current and the original transform\n\n\t\t\tconst matrix = bones[ i ] ? bones[ i ].matrixWorld : _identityMatrix$1;\n\n\t\t\t_offsetMatrix.multiplyMatrices( matrix, boneInverses[ i ] );\n\t\t\t_offsetMatrix.toArray( boneMatrices, i * 16 );\n\n\t\t}\n\n\t\tif ( boneTexture !== null ) {\n\n\t\t\tboneTexture.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new Skeleton( this.bones, this.boneInverses );\n\n\t}\n\n\tcomputeBoneTexture() {\n\n\t\t// layout (1 matrix = 4 pixels)\n\t\t// RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4)\n\t\t// with 8x8 pixel texture max 16 bones * 4 pixels = (8 * 8)\n\t\t// 16x16 pixel texture max 64 bones * 4 pixels = (16 * 16)\n\t\t// 32x32 pixel texture max 256 bones * 4 pixels = (32 * 32)\n\t\t// 64x64 pixel texture max 1024 bones * 4 pixels = (64 * 64)\n\n\t\tlet size = Math.sqrt( this.bones.length * 4 ); // 4 pixels needed for 1 matrix\n\t\tsize = Math.ceil( size / 4 ) * 4;\n\t\tsize = Math.max( size, 4 );\n\n\t\tconst boneMatrices = new Float32Array( size * size * 4 ); // 4 floats per RGBA pixel\n\t\tboneMatrices.set( this.boneMatrices ); // copy current values\n\n\t\tconst boneTexture = new DataTexture( boneMatrices, size, size, RGBAFormat, FloatType );\n\t\tboneTexture.needsUpdate = true;\n\n\t\tthis.boneMatrices = boneMatrices;\n\t\tthis.boneTexture = boneTexture;\n\n\t\treturn this;\n\n\t}\n\n\tgetBoneByName( name ) {\n\n\t\tfor ( let i = 0, il = this.bones.length; i < il; i ++ ) {\n\n\t\t\tconst bone = this.bones[ i ];\n\n\t\t\tif ( bone.name === name ) {\n\n\t\t\t\treturn bone;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t}\n\n\tdispose( ) {\n\n\t\tif ( this.boneTexture !== null ) {\n\n\t\t\tthis.boneTexture.dispose();\n\n\t\t\tthis.boneTexture = null;\n\n\t\t}\n\n\t}\n\n\tfromJSON( json, bones ) {\n\n\t\tthis.uuid = json.uuid;\n\n\t\tfor ( let i = 0, l = json.bones.length; i < l; i ++ ) {\n\n\t\t\tconst uuid = json.bones[ i ];\n\t\t\tlet bone = bones[ uuid ];\n\n\t\t\tif ( bone === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.Skeleton: No bone found with UUID:', uuid );\n\t\t\t\tbone = new Bone();\n\n\t\t\t}\n\n\t\t\tthis.bones.push( bone );\n\t\t\tthis.boneInverses.push( new Matrix4().fromArray( json.boneInverses[ i ] ) );\n\n\t\t}\n\n\t\tthis.init();\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Skeleton',\n\t\t\t\tgenerator: 'Skeleton.toJSON'\n\t\t\t},\n\t\t\tbones: [],\n\t\t\tboneInverses: []\n\t\t};\n\n\t\tdata.uuid = this.uuid;\n\n\t\tconst bones = this.bones;\n\t\tconst boneInverses = this.boneInverses;\n\n\t\tfor ( let i = 0, l = bones.length; i < l; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\t\t\tdata.bones.push( bone.uuid );\n\n\t\t\tconst boneInverse = boneInverses[ i ];\n\t\t\tdata.boneInverses.push( boneInverse.toArray() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass InstancedBufferAttribute extends BufferAttribute {\n\n\tconstructor( array, itemSize, normalized, meshPerAttribute = 1 ) {\n\n\t\tsuper( array, itemSize, normalized );\n\n\t\tthis.isInstancedBufferAttribute = true;\n\n\t\tthis.meshPerAttribute = meshPerAttribute;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.meshPerAttribute = source.meshPerAttribute;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.meshPerAttribute = this.meshPerAttribute;\n\n\t\tdata.isInstancedBufferAttribute = true;\n\n\t\treturn data;\n\n\t}\n\n}\n\nconst _instanceLocalMatrix = /*@__PURE__*/ new Matrix4();\nconst _instanceWorldMatrix = /*@__PURE__*/ new Matrix4();\n\nconst _instanceIntersects = [];\n\nconst _box3 = /*@__PURE__*/ new Box3();\nconst _identity = /*@__PURE__*/ new Matrix4();\nconst _mesh$1 = /*@__PURE__*/ new Mesh();\nconst _sphere$3 = /*@__PURE__*/ new Sphere();\n\nclass InstancedMesh extends Mesh {\n\n\tconstructor( geometry, material, count ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isInstancedMesh = true;\n\n\t\tthis.instanceMatrix = new InstancedBufferAttribute( new Float32Array( count * 16 ), 16 );\n\t\tthis.instanceColor = null;\n\t\tthis.morphTexture = null;\n\n\t\tthis.count = count;\n\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.setMatrixAt( i, _identity );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tconst geometry = this.geometry;\n\t\tconst count = this.count;\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\tgeometry.computeBoundingBox();\n\n\t\t}\n\n\t\tthis.boundingBox.makeEmpty();\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.getMatrixAt( i, _instanceLocalMatrix );\n\n\t\t\t_box3.copy( geometry.boundingBox ).applyMatrix4( _instanceLocalMatrix );\n\n\t\t\tthis.boundingBox.union( _box3 );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tconst geometry = this.geometry;\n\t\tconst count = this.count;\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tif ( geometry.boundingSphere === null ) {\n\n\t\t\tgeometry.computeBoundingSphere();\n\n\t\t}\n\n\t\tthis.boundingSphere.makeEmpty();\n\n\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\tthis.getMatrixAt( i, _instanceLocalMatrix );\n\n\t\t\t_sphere$3.copy( geometry.boundingSphere ).applyMatrix4( _instanceLocalMatrix );\n\n\t\t\tthis.boundingSphere.union( _sphere$3 );\n\n\t\t}\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.instanceMatrix.copy( source.instanceMatrix );\n\n\t\tif ( source.morphTexture !== null ) this.morphTexture = source.morphTexture.clone();\n\t\tif ( source.instanceColor !== null ) this.instanceColor = source.instanceColor.clone();\n\n\t\tthis.count = source.count;\n\n\t\tif ( source.boundingBox !== null ) this.boundingBox = source.boundingBox.clone();\n\t\tif ( source.boundingSphere !== null ) this.boundingSphere = source.boundingSphere.clone();\n\n\t\treturn this;\n\n\t}\n\n\tgetColorAt( index, color ) {\n\n\t\tcolor.fromArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\tgetMatrixAt( index, matrix ) {\n\n\t\tmatrix.fromArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\tgetMorphAt( index, object ) {\n\n\t\tconst objectInfluences = object.morphTargetInfluences;\n\n\t\tconst array = this.morphTexture.source.data.data;\n\n\t\tconst len = objectInfluences.length + 1; // All influences + the baseInfluenceSum\n\n\t\tconst dataIndex = index * len + 1; // Skip the baseInfluenceSum at the beginning\n\n\t\tfor ( let i = 0; i < objectInfluences.length; i ++ ) {\n\n\t\t\tobjectInfluences[ i ] = array[ dataIndex + i ];\n\n\t\t}\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst raycastTimes = this.count;\n\n\t\t_mesh$1.geometry = this.geometry;\n\t\t_mesh$1.material = this.material;\n\n\t\tif ( _mesh$1.material === undefined ) return;\n\n\t\t// test with bounding sphere first\n\n\t\tif ( this.boundingSphere === null ) this.computeBoundingSphere();\n\n\t\t_sphere$3.copy( this.boundingSphere );\n\t\t_sphere$3.applyMatrix4( matrixWorld );\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$3 ) === false ) return;\n\n\t\t// now test each instance\n\n\t\tfor ( let instanceId = 0; instanceId < raycastTimes; instanceId ++ ) {\n\n\t\t\t// calculate the world matrix for each instance\n\n\t\t\tthis.getMatrixAt( instanceId, _instanceLocalMatrix );\n\n\t\t\t_instanceWorldMatrix.multiplyMatrices( matrixWorld, _instanceLocalMatrix );\n\n\t\t\t// the mesh represents this single instance\n\n\t\t\t_mesh$1.matrixWorld = _instanceWorldMatrix;\n\n\t\t\t_mesh$1.raycast( raycaster, _instanceIntersects );\n\n\t\t\t// process the result of raycast\n\n\t\t\tfor ( let i = 0, l = _instanceIntersects.length; i < l; i ++ ) {\n\n\t\t\t\tconst intersect = _instanceIntersects[ i ];\n\t\t\t\tintersect.instanceId = instanceId;\n\t\t\t\tintersect.object = this;\n\t\t\t\tintersects.push( intersect );\n\n\t\t\t}\n\n\t\t\t_instanceIntersects.length = 0;\n\n\t\t}\n\n\t}\n\n\tsetColorAt( index, color ) {\n\n\t\tif ( this.instanceColor === null ) {\n\n\t\t\tthis.instanceColor = new InstancedBufferAttribute( new Float32Array( this.instanceMatrix.count * 3 ), 3 );\n\n\t\t}\n\n\t\tcolor.toArray( this.instanceColor.array, index * 3 );\n\n\t}\n\n\tsetMatrixAt( index, matrix ) {\n\n\t\tmatrix.toArray( this.instanceMatrix.array, index * 16 );\n\n\t}\n\n\tsetMorphAt( index, object ) {\n\n\t\tconst objectInfluences = object.morphTargetInfluences;\n\n\t\tconst len = objectInfluences.length + 1; // morphBaseInfluence + all influences\n\n\t\tif ( this.morphTexture === null ) {\n\n\t\t\tthis.morphTexture = new DataTexture( new Float32Array( len * this.count ), len, this.count, RedFormat, FloatType );\n\n\t\t}\n\n\t\tconst array = this.morphTexture.source.data.data;\n\n\t\tlet morphInfluencesSum = 0;\n\n\t\tfor ( let i = 0; i < objectInfluences.length; i ++ ) {\n\n\t\t\tmorphInfluencesSum += objectInfluences[ i ];\n\n\t\t}\n\n\t\tconst morphBaseInfluence = this.geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n\n\t\tconst dataIndex = len * index;\n\n\t\tarray[ dataIndex ] = morphBaseInfluence;\n\n\t\tarray.set( objectInfluences, dataIndex + 1 );\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t\tif ( this.morphTexture !== null ) {\n\n\t\t\tthis.morphTexture.dispose();\n\t\t\tthis.morphTexture = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nfunction sortOpaque( a, b ) {\n\n\treturn a.z - b.z;\n\n}\n\nfunction sortTransparent( a, b ) {\n\n\treturn b.z - a.z;\n\n}\n\nclass MultiDrawRenderList {\n\n\tconstructor() {\n\n\t\tthis.index = 0;\n\t\tthis.pool = [];\n\t\tthis.list = [];\n\n\t}\n\n\tpush( drawRange, z, index ) {\n\n\t\tconst pool = this.pool;\n\t\tconst list = this.list;\n\t\tif ( this.index >= pool.length ) {\n\n\t\t\tpool.push( {\n\n\t\t\t\tstart: - 1,\n\t\t\t\tcount: - 1,\n\t\t\t\tz: - 1,\n\t\t\t\tindex: - 1,\n\n\t\t\t} );\n\n\t\t}\n\n\t\tconst item = pool[ this.index ];\n\t\tlist.push( item );\n\t\tthis.index ++;\n\n\t\titem.start = drawRange.start;\n\t\titem.count = drawRange.count;\n\t\titem.z = z;\n\t\titem.index = index;\n\n\t}\n\n\treset() {\n\n\t\tthis.list.length = 0;\n\t\tthis.index = 0;\n\n\t}\n\n}\n\nconst _matrix$1 = /*@__PURE__*/ new Matrix4();\nconst _invMatrixWorld = /*@__PURE__*/ new Matrix4();\nconst _identityMatrix = /*@__PURE__*/ new Matrix4();\nconst _whiteColor = /*@__PURE__*/ new Color( 1, 1, 1 );\nconst _projScreenMatrix$2 = /*@__PURE__*/ new Matrix4();\nconst _frustum = /*@__PURE__*/ new Frustum();\nconst _box$1 = /*@__PURE__*/ new Box3();\nconst _sphere$2 = /*@__PURE__*/ new Sphere();\nconst _vector$5 = /*@__PURE__*/ new Vector3();\nconst _forward = /*@__PURE__*/ new Vector3();\nconst _temp = /*@__PURE__*/ new Vector3();\nconst _renderList = /*@__PURE__*/ new MultiDrawRenderList();\nconst _mesh = /*@__PURE__*/ new Mesh();\nconst _batchIntersects = [];\n\n// @TODO: SkinnedMesh support?\n// @TODO: geometry.groups support?\n// @TODO: geometry.drawRange support?\n// @TODO: geometry.morphAttributes support?\n// @TODO: Support uniform parameter per geometry\n// @TODO: Add an \"optimize\" function to pack geometry and remove data gaps\n\n// copies data from attribute \"src\" into \"target\" starting at \"targetOffset\"\nfunction copyAttributeData( src, target, targetOffset = 0 ) {\n\n\tconst itemSize = target.itemSize;\n\tif ( src.isInterleavedBufferAttribute || src.array.constructor !== target.array.constructor ) {\n\n\t\t// use the component getters and setters if the array data cannot\n\t\t// be copied directly\n\t\tconst vertexCount = src.count;\n\t\tfor ( let i = 0; i < vertexCount; i ++ ) {\n\n\t\t\tfor ( let c = 0; c < itemSize; c ++ ) {\n\n\t\t\t\ttarget.setComponent( i + targetOffset, c, src.getComponent( i, c ) );\n\n\t\t\t}\n\n\t\t}\n\n\t} else {\n\n\t\t// faster copy approach using typed array set function\n\t\ttarget.array.set( src.array, targetOffset * itemSize );\n\n\t}\n\n\ttarget.needsUpdate = true;\n\n}\n\nclass BatchedMesh extends Mesh {\n\n\tget maxInstanceCount() {\n\n\t\treturn this._maxInstanceCount;\n\n\t}\n\n\tconstructor( maxInstanceCount, maxVertexCount, maxIndexCount = maxVertexCount * 2, material ) {\n\n\t\tsuper( new BufferGeometry(), material );\n\n\t\tthis.isBatchedMesh = true;\n\t\tthis.perObjectFrustumCulled = true;\n\t\tthis.sortObjects = true;\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\t\tthis.customSort = null;\n\n\t\t// stores visible, active, and geometry id per object\n\t\tthis._drawInfo = [];\n\n\t\t// geometry information\n\t\tthis._drawRanges = [];\n\t\tthis._reservedRanges = [];\n\t\tthis._bounds = [];\n\n\t\tthis._maxInstanceCount = maxInstanceCount;\n\t\tthis._maxVertexCount = maxVertexCount;\n\t\tthis._maxIndexCount = maxIndexCount;\n\n\t\tthis._geometryInitialized = false;\n\t\tthis._geometryCount = 0;\n\t\tthis._multiDrawCounts = new Int32Array( maxInstanceCount );\n\t\tthis._multiDrawStarts = new Int32Array( maxInstanceCount );\n\t\tthis._multiDrawCount = 0;\n\t\tthis._multiDrawInstances = null;\n\t\tthis._visibilityChanged = true;\n\n\t\t// Local matrix per geometry by using data texture\n\t\tthis._matricesTexture = null;\n\t\tthis._indirectTexture = null;\n\t\tthis._colorsTexture = null;\n\n\t\tthis._initMatricesTexture();\n\t\tthis._initIndirectTexture();\n\n\t}\n\n\t_initMatricesTexture() {\n\n\t\t// layout (1 matrix = 4 pixels)\n\t\t// RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4)\n\t\t// with 8x8 pixel texture max 16 matrices * 4 pixels = (8 * 8)\n\t\t// 16x16 pixel texture max 64 matrices * 4 pixels = (16 * 16)\n\t\t// 32x32 pixel texture max 256 matrices * 4 pixels = (32 * 32)\n\t\t// 64x64 pixel texture max 1024 matrices * 4 pixels = (64 * 64)\n\n\t\tlet size = Math.sqrt( this._maxInstanceCount * 4 ); // 4 pixels needed for 1 matrix\n\t\tsize = Math.ceil( size / 4 ) * 4;\n\t\tsize = Math.max( size, 4 );\n\n\t\tconst matricesArray = new Float32Array( size * size * 4 ); // 4 floats per RGBA pixel\n\t\tconst matricesTexture = new DataTexture( matricesArray, size, size, RGBAFormat, FloatType );\n\n\t\tthis._matricesTexture = matricesTexture;\n\n\t}\n\n\t_initIndirectTexture() {\n\n\t\tlet size = Math.sqrt( this._maxInstanceCount );\n\t\tsize = Math.ceil( size );\n\n\t\tconst indirectArray = new Uint32Array( size * size );\n\t\tconst indirectTexture = new DataTexture( indirectArray, size, size, RedIntegerFormat, UnsignedIntType );\n\n\t\tthis._indirectTexture = indirectTexture;\n\n\t}\n\n\t_initColorsTexture() {\n\n\t\tlet size = Math.sqrt( this._maxIndexCount );\n\t\tsize = Math.ceil( size );\n\n\t\t// 4 floats per RGBA pixel initialized to white\n\t\tconst colorsArray = new Float32Array( size * size * 4 ).fill( 1 );\n\t\tconst colorsTexture = new DataTexture( colorsArray, size, size, RGBAFormat, FloatType );\n\t\tcolorsTexture.colorSpace = ColorManagement.workingColorSpace;\n\n\t\tthis._colorsTexture = colorsTexture;\n\n\t}\n\n\t_initializeGeometry( reference ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst maxVertexCount = this._maxVertexCount;\n\t\tconst maxIndexCount = this._maxIndexCount;\n\t\tif ( this._geometryInitialized === false ) {\n\n\t\t\tfor ( const attributeName in reference.attributes ) {\n\n\t\t\t\tconst srcAttribute = reference.getAttribute( attributeName );\n\t\t\t\tconst { array, itemSize, normalized } = srcAttribute;\n\n\t\t\t\tconst dstArray = new array.constructor( maxVertexCount * itemSize );\n\t\t\t\tconst dstAttribute = new BufferAttribute( dstArray, itemSize, normalized );\n\n\t\t\t\tgeometry.setAttribute( attributeName, dstAttribute );\n\n\t\t\t}\n\n\t\t\tif ( reference.getIndex() !== null ) {\n\n\t\t\t\t// Reserve last u16 index for primitive restart.\n\t\t\t\tconst indexArray = maxVertexCount > 65535\n\t\t\t\t\t? new Uint32Array( maxIndexCount )\n\t\t\t\t\t: new Uint16Array( maxIndexCount );\n\n\t\t\t\tgeometry.setIndex( new BufferAttribute( indexArray, 1 ) );\n\n\t\t\t}\n\n\t\t\tthis._geometryInitialized = true;\n\n\t\t}\n\n\t}\n\n\t// Make sure the geometry is compatible with the existing combined geometry attributes\n\t_validateGeometry( geometry ) {\n\n\t\t// check to ensure the geometries are using consistent attributes and indices\n\t\tconst batchGeometry = this.geometry;\n\t\tif ( Boolean( geometry.getIndex() ) !== Boolean( batchGeometry.getIndex() ) ) {\n\n\t\t\tthrow new Error( 'BatchedMesh: All geometries must consistently have \"index\".' );\n\n\t\t}\n\n\t\tfor ( const attributeName in batchGeometry.attributes ) {\n\n\t\t\tif ( ! geometry.hasAttribute( attributeName ) ) {\n\n\t\t\t\tthrow new Error( `BatchedMesh: Added geometry missing \"${ attributeName }\". All geometries must have consistent attributes.` );\n\n\t\t\t}\n\n\t\t\tconst srcAttribute = geometry.getAttribute( attributeName );\n\t\t\tconst dstAttribute = batchGeometry.getAttribute( attributeName );\n\t\t\tif ( srcAttribute.itemSize !== dstAttribute.itemSize || srcAttribute.normalized !== dstAttribute.normalized ) {\n\n\t\t\t\tthrow new Error( 'BatchedMesh: All attributes must have a consistent itemSize and normalized value.' );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tsetCustomSort( func ) {\n\n\t\tthis.customSort = func;\n\t\treturn this;\n\n\t}\n\n\tcomputeBoundingBox() {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst geometryCount = this._geometryCount;\n\t\tconst boundingBox = this.boundingBox;\n\t\tconst drawInfo = this._drawInfo;\n\n\t\tboundingBox.makeEmpty();\n\t\tfor ( let i = 0; i < geometryCount; i ++ ) {\n\n\t\t\tif ( drawInfo[ i ].active === false ) continue;\n\n\t\t\tconst geometryId = drawInfo[ i ].geometryIndex;\n\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\tthis.getBoundingBoxAt( geometryId, _box$1 ).applyMatrix4( _matrix$1 );\n\t\t\tboundingBox.union( _box$1 );\n\n\t\t}\n\n\t}\n\n\tcomputeBoundingSphere() {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tconst boundingSphere = this.boundingSphere;\n\t\tconst drawInfo = this._drawInfo;\n\n\t\tboundingSphere.makeEmpty();\n\t\tfor ( let i = 0, l = drawInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( drawInfo[ i ].active === false ) continue;\n\n\t\t\tconst geometryId = drawInfo[ i ].geometryIndex;\n\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\tthis.getBoundingSphereAt( geometryId, _sphere$2 ).applyMatrix4( _matrix$1 );\n\t\t\tboundingSphere.union( _sphere$2 );\n\n\t\t}\n\n\t}\n\n\taddInstance( geometryId ) {\n\n\t\t// ensure we're not over geometry\n\t\tif ( this._drawInfo.length >= this._maxInstanceCount ) {\n\n\t\t\tthrow new Error( 'BatchedMesh: Maximum item count reached.' );\n\n\t\t}\n\n\t\tthis._drawInfo.push( {\n\n\t\t\tvisible: true,\n\t\t\tactive: true,\n\t\t\tgeometryIndex: geometryId,\n\n\t\t} );\n\n\t\t// initialize the matrix\n\t\tconst drawId = this._drawInfo.length - 1;\n\t\tconst matricesTexture = this._matricesTexture;\n\t\tconst matricesArray = matricesTexture.image.data;\n\t\t_identityMatrix.toArray( matricesArray, drawId * 16 );\n\t\tmatricesTexture.needsUpdate = true;\n\n\t\tconst colorsTexture = this._colorsTexture;\n\t\tif ( colorsTexture ) {\n\n\t\t\t_whiteColor.toArray( colorsTexture.image.data, drawId * 4 );\n\t\t\tcolorsTexture.needsUpdate = true;\n\n\t\t}\n\n\t\treturn drawId;\n\n\t}\n\n\taddGeometry( geometry, vertexCount = - 1, indexCount = - 1 ) {\n\n\t\tthis._initializeGeometry( geometry );\n\n\t\tthis._validateGeometry( geometry );\n\n\t\t// ensure we're not over geometry\n\t\tif ( this._drawInfo.length >= this._maxInstanceCount ) {\n\n\t\t\tthrow new Error( 'BatchedMesh: Maximum item count reached.' );\n\n\t\t}\n\n\t\t// get the necessary range fo the geometry\n\t\tconst reservedRange = {\n\t\t\tvertexStart: - 1,\n\t\t\tvertexCount: - 1,\n\t\t\tindexStart: - 1,\n\t\t\tindexCount: - 1,\n\t\t};\n\n\t\tlet lastRange = null;\n\t\tconst reservedRanges = this._reservedRanges;\n\t\tconst drawRanges = this._drawRanges;\n\t\tconst bounds = this._bounds;\n\t\tif ( this._geometryCount !== 0 ) {\n\n\t\t\tlastRange = reservedRanges[ reservedRanges.length - 1 ];\n\n\t\t}\n\n\t\tif ( vertexCount === - 1 ) {\n\n\t\t\treservedRange.vertexCount = geometry.getAttribute( 'position' ).count;\n\n\t\t} else {\n\n\t\t\treservedRange.vertexCount = vertexCount;\n\n\t\t}\n\n\t\tif ( lastRange === null ) {\n\n\t\t\treservedRange.vertexStart = 0;\n\n\t\t} else {\n\n\t\t\treservedRange.vertexStart = lastRange.vertexStart + lastRange.vertexCount;\n\n\t\t}\n\n\t\tconst index = geometry.getIndex();\n\t\tconst hasIndex = index !== null;\n\t\tif ( hasIndex ) {\n\n\t\t\tif ( indexCount\t=== - 1 ) {\n\n\t\t\t\treservedRange.indexCount = index.count;\n\n\t\t\t} else {\n\n\t\t\t\treservedRange.indexCount = indexCount;\n\n\t\t\t}\n\n\t\t\tif ( lastRange === null ) {\n\n\t\t\t\treservedRange.indexStart = 0;\n\n\t\t\t} else {\n\n\t\t\t\treservedRange.indexStart = lastRange.indexStart + lastRange.indexCount;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif (\n\t\t\treservedRange.indexStart !== - 1 &&\n\t\t\treservedRange.indexStart + reservedRange.indexCount > this._maxIndexCount ||\n\t\t\treservedRange.vertexStart + reservedRange.vertexCount > this._maxVertexCount\n\t\t) {\n\n\t\t\tthrow new Error( 'BatchedMesh: Reserved space request exceeds the maximum buffer size.' );\n\n\t\t}\n\n\t\t// update id\n\t\tconst geometryId = this._geometryCount;\n\t\tthis._geometryCount ++;\n\n\t\t// add the reserved range and draw range objects\n\t\treservedRanges.push( reservedRange );\n\t\tdrawRanges.push( {\n\t\t\tstart: hasIndex ? reservedRange.indexStart : reservedRange.vertexStart,\n\t\t\tcount: - 1\n\t\t} );\n\t\tbounds.push( {\n\t\t\tboxInitialized: false,\n\t\t\tbox: new Box3(),\n\n\t\t\tsphereInitialized: false,\n\t\t\tsphere: new Sphere()\n\t\t} );\n\n\t\t// update the geometry\n\t\tthis.setGeometryAt( geometryId, geometry );\n\n\t\treturn geometryId;\n\n\t}\n\n\tsetGeometryAt( geometryId, geometry ) {\n\n\t\tif ( geometryId >= this._geometryCount ) {\n\n\t\t\tthrow new Error( 'BatchedMesh: Maximum geometry count reached.' );\n\n\t\t}\n\n\t\tthis._validateGeometry( geometry );\n\n\t\tconst batchGeometry = this.geometry;\n\t\tconst hasIndex = batchGeometry.getIndex() !== null;\n\t\tconst dstIndex = batchGeometry.getIndex();\n\t\tconst srcIndex = geometry.getIndex();\n\t\tconst reservedRange = this._reservedRanges[ geometryId ];\n\t\tif (\n\t\t\thasIndex &&\n\t\t\tsrcIndex.count > reservedRange.indexCount ||\n\t\t\tgeometry.attributes.position.count > reservedRange.vertexCount\n\t\t) {\n\n\t\t\tthrow new Error( 'BatchedMesh: Reserved space not large enough for provided geometry.' );\n\n\t\t}\n\n\t\t// copy geometry over\n\t\tconst vertexStart = reservedRange.vertexStart;\n\t\tconst vertexCount = reservedRange.vertexCount;\n\t\tfor ( const attributeName in batchGeometry.attributes ) {\n\n\t\t\t// copy attribute data\n\t\t\tconst srcAttribute = geometry.getAttribute( attributeName );\n\t\t\tconst dstAttribute = batchGeometry.getAttribute( attributeName );\n\t\t\tcopyAttributeData( srcAttribute, dstAttribute, vertexStart );\n\n\t\t\t// fill the rest in with zeroes\n\t\t\tconst itemSize = srcAttribute.itemSize;\n\t\t\tfor ( let i = srcAttribute.count, l = vertexCount; i < l; i ++ ) {\n\n\t\t\t\tconst index = vertexStart + i;\n\t\t\t\tfor ( let c = 0; c < itemSize; c ++ ) {\n\n\t\t\t\t\tdstAttribute.setComponent( index, c, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tdstAttribute.needsUpdate = true;\n\t\t\tdstAttribute.addUpdateRange( vertexStart * itemSize, vertexCount * itemSize );\n\n\t\t}\n\n\t\t// copy index\n\t\tif ( hasIndex ) {\n\n\t\t\tconst indexStart = reservedRange.indexStart;\n\n\t\t\t// copy index data over\n\t\t\tfor ( let i = 0; i < srcIndex.count; i ++ ) {\n\n\t\t\t\tdstIndex.setX( indexStart + i, vertexStart + srcIndex.getX( i ) );\n\n\t\t\t}\n\n\t\t\t// fill the rest in with zeroes\n\t\t\tfor ( let i = srcIndex.count, l = reservedRange.indexCount; i < l; i ++ ) {\n\n\t\t\t\tdstIndex.setX( indexStart + i, vertexStart );\n\n\t\t\t}\n\n\t\t\tdstIndex.needsUpdate = true;\n\t\t\tdstIndex.addUpdateRange( indexStart, reservedRange.indexCount );\n\n\t\t}\n\n\t\t// store the bounding boxes\n\t\tconst bound = this._bounds[ geometryId ];\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tbound.box.copy( geometry.boundingBox );\n\t\t\tbound.boxInitialized = true;\n\n\t\t} else {\n\n\t\t\tbound.boxInitialized = false;\n\n\t\t}\n\n\t\tif ( geometry.boundingSphere !== null ) {\n\n\t\t\tbound.sphere.copy( geometry.boundingSphere );\n\t\t\tbound.sphereInitialized = true;\n\n\t\t} else {\n\n\t\t\tbound.sphereInitialized = false;\n\n\t\t}\n\n\t\t// set drawRange count\n\t\tconst drawRange = this._drawRanges[ geometryId ];\n\t\tconst posAttr = geometry.getAttribute( 'position' );\n\t\tdrawRange.count = hasIndex ? srcIndex.count : posAttr.count;\n\t\tthis._visibilityChanged = true;\n\n\t\treturn geometryId;\n\n\t}\n\n\t/*\n\tdeleteGeometry( geometryId ) {\n\n\t\t// TODO: delete geometry and associated instances\n\n\t}\n\t*/\n\n\t/*\n\tdeleteInstance( instanceId ) {\n\n\t\t// Note: User needs to call optimize() afterward to pack the data.\n\n\t\tconst drawInfo = this._drawInfo;\n\t\tif ( instanceId >= drawInfo.length || drawInfo[ instanceId ].active === false ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tdrawInfo[ instanceId ].active = false;\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\t*/\n\n\t// get bounding box and compute it if it doesn't exist\n\tgetBoundingBoxAt( geometryId, target ) {\n\n\t\tif ( geometryId >= this._geometryCount ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// compute bounding box\n\t\tconst bound = this._bounds[ geometryId ];\n\t\tconst box = bound.box;\n\t\tconst geometry = this.geometry;\n\t\tif ( bound.boxInitialized === false ) {\n\n\t\t\tbox.makeEmpty();\n\n\t\t\tconst index = geometry.index;\n\t\t\tconst position = geometry.attributes.position;\n\t\t\tconst drawRange = this._drawRanges[ geometryId ];\n\t\t\tfor ( let i = drawRange.start, l = drawRange.start + drawRange.count; i < l; i ++ ) {\n\n\t\t\t\tlet iv = i;\n\t\t\t\tif ( index ) {\n\n\t\t\t\t\tiv = index.getX( iv );\n\n\t\t\t\t}\n\n\t\t\t\tbox.expandByPoint( _vector$5.fromBufferAttribute( position, iv ) );\n\n\t\t\t}\n\n\t\t\tbound.boxInitialized = true;\n\n\t\t}\n\n\t\ttarget.copy( box );\n\t\treturn target;\n\n\t}\n\n\t// get bounding sphere and compute it if it doesn't exist\n\tgetBoundingSphereAt( geometryId, target ) {\n\n\t\tif ( geometryId >= this._geometryCount ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// compute bounding sphere\n\t\tconst bound = this._bounds[ geometryId ];\n\t\tconst sphere = bound.sphere;\n\t\tconst geometry = this.geometry;\n\t\tif ( bound.sphereInitialized === false ) {\n\n\t\t\tsphere.makeEmpty();\n\n\t\t\tthis.getBoundingBoxAt( geometryId, _box$1 );\n\t\t\t_box$1.getCenter( sphere.center );\n\n\t\t\tconst index = geometry.index;\n\t\t\tconst position = geometry.attributes.position;\n\t\t\tconst drawRange = this._drawRanges[ geometryId ];\n\n\t\t\tlet maxRadiusSq = 0;\n\t\t\tfor ( let i = drawRange.start, l = drawRange.start + drawRange.count; i < l; i ++ ) {\n\n\t\t\t\tlet iv = i;\n\t\t\t\tif ( index ) {\n\n\t\t\t\t\tiv = index.getX( iv );\n\n\t\t\t\t}\n\n\t\t\t\t_vector$5.fromBufferAttribute( position, iv );\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, sphere.center.distanceToSquared( _vector$5 ) );\n\n\t\t\t}\n\n\t\t\tsphere.radius = Math.sqrt( maxRadiusSq );\n\t\t\tbound.sphereInitialized = true;\n\n\t\t}\n\n\t\ttarget.copy( sphere );\n\t\treturn target;\n\n\t}\n\n\tsetMatrixAt( instanceId, matrix ) {\n\n\t\t// @TODO: Map geometryId to index of the arrays because\n\t\t// optimize() can make geometryId mismatch the index\n\n\t\tconst drawInfo = this._drawInfo;\n\t\tconst matricesTexture = this._matricesTexture;\n\t\tconst matricesArray = this._matricesTexture.image.data;\n\t\tif ( instanceId >= drawInfo.length || drawInfo[ instanceId ].active === false ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tmatrix.toArray( matricesArray, instanceId * 16 );\n\t\tmatricesTexture.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\tgetMatrixAt( instanceId, matrix ) {\n\n\t\tconst drawInfo = this._drawInfo;\n\t\tconst matricesArray = this._matricesTexture.image.data;\n\t\tif ( instanceId >= drawInfo.length || drawInfo[ instanceId ].active === false ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn matrix.fromArray( matricesArray, instanceId * 16 );\n\n\t}\n\n\tsetColorAt( instanceId, color ) {\n\n\t\tif ( this._colorsTexture === null ) {\n\n\t\t\tthis._initColorsTexture();\n\n\t\t}\n\n\t\t// @TODO: Map id to index of the arrays because\n\t\t// optimize() can make id mismatch the index\n\n\t\tconst colorsTexture = this._colorsTexture;\n\t\tconst colorsArray = this._colorsTexture.image.data;\n\t\tconst drawInfo = this._drawInfo;\n\t\tif ( instanceId >= drawInfo.length || drawInfo[ instanceId ].active === false ) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tcolor.toArray( colorsArray, instanceId * 4 );\n\t\tcolorsTexture.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\tgetColorAt( instanceId, color ) {\n\n\t\tconst colorsArray = this._colorsTexture.image.data;\n\t\tconst drawInfo = this._drawInfo;\n\t\tif ( instanceId >= drawInfo.length || drawInfo[ instanceId ].active === false ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn color.fromArray( colorsArray, instanceId * 4 );\n\n\t}\n\n\tsetVisibleAt( instanceId, value ) {\n\n\t\t// if the geometry is out of range, not active, or visibility state\n\t\t// does not change then return early\n\t\tconst drawInfo = this._drawInfo;\n\t\tif (\n\t\t\tinstanceId >= drawInfo.length ||\n\t\t\tdrawInfo[ instanceId ].active === false ||\n\t\t\tdrawInfo[ instanceId ].visible === value\n\t\t) {\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tdrawInfo[ instanceId ].visible = value;\n\t\tthis._visibilityChanged = true;\n\n\t\treturn this;\n\n\t}\n\n\tgetVisibleAt( instanceId ) {\n\n\t\t// return early if the geometry is out of range or not active\n\t\tconst drawInfo = this._drawInfo;\n\t\tif ( instanceId >= drawInfo.length || drawInfo[ instanceId ].active === false ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn drawInfo[ instanceId ].visible;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst drawInfo = this._drawInfo;\n\t\tconst drawRanges = this._drawRanges;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst batchGeometry = this.geometry;\n\n\t\t// iterate over each geometry\n\t\t_mesh.material = this.material;\n\t\t_mesh.geometry.index = batchGeometry.index;\n\t\t_mesh.geometry.attributes = batchGeometry.attributes;\n\t\tif ( _mesh.geometry.boundingBox === null ) {\n\n\t\t\t_mesh.geometry.boundingBox = new Box3();\n\n\t\t}\n\n\t\tif ( _mesh.geometry.boundingSphere === null ) {\n\n\t\t\t_mesh.geometry.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tfor ( let i = 0, l = drawInfo.length; i < l; i ++ ) {\n\n\t\t\tif ( ! drawInfo[ i ].visible || ! drawInfo[ i ].active ) {\n\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst geometryId = drawInfo[ i ].geometryIndex;\n\t\t\tconst drawRange = drawRanges[ geometryId ];\n\t\t\t_mesh.geometry.setDrawRange( drawRange.start, drawRange.count );\n\n\t\t\t// ge the intersects\n\t\t\tthis.getMatrixAt( i, _mesh.matrixWorld ).premultiply( matrixWorld );\n\t\t\tthis.getBoundingBoxAt( geometryId, _mesh.geometry.boundingBox );\n\t\t\tthis.getBoundingSphereAt( geometryId, _mesh.geometry.boundingSphere );\n\t\t\t_mesh.raycast( raycaster, _batchIntersects );\n\n\t\t\t// add batch id to the intersects\n\t\t\tfor ( let j = 0, l = _batchIntersects.length; j < l; j ++ ) {\n\n\t\t\t\tconst intersect = _batchIntersects[ j ];\n\t\t\t\tintersect.object = this;\n\t\t\t\tintersect.batchId = i;\n\t\t\t\tintersects.push( intersect );\n\n\t\t\t}\n\n\t\t\t_batchIntersects.length = 0;\n\n\t\t}\n\n\t\t_mesh.material = null;\n\t\t_mesh.geometry.index = null;\n\t\t_mesh.geometry.attributes = {};\n\t\t_mesh.geometry.setDrawRange( 0, Infinity );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.geometry = source.geometry.clone();\n\t\tthis.perObjectFrustumCulled = source.perObjectFrustumCulled;\n\t\tthis.sortObjects = source.sortObjects;\n\t\tthis.boundingBox = source.boundingBox !== null ? source.boundingBox.clone() : null;\n\t\tthis.boundingSphere = source.boundingSphere !== null ? source.boundingSphere.clone() : null;\n\n\t\tthis._drawRanges = source._drawRanges.map( range => ( { ...range } ) );\n\t\tthis._reservedRanges = source._reservedRanges.map( range => ( { ...range } ) );\n\n\t\tthis._drawInfo = source._drawInfo.map( inf => ( { ...inf } ) );\n\t\tthis._bounds = source._bounds.map( bound => ( {\n\t\t\tboxInitialized: bound.boxInitialized,\n\t\t\tbox: bound.box.clone(),\n\n\t\t\tsphereInitialized: bound.sphereInitialized,\n\t\t\tsphere: bound.sphere.clone()\n\t\t} ) );\n\n\t\tthis._maxInstanceCount = source._maxInstanceCount;\n\t\tthis._maxVertexCount = source._maxVertexCount;\n\t\tthis._maxIndexCount = source._maxIndexCount;\n\n\t\tthis._geometryInitialized = source._geometryInitialized;\n\t\tthis._geometryCount = source._geometryCount;\n\t\tthis._multiDrawCounts = source._multiDrawCounts.slice();\n\t\tthis._multiDrawStarts = source._multiDrawStarts.slice();\n\n\t\tthis._matricesTexture = source._matricesTexture.clone();\n\t\tthis._matricesTexture.image.data = this._matricesTexture.image.slice();\n\n\t\tif ( this._colorsTexture !== null ) {\n\n\t\t\tthis._colorsTexture = source._colorsTexture.clone();\n\t\t\tthis._colorsTexture.image.data = this._colorsTexture.image.slice();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\t// Assuming the geometry is not shared with other meshes\n\t\tthis.geometry.dispose();\n\n\t\tthis._matricesTexture.dispose();\n\t\tthis._matricesTexture = null;\n\n\t\tthis._indirectTexture.dispose();\n\t\tthis._indirectTexture = null;\n\n\t\tif ( this._colorsTexture !== null ) {\n\n\t\t\tthis._colorsTexture.dispose();\n\t\t\tthis._colorsTexture = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tonBeforeRender( renderer, scene, camera, geometry, material/*, _group*/ ) {\n\n\t\t// if visibility has not changed and frustum culling and object sorting is not required\n\t\t// then skip iterating over all items\n\t\tif ( ! this._visibilityChanged && ! this.perObjectFrustumCulled && ! this.sortObjects ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// the indexed version of the multi draw function requires specifying the start\n\t\t// offset in bytes.\n\t\tconst index = geometry.getIndex();\n\t\tconst bytesPerElement = index === null ? 1 : index.array.BYTES_PER_ELEMENT;\n\n\t\tconst drawInfo = this._drawInfo;\n\t\tconst multiDrawStarts = this._multiDrawStarts;\n\t\tconst multiDrawCounts = this._multiDrawCounts;\n\t\tconst drawRanges = this._drawRanges;\n\t\tconst perObjectFrustumCulled = this.perObjectFrustumCulled;\n\t\tconst indirectTexture = this._indirectTexture;\n\t\tconst indirectArray = indirectTexture.image.data;\n\n\t\t// prepare the frustum in the local frame\n\t\tif ( perObjectFrustumCulled ) {\n\n\t\t\t_projScreenMatrix$2\n\t\t\t\t.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse )\n\t\t\t\t.multiply( this.matrixWorld );\n\t\t\t_frustum.setFromProjectionMatrix(\n\t\t\t\t_projScreenMatrix$2,\n\t\t\t\trenderer.coordinateSystem\n\t\t\t);\n\n\t\t}\n\n\t\tlet count = 0;\n\t\tif ( this.sortObjects ) {\n\n\t\t\t// get the camera position in the local frame\n\t\t\t_invMatrixWorld.copy( this.matrixWorld ).invert();\n\t\t\t_vector$5.setFromMatrixPosition( camera.matrixWorld ).applyMatrix4( _invMatrixWorld );\n\t\t\t_forward.set( 0, 0, - 1 ).transformDirection( camera.matrixWorld ).transformDirection( _invMatrixWorld );\n\n\t\t\tfor ( let i = 0, l = drawInfo.length; i < l; i ++ ) {\n\n\t\t\t\tif ( drawInfo[ i ].visible && drawInfo[ i ].active ) {\n\n\t\t\t\t\tconst geometryId = drawInfo[ i ].geometryIndex;\n\n\t\t\t\t\t// get the bounds in world space\n\t\t\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\t\t\tthis.getBoundingSphereAt( geometryId, _sphere$2 ).applyMatrix4( _matrix$1 );\n\n\t\t\t\t\t// determine whether the batched geometry is within the frustum\n\t\t\t\t\tlet culled = false;\n\t\t\t\t\tif ( perObjectFrustumCulled ) {\n\n\t\t\t\t\t\tculled = ! _frustum.intersectsSphere( _sphere$2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! culled ) {\n\n\t\t\t\t\t\t// get the distance from camera used for sorting\n\t\t\t\t\t\tconst z = _temp.subVectors( _sphere$2.center, _vector$5 ).dot( _forward );\n\t\t\t\t\t\t_renderList.push( drawRanges[ geometryId ], z, i );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Sort the draw ranges and prep for rendering\n\t\t\tconst list = _renderList.list;\n\t\t\tconst customSort = this.customSort;\n\t\t\tif ( customSort === null ) {\n\n\t\t\t\tlist.sort( material.transparent ? sortTransparent : sortOpaque );\n\n\t\t\t} else {\n\n\t\t\t\tcustomSort.call( this, list, camera );\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, l = list.length; i < l; i ++ ) {\n\n\t\t\t\tconst item = list[ i ];\n\t\t\t\tmultiDrawStarts[ count ] = item.start * bytesPerElement;\n\t\t\t\tmultiDrawCounts[ count ] = item.count;\n\t\t\t\tindirectArray[ count ] = item.index;\n\t\t\t\tcount ++;\n\n\t\t\t}\n\n\t\t\t_renderList.reset();\n\n\t\t} else {\n\n\t\t\tfor ( let i = 0, l = drawInfo.length; i < l; i ++ ) {\n\n\t\t\t\tif ( drawInfo[ i ].visible && drawInfo[ i ].active ) {\n\n\t\t\t\t\tconst geometryId = drawInfo[ i ].geometryIndex;\n\n\t\t\t\t\t// determine whether the batched geometry is within the frustum\n\t\t\t\t\tlet culled = false;\n\t\t\t\t\tif ( perObjectFrustumCulled ) {\n\n\t\t\t\t\t\t// get the bounds in world space\n\t\t\t\t\t\tthis.getMatrixAt( i, _matrix$1 );\n\t\t\t\t\t\tthis.getBoundingSphereAt( geometryId, _sphere$2 ).applyMatrix4( _matrix$1 );\n\t\t\t\t\t\tculled = ! _frustum.intersectsSphere( _sphere$2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! culled ) {\n\n\t\t\t\t\t\tconst range = drawRanges[ geometryId ];\n\t\t\t\t\t\tmultiDrawStarts[ count ] = range.start * bytesPerElement;\n\t\t\t\t\t\tmultiDrawCounts[ count ] = range.count;\n\t\t\t\t\t\tindirectArray[ count ] = i;\n\t\t\t\t\t\tcount ++;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tindirectTexture.needsUpdate = true;\n\t\tthis._multiDrawCount = count;\n\t\tthis._visibilityChanged = false;\n\n\t}\n\n\tonBeforeShadow( renderer, object, camera, shadowCamera, geometry, depthMaterial/* , group */ ) {\n\n\t\tthis.onBeforeRender( renderer, null, shadowCamera, geometry, depthMaterial );\n\n\t}\n\n}\n\nclass LineBasicMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isLineBasicMaterial = true;\n\n\t\tthis.type = 'LineBasicMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.linewidth = 1;\n\t\tthis.linecap = 'round';\n\t\tthis.linejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.linewidth = source.linewidth;\n\t\tthis.linecap = source.linecap;\n\t\tthis.linejoin = source.linejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _vStart = /*@__PURE__*/ new Vector3();\nconst _vEnd = /*@__PURE__*/ new Vector3();\n\nconst _inverseMatrix$1 = /*@__PURE__*/ new Matrix4();\nconst _ray$1 = /*@__PURE__*/ new Ray();\nconst _sphere$1 = /*@__PURE__*/ new Sphere();\n\nconst _intersectPointOnRay = /*@__PURE__*/ new Vector3();\nconst _intersectPointOnSegment = /*@__PURE__*/ new Vector3();\n\nclass Line extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new LineBasicMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isLine = true;\n\n\t\tthis.type = 'Line';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\t// we assume non-indexed geometry\n\n\t\tif ( geometry.index === null ) {\n\n\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\tconst lineDistances = [ 0 ];\n\n\t\t\tfor ( let i = 1, l = positionAttribute.count; i < l; i ++ ) {\n\n\t\t\t\t_vStart.fromBufferAttribute( positionAttribute, i - 1 );\n\t\t\t\t_vEnd.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\tlineDistances[ i ] = lineDistances[ i - 1 ];\n\t\t\t\tlineDistances[ i ] += _vStart.distanceTo( _vEnd );\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst threshold = raycaster.params.Line.threshold;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$1.copy( geometry.boundingSphere );\n\t\t_sphere$1.applyMatrix4( matrixWorld );\n\t\t_sphere$1.radius += threshold;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere$1 ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix$1.copy( matrixWorld ).invert();\n\t\t_ray$1.copy( raycaster.ray ).applyMatrix4( _inverseMatrix$1 );\n\n\t\tconst localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 );\n\t\tconst localThresholdSq = localThreshold * localThreshold;\n\n\t\tconst step = this.isLineSegments ? 2 : 1;\n\n\t\tconst index = geometry.index;\n\t\tconst attributes = geometry.attributes;\n\t\tconst positionAttribute = attributes.position;\n\n\t\tif ( index !== null ) {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\tconst a = index.getX( i );\n\t\t\t\tconst b = index.getX( i + 1 );\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.isLineLoop ) {\n\n\t\t\t\tconst a = index.getX( end - 1 );\n\t\t\t\tconst b = index.getX( start );\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, a, b );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end - 1; i < l; i += step ) {\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, i, i + 1 );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( this.isLineLoop ) {\n\n\t\t\t\tconst intersect = checkIntersection( this, raycaster, _ray$1, localThresholdSq, end - 1, start );\n\n\t\t\t\tif ( intersect ) {\n\n\t\t\t\t\tintersects.push( intersect );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction checkIntersection( object, raycaster, ray, thresholdSq, a, b ) {\n\n\tconst positionAttribute = object.geometry.attributes.position;\n\n\t_vStart.fromBufferAttribute( positionAttribute, a );\n\t_vEnd.fromBufferAttribute( positionAttribute, b );\n\n\tconst distSq = ray.distanceSqToSegment( _vStart, _vEnd, _intersectPointOnRay, _intersectPointOnSegment );\n\n\tif ( distSq > thresholdSq ) return;\n\n\t_intersectPointOnRay.applyMatrix4( object.matrixWorld ); // Move back to world space for distance calculation\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectPointOnRay );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\treturn {\n\n\t\tdistance: distance,\n\t\t// What do we want? intersection point on the ray or on the segment??\n\t\t// point: raycaster.ray.at( distance ),\n\t\tpoint: _intersectPointOnSegment.clone().applyMatrix4( object.matrixWorld ),\n\t\tindex: a,\n\t\tface: null,\n\t\tfaceIndex: null,\n\t\tobject: object\n\n\t};\n\n}\n\nconst _start = /*@__PURE__*/ new Vector3();\nconst _end = /*@__PURE__*/ new Vector3();\n\nclass LineSegments extends Line {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isLineSegments = true;\n\n\t\tthis.type = 'LineSegments';\n\n\t}\n\n\tcomputeLineDistances() {\n\n\t\tconst geometry = this.geometry;\n\n\t\t// we assume non-indexed geometry\n\n\t\tif ( geometry.index === null ) {\n\n\t\t\tconst positionAttribute = geometry.attributes.position;\n\t\t\tconst lineDistances = [];\n\n\t\t\tfor ( let i = 0, l = positionAttribute.count; i < l; i += 2 ) {\n\n\t\t\t\t_start.fromBufferAttribute( positionAttribute, i );\n\t\t\t\t_end.fromBufferAttribute( positionAttribute, i + 1 );\n\n\t\t\t\tlineDistances[ i ] = ( i === 0 ) ? 0 : lineDistances[ i - 1 ];\n\t\t\t\tlineDistances[ i + 1 ] = lineDistances[ i ] + _start.distanceTo( _end );\n\n\t\t\t}\n\n\t\t\tgeometry.setAttribute( 'lineDistance', new Float32BufferAttribute( lineDistances, 1 ) );\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.' );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineLoop extends Line {\n\n\tconstructor( geometry, material ) {\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isLineLoop = true;\n\n\t\tthis.type = 'LineLoop';\n\n\t}\n\n}\n\nclass PointsMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isPointsMaterial = true;\n\n\t\tthis.type = 'PointsMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.size = 1;\n\t\tthis.sizeAttenuation = true;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.size = source.size;\n\t\tthis.sizeAttenuation = source.sizeAttenuation;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _inverseMatrix = /*@__PURE__*/ new Matrix4();\nconst _ray = /*@__PURE__*/ new Ray();\nconst _sphere = /*@__PURE__*/ new Sphere();\nconst _position$2 = /*@__PURE__*/ new Vector3();\n\nclass Points extends Object3D {\n\n\tconstructor( geometry = new BufferGeometry(), material = new PointsMaterial() ) {\n\n\t\tsuper();\n\n\t\tthis.isPoints = true;\n\n\t\tthis.type = 'Points';\n\n\t\tthis.geometry = geometry;\n\t\tthis.material = material;\n\n\t\tthis.updateMorphTargets();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.material = Array.isArray( source.material ) ? source.material.slice() : source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t}\n\n\traycast( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst matrixWorld = this.matrixWorld;\n\t\tconst threshold = raycaster.params.Points.threshold;\n\t\tconst drawRange = geometry.drawRange;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere.copy( geometry.boundingSphere );\n\t\t_sphere.applyMatrix4( matrixWorld );\n\t\t_sphere.radius += threshold;\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix.copy( matrixWorld ).invert();\n\t\t_ray.copy( raycaster.ray ).applyMatrix4( _inverseMatrix );\n\n\t\tconst localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 );\n\t\tconst localThresholdSq = localThreshold * localThreshold;\n\n\t\tconst index = geometry.index;\n\t\tconst attributes = geometry.attributes;\n\t\tconst positionAttribute = attributes.position;\n\n\t\tif ( index !== null ) {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, il = end; i < il; i ++ ) {\n\n\t\t\t\tconst a = index.getX( i );\n\n\t\t\t\t_position$2.fromBufferAttribute( positionAttribute, a );\n\n\t\t\t\ttestPoint( _position$2, a, localThresholdSq, matrixWorld, raycaster, intersects, this );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\tconst end = Math.min( positionAttribute.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\tfor ( let i = start, l = end; i < l; i ++ ) {\n\n\t\t\t\t_position$2.fromBufferAttribute( positionAttribute, i );\n\n\t\t\t\ttestPoint( _position$2, i, localThresholdSq, matrixWorld, raycaster, intersects, this );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tupdateMorphTargets() {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst morphAttributes = geometry.morphAttributes;\n\t\tconst keys = Object.keys( morphAttributes );\n\n\t\tif ( keys.length > 0 ) {\n\n\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n\nfunction testPoint( point, index, localThresholdSq, matrixWorld, raycaster, intersects, object ) {\n\n\tconst rayPointDistanceSq = _ray.distanceSqToPoint( point );\n\n\tif ( rayPointDistanceSq < localThresholdSq ) {\n\n\t\tconst intersectPoint = new Vector3();\n\n\t\t_ray.closestPointToPoint( point, intersectPoint );\n\t\tintersectPoint.applyMatrix4( matrixWorld );\n\n\t\tconst distance = raycaster.ray.origin.distanceTo( intersectPoint );\n\n\t\tif ( distance < raycaster.near || distance > raycaster.far ) return;\n\n\t\tintersects.push( {\n\n\t\t\tdistance: distance,\n\t\t\tdistanceToRay: Math.sqrt( rayPointDistanceSq ),\n\t\t\tpoint: intersectPoint,\n\t\t\tindex: index,\n\t\t\tface: null,\n\t\t\tobject: object\n\n\t\t} );\n\n\t}\n\n}\n\nclass VideoTexture extends Texture {\n\n\tconstructor( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {\n\n\t\tsuper( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.isVideoTexture = true;\n\n\t\tthis.minFilter = minFilter !== undefined ? minFilter : LinearFilter;\n\t\tthis.magFilter = magFilter !== undefined ? magFilter : LinearFilter;\n\n\t\tthis.generateMipmaps = false;\n\n\t\tconst scope = this;\n\n\t\tfunction updateVideo() {\n\n\t\t\tscope.needsUpdate = true;\n\t\t\tvideo.requestVideoFrameCallback( updateVideo );\n\n\t\t}\n\n\t\tif ( 'requestVideoFrameCallback' in video ) {\n\n\t\t\tvideo.requestVideoFrameCallback( updateVideo );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.image ).copy( this );\n\n\t}\n\n\tupdate() {\n\n\t\tconst video = this.image;\n\t\tconst hasVideoFrameCallback = 'requestVideoFrameCallback' in video;\n\n\t\tif ( hasVideoFrameCallback === false && video.readyState >= video.HAVE_CURRENT_DATA ) {\n\n\t\t\tthis.needsUpdate = true;\n\n\t\t}\n\n\t}\n\n}\n\nclass FramebufferTexture extends Texture {\n\n\tconstructor( width, height ) {\n\n\t\tsuper( { width, height } );\n\n\t\tthis.isFramebufferTexture = true;\n\n\t\tthis.magFilter = NearestFilter;\n\t\tthis.minFilter = NearestFilter;\n\n\t\tthis.generateMipmaps = false;\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\nclass CompressedTexture extends Texture {\n\n\tconstructor( mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, colorSpace ) {\n\n\t\tsuper( null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, colorSpace );\n\n\t\tthis.isCompressedTexture = true;\n\n\t\tthis.image = { width: width, height: height };\n\t\tthis.mipmaps = mipmaps;\n\n\t\t// no flipping for cube textures\n\t\t// (also flipping doesn't work for compressed textures )\n\n\t\tthis.flipY = false;\n\n\t\t// can't generate mipmaps for compressed textures\n\t\t// mips must be embedded in DDS files\n\n\t\tthis.generateMipmaps = false;\n\n\t}\n\n}\n\nclass CompressedArrayTexture extends CompressedTexture {\n\n\tconstructor( mipmaps, width, height, depth, format, type ) {\n\n\t\tsuper( mipmaps, width, height, format, type );\n\n\t\tthis.isCompressedArrayTexture = true;\n\t\tthis.image.depth = depth;\n\t\tthis.wrapR = ClampToEdgeWrapping;\n\n\t\tthis.layerUpdates = new Set();\n\n\t}\n\n\taddLayerUpdate( layerIndex ) {\n\n\t\tthis.layerUpdates.add( layerIndex );\n\n\t}\n\n\tclearLayerUpdates() {\n\n\t\tthis.layerUpdates.clear();\n\n\t}\n\n}\n\nclass CompressedCubeTexture extends CompressedTexture {\n\n\tconstructor( images, format, type ) {\n\n\t\tsuper( undefined, images[ 0 ].width, images[ 0 ].height, format, type, CubeReflectionMapping );\n\n\t\tthis.isCompressedCubeTexture = true;\n\t\tthis.isCubeTexture = true;\n\n\t\tthis.image = images;\n\n\t}\n\n}\n\nclass CanvasTexture extends Texture {\n\n\tconstructor( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) {\n\n\t\tsuper( canvas, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy );\n\n\t\tthis.isCanvasTexture = true;\n\n\t\tthis.needsUpdate = true;\n\n\t}\n\n}\n\n/**\n * Extensible curve object.\n *\n * Some common of curve methods:\n * .getPoint( t, optionalTarget ), .getTangent( t, optionalTarget )\n * .getPointAt( u, optionalTarget ), .getTangentAt( u, optionalTarget )\n * .getPoints(), .getSpacedPoints()\n * .getLength()\n * .updateArcLengths()\n *\n * This following curves inherit from THREE.Curve:\n *\n * -- 2D curves --\n * THREE.ArcCurve\n * THREE.CubicBezierCurve\n * THREE.EllipseCurve\n * THREE.LineCurve\n * THREE.QuadraticBezierCurve\n * THREE.SplineCurve\n *\n * -- 3D curves --\n * THREE.CatmullRomCurve3\n * THREE.CubicBezierCurve3\n * THREE.LineCurve3\n * THREE.QuadraticBezierCurve3\n *\n * A series of curves can be represented as a THREE.CurvePath.\n *\n **/\n\nclass Curve {\n\n\tconstructor() {\n\n\t\tthis.type = 'Curve';\n\n\t\tthis.arcLengthDivisions = 200;\n\n\t}\n\n\t// Virtual base class method to overwrite and implement in subclasses\n\t//\t- t [0 .. 1]\n\n\tgetPoint( /* t, optionalTarget */ ) {\n\n\t\tconsole.warn( 'THREE.Curve: .getPoint() not implemented.' );\n\t\treturn null;\n\n\t}\n\n\t// Get point at relative position in curve according to arc length\n\t// - u [0 .. 1]\n\n\tgetPointAt( u, optionalTarget ) {\n\n\t\tconst t = this.getUtoTmapping( u );\n\t\treturn this.getPoint( t, optionalTarget );\n\n\t}\n\n\t// Get sequence of points using getPoint( t )\n\n\tgetPoints( divisions = 5 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let d = 0; d <= divisions; d ++ ) {\n\n\t\t\tpoints.push( this.getPoint( d / divisions ) );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\t// Get sequence of points using getPointAt( u )\n\n\tgetSpacedPoints( divisions = 5 ) {\n\n\t\tconst points = [];\n\n\t\tfor ( let d = 0; d <= divisions; d ++ ) {\n\n\t\t\tpoints.push( this.getPointAt( d / divisions ) );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\t// Get total curve arc length\n\n\tgetLength() {\n\n\t\tconst lengths = this.getLengths();\n\t\treturn lengths[ lengths.length - 1 ];\n\n\t}\n\n\t// Get list of cumulative segment lengths\n\n\tgetLengths( divisions = this.arcLengthDivisions ) {\n\n\t\tif ( this.cacheArcLengths &&\n\t\t\t( this.cacheArcLengths.length === divisions + 1 ) &&\n\t\t\t! this.needsUpdate ) {\n\n\t\t\treturn this.cacheArcLengths;\n\n\t\t}\n\n\t\tthis.needsUpdate = false;\n\n\t\tconst cache = [];\n\t\tlet current, last = this.getPoint( 0 );\n\t\tlet sum = 0;\n\n\t\tcache.push( 0 );\n\n\t\tfor ( let p = 1; p <= divisions; p ++ ) {\n\n\t\t\tcurrent = this.getPoint( p / divisions );\n\t\t\tsum += current.distanceTo( last );\n\t\t\tcache.push( sum );\n\t\t\tlast = current;\n\n\t\t}\n\n\t\tthis.cacheArcLengths = cache;\n\n\t\treturn cache; // { sums: cache, sum: sum }; Sum is in the last element.\n\n\t}\n\n\tupdateArcLengths() {\n\n\t\tthis.needsUpdate = true;\n\t\tthis.getLengths();\n\n\t}\n\n\t// Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant\n\n\tgetUtoTmapping( u, distance ) {\n\n\t\tconst arcLengths = this.getLengths();\n\n\t\tlet i = 0;\n\t\tconst il = arcLengths.length;\n\n\t\tlet targetArcLength; // The targeted u distance value to get\n\n\t\tif ( distance ) {\n\n\t\t\ttargetArcLength = distance;\n\n\t\t} else {\n\n\t\t\ttargetArcLength = u * arcLengths[ il - 1 ];\n\n\t\t}\n\n\t\t// binary search for the index with largest value smaller than target u distance\n\n\t\tlet low = 0, high = il - 1, comparison;\n\n\t\twhile ( low <= high ) {\n\n\t\t\ti = Math.floor( low + ( high - low ) / 2 ); // less likely to overflow, though probably not issue here, JS doesn't really have integers, all numbers are floats\n\n\t\t\tcomparison = arcLengths[ i ] - targetArcLength;\n\n\t\t\tif ( comparison < 0 ) {\n\n\t\t\t\tlow = i + 1;\n\n\t\t\t} else if ( comparison > 0 ) {\n\n\t\t\t\thigh = i - 1;\n\n\t\t\t} else {\n\n\t\t\t\thigh = i;\n\t\t\t\tbreak;\n\n\t\t\t\t// DONE\n\n\t\t\t}\n\n\t\t}\n\n\t\ti = high;\n\n\t\tif ( arcLengths[ i ] === targetArcLength ) {\n\n\t\t\treturn i / ( il - 1 );\n\n\t\t}\n\n\t\t// we could get finer grain at lengths, or use simple interpolation between two points\n\n\t\tconst lengthBefore = arcLengths[ i ];\n\t\tconst lengthAfter = arcLengths[ i + 1 ];\n\n\t\tconst segmentLength = lengthAfter - lengthBefore;\n\n\t\t// determine where we are between the 'before' and 'after' points\n\n\t\tconst segmentFraction = ( targetArcLength - lengthBefore ) / segmentLength;\n\n\t\t// add that fractional amount to t\n\n\t\tconst t = ( i + segmentFraction ) / ( il - 1 );\n\n\t\treturn t;\n\n\t}\n\n\t// Returns a unit vector tangent at t\n\t// In case any sub curve does not implement its tangent derivation,\n\t// 2 points a small delta apart will be used to find its gradient\n\t// which seems to give a reasonable approximation\n\n\tgetTangent( t, optionalTarget ) {\n\n\t\tconst delta = 0.0001;\n\t\tlet t1 = t - delta;\n\t\tlet t2 = t + delta;\n\n\t\t// Capping in case of danger\n\n\t\tif ( t1 < 0 ) t1 = 0;\n\t\tif ( t2 > 1 ) t2 = 1;\n\n\t\tconst pt1 = this.getPoint( t1 );\n\t\tconst pt2 = this.getPoint( t2 );\n\n\t\tconst tangent = optionalTarget || ( ( pt1.isVector2 ) ? new Vector2() : new Vector3() );\n\n\t\ttangent.copy( pt2 ).sub( pt1 ).normalize();\n\n\t\treturn tangent;\n\n\t}\n\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\tconst t = this.getUtoTmapping( u );\n\t\treturn this.getTangent( t, optionalTarget );\n\n\t}\n\n\tcomputeFrenetFrames( segments, closed ) {\n\n\t\t// see http://www.cs.indiana.edu/pub/techreports/TR425.pdf\n\n\t\tconst normal = new Vector3();\n\n\t\tconst tangents = [];\n\t\tconst normals = [];\n\t\tconst binormals = [];\n\n\t\tconst vec = new Vector3();\n\t\tconst mat = new Matrix4();\n\n\t\t// compute the tangent vectors for each segment on the curve\n\n\t\tfor ( let i = 0; i <= segments; i ++ ) {\n\n\t\t\tconst u = i / segments;\n\n\t\t\ttangents[ i ] = this.getTangentAt( u, new Vector3() );\n\n\t\t}\n\n\t\t// select an initial normal vector perpendicular to the first tangent vector,\n\t\t// and in the direction of the minimum tangent xyz component\n\n\t\tnormals[ 0 ] = new Vector3();\n\t\tbinormals[ 0 ] = new Vector3();\n\t\tlet min = Number.MAX_VALUE;\n\t\tconst tx = Math.abs( tangents[ 0 ].x );\n\t\tconst ty = Math.abs( tangents[ 0 ].y );\n\t\tconst tz = Math.abs( tangents[ 0 ].z );\n\n\t\tif ( tx <= min ) {\n\n\t\t\tmin = tx;\n\t\t\tnormal.set( 1, 0, 0 );\n\n\t\t}\n\n\t\tif ( ty <= min ) {\n\n\t\t\tmin = ty;\n\t\t\tnormal.set( 0, 1, 0 );\n\n\t\t}\n\n\t\tif ( tz <= min ) {\n\n\t\t\tnormal.set( 0, 0, 1 );\n\n\t\t}\n\n\t\tvec.crossVectors( tangents[ 0 ], normal ).normalize();\n\n\t\tnormals[ 0 ].crossVectors( tangents[ 0 ], vec );\n\t\tbinormals[ 0 ].crossVectors( tangents[ 0 ], normals[ 0 ] );\n\n\n\t\t// compute the slowly-varying normal and binormal vectors for each segment on the curve\n\n\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\tnormals[ i ] = normals[ i - 1 ].clone();\n\n\t\t\tbinormals[ i ] = binormals[ i - 1 ].clone();\n\n\t\t\tvec.crossVectors( tangents[ i - 1 ], tangents[ i ] );\n\n\t\t\tif ( vec.length() > Number.EPSILON ) {\n\n\t\t\t\tvec.normalize();\n\n\t\t\t\tconst theta = Math.acos( clamp( tangents[ i - 1 ].dot( tangents[ i ] ), - 1, 1 ) ); // clamp for floating pt errors\n\n\t\t\t\tnormals[ i ].applyMatrix4( mat.makeRotationAxis( vec, theta ) );\n\n\t\t\t}\n\n\t\t\tbinormals[ i ].crossVectors( tangents[ i ], normals[ i ] );\n\n\t\t}\n\n\t\t// if the curve is closed, postprocess the vectors so the first and last normal vectors are the same\n\n\t\tif ( closed === true ) {\n\n\t\t\tlet theta = Math.acos( clamp( normals[ 0 ].dot( normals[ segments ] ), - 1, 1 ) );\n\t\t\ttheta /= segments;\n\n\t\t\tif ( tangents[ 0 ].dot( vec.crossVectors( normals[ 0 ], normals[ segments ] ) ) > 0 ) {\n\n\t\t\t\ttheta = - theta;\n\n\t\t\t}\n\n\t\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\t\t// twist a little...\n\t\t\t\tnormals[ i ].applyMatrix4( mat.makeRotationAxis( tangents[ i ], theta * i ) );\n\t\t\t\tbinormals[ i ].crossVectors( tangents[ i ], normals[ i ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\ttangents: tangents,\n\t\t\tnormals: normals,\n\t\t\tbinormals: binormals\n\t\t};\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.arcLengthDivisions = source.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.6,\n\t\t\t\ttype: 'Curve',\n\t\t\t\tgenerator: 'Curve.toJSON'\n\t\t\t}\n\t\t};\n\n\t\tdata.arcLengthDivisions = this.arcLengthDivisions;\n\t\tdata.type = this.type;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tthis.arcLengthDivisions = json.arcLengthDivisions;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass EllipseCurve extends Curve {\n\n\tconstructor( aX = 0, aY = 0, xRadius = 1, yRadius = 1, aStartAngle = 0, aEndAngle = Math.PI * 2, aClockwise = false, aRotation = 0 ) {\n\n\t\tsuper();\n\n\t\tthis.isEllipseCurve = true;\n\n\t\tthis.type = 'EllipseCurve';\n\n\t\tthis.aX = aX;\n\t\tthis.aY = aY;\n\n\t\tthis.xRadius = xRadius;\n\t\tthis.yRadius = yRadius;\n\n\t\tthis.aStartAngle = aStartAngle;\n\t\tthis.aEndAngle = aEndAngle;\n\n\t\tthis.aClockwise = aClockwise;\n\n\t\tthis.aRotation = aRotation;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst twoPi = Math.PI * 2;\n\t\tlet deltaAngle = this.aEndAngle - this.aStartAngle;\n\t\tconst samePoints = Math.abs( deltaAngle ) < Number.EPSILON;\n\n\t\t// ensures that deltaAngle is 0 .. 2 PI\n\t\twhile ( deltaAngle < 0 ) deltaAngle += twoPi;\n\t\twhile ( deltaAngle > twoPi ) deltaAngle -= twoPi;\n\n\t\tif ( deltaAngle < Number.EPSILON ) {\n\n\t\t\tif ( samePoints ) {\n\n\t\t\t\tdeltaAngle = 0;\n\n\t\t\t} else {\n\n\t\t\t\tdeltaAngle = twoPi;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.aClockwise === true && ! samePoints ) {\n\n\t\t\tif ( deltaAngle === twoPi ) {\n\n\t\t\t\tdeltaAngle = - twoPi;\n\n\t\t\t} else {\n\n\t\t\t\tdeltaAngle = deltaAngle - twoPi;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst angle = this.aStartAngle + t * deltaAngle;\n\t\tlet x = this.aX + this.xRadius * Math.cos( angle );\n\t\tlet y = this.aY + this.yRadius * Math.sin( angle );\n\n\t\tif ( this.aRotation !== 0 ) {\n\n\t\t\tconst cos = Math.cos( this.aRotation );\n\t\t\tconst sin = Math.sin( this.aRotation );\n\n\t\t\tconst tx = x - this.aX;\n\t\t\tconst ty = y - this.aY;\n\n\t\t\t// Rotate the point about the center of the ellipse.\n\t\t\tx = tx * cos - ty * sin + this.aX;\n\t\t\ty = tx * sin + ty * cos + this.aY;\n\n\t\t}\n\n\t\treturn point.set( x, y );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.aX = source.aX;\n\t\tthis.aY = source.aY;\n\n\t\tthis.xRadius = source.xRadius;\n\t\tthis.yRadius = source.yRadius;\n\n\t\tthis.aStartAngle = source.aStartAngle;\n\t\tthis.aEndAngle = source.aEndAngle;\n\n\t\tthis.aClockwise = source.aClockwise;\n\n\t\tthis.aRotation = source.aRotation;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.aX = this.aX;\n\t\tdata.aY = this.aY;\n\n\t\tdata.xRadius = this.xRadius;\n\t\tdata.yRadius = this.yRadius;\n\n\t\tdata.aStartAngle = this.aStartAngle;\n\t\tdata.aEndAngle = this.aEndAngle;\n\n\t\tdata.aClockwise = this.aClockwise;\n\n\t\tdata.aRotation = this.aRotation;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.aX = json.aX;\n\t\tthis.aY = json.aY;\n\n\t\tthis.xRadius = json.xRadius;\n\t\tthis.yRadius = json.yRadius;\n\n\t\tthis.aStartAngle = json.aStartAngle;\n\t\tthis.aEndAngle = json.aEndAngle;\n\n\t\tthis.aClockwise = json.aClockwise;\n\n\t\tthis.aRotation = json.aRotation;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass ArcCurve extends EllipseCurve {\n\n\tconstructor( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tsuper( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );\n\n\t\tthis.isArcCurve = true;\n\n\t\tthis.type = 'ArcCurve';\n\n\t}\n\n}\n\n/**\n * Centripetal CatmullRom Curve - which is useful for avoiding\n * cusps and self-intersections in non-uniform catmull rom curves.\n * http://www.cemyuksel.com/research/catmullrom_param/catmullrom.pdf\n *\n * curve.type accepts centripetal(default), chordal and catmullrom\n * curve.tension is used for catmullrom which defaults to 0.5\n */\n\n\n/*\nBased on an optimized c++ solution in\n - http://stackoverflow.com/questions/9489736/catmull-rom-curve-with-no-cusps-and-no-self-intersections/\n - http://ideone.com/NoEbVM\n\nThis CubicPoly class could be used for reusing some variables and calculations,\nbut for three.js curve use, it could be possible inlined and flatten into a single function call\nwhich can be placed in CurveUtils.\n*/\n\nfunction CubicPoly() {\n\n\tlet c0 = 0, c1 = 0, c2 = 0, c3 = 0;\n\n\t/*\n\t * Compute coefficients for a cubic polynomial\n\t * p(s) = c0 + c1*s + c2*s^2 + c3*s^3\n\t * such that\n\t * p(0) = x0, p(1) = x1\n\t * and\n\t * p'(0) = t0, p'(1) = t1.\n\t */\n\tfunction init( x0, x1, t0, t1 ) {\n\n\t\tc0 = x0;\n\t\tc1 = t0;\n\t\tc2 = - 3 * x0 + 3 * x1 - 2 * t0 - t1;\n\t\tc3 = 2 * x0 - 2 * x1 + t0 + t1;\n\n\t}\n\n\treturn {\n\n\t\tinitCatmullRom: function ( x0, x1, x2, x3, tension ) {\n\n\t\t\tinit( x1, x2, tension * ( x2 - x0 ), tension * ( x3 - x1 ) );\n\n\t\t},\n\n\t\tinitNonuniformCatmullRom: function ( x0, x1, x2, x3, dt0, dt1, dt2 ) {\n\n\t\t\t// compute tangents when parameterized in [t1,t2]\n\t\t\tlet t1 = ( x1 - x0 ) / dt0 - ( x2 - x0 ) / ( dt0 + dt1 ) + ( x2 - x1 ) / dt1;\n\t\t\tlet t2 = ( x2 - x1 ) / dt1 - ( x3 - x1 ) / ( dt1 + dt2 ) + ( x3 - x2 ) / dt2;\n\n\t\t\t// rescale tangents for parametrization in [0,1]\n\t\t\tt1 *= dt1;\n\t\t\tt2 *= dt1;\n\n\t\t\tinit( x1, x2, t1, t2 );\n\n\t\t},\n\n\t\tcalc: function ( t ) {\n\n\t\t\tconst t2 = t * t;\n\t\t\tconst t3 = t2 * t;\n\t\t\treturn c0 + c1 * t + c2 * t2 + c3 * t3;\n\n\t\t}\n\n\t};\n\n}\n\n//\n\nconst tmp = /*@__PURE__*/ new Vector3();\nconst px = /*@__PURE__*/ new CubicPoly();\nconst py = /*@__PURE__*/ new CubicPoly();\nconst pz = /*@__PURE__*/ new CubicPoly();\n\nclass CatmullRomCurve3 extends Curve {\n\n\tconstructor( points = [], closed = false, curveType = 'centripetal', tension = 0.5 ) {\n\n\t\tsuper();\n\n\t\tthis.isCatmullRomCurve3 = true;\n\n\t\tthis.type = 'CatmullRomCurve3';\n\n\t\tthis.points = points;\n\t\tthis.closed = closed;\n\t\tthis.curveType = curveType;\n\t\tthis.tension = tension;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst points = this.points;\n\t\tconst l = points.length;\n\n\t\tconst p = ( l - ( this.closed ? 0 : 1 ) ) * t;\n\t\tlet intPoint = Math.floor( p );\n\t\tlet weight = p - intPoint;\n\n\t\tif ( this.closed ) {\n\n\t\t\tintPoint += intPoint > 0 ? 0 : ( Math.floor( Math.abs( intPoint ) / l ) + 1 ) * l;\n\n\t\t} else if ( weight === 0 && intPoint === l - 1 ) {\n\n\t\t\tintPoint = l - 2;\n\t\t\tweight = 1;\n\n\t\t}\n\n\t\tlet p0, p3; // 4 points (p1 & p2 defined below)\n\n\t\tif ( this.closed || intPoint > 0 ) {\n\n\t\t\tp0 = points[ ( intPoint - 1 ) % l ];\n\n\t\t} else {\n\n\t\t\t// extrapolate first point\n\t\t\ttmp.subVectors( points[ 0 ], points[ 1 ] ).add( points[ 0 ] );\n\t\t\tp0 = tmp;\n\n\t\t}\n\n\t\tconst p1 = points[ intPoint % l ];\n\t\tconst p2 = points[ ( intPoint + 1 ) % l ];\n\n\t\tif ( this.closed || intPoint + 2 < l ) {\n\n\t\t\tp3 = points[ ( intPoint + 2 ) % l ];\n\n\t\t} else {\n\n\t\t\t// extrapolate last point\n\t\t\ttmp.subVectors( points[ l - 1 ], points[ l - 2 ] ).add( points[ l - 1 ] );\n\t\t\tp3 = tmp;\n\n\t\t}\n\n\t\tif ( this.curveType === 'centripetal' || this.curveType === 'chordal' ) {\n\n\t\t\t// init Centripetal / Chordal Catmull-Rom\n\t\t\tconst pow = this.curveType === 'chordal' ? 0.5 : 0.25;\n\t\t\tlet dt0 = Math.pow( p0.distanceToSquared( p1 ), pow );\n\t\t\tlet dt1 = Math.pow( p1.distanceToSquared( p2 ), pow );\n\t\t\tlet dt2 = Math.pow( p2.distanceToSquared( p3 ), pow );\n\n\t\t\t// safety check for repeated points\n\t\t\tif ( dt1 < 1e-4 ) dt1 = 1.0;\n\t\t\tif ( dt0 < 1e-4 ) dt0 = dt1;\n\t\t\tif ( dt2 < 1e-4 ) dt2 = dt1;\n\n\t\t\tpx.initNonuniformCatmullRom( p0.x, p1.x, p2.x, p3.x, dt0, dt1, dt2 );\n\t\t\tpy.initNonuniformCatmullRom( p0.y, p1.y, p2.y, p3.y, dt0, dt1, dt2 );\n\t\t\tpz.initNonuniformCatmullRom( p0.z, p1.z, p2.z, p3.z, dt0, dt1, dt2 );\n\n\t\t} else if ( this.curveType === 'catmullrom' ) {\n\n\t\t\tpx.initCatmullRom( p0.x, p1.x, p2.x, p3.x, this.tension );\n\t\t\tpy.initCatmullRom( p0.y, p1.y, p2.y, p3.y, this.tension );\n\t\t\tpz.initCatmullRom( p0.z, p1.z, p2.z, p3.z, this.tension );\n\n\t\t}\n\n\t\tpoint.set(\n\t\t\tpx.calc( weight ),\n\t\t\tpy.calc( weight ),\n\t\t\tpz.calc( weight )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = source.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = source.points[ i ];\n\n\t\t\tthis.points.push( point.clone() );\n\n\t\t}\n\n\t\tthis.closed = source.closed;\n\t\tthis.curveType = source.curveType;\n\t\tthis.tension = source.tension;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.points = [];\n\n\t\tfor ( let i = 0, l = this.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = this.points[ i ];\n\t\t\tdata.points.push( point.toArray() );\n\n\t\t}\n\n\t\tdata.closed = this.closed;\n\t\tdata.curveType = this.curveType;\n\t\tdata.tension = this.tension;\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = json.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = json.points[ i ];\n\t\t\tthis.points.push( new Vector3().fromArray( point ) );\n\n\t\t}\n\n\t\tthis.closed = json.closed;\n\t\tthis.curveType = json.curveType;\n\t\tthis.tension = json.tension;\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * Bezier Curves formulas obtained from\n * https://en.wikipedia.org/wiki/B%C3%A9zier_curve\n */\n\nfunction CatmullRom( t, p0, p1, p2, p3 ) {\n\n\tconst v0 = ( p2 - p0 ) * 0.5;\n\tconst v1 = ( p3 - p1 ) * 0.5;\n\tconst t2 = t * t;\n\tconst t3 = t * t2;\n\treturn ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1;\n\n}\n\n//\n\nfunction QuadraticBezierP0( t, p ) {\n\n\tconst k = 1 - t;\n\treturn k * k * p;\n\n}\n\nfunction QuadraticBezierP1( t, p ) {\n\n\treturn 2 * ( 1 - t ) * t * p;\n\n}\n\nfunction QuadraticBezierP2( t, p ) {\n\n\treturn t * t * p;\n\n}\n\nfunction QuadraticBezier( t, p0, p1, p2 ) {\n\n\treturn QuadraticBezierP0( t, p0 ) + QuadraticBezierP1( t, p1 ) +\n\t\tQuadraticBezierP2( t, p2 );\n\n}\n\n//\n\nfunction CubicBezierP0( t, p ) {\n\n\tconst k = 1 - t;\n\treturn k * k * k * p;\n\n}\n\nfunction CubicBezierP1( t, p ) {\n\n\tconst k = 1 - t;\n\treturn 3 * k * k * t * p;\n\n}\n\nfunction CubicBezierP2( t, p ) {\n\n\treturn 3 * ( 1 - t ) * t * t * p;\n\n}\n\nfunction CubicBezierP3( t, p ) {\n\n\treturn t * t * t * p;\n\n}\n\nfunction CubicBezier( t, p0, p1, p2, p3 ) {\n\n\treturn CubicBezierP0( t, p0 ) + CubicBezierP1( t, p1 ) + CubicBezierP2( t, p2 ) +\n\t\tCubicBezierP3( t, p3 );\n\n}\n\nclass CubicBezierCurve extends Curve {\n\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2(), v3 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.isCubicBezierCurve = true;\n\n\t\tthis.type = 'CubicBezierCurve';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\t\tthis.v3 = v3;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n\n\t\tpoint.set(\n\t\t\tCubicBezier( t, v0.x, v1.x, v2.x, v3.x ),\n\t\t\tCubicBezier( t, v0.y, v1.y, v2.y, v3.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\t\tthis.v3.copy( source.v3 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\t\tdata.v3 = this.v3.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\t\tthis.v3.fromArray( json.v3 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass CubicBezierCurve3 extends Curve {\n\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3(), v3 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.isCubicBezierCurve3 = true;\n\n\t\tthis.type = 'CubicBezierCurve3';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\t\tthis.v3 = v3;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2, v3 = this.v3;\n\n\t\tpoint.set(\n\t\t\tCubicBezier( t, v0.x, v1.x, v2.x, v3.x ),\n\t\t\tCubicBezier( t, v0.y, v1.y, v2.y, v3.y ),\n\t\t\tCubicBezier( t, v0.z, v1.z, v2.z, v3.z )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\t\tthis.v3.copy( source.v3 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\t\tdata.v3 = this.v3.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\t\tthis.v3.fromArray( json.v3 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineCurve extends Curve {\n\n\tconstructor( v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.isLineCurve = true;\n\n\t\tthis.type = 'LineCurve';\n\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tif ( t === 1 ) {\n\n\t\t\tpoint.copy( this.v2 );\n\n\t\t} else {\n\n\t\t\tpoint.copy( this.v2 ).sub( this.v1 );\n\t\t\tpoint.multiplyScalar( t ).add( this.v1 );\n\n\t\t}\n\n\t\treturn point;\n\n\t}\n\n\t// Line curve is linear, so we can overwrite default getPointAt\n\tgetPointAt( u, optionalTarget ) {\n\n\t\treturn this.getPoint( u, optionalTarget );\n\n\t}\n\n\tgetTangent( t, optionalTarget = new Vector2() ) {\n\n\t\treturn optionalTarget.subVectors( this.v2, this.v1 ).normalize();\n\n\t}\n\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\treturn this.getTangent( u, optionalTarget );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineCurve3 extends Curve {\n\n\tconstructor( v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.isLineCurve3 = true;\n\n\t\tthis.type = 'LineCurve3';\n\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tif ( t === 1 ) {\n\n\t\t\tpoint.copy( this.v2 );\n\n\t\t} else {\n\n\t\t\tpoint.copy( this.v2 ).sub( this.v1 );\n\t\t\tpoint.multiplyScalar( t ).add( this.v1 );\n\n\t\t}\n\n\t\treturn point;\n\n\t}\n\n\t// Line curve is linear, so we can overwrite default getPointAt\n\tgetPointAt( u, optionalTarget ) {\n\n\t\treturn this.getPoint( u, optionalTarget );\n\n\t}\n\n\tgetTangent( t, optionalTarget = new Vector3() ) {\n\n\t\treturn optionalTarget.subVectors( this.v2, this.v1 ).normalize();\n\n\t}\n\n\tgetTangentAt( u, optionalTarget ) {\n\n\t\treturn this.getTangent( u, optionalTarget );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass QuadraticBezierCurve extends Curve {\n\n\tconstructor( v0 = new Vector2(), v1 = new Vector2(), v2 = new Vector2() ) {\n\n\t\tsuper();\n\n\t\tthis.isQuadraticBezierCurve = true;\n\n\t\tthis.type = 'QuadraticBezierCurve';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2;\n\n\t\tpoint.set(\n\t\t\tQuadraticBezier( t, v0.x, v1.x, v2.x ),\n\t\t\tQuadraticBezier( t, v0.y, v1.y, v2.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass QuadraticBezierCurve3 extends Curve {\n\n\tconstructor( v0 = new Vector3(), v1 = new Vector3(), v2 = new Vector3() ) {\n\n\t\tsuper();\n\n\t\tthis.isQuadraticBezierCurve3 = true;\n\n\t\tthis.type = 'QuadraticBezierCurve3';\n\n\t\tthis.v0 = v0;\n\t\tthis.v1 = v1;\n\t\tthis.v2 = v2;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector3() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst v0 = this.v0, v1 = this.v1, v2 = this.v2;\n\n\t\tpoint.set(\n\t\t\tQuadraticBezier( t, v0.x, v1.x, v2.x ),\n\t\t\tQuadraticBezier( t, v0.y, v1.y, v2.y ),\n\t\t\tQuadraticBezier( t, v0.z, v1.z, v2.z )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.v0.copy( source.v0 );\n\t\tthis.v1.copy( source.v1 );\n\t\tthis.v2.copy( source.v2 );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.v0 = this.v0.toArray();\n\t\tdata.v1 = this.v1.toArray();\n\t\tdata.v2 = this.v2.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.v0.fromArray( json.v0 );\n\t\tthis.v1.fromArray( json.v1 );\n\t\tthis.v2.fromArray( json.v2 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass SplineCurve extends Curve {\n\n\tconstructor( points = [] ) {\n\n\t\tsuper();\n\n\t\tthis.isSplineCurve = true;\n\n\t\tthis.type = 'SplineCurve';\n\n\t\tthis.points = points;\n\n\t}\n\n\tgetPoint( t, optionalTarget = new Vector2() ) {\n\n\t\tconst point = optionalTarget;\n\n\t\tconst points = this.points;\n\t\tconst p = ( points.length - 1 ) * t;\n\n\t\tconst intPoint = Math.floor( p );\n\t\tconst weight = p - intPoint;\n\n\t\tconst p0 = points[ intPoint === 0 ? intPoint : intPoint - 1 ];\n\t\tconst p1 = points[ intPoint ];\n\t\tconst p2 = points[ intPoint > points.length - 2 ? points.length - 1 : intPoint + 1 ];\n\t\tconst p3 = points[ intPoint > points.length - 3 ? points.length - 1 : intPoint + 2 ];\n\n\t\tpoint.set(\n\t\t\tCatmullRom( weight, p0.x, p1.x, p2.x, p3.x ),\n\t\t\tCatmullRom( weight, p0.y, p1.y, p2.y, p3.y )\n\t\t);\n\n\t\treturn point;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = source.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = source.points[ i ];\n\n\t\t\tthis.points.push( point.clone() );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.points = [];\n\n\t\tfor ( let i = 0, l = this.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = this.points[ i ];\n\t\t\tdata.points.push( point.toArray() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.points = [];\n\n\t\tfor ( let i = 0, l = json.points.length; i < l; i ++ ) {\n\n\t\t\tconst point = json.points[ i ];\n\t\t\tthis.points.push( new Vector2().fromArray( point ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nvar Curves = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tArcCurve: ArcCurve,\n\tCatmullRomCurve3: CatmullRomCurve3,\n\tCubicBezierCurve: CubicBezierCurve,\n\tCubicBezierCurve3: CubicBezierCurve3,\n\tEllipseCurve: EllipseCurve,\n\tLineCurve: LineCurve,\n\tLineCurve3: LineCurve3,\n\tQuadraticBezierCurve: QuadraticBezierCurve,\n\tQuadraticBezierCurve3: QuadraticBezierCurve3,\n\tSplineCurve: SplineCurve\n});\n\n/**************************************************************\n *\tCurved Path - a curve path is simply a array of connected\n * curves, but retains the api of a curve\n **************************************************************/\n\nclass CurvePath extends Curve {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'CurvePath';\n\n\t\tthis.curves = [];\n\t\tthis.autoClose = false; // Automatically closes the path\n\n\t}\n\n\tadd( curve ) {\n\n\t\tthis.curves.push( curve );\n\n\t}\n\n\tclosePath() {\n\n\t\t// Add a line curve if start and end of lines are not connected\n\t\tconst startPoint = this.curves[ 0 ].getPoint( 0 );\n\t\tconst endPoint = this.curves[ this.curves.length - 1 ].getPoint( 1 );\n\n\t\tif ( ! startPoint.equals( endPoint ) ) {\n\n\t\t\tconst lineType = ( startPoint.isVector2 === true ) ? 'LineCurve' : 'LineCurve3';\n\t\t\tthis.curves.push( new Curves[ lineType ]( endPoint, startPoint ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// To get accurate point with reference to\n\t// entire path distance at time t,\n\t// following has to be done:\n\n\t// 1. Length of each sub path have to be known\n\t// 2. Locate and identify type of curve\n\t// 3. Get t for the curve\n\t// 4. Return curve.getPointAt(t')\n\n\tgetPoint( t, optionalTarget ) {\n\n\t\tconst d = t * this.getLength();\n\t\tconst curveLengths = this.getCurveLengths();\n\t\tlet i = 0;\n\n\t\t// To think about boundaries points.\n\n\t\twhile ( i < curveLengths.length ) {\n\n\t\t\tif ( curveLengths[ i ] >= d ) {\n\n\t\t\t\tconst diff = curveLengths[ i ] - d;\n\t\t\t\tconst curve = this.curves[ i ];\n\n\t\t\t\tconst segmentLength = curve.getLength();\n\t\t\t\tconst u = segmentLength === 0 ? 0 : 1 - diff / segmentLength;\n\n\t\t\t\treturn curve.getPointAt( u, optionalTarget );\n\n\t\t\t}\n\n\t\t\ti ++;\n\n\t\t}\n\n\t\treturn null;\n\n\t\t// loop where sum != 0, sum > d , sum+1 1 && ! points[ points.length - 1 ].equals( points[ 0 ] ) ) {\n\n\t\t\tpoints.push( points[ 0 ] );\n\n\t\t}\n\n\t\treturn points;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.curves = [];\n\n\t\tfor ( let i = 0, l = source.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = source.curves[ i ];\n\n\t\t\tthis.curves.push( curve.clone() );\n\n\t\t}\n\n\t\tthis.autoClose = source.autoClose;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.autoClose = this.autoClose;\n\t\tdata.curves = [];\n\n\t\tfor ( let i = 0, l = this.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = this.curves[ i ];\n\t\t\tdata.curves.push( curve.toJSON() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.autoClose = json.autoClose;\n\t\tthis.curves = [];\n\n\t\tfor ( let i = 0, l = json.curves.length; i < l; i ++ ) {\n\n\t\t\tconst curve = json.curves[ i ];\n\t\t\tthis.curves.push( new Curves[ curve.type ]().fromJSON( curve ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Path extends CurvePath {\n\n\tconstructor( points ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Path';\n\n\t\tthis.currentPoint = new Vector2();\n\n\t\tif ( points ) {\n\n\t\t\tthis.setFromPoints( points );\n\n\t\t}\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.moveTo( points[ 0 ].x, points[ 0 ].y );\n\n\t\tfor ( let i = 1, l = points.length; i < l; i ++ ) {\n\n\t\t\tthis.lineTo( points[ i ].x, points[ i ].y );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tmoveTo( x, y ) {\n\n\t\tthis.currentPoint.set( x, y ); // TODO consider referencing vectors instead of copying?\n\n\t\treturn this;\n\n\t}\n\n\tlineTo( x, y ) {\n\n\t\tconst curve = new LineCurve( this.currentPoint.clone(), new Vector2( x, y ) );\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tquadraticCurveTo( aCPx, aCPy, aX, aY ) {\n\n\t\tconst curve = new QuadraticBezierCurve(\n\t\t\tthis.currentPoint.clone(),\n\t\t\tnew Vector2( aCPx, aCPy ),\n\t\t\tnew Vector2( aX, aY )\n\t\t);\n\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tbezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY ) {\n\n\t\tconst curve = new CubicBezierCurve(\n\t\t\tthis.currentPoint.clone(),\n\t\t\tnew Vector2( aCP1x, aCP1y ),\n\t\t\tnew Vector2( aCP2x, aCP2y ),\n\t\t\tnew Vector2( aX, aY )\n\t\t);\n\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.set( aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tsplineThru( pts /*Array of Vector*/ ) {\n\n\t\tconst npts = [ this.currentPoint.clone() ].concat( pts );\n\n\t\tconst curve = new SplineCurve( npts );\n\t\tthis.curves.push( curve );\n\n\t\tthis.currentPoint.copy( pts[ pts.length - 1 ] );\n\n\t\treturn this;\n\n\t}\n\n\tarc( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tconst x0 = this.currentPoint.x;\n\t\tconst y0 = this.currentPoint.y;\n\n\t\tthis.absarc( aX + x0, aY + y0, aRadius,\n\t\t\taStartAngle, aEndAngle, aClockwise );\n\n\t\treturn this;\n\n\t}\n\n\tabsarc( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) {\n\n\t\tthis.absellipse( aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise );\n\n\t\treturn this;\n\n\t}\n\n\tellipse( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) {\n\n\t\tconst x0 = this.currentPoint.x;\n\t\tconst y0 = this.currentPoint.y;\n\n\t\tthis.absellipse( aX + x0, aY + y0, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation );\n\n\t\treturn this;\n\n\t}\n\n\tabsellipse( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation ) {\n\n\t\tconst curve = new EllipseCurve( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise, aRotation );\n\n\t\tif ( this.curves.length > 0 ) {\n\n\t\t\t// if a previous curve is present, attempt to join\n\t\t\tconst firstPoint = curve.getPoint( 0 );\n\n\t\t\tif ( ! firstPoint.equals( this.currentPoint ) ) {\n\n\t\t\t\tthis.lineTo( firstPoint.x, firstPoint.y );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.curves.push( curve );\n\n\t\tconst lastPoint = curve.getPoint( 1 );\n\t\tthis.currentPoint.copy( lastPoint );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.currentPoint.copy( source.currentPoint );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.currentPoint = this.currentPoint.toArray();\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.currentPoint.fromArray( json.currentPoint );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LatheGeometry extends BufferGeometry {\n\n\tconstructor( points = [ new Vector2( 0, - 0.5 ), new Vector2( 0.5, 0 ), new Vector2( 0, 0.5 ) ], segments = 12, phiStart = 0, phiLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'LatheGeometry';\n\n\t\tthis.parameters = {\n\t\t\tpoints: points,\n\t\t\tsegments: segments,\n\t\t\tphiStart: phiStart,\n\t\t\tphiLength: phiLength\n\t\t};\n\n\t\tsegments = Math.floor( segments );\n\n\t\t// clamp phiLength so it's in range of [ 0, 2PI ]\n\n\t\tphiLength = clamp( phiLength, 0, Math.PI * 2 );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst uvs = [];\n\t\tconst initNormals = [];\n\t\tconst normals = [];\n\n\t\t// helper variables\n\n\t\tconst inverseSegments = 1.0 / segments;\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\t\tconst normal = new Vector3();\n\t\tconst curNormal = new Vector3();\n\t\tconst prevNormal = new Vector3();\n\t\tlet dx = 0;\n\t\tlet dy = 0;\n\n\t\t// pre-compute normals for initial \"meridian\"\n\n\t\tfor ( let j = 0; j <= ( points.length - 1 ); j ++ ) {\n\n\t\t\tswitch ( j ) {\n\n\t\t\t\tcase 0:\t\t\t\t// special handling for 1st vertex on path\n\n\t\t\t\t\tdx = points[ j + 1 ].x - points[ j ].x;\n\t\t\t\t\tdy = points[ j + 1 ].y - points[ j ].y;\n\n\t\t\t\t\tnormal.x = dy * 1.0;\n\t\t\t\t\tnormal.y = - dx;\n\t\t\t\t\tnormal.z = dy * 0.0;\n\n\t\t\t\t\tprevNormal.copy( normal );\n\n\t\t\t\t\tnormal.normalize();\n\n\t\t\t\t\tinitNormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ( points.length - 1 ):\t// special handling for last Vertex on path\n\n\t\t\t\t\tinitNormals.push( prevNormal.x, prevNormal.y, prevNormal.z );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\t\t\t// default handling for all vertices in between\n\n\t\t\t\t\tdx = points[ j + 1 ].x - points[ j ].x;\n\t\t\t\t\tdy = points[ j + 1 ].y - points[ j ].y;\n\n\t\t\t\t\tnormal.x = dy * 1.0;\n\t\t\t\t\tnormal.y = - dx;\n\t\t\t\t\tnormal.z = dy * 0.0;\n\n\t\t\t\t\tcurNormal.copy( normal );\n\n\t\t\t\t\tnormal.x += prevNormal.x;\n\t\t\t\t\tnormal.y += prevNormal.y;\n\t\t\t\t\tnormal.z += prevNormal.z;\n\n\t\t\t\t\tnormal.normalize();\n\n\t\t\t\t\tinitNormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\tprevNormal.copy( curNormal );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate vertices, uvs and normals\n\n\t\tfor ( let i = 0; i <= segments; i ++ ) {\n\n\t\t\tconst phi = phiStart + i * inverseSegments * phiLength;\n\n\t\t\tconst sin = Math.sin( phi );\n\t\t\tconst cos = Math.cos( phi );\n\n\t\t\tfor ( let j = 0; j <= ( points.length - 1 ); j ++ ) {\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = points[ j ].x * sin;\n\t\t\t\tvertex.y = points[ j ].y;\n\t\t\t\tvertex.z = points[ j ].x * cos;\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = i / segments;\n\t\t\t\tuv.y = j / ( points.length - 1 );\n\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t// normal\n\n\t\t\t\tconst x = initNormals[ 3 * j + 0 ] * sin;\n\t\t\t\tconst y = initNormals[ 3 * j + 1 ];\n\t\t\t\tconst z = initNormals[ 3 * j + 0 ] * cos;\n\n\t\t\t\tnormals.push( x, y, z );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let i = 0; i < segments; i ++ ) {\n\n\t\t\tfor ( let j = 0; j < ( points.length - 1 ); j ++ ) {\n\n\t\t\t\tconst base = j + i * points.length;\n\n\t\t\t\tconst a = base;\n\t\t\t\tconst b = base + points.length;\n\t\t\t\tconst c = base + points.length + 1;\n\t\t\t\tconst d = base + 1;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( c, d, b );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new LatheGeometry( data.points, data.segments, data.phiStart, data.phiLength );\n\n\t}\n\n}\n\nclass CapsuleGeometry extends LatheGeometry {\n\n\tconstructor( radius = 1, length = 1, capSegments = 4, radialSegments = 8 ) {\n\n\t\tconst path = new Path();\n\t\tpath.absarc( 0, - length / 2, radius, Math.PI * 1.5, 0 );\n\t\tpath.absarc( 0, length / 2, radius, 0, Math.PI * 0.5 );\n\n\t\tsuper( path.getPoints( capSegments ), radialSegments );\n\n\t\tthis.type = 'CapsuleGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tlength: length,\n\t\t\tcapSegments: capSegments,\n\t\t\tradialSegments: radialSegments,\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new CapsuleGeometry( data.radius, data.length, data.capSegments, data.radialSegments );\n\n\t}\n\n}\n\nclass CircleGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, segments = 32, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CircleGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tsegments: segments,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tsegments = Math.max( 3, segments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\n\t\t// center point\n\n\t\tvertices.push( 0, 0, 0 );\n\t\tnormals.push( 0, 0, 1 );\n\t\tuvs.push( 0.5, 0.5 );\n\n\t\tfor ( let s = 0, i = 3; s <= segments; s ++, i += 3 ) {\n\n\t\t\tconst segment = thetaStart + s / segments * thetaLength;\n\n\t\t\t// vertex\n\n\t\t\tvertex.x = radius * Math.cos( segment );\n\t\t\tvertex.y = radius * Math.sin( segment );\n\n\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t// normal\n\n\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t// uvs\n\n\t\t\tuv.x = ( vertices[ i ] / radius + 1 ) / 2;\n\t\t\tuv.y = ( vertices[ i + 1 ] / radius + 1 ) / 2;\n\n\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let i = 1; i <= segments; i ++ ) {\n\n\t\t\tindices.push( i, i + 1, 0 );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new CircleGeometry( data.radius, data.segments, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass CylinderGeometry extends BufferGeometry {\n\n\tconstructor( radiusTop = 1, radiusBottom = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'CylinderGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradiusTop: radiusTop,\n\t\t\tradiusBottom: radiusBottom,\n\t\t\theight: height,\n\t\t\tradialSegments: radialSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\topenEnded: openEnded,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tconst scope = this;\n\n\t\tradialSegments = Math.floor( radialSegments );\n\t\theightSegments = Math.floor( heightSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet index = 0;\n\t\tconst indexArray = [];\n\t\tconst halfHeight = height / 2;\n\t\tlet groupStart = 0;\n\n\t\t// generate geometry\n\n\t\tgenerateTorso();\n\n\t\tif ( openEnded === false ) {\n\n\t\t\tif ( radiusTop > 0 ) generateCap( true );\n\t\t\tif ( radiusBottom > 0 ) generateCap( false );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\tfunction generateTorso() {\n\n\t\t\tconst normal = new Vector3();\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tlet groupCount = 0;\n\n\t\t\t// this will be used to calculate the normal\n\t\t\tconst slope = ( radiusBottom - radiusTop ) / height;\n\n\t\t\t// generate vertices, normals and uvs\n\n\t\t\tfor ( let y = 0; y <= heightSegments; y ++ ) {\n\n\t\t\t\tconst indexRow = [];\n\n\t\t\t\tconst v = y / heightSegments;\n\n\t\t\t\t// calculate the radius of the current row\n\n\t\t\t\tconst radius = v * ( radiusBottom - radiusTop ) + radiusTop;\n\n\t\t\t\tfor ( let x = 0; x <= radialSegments; x ++ ) {\n\n\t\t\t\t\tconst u = x / radialSegments;\n\n\t\t\t\t\tconst theta = u * thetaLength + thetaStart;\n\n\t\t\t\t\tconst sinTheta = Math.sin( theta );\n\t\t\t\t\tconst cosTheta = Math.cos( theta );\n\n\t\t\t\t\t// vertex\n\n\t\t\t\t\tvertex.x = radius * sinTheta;\n\t\t\t\t\tvertex.y = - v * height + halfHeight;\n\t\t\t\t\tvertex.z = radius * cosTheta;\n\t\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t\t// normal\n\n\t\t\t\t\tnormal.set( sinTheta, slope, cosTheta ).normalize();\n\t\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t\t// uv\n\n\t\t\t\t\tuvs.push( u, 1 - v );\n\n\t\t\t\t\t// save index of vertex in respective row\n\n\t\t\t\t\tindexRow.push( index ++ );\n\n\t\t\t\t}\n\n\t\t\t\t// now save vertices of the row in our index array\n\n\t\t\t\tindexArray.push( indexRow );\n\n\t\t\t}\n\n\t\t\t// generate indices\n\n\t\t\tfor ( let x = 0; x < radialSegments; x ++ ) {\n\n\t\t\t\tfor ( let y = 0; y < heightSegments; y ++ ) {\n\n\t\t\t\t\t// we use the index array to access the correct indices\n\n\t\t\t\t\tconst a = indexArray[ y ][ x ];\n\t\t\t\t\tconst b = indexArray[ y + 1 ][ x ];\n\t\t\t\t\tconst c = indexArray[ y + 1 ][ x + 1 ];\n\t\t\t\t\tconst d = indexArray[ y ][ x + 1 ];\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t\t// update group counter\n\n\t\t\t\t\tgroupCount += 6;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, 0 );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t}\n\n\t\tfunction generateCap( top ) {\n\n\t\t\t// save the index of the first center vertex\n\t\t\tconst centerIndexStart = index;\n\n\t\t\tconst uv = new Vector2();\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tlet groupCount = 0;\n\n\t\t\tconst radius = ( top === true ) ? radiusTop : radiusBottom;\n\t\t\tconst sign = ( top === true ) ? 1 : - 1;\n\n\t\t\t// first we generate the center vertex data of the cap.\n\t\t\t// because the geometry needs one set of uvs per face,\n\t\t\t// we must generate a center vertex per face/segment\n\n\t\t\tfor ( let x = 1; x <= radialSegments; x ++ ) {\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertices.push( 0, halfHeight * sign, 0 );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, sign, 0 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( 0.5, 0.5 );\n\n\t\t\t\t// increase index\n\n\t\t\t\tindex ++;\n\n\t\t\t}\n\n\t\t\t// save the index of the last center vertex\n\t\t\tconst centerIndexEnd = index;\n\n\t\t\t// now we generate the surrounding vertices, normals and uvs\n\n\t\t\tfor ( let x = 0; x <= radialSegments; x ++ ) {\n\n\t\t\t\tconst u = x / radialSegments;\n\t\t\t\tconst theta = u * thetaLength + thetaStart;\n\n\t\t\t\tconst cosTheta = Math.cos( theta );\n\t\t\t\tconst sinTheta = Math.sin( theta );\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = radius * sinTheta;\n\t\t\t\tvertex.y = halfHeight * sign;\n\t\t\t\tvertex.z = radius * cosTheta;\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, sign, 0 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = ( cosTheta * 0.5 ) + 0.5;\n\t\t\t\tuv.y = ( sinTheta * 0.5 * sign ) + 0.5;\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t// increase index\n\n\t\t\t\tindex ++;\n\n\t\t\t}\n\n\t\t\t// generate indices\n\n\t\t\tfor ( let x = 0; x < radialSegments; x ++ ) {\n\n\t\t\t\tconst c = centerIndexStart + x;\n\t\t\t\tconst i = centerIndexEnd + x;\n\n\t\t\t\tif ( top === true ) {\n\n\t\t\t\t\t// face top\n\n\t\t\t\t\tindices.push( i, i + 1, c );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// face bottom\n\n\t\t\t\t\tindices.push( i + 1, i, c );\n\n\t\t\t\t}\n\n\t\t\t\tgroupCount += 3;\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, top === true ? 1 : 2 );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new CylinderGeometry( data.radiusTop, data.radiusBottom, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass ConeGeometry extends CylinderGeometry {\n\n\tconstructor( radius = 1, height = 1, radialSegments = 32, heightSegments = 1, openEnded = false, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper( 0, radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength );\n\n\t\tthis.type = 'ConeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\theight: height,\n\t\t\tradialSegments: radialSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\topenEnded: openEnded,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new ConeGeometry( data.radius, data.height, data.radialSegments, data.heightSegments, data.openEnded, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass PolyhedronGeometry extends BufferGeometry {\n\n\tconstructor( vertices = [], indices = [], radius = 1, detail = 0 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'PolyhedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tvertices: vertices,\n\t\t\tindices: indices,\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t\t// default buffer data\n\n\t\tconst vertexBuffer = [];\n\t\tconst uvBuffer = [];\n\n\t\t// the subdivision creates the vertex buffer data\n\n\t\tsubdivide( detail );\n\n\t\t// all vertices should lie on a conceptual sphere with a given radius\n\n\t\tapplyRadius( radius );\n\n\t\t// finally, create the uv data\n\n\t\tgenerateUVs();\n\n\t\t// build non-indexed geometry\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertexBuffer, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( vertexBuffer.slice(), 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvBuffer, 2 ) );\n\n\t\tif ( detail === 0 ) {\n\n\t\t\tthis.computeVertexNormals(); // flat normals\n\n\t\t} else {\n\n\t\t\tthis.normalizeNormals(); // smooth normals\n\n\t\t}\n\n\t\t// helper functions\n\n\t\tfunction subdivide( detail ) {\n\n\t\t\tconst a = new Vector3();\n\t\t\tconst b = new Vector3();\n\t\t\tconst c = new Vector3();\n\n\t\t\t// iterate over all faces and apply a subdivision with the given detail value\n\n\t\t\tfor ( let i = 0; i < indices.length; i += 3 ) {\n\n\t\t\t\t// get the vertices of the face\n\n\t\t\t\tgetVertexByIndex( indices[ i + 0 ], a );\n\t\t\t\tgetVertexByIndex( indices[ i + 1 ], b );\n\t\t\t\tgetVertexByIndex( indices[ i + 2 ], c );\n\n\t\t\t\t// perform subdivision\n\n\t\t\t\tsubdivideFace( a, b, c, detail );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction subdivideFace( a, b, c, detail ) {\n\n\t\t\tconst cols = detail + 1;\n\n\t\t\t// we use this multidimensional array as a data structure for creating the subdivision\n\n\t\t\tconst v = [];\n\n\t\t\t// construct all of the vertices for this subdivision\n\n\t\t\tfor ( let i = 0; i <= cols; i ++ ) {\n\n\t\t\t\tv[ i ] = [];\n\n\t\t\t\tconst aj = a.clone().lerp( c, i / cols );\n\t\t\t\tconst bj = b.clone().lerp( c, i / cols );\n\n\t\t\t\tconst rows = cols - i;\n\n\t\t\t\tfor ( let j = 0; j <= rows; j ++ ) {\n\n\t\t\t\t\tif ( j === 0 && i === cols ) {\n\n\t\t\t\t\t\tv[ i ][ j ] = aj;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tv[ i ][ j ] = aj.clone().lerp( bj, j / rows );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// construct all of the faces\n\n\t\t\tfor ( let i = 0; i < cols; i ++ ) {\n\n\t\t\t\tfor ( let j = 0; j < 2 * ( cols - i ) - 1; j ++ ) {\n\n\t\t\t\t\tconst k = Math.floor( j / 2 );\n\n\t\t\t\t\tif ( j % 2 === 0 ) {\n\n\t\t\t\t\t\tpushVertex( v[ i ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k ] );\n\t\t\t\t\t\tpushVertex( v[ i ][ k ] );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tpushVertex( v[ i ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k + 1 ] );\n\t\t\t\t\t\tpushVertex( v[ i + 1 ][ k ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction applyRadius( radius ) {\n\n\t\t\tconst vertex = new Vector3();\n\n\t\t\t// iterate over the entire buffer and apply the radius to each vertex\n\n\t\t\tfor ( let i = 0; i < vertexBuffer.length; i += 3 ) {\n\n\t\t\t\tvertex.x = vertexBuffer[ i + 0 ];\n\t\t\t\tvertex.y = vertexBuffer[ i + 1 ];\n\t\t\t\tvertex.z = vertexBuffer[ i + 2 ];\n\n\t\t\t\tvertex.normalize().multiplyScalar( radius );\n\n\t\t\t\tvertexBuffer[ i + 0 ] = vertex.x;\n\t\t\t\tvertexBuffer[ i + 1 ] = vertex.y;\n\t\t\t\tvertexBuffer[ i + 2 ] = vertex.z;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateUVs() {\n\n\t\t\tconst vertex = new Vector3();\n\n\t\t\tfor ( let i = 0; i < vertexBuffer.length; i += 3 ) {\n\n\t\t\t\tvertex.x = vertexBuffer[ i + 0 ];\n\t\t\t\tvertex.y = vertexBuffer[ i + 1 ];\n\t\t\t\tvertex.z = vertexBuffer[ i + 2 ];\n\n\t\t\t\tconst u = azimuth( vertex ) / 2 / Math.PI + 0.5;\n\t\t\t\tconst v = inclination( vertex ) / Math.PI + 0.5;\n\t\t\t\tuvBuffer.push( u, 1 - v );\n\n\t\t\t}\n\n\t\t\tcorrectUVs();\n\n\t\t\tcorrectSeam();\n\n\t\t}\n\n\t\tfunction correctSeam() {\n\n\t\t\t// handle case when face straddles the seam, see #3269\n\n\t\t\tfor ( let i = 0; i < uvBuffer.length; i += 6 ) {\n\n\t\t\t\t// uv data of a single face\n\n\t\t\t\tconst x0 = uvBuffer[ i + 0 ];\n\t\t\t\tconst x1 = uvBuffer[ i + 2 ];\n\t\t\t\tconst x2 = uvBuffer[ i + 4 ];\n\n\t\t\t\tconst max = Math.max( x0, x1, x2 );\n\t\t\t\tconst min = Math.min( x0, x1, x2 );\n\n\t\t\t\t// 0.9 is somewhat arbitrary\n\n\t\t\t\tif ( max > 0.9 && min < 0.1 ) {\n\n\t\t\t\t\tif ( x0 < 0.2 ) uvBuffer[ i + 0 ] += 1;\n\t\t\t\t\tif ( x1 < 0.2 ) uvBuffer[ i + 2 ] += 1;\n\t\t\t\t\tif ( x2 < 0.2 ) uvBuffer[ i + 4 ] += 1;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction pushVertex( vertex ) {\n\n\t\t\tvertexBuffer.push( vertex.x, vertex.y, vertex.z );\n\n\t\t}\n\n\t\tfunction getVertexByIndex( index, vertex ) {\n\n\t\t\tconst stride = index * 3;\n\n\t\t\tvertex.x = vertices[ stride + 0 ];\n\t\t\tvertex.y = vertices[ stride + 1 ];\n\t\t\tvertex.z = vertices[ stride + 2 ];\n\n\t\t}\n\n\t\tfunction correctUVs() {\n\n\t\t\tconst a = new Vector3();\n\t\t\tconst b = new Vector3();\n\t\t\tconst c = new Vector3();\n\n\t\t\tconst centroid = new Vector3();\n\n\t\t\tconst uvA = new Vector2();\n\t\t\tconst uvB = new Vector2();\n\t\t\tconst uvC = new Vector2();\n\n\t\t\tfor ( let i = 0, j = 0; i < vertexBuffer.length; i += 9, j += 6 ) {\n\n\t\t\t\ta.set( vertexBuffer[ i + 0 ], vertexBuffer[ i + 1 ], vertexBuffer[ i + 2 ] );\n\t\t\t\tb.set( vertexBuffer[ i + 3 ], vertexBuffer[ i + 4 ], vertexBuffer[ i + 5 ] );\n\t\t\t\tc.set( vertexBuffer[ i + 6 ], vertexBuffer[ i + 7 ], vertexBuffer[ i + 8 ] );\n\n\t\t\t\tuvA.set( uvBuffer[ j + 0 ], uvBuffer[ j + 1 ] );\n\t\t\t\tuvB.set( uvBuffer[ j + 2 ], uvBuffer[ j + 3 ] );\n\t\t\t\tuvC.set( uvBuffer[ j + 4 ], uvBuffer[ j + 5 ] );\n\n\t\t\t\tcentroid.copy( a ).add( b ).add( c ).divideScalar( 3 );\n\n\t\t\t\tconst azi = azimuth( centroid );\n\n\t\t\t\tcorrectUV( uvA, j + 0, a, azi );\n\t\t\t\tcorrectUV( uvB, j + 2, b, azi );\n\t\t\t\tcorrectUV( uvC, j + 4, c, azi );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction correctUV( uv, stride, vector, azimuth ) {\n\n\t\t\tif ( ( azimuth < 0 ) && ( uv.x === 1 ) ) {\n\n\t\t\t\tuvBuffer[ stride ] = uv.x - 1;\n\n\t\t\t}\n\n\t\t\tif ( ( vector.x === 0 ) && ( vector.z === 0 ) ) {\n\n\t\t\t\tuvBuffer[ stride ] = azimuth / 2 / Math.PI + 0.5;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Angle around the Y axis, counter-clockwise when looking from above.\n\n\t\tfunction azimuth( vector ) {\n\n\t\t\treturn Math.atan2( vector.z, - vector.x );\n\n\t\t}\n\n\n\t\t// Angle above the XZ plane.\n\n\t\tfunction inclination( vector ) {\n\n\t\t\treturn Math.atan2( - vector.y, Math.sqrt( ( vector.x * vector.x ) + ( vector.z * vector.z ) ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new PolyhedronGeometry( data.vertices, data.indices, data.radius, data.details );\n\n\t}\n\n}\n\nclass DodecahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst t = ( 1 + Math.sqrt( 5 ) ) / 2;\n\t\tconst r = 1 / t;\n\n\t\tconst vertices = [\n\n\t\t\t// (±1, ±1, ±1)\n\t\t\t- 1, - 1, - 1,\t- 1, - 1, 1,\n\t\t\t- 1, 1, - 1, - 1, 1, 1,\n\t\t\t1, - 1, - 1, 1, - 1, 1,\n\t\t\t1, 1, - 1, 1, 1, 1,\n\n\t\t\t// (0, ±1/φ, ±φ)\n\t\t\t0, - r, - t, 0, - r, t,\n\t\t\t0, r, - t, 0, r, t,\n\n\t\t\t// (±1/φ, ±φ, 0)\n\t\t\t- r, - t, 0, - r, t, 0,\n\t\t\tr, - t, 0, r, t, 0,\n\n\t\t\t// (±φ, 0, ±1/φ)\n\t\t\t- t, 0, - r, t, 0, - r,\n\t\t\t- t, 0, r, t, 0, r\n\t\t];\n\n\t\tconst indices = [\n\t\t\t3, 11, 7, \t3, 7, 15, \t3, 15, 13,\n\t\t\t7, 19, 17, \t7, 17, 6, \t7, 6, 15,\n\t\t\t17, 4, 8, \t17, 8, 10, \t17, 10, 6,\n\t\t\t8, 0, 16, \t8, 16, 2, \t8, 2, 10,\n\t\t\t0, 12, 1, \t0, 1, 18, \t0, 18, 16,\n\t\t\t6, 10, 2, \t6, 2, 13, \t6, 13, 15,\n\t\t\t2, 16, 18, \t2, 18, 3, \t2, 3, 13,\n\t\t\t18, 1, 9, \t18, 9, 11, \t18, 11, 3,\n\t\t\t4, 14, 12, \t4, 12, 0, \t4, 0, 8,\n\t\t\t11, 9, 5, \t11, 5, 19, \t11, 19, 7,\n\t\t\t19, 5, 14, \t19, 14, 4, \t19, 4, 17,\n\t\t\t1, 12, 14, \t1, 14, 5, \t1, 5, 9\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'DodecahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new DodecahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nconst _v0 = /*@__PURE__*/ new Vector3();\nconst _v1$1 = /*@__PURE__*/ new Vector3();\nconst _normal = /*@__PURE__*/ new Vector3();\nconst _triangle = /*@__PURE__*/ new Triangle();\n\nclass EdgesGeometry extends BufferGeometry {\n\n\tconstructor( geometry = null, thresholdAngle = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'EdgesGeometry';\n\n\t\tthis.parameters = {\n\t\t\tgeometry: geometry,\n\t\t\tthresholdAngle: thresholdAngle\n\t\t};\n\n\t\tif ( geometry !== null ) {\n\n\t\t\tconst precisionPoints = 4;\n\t\t\tconst precision = Math.pow( 10, precisionPoints );\n\t\t\tconst thresholdDot = Math.cos( DEG2RAD * thresholdAngle );\n\n\t\t\tconst indexAttr = geometry.getIndex();\n\t\t\tconst positionAttr = geometry.getAttribute( 'position' );\n\t\t\tconst indexCount = indexAttr ? indexAttr.count : positionAttr.count;\n\n\t\t\tconst indexArr = [ 0, 0, 0 ];\n\t\t\tconst vertKeys = [ 'a', 'b', 'c' ];\n\t\t\tconst hashes = new Array( 3 );\n\n\t\t\tconst edgeData = {};\n\t\t\tconst vertices = [];\n\t\t\tfor ( let i = 0; i < indexCount; i += 3 ) {\n\n\t\t\t\tif ( indexAttr ) {\n\n\t\t\t\t\tindexArr[ 0 ] = indexAttr.getX( i );\n\t\t\t\t\tindexArr[ 1 ] = indexAttr.getX( i + 1 );\n\t\t\t\t\tindexArr[ 2 ] = indexAttr.getX( i + 2 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tindexArr[ 0 ] = i;\n\t\t\t\t\tindexArr[ 1 ] = i + 1;\n\t\t\t\t\tindexArr[ 2 ] = i + 2;\n\n\t\t\t\t}\n\n\t\t\t\tconst { a, b, c } = _triangle;\n\t\t\t\ta.fromBufferAttribute( positionAttr, indexArr[ 0 ] );\n\t\t\t\tb.fromBufferAttribute( positionAttr, indexArr[ 1 ] );\n\t\t\t\tc.fromBufferAttribute( positionAttr, indexArr[ 2 ] );\n\t\t\t\t_triangle.getNormal( _normal );\n\n\t\t\t\t// create hashes for the edge from the vertices\n\t\t\t\thashes[ 0 ] = `${ Math.round( a.x * precision ) },${ Math.round( a.y * precision ) },${ Math.round( a.z * precision ) }`;\n\t\t\t\thashes[ 1 ] = `${ Math.round( b.x * precision ) },${ Math.round( b.y * precision ) },${ Math.round( b.z * precision ) }`;\n\t\t\t\thashes[ 2 ] = `${ Math.round( c.x * precision ) },${ Math.round( c.y * precision ) },${ Math.round( c.z * precision ) }`;\n\n\t\t\t\t// skip degenerate triangles\n\t\t\t\tif ( hashes[ 0 ] === hashes[ 1 ] || hashes[ 1 ] === hashes[ 2 ] || hashes[ 2 ] === hashes[ 0 ] ) {\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\t}\n\n\t\t\t\t// iterate over every edge\n\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t// get the first and next vertex making up the edge\n\t\t\t\t\tconst jNext = ( j + 1 ) % 3;\n\t\t\t\t\tconst vecHash0 = hashes[ j ];\n\t\t\t\t\tconst vecHash1 = hashes[ jNext ];\n\t\t\t\t\tconst v0 = _triangle[ vertKeys[ j ] ];\n\t\t\t\t\tconst v1 = _triangle[ vertKeys[ jNext ] ];\n\n\t\t\t\t\tconst hash = `${ vecHash0 }_${ vecHash1 }`;\n\t\t\t\t\tconst reverseHash = `${ vecHash1 }_${ vecHash0 }`;\n\n\t\t\t\t\tif ( reverseHash in edgeData && edgeData[ reverseHash ] ) {\n\n\t\t\t\t\t\t// if we found a sibling edge add it into the vertex array if\n\t\t\t\t\t\t// it meets the angle threshold and delete the edge from the map.\n\t\t\t\t\t\tif ( _normal.dot( edgeData[ reverseHash ].normal ) <= thresholdDot ) {\n\n\t\t\t\t\t\t\tvertices.push( v0.x, v0.y, v0.z );\n\t\t\t\t\t\t\tvertices.push( v1.x, v1.y, v1.z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tedgeData[ reverseHash ] = null;\n\n\t\t\t\t\t} else if ( ! ( hash in edgeData ) ) {\n\n\t\t\t\t\t\t// if we've already got an edge here then skip adding a new one\n\t\t\t\t\t\tedgeData[ hash ] = {\n\n\t\t\t\t\t\t\tindex0: indexArr[ j ],\n\t\t\t\t\t\t\tindex1: indexArr[ jNext ],\n\t\t\t\t\t\t\tnormal: _normal.clone(),\n\n\t\t\t\t\t\t};\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// iterate over all remaining, unmatched edges and add them to the vertex array\n\t\t\tfor ( const key in edgeData ) {\n\n\t\t\t\tif ( edgeData[ key ] ) {\n\n\t\t\t\t\tconst { index0, index1 } = edgeData[ key ];\n\t\t\t\t\t_v0.fromBufferAttribute( positionAttr, index0 );\n\t\t\t\t\t_v1$1.fromBufferAttribute( positionAttr, index1 );\n\n\t\t\t\t\tvertices.push( _v0.x, _v0.y, _v0.z );\n\t\t\t\t\tvertices.push( _v1$1.x, _v1$1.y, _v1$1.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Shape extends Path {\n\n\tconstructor( points ) {\n\n\t\tsuper( points );\n\n\t\tthis.uuid = generateUUID();\n\n\t\tthis.type = 'Shape';\n\n\t\tthis.holes = [];\n\n\t}\n\n\tgetPointsHoles( divisions ) {\n\n\t\tconst holesPts = [];\n\n\t\tfor ( let i = 0, l = this.holes.length; i < l; i ++ ) {\n\n\t\t\tholesPts[ i ] = this.holes[ i ].getPoints( divisions );\n\n\t\t}\n\n\t\treturn holesPts;\n\n\t}\n\n\t// get points of shape and holes (keypoints based on segments parameter)\n\n\textractPoints( divisions ) {\n\n\t\treturn {\n\n\t\t\tshape: this.getPoints( divisions ),\n\t\t\tholes: this.getPointsHoles( divisions )\n\n\t\t};\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.holes = [];\n\n\t\tfor ( let i = 0, l = source.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = source.holes[ i ];\n\n\t\t\tthis.holes.push( hole.clone() );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.holes = [];\n\n\t\tfor ( let i = 0, l = this.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = this.holes[ i ];\n\t\t\tdata.holes.push( hole.toJSON() );\n\n\t\t}\n\n\t\treturn data;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tsuper.fromJSON( json );\n\n\t\tthis.uuid = json.uuid;\n\t\tthis.holes = [];\n\n\t\tfor ( let i = 0, l = json.holes.length; i < l; i ++ ) {\n\n\t\t\tconst hole = json.holes[ i ];\n\t\t\tthis.holes.push( new Path().fromJSON( hole ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\n/**\n * Port from https://github.com/mapbox/earcut (v2.2.4)\n */\n\nconst Earcut = {\n\n\ttriangulate: function ( data, holeIndices, dim = 2 ) {\n\n\t\tconst hasHoles = holeIndices && holeIndices.length;\n\t\tconst outerLen = hasHoles ? holeIndices[ 0 ] * dim : data.length;\n\t\tlet outerNode = linkedList( data, 0, outerLen, dim, true );\n\t\tconst triangles = [];\n\n\t\tif ( ! outerNode || outerNode.next === outerNode.prev ) return triangles;\n\n\t\tlet minX, minY, maxX, maxY, x, y, invSize;\n\n\t\tif ( hasHoles ) outerNode = eliminateHoles( data, holeIndices, outerNode, dim );\n\n\t\t// if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n\t\tif ( data.length > 80 * dim ) {\n\n\t\t\tminX = maxX = data[ 0 ];\n\t\t\tminY = maxY = data[ 1 ];\n\n\t\t\tfor ( let i = dim; i < outerLen; i += dim ) {\n\n\t\t\t\tx = data[ i ];\n\t\t\t\ty = data[ i + 1 ];\n\t\t\t\tif ( x < minX ) minX = x;\n\t\t\t\tif ( y < minY ) minY = y;\n\t\t\t\tif ( x > maxX ) maxX = x;\n\t\t\t\tif ( y > maxY ) maxY = y;\n\n\t\t\t}\n\n\t\t\t// minX, minY and invSize are later used to transform coords into integers for z-order calculation\n\t\t\tinvSize = Math.max( maxX - minX, maxY - minY );\n\t\t\tinvSize = invSize !== 0 ? 32767 / invSize : 0;\n\n\t\t}\n\n\t\tearcutLinked( outerNode, triangles, dim, minX, minY, invSize, 0 );\n\n\t\treturn triangles;\n\n\t}\n\n};\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList( data, start, end, dim, clockwise ) {\n\n\tlet i, last;\n\n\tif ( clockwise === ( signedArea( data, start, end, dim ) > 0 ) ) {\n\n\t\tfor ( i = start; i < end; i += dim ) last = insertNode( i, data[ i ], data[ i + 1 ], last );\n\n\t} else {\n\n\t\tfor ( i = end - dim; i >= start; i -= dim ) last = insertNode( i, data[ i ], data[ i + 1 ], last );\n\n\t}\n\n\tif ( last && equals( last, last.next ) ) {\n\n\t\tremoveNode( last );\n\t\tlast = last.next;\n\n\t}\n\n\treturn last;\n\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints( start, end ) {\n\n\tif ( ! start ) return start;\n\tif ( ! end ) end = start;\n\n\tlet p = start,\n\t\tagain;\n\tdo {\n\n\t\tagain = false;\n\n\t\tif ( ! p.steiner && ( equals( p, p.next ) || area( p.prev, p, p.next ) === 0 ) ) {\n\n\t\t\tremoveNode( p );\n\t\t\tp = end = p.prev;\n\t\t\tif ( p === p.next ) break;\n\t\t\tagain = true;\n\n\t\t} else {\n\n\t\t\tp = p.next;\n\n\t\t}\n\n\t} while ( again || p !== end );\n\n\treturn end;\n\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked( ear, triangles, dim, minX, minY, invSize, pass ) {\n\n\tif ( ! ear ) return;\n\n\t// interlink polygon nodes in z-order\n\tif ( ! pass && invSize ) indexCurve( ear, minX, minY, invSize );\n\n\tlet stop = ear,\n\t\tprev, next;\n\n\t// iterate through ears, slicing them one by one\n\twhile ( ear.prev !== ear.next ) {\n\n\t\tprev = ear.prev;\n\t\tnext = ear.next;\n\n\t\tif ( invSize ? isEarHashed( ear, minX, minY, invSize ) : isEar( ear ) ) {\n\n\t\t\t// cut off the triangle\n\t\t\ttriangles.push( prev.i / dim | 0 );\n\t\t\ttriangles.push( ear.i / dim | 0 );\n\t\t\ttriangles.push( next.i / dim | 0 );\n\n\t\t\tremoveNode( ear );\n\n\t\t\t// skipping the next vertex leads to less sliver triangles\n\t\t\tear = next.next;\n\t\t\tstop = next.next;\n\n\t\t\tcontinue;\n\n\t\t}\n\n\t\tear = next;\n\n\t\t// if we looped through the whole remaining polygon and can't find any more ears\n\t\tif ( ear === stop ) {\n\n\t\t\t// try filtering points and slicing again\n\t\t\tif ( ! pass ) {\n\n\t\t\t\tearcutLinked( filterPoints( ear ), triangles, dim, minX, minY, invSize, 1 );\n\n\t\t\t\t// if this didn't work, try curing all small self-intersections locally\n\n\t\t\t} else if ( pass === 1 ) {\n\n\t\t\t\tear = cureLocalIntersections( filterPoints( ear ), triangles, dim );\n\t\t\t\tearcutLinked( ear, triangles, dim, minX, minY, invSize, 2 );\n\n\t\t\t\t// as a last resort, try splitting the remaining polygon into two\n\n\t\t\t} else if ( pass === 2 ) {\n\n\t\t\t\tsplitEarcut( ear, triangles, dim, minX, minY, invSize );\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\t}\n\n\t}\n\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar( ear ) {\n\n\tconst a = ear.prev,\n\t\tb = ear,\n\t\tc = ear.next;\n\n\tif ( area( a, b, c ) >= 0 ) return false; // reflex, can't be an ear\n\n\t// now make sure we don't have other points inside the potential ear\n\tconst ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n\t// triangle bbox; min & max are calculated like this for speed\n\tconst x0 = ax < bx ? ( ax < cx ? ax : cx ) : ( bx < cx ? bx : cx ),\n\t\ty0 = ay < by ? ( ay < cy ? ay : cy ) : ( by < cy ? by : cy ),\n\t\tx1 = ax > bx ? ( ax > cx ? ax : cx ) : ( bx > cx ? bx : cx ),\n\t\ty1 = ay > by ? ( ay > cy ? ay : cy ) : ( by > cy ? by : cy );\n\n\tlet p = c.next;\n\twhile ( p !== a ) {\n\n\t\tif ( p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, p.x, p.y ) &&\n\t\t\tarea( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.next;\n\n\t}\n\n\treturn true;\n\n}\n\nfunction isEarHashed( ear, minX, minY, invSize ) {\n\n\tconst a = ear.prev,\n\t\tb = ear,\n\t\tc = ear.next;\n\n\tif ( area( a, b, c ) >= 0 ) return false; // reflex, can't be an ear\n\n\tconst ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n\t// triangle bbox; min & max are calculated like this for speed\n\tconst x0 = ax < bx ? ( ax < cx ? ax : cx ) : ( bx < cx ? bx : cx ),\n\t\ty0 = ay < by ? ( ay < cy ? ay : cy ) : ( by < cy ? by : cy ),\n\t\tx1 = ax > bx ? ( ax > cx ? ax : cx ) : ( bx > cx ? bx : cx ),\n\t\ty1 = ay > by ? ( ay > cy ? ay : cy ) : ( by > cy ? by : cy );\n\n\t// z-order range for the current triangle bbox;\n\tconst minZ = zOrder( x0, y0, minX, minY, invSize ),\n\t\tmaxZ = zOrder( x1, y1, minX, minY, invSize );\n\n\tlet p = ear.prevZ,\n\t\tn = ear.nextZ;\n\n\t// look for points inside the triangle in both directions\n\twhile ( p && p.z >= minZ && n && n.z <= maxZ ) {\n\n\t\tif ( p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, p.x, p.y ) && area( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.prevZ;\n\n\t\tif ( n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, n.x, n.y ) && area( n.prev, n, n.next ) >= 0 ) return false;\n\t\tn = n.nextZ;\n\n\t}\n\n\t// look for remaining points in decreasing z-order\n\twhile ( p && p.z >= minZ ) {\n\n\t\tif ( p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, p.x, p.y ) && area( p.prev, p, p.next ) >= 0 ) return false;\n\t\tp = p.prevZ;\n\n\t}\n\n\t// look for remaining points in increasing z-order\n\twhile ( n && n.z <= maxZ ) {\n\n\t\tif ( n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n\t\t\tpointInTriangle( ax, ay, bx, by, cx, cy, n.x, n.y ) && area( n.prev, n, n.next ) >= 0 ) return false;\n\t\tn = n.nextZ;\n\n\t}\n\n\treturn true;\n\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections( start, triangles, dim ) {\n\n\tlet p = start;\n\tdo {\n\n\t\tconst a = p.prev,\n\t\t\tb = p.next.next;\n\n\t\tif ( ! equals( a, b ) && intersects( a, p, p.next, b ) && locallyInside( a, b ) && locallyInside( b, a ) ) {\n\n\t\t\ttriangles.push( a.i / dim | 0 );\n\t\t\ttriangles.push( p.i / dim | 0 );\n\t\t\ttriangles.push( b.i / dim | 0 );\n\n\t\t\t// remove two nodes involved\n\t\t\tremoveNode( p );\n\t\t\tremoveNode( p.next );\n\n\t\t\tp = start = b;\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\treturn filterPoints( p );\n\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut( start, triangles, dim, minX, minY, invSize ) {\n\n\t// look for a valid diagonal that divides the polygon into two\n\tlet a = start;\n\tdo {\n\n\t\tlet b = a.next.next;\n\t\twhile ( b !== a.prev ) {\n\n\t\t\tif ( a.i !== b.i && isValidDiagonal( a, b ) ) {\n\n\t\t\t\t// split the polygon in two by the diagonal\n\t\t\t\tlet c = splitPolygon( a, b );\n\n\t\t\t\t// filter colinear points around the cuts\n\t\t\t\ta = filterPoints( a, a.next );\n\t\t\t\tc = filterPoints( c, c.next );\n\n\t\t\t\t// run earcut on each half\n\t\t\t\tearcutLinked( a, triangles, dim, minX, minY, invSize, 0 );\n\t\t\t\tearcutLinked( c, triangles, dim, minX, minY, invSize, 0 );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tb = b.next;\n\n\t\t}\n\n\t\ta = a.next;\n\n\t} while ( a !== start );\n\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles( data, holeIndices, outerNode, dim ) {\n\n\tconst queue = [];\n\tlet i, len, start, end, list;\n\n\tfor ( i = 0, len = holeIndices.length; i < len; i ++ ) {\n\n\t\tstart = holeIndices[ i ] * dim;\n\t\tend = i < len - 1 ? holeIndices[ i + 1 ] * dim : data.length;\n\t\tlist = linkedList( data, start, end, dim, false );\n\t\tif ( list === list.next ) list.steiner = true;\n\t\tqueue.push( getLeftmost( list ) );\n\n\t}\n\n\tqueue.sort( compareX );\n\n\t// process holes from left to right\n\tfor ( i = 0; i < queue.length; i ++ ) {\n\n\t\touterNode = eliminateHole( queue[ i ], outerNode );\n\n\t}\n\n\treturn outerNode;\n\n}\n\nfunction compareX( a, b ) {\n\n\treturn a.x - b.x;\n\n}\n\n// find a bridge between vertices that connects hole with an outer ring and link it\nfunction eliminateHole( hole, outerNode ) {\n\n\tconst bridge = findHoleBridge( hole, outerNode );\n\tif ( ! bridge ) {\n\n\t\treturn outerNode;\n\n\t}\n\n\tconst bridgeReverse = splitPolygon( bridge, hole );\n\n\t// filter collinear points around the cuts\n\tfilterPoints( bridgeReverse, bridgeReverse.next );\n\treturn filterPoints( bridge, bridge.next );\n\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge( hole, outerNode ) {\n\n\tlet p = outerNode,\n\t\tqx = - Infinity,\n\t\tm;\n\n\tconst hx = hole.x, hy = hole.y;\n\n\t// find a segment intersected by a ray from the hole's leftmost point to the left;\n\t// segment's endpoint with lesser x will be potential connection point\n\tdo {\n\n\t\tif ( hy <= p.y && hy >= p.next.y && p.next.y !== p.y ) {\n\n\t\t\tconst x = p.x + ( hy - p.y ) * ( p.next.x - p.x ) / ( p.next.y - p.y );\n\t\t\tif ( x <= hx && x > qx ) {\n\n\t\t\t\tqx = x;\n\t\t\t\tm = p.x < p.next.x ? p : p.next;\n\t\t\t\tif ( x === hx ) return m; // hole touches outer segment; pick leftmost endpoint\n\n\t\t\t}\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== outerNode );\n\n\tif ( ! m ) return null;\n\n\t// look for points inside the triangle of hole point, segment intersection and endpoint;\n\t// if there are no points found, we have a valid connection;\n\t// otherwise choose the point of the minimum angle with the ray as connection point\n\n\tconst stop = m,\n\t\tmx = m.x,\n\t\tmy = m.y;\n\tlet tanMin = Infinity, tan;\n\n\tp = m;\n\n\tdo {\n\n\t\tif ( hx >= p.x && p.x >= mx && hx !== p.x &&\n\t\t\t\tpointInTriangle( hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y ) ) {\n\n\t\t\ttan = Math.abs( hy - p.y ) / ( hx - p.x ); // tangential\n\n\t\t\tif ( locallyInside( p, hole ) && ( tan < tanMin || ( tan === tanMin && ( p.x > m.x || ( p.x === m.x && sectorContainsSector( m, p ) ) ) ) ) ) {\n\n\t\t\t\tm = p;\n\t\t\t\ttanMin = tan;\n\n\t\t\t}\n\n\t\t}\n\n\t\tp = p.next;\n\n\t} while ( p !== stop );\n\n\treturn m;\n\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector( m, p ) {\n\n\treturn area( m.prev, m, p.prev ) < 0 && area( p.next, m, m.next ) < 0;\n\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve( start, minX, minY, invSize ) {\n\n\tlet p = start;\n\tdo {\n\n\t\tif ( p.z === 0 ) p.z = zOrder( p.x, p.y, minX, minY, invSize );\n\t\tp.prevZ = p.prev;\n\t\tp.nextZ = p.next;\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\tp.prevZ.nextZ = null;\n\tp.prevZ = null;\n\n\tsortLinked( p );\n\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked( list ) {\n\n\tlet i, p, q, e, tail, numMerges, pSize, qSize,\n\t\tinSize = 1;\n\n\tdo {\n\n\t\tp = list;\n\t\tlist = null;\n\t\ttail = null;\n\t\tnumMerges = 0;\n\n\t\twhile ( p ) {\n\n\t\t\tnumMerges ++;\n\t\t\tq = p;\n\t\t\tpSize = 0;\n\t\t\tfor ( i = 0; i < inSize; i ++ ) {\n\n\t\t\t\tpSize ++;\n\t\t\t\tq = q.nextZ;\n\t\t\t\tif ( ! q ) break;\n\n\t\t\t}\n\n\t\t\tqSize = inSize;\n\n\t\t\twhile ( pSize > 0 || ( qSize > 0 && q ) ) {\n\n\t\t\t\tif ( pSize !== 0 && ( qSize === 0 || ! q || p.z <= q.z ) ) {\n\n\t\t\t\t\te = p;\n\t\t\t\t\tp = p.nextZ;\n\t\t\t\t\tpSize --;\n\n\t\t\t\t} else {\n\n\t\t\t\t\te = q;\n\t\t\t\t\tq = q.nextZ;\n\t\t\t\t\tqSize --;\n\n\t\t\t\t}\n\n\t\t\t\tif ( tail ) tail.nextZ = e;\n\t\t\t\telse list = e;\n\n\t\t\t\te.prevZ = tail;\n\t\t\t\ttail = e;\n\n\t\t\t}\n\n\t\t\tp = q;\n\n\t\t}\n\n\t\ttail.nextZ = null;\n\t\tinSize *= 2;\n\n\t} while ( numMerges > 1 );\n\n\treturn list;\n\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder( x, y, minX, minY, invSize ) {\n\n\t// coords are transformed into non-negative 15-bit integer range\n\tx = ( x - minX ) * invSize | 0;\n\ty = ( y - minY ) * invSize | 0;\n\n\tx = ( x | ( x << 8 ) ) & 0x00FF00FF;\n\tx = ( x | ( x << 4 ) ) & 0x0F0F0F0F;\n\tx = ( x | ( x << 2 ) ) & 0x33333333;\n\tx = ( x | ( x << 1 ) ) & 0x55555555;\n\n\ty = ( y | ( y << 8 ) ) & 0x00FF00FF;\n\ty = ( y | ( y << 4 ) ) & 0x0F0F0F0F;\n\ty = ( y | ( y << 2 ) ) & 0x33333333;\n\ty = ( y | ( y << 1 ) ) & 0x55555555;\n\n\treturn x | ( y << 1 );\n\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost( start ) {\n\n\tlet p = start,\n\t\tleftmost = start;\n\tdo {\n\n\t\tif ( p.x < leftmost.x || ( p.x === leftmost.x && p.y < leftmost.y ) ) leftmost = p;\n\t\tp = p.next;\n\n\t} while ( p !== start );\n\n\treturn leftmost;\n\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle( ax, ay, bx, by, cx, cy, px, py ) {\n\n\treturn ( cx - px ) * ( ay - py ) >= ( ax - px ) * ( cy - py ) &&\n ( ax - px ) * ( by - py ) >= ( bx - px ) * ( ay - py ) &&\n ( bx - px ) * ( cy - py ) >= ( cx - px ) * ( by - py );\n\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal( a, b ) {\n\n\treturn a.next.i !== b.i && a.prev.i !== b.i && ! intersectsPolygon( a, b ) && // dones't intersect other edges\n ( locallyInside( a, b ) && locallyInside( b, a ) && middleInside( a, b ) && // locally visible\n ( area( a.prev, a, b.prev ) || area( a, b.prev, b ) ) || // does not create opposite-facing sectors\n equals( a, b ) && area( a.prev, a, a.next ) > 0 && area( b.prev, b, b.next ) > 0 ); // special zero-length case\n\n}\n\n// signed area of a triangle\nfunction area( p, q, r ) {\n\n\treturn ( q.y - p.y ) * ( r.x - q.x ) - ( q.x - p.x ) * ( r.y - q.y );\n\n}\n\n// check if two points are equal\nfunction equals( p1, p2 ) {\n\n\treturn p1.x === p2.x && p1.y === p2.y;\n\n}\n\n// check if two segments intersect\nfunction intersects( p1, q1, p2, q2 ) {\n\n\tconst o1 = sign( area( p1, q1, p2 ) );\n\tconst o2 = sign( area( p1, q1, q2 ) );\n\tconst o3 = sign( area( p2, q2, p1 ) );\n\tconst o4 = sign( area( p2, q2, q1 ) );\n\n\tif ( o1 !== o2 && o3 !== o4 ) return true; // general case\n\n\tif ( o1 === 0 && onSegment( p1, p2, q1 ) ) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n\tif ( o2 === 0 && onSegment( p1, q2, q1 ) ) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n\tif ( o3 === 0 && onSegment( p2, p1, q2 ) ) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n\tif ( o4 === 0 && onSegment( p2, q1, q2 ) ) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n\treturn false;\n\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment( p, q, r ) {\n\n\treturn q.x <= Math.max( p.x, r.x ) && q.x >= Math.min( p.x, r.x ) && q.y <= Math.max( p.y, r.y ) && q.y >= Math.min( p.y, r.y );\n\n}\n\nfunction sign( num ) {\n\n\treturn num > 0 ? 1 : num < 0 ? - 1 : 0;\n\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon( a, b ) {\n\n\tlet p = a;\n\tdo {\n\n\t\tif ( p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n\t\t\tintersects( p, p.next, a, b ) ) return true;\n\t\tp = p.next;\n\n\t} while ( p !== a );\n\n\treturn false;\n\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside( a, b ) {\n\n\treturn area( a.prev, a, a.next ) < 0 ?\n\t\tarea( a, b, a.next ) >= 0 && area( a, a.prev, b ) >= 0 :\n\t\tarea( a, b, a.prev ) < 0 || area( a, a.next, b ) < 0;\n\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside( a, b ) {\n\n\tlet p = a,\n\t\tinside = false;\n\tconst px = ( a.x + b.x ) / 2,\n\t\tpy = ( a.y + b.y ) / 2;\n\tdo {\n\n\t\tif ( ( ( p.y > py ) !== ( p.next.y > py ) ) && p.next.y !== p.y &&\n\t\t\t( px < ( p.next.x - p.x ) * ( py - p.y ) / ( p.next.y - p.y ) + p.x ) )\n\t\t\tinside = ! inside;\n\t\tp = p.next;\n\n\t} while ( p !== a );\n\n\treturn inside;\n\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon( a, b ) {\n\n\tconst a2 = new Node( a.i, a.x, a.y ),\n\t\tb2 = new Node( b.i, b.x, b.y ),\n\t\tan = a.next,\n\t\tbp = b.prev;\n\n\ta.next = b;\n\tb.prev = a;\n\n\ta2.next = an;\n\tan.prev = a2;\n\n\tb2.next = a2;\n\ta2.prev = b2;\n\n\tbp.next = b2;\n\tb2.prev = bp;\n\n\treturn b2;\n\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode( i, x, y, last ) {\n\n\tconst p = new Node( i, x, y );\n\n\tif ( ! last ) {\n\n\t\tp.prev = p;\n\t\tp.next = p;\n\n\t} else {\n\n\t\tp.next = last.next;\n\t\tp.prev = last;\n\t\tlast.next.prev = p;\n\t\tlast.next = p;\n\n\t}\n\n\treturn p;\n\n}\n\nfunction removeNode( p ) {\n\n\tp.next.prev = p.prev;\n\tp.prev.next = p.next;\n\n\tif ( p.prevZ ) p.prevZ.nextZ = p.nextZ;\n\tif ( p.nextZ ) p.nextZ.prevZ = p.prevZ;\n\n}\n\nfunction Node( i, x, y ) {\n\n\t// vertex index in coordinates array\n\tthis.i = i;\n\n\t// vertex coordinates\n\tthis.x = x;\n\tthis.y = y;\n\n\t// previous and next vertex nodes in a polygon ring\n\tthis.prev = null;\n\tthis.next = null;\n\n\t// z-order curve value\n\tthis.z = 0;\n\n\t// previous and next nodes in z-order\n\tthis.prevZ = null;\n\tthis.nextZ = null;\n\n\t// indicates whether this is a steiner point\n\tthis.steiner = false;\n\n}\n\nfunction signedArea( data, start, end, dim ) {\n\n\tlet sum = 0;\n\tfor ( let i = start, j = end - dim; i < end; i += dim ) {\n\n\t\tsum += ( data[ j ] - data[ i ] ) * ( data[ i + 1 ] + data[ j + 1 ] );\n\t\tj = i;\n\n\t}\n\n\treturn sum;\n\n}\n\nclass ShapeUtils {\n\n\t// calculate area of the contour polygon\n\n\tstatic area( contour ) {\n\n\t\tconst n = contour.length;\n\t\tlet a = 0.0;\n\n\t\tfor ( let p = n - 1, q = 0; q < n; p = q ++ ) {\n\n\t\t\ta += contour[ p ].x * contour[ q ].y - contour[ q ].x * contour[ p ].y;\n\n\t\t}\n\n\t\treturn a * 0.5;\n\n\t}\n\n\tstatic isClockWise( pts ) {\n\n\t\treturn ShapeUtils.area( pts ) < 0;\n\n\t}\n\n\tstatic triangulateShape( contour, holes ) {\n\n\t\tconst vertices = []; // flat array of vertices like [ x0,y0, x1,y1, x2,y2, ... ]\n\t\tconst holeIndices = []; // array of hole indices\n\t\tconst faces = []; // final array of vertex indices like [ [ a,b,d ], [ b,c,d ] ]\n\n\t\tremoveDupEndPts( contour );\n\t\taddContour( vertices, contour );\n\n\t\t//\n\n\t\tlet holeIndex = contour.length;\n\n\t\tholes.forEach( removeDupEndPts );\n\n\t\tfor ( let i = 0; i < holes.length; i ++ ) {\n\n\t\t\tholeIndices.push( holeIndex );\n\t\t\tholeIndex += holes[ i ].length;\n\t\t\taddContour( vertices, holes[ i ] );\n\n\t\t}\n\n\t\t//\n\n\t\tconst triangles = Earcut.triangulate( vertices, holeIndices );\n\n\t\t//\n\n\t\tfor ( let i = 0; i < triangles.length; i += 3 ) {\n\n\t\t\tfaces.push( triangles.slice( i, i + 3 ) );\n\n\t\t}\n\n\t\treturn faces;\n\n\t}\n\n}\n\nfunction removeDupEndPts( points ) {\n\n\tconst l = points.length;\n\n\tif ( l > 2 && points[ l - 1 ].equals( points[ 0 ] ) ) {\n\n\t\tpoints.pop();\n\n\t}\n\n}\n\nfunction addContour( vertices, contour ) {\n\n\tfor ( let i = 0; i < contour.length; i ++ ) {\n\n\t\tvertices.push( contour[ i ].x );\n\t\tvertices.push( contour[ i ].y );\n\n\t}\n\n}\n\n/**\n * Creates extruded geometry from a path shape.\n *\n * parameters = {\n *\n * curveSegments: , // number of points on the curves\n * steps: , // number of points for z-side extrusions / used for subdividing segments of extrude spline too\n * depth: , // Depth to extrude the shape\n *\n * bevelEnabled: , // turn on bevel\n * bevelThickness: , // how deep into the original shape bevel goes\n * bevelSize: , // how far from shape outline (including bevelOffset) is bevel\n * bevelOffset: , // how far from shape outline does bevel start\n * bevelSegments: , // number of bevel layers\n *\n * extrudePath: // curve to extrude shape along\n *\n * UVGenerator: // object that provides UV generator functions\n *\n * }\n */\n\n\nclass ExtrudeGeometry extends BufferGeometry {\n\n\tconstructor( shapes = new Shape( [ new Vector2( 0.5, 0.5 ), new Vector2( - 0.5, 0.5 ), new Vector2( - 0.5, - 0.5 ), new Vector2( 0.5, - 0.5 ) ] ), options = {} ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ExtrudeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tshapes: shapes,\n\t\t\toptions: options\n\t\t};\n\n\t\tshapes = Array.isArray( shapes ) ? shapes : [ shapes ];\n\n\t\tconst scope = this;\n\n\t\tconst verticesArray = [];\n\t\tconst uvArray = [];\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\t\t\taddShape( shape );\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( verticesArray, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvArray, 2 ) );\n\n\t\tthis.computeVertexNormals();\n\n\t\t// functions\n\n\t\tfunction addShape( shape ) {\n\n\t\t\tconst placeholder = [];\n\n\t\t\t// options\n\n\t\t\tconst curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12;\n\t\t\tconst steps = options.steps !== undefined ? options.steps : 1;\n\t\t\tconst depth = options.depth !== undefined ? options.depth : 1;\n\n\t\t\tlet bevelEnabled = options.bevelEnabled !== undefined ? options.bevelEnabled : true;\n\t\t\tlet bevelThickness = options.bevelThickness !== undefined ? options.bevelThickness : 0.2;\n\t\t\tlet bevelSize = options.bevelSize !== undefined ? options.bevelSize : bevelThickness - 0.1;\n\t\t\tlet bevelOffset = options.bevelOffset !== undefined ? options.bevelOffset : 0;\n\t\t\tlet bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3;\n\n\t\t\tconst extrudePath = options.extrudePath;\n\n\t\t\tconst uvgen = options.UVGenerator !== undefined ? options.UVGenerator : WorldUVGenerator;\n\n\t\t\t//\n\n\t\t\tlet extrudePts, extrudeByPath = false;\n\t\t\tlet splineTube, binormal, normal, position2;\n\n\t\t\tif ( extrudePath ) {\n\n\t\t\t\textrudePts = extrudePath.getSpacedPoints( steps );\n\n\t\t\t\textrudeByPath = true;\n\t\t\t\tbevelEnabled = false; // bevels not supported for path extrusion\n\n\t\t\t\t// SETUP TNB variables\n\n\t\t\t\t// TODO1 - have a .isClosed in spline?\n\n\t\t\t\tsplineTube = extrudePath.computeFrenetFrames( steps, false );\n\n\t\t\t\t// console.log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length);\n\n\t\t\t\tbinormal = new Vector3();\n\t\t\t\tnormal = new Vector3();\n\t\t\t\tposition2 = new Vector3();\n\n\t\t\t}\n\n\t\t\t// Safeguards if bevels are not enabled\n\n\t\t\tif ( ! bevelEnabled ) {\n\n\t\t\t\tbevelSegments = 0;\n\t\t\t\tbevelThickness = 0;\n\t\t\t\tbevelSize = 0;\n\t\t\t\tbevelOffset = 0;\n\n\t\t\t}\n\n\t\t\t// Variables initialization\n\n\t\t\tconst shapePoints = shape.extractPoints( curveSegments );\n\n\t\t\tlet vertices = shapePoints.shape;\n\t\t\tconst holes = shapePoints.holes;\n\n\t\t\tconst reverse = ! ShapeUtils.isClockWise( vertices );\n\n\t\t\tif ( reverse ) {\n\n\t\t\t\tvertices = vertices.reverse();\n\n\t\t\t\t// Maybe we should also check if holes are in the opposite direction, just to be safe ...\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\t\tif ( ShapeUtils.isClockWise( ahole ) ) {\n\n\t\t\t\t\t\tholes[ h ] = ahole.reverse();\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t\tconst faces = ShapeUtils.triangulateShape( vertices, holes );\n\n\t\t\t/* Vertices */\n\n\t\t\tconst contour = vertices; // vertices has all points but contour has only points of circumference\n\n\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\tvertices = vertices.concat( ahole );\n\n\t\t\t}\n\n\n\t\t\tfunction scalePt2( pt, vec, size ) {\n\n\t\t\t\tif ( ! vec ) console.error( 'THREE.ExtrudeGeometry: vec does not exist' );\n\n\t\t\t\treturn pt.clone().addScaledVector( vec, size );\n\n\t\t\t}\n\n\t\t\tconst vlen = vertices.length, flen = faces.length;\n\n\n\t\t\t// Find directions for point movement\n\n\n\t\t\tfunction getBevelVec( inPt, inPrev, inNext ) {\n\n\t\t\t\t// computes for inPt the corresponding point inPt' on a new contour\n\t\t\t\t// shifted by 1 unit (length of normalized vector) to the left\n\t\t\t\t// if we walk along contour clockwise, this new contour is outside the old one\n\t\t\t\t//\n\t\t\t\t// inPt' is the intersection of the two lines parallel to the two\n\t\t\t\t// adjacent edges of inPt at a distance of 1 unit on the left side.\n\n\t\t\t\tlet v_trans_x, v_trans_y, shrink_by; // resulting translation vector for inPt\n\n\t\t\t\t// good reading for geometry algorithms (here: line-line intersection)\n\t\t\t\t// http://geomalgorithms.com/a05-_intersect-1.html\n\n\t\t\t\tconst v_prev_x = inPt.x - inPrev.x,\n\t\t\t\t\tv_prev_y = inPt.y - inPrev.y;\n\t\t\t\tconst v_next_x = inNext.x - inPt.x,\n\t\t\t\t\tv_next_y = inNext.y - inPt.y;\n\n\t\t\t\tconst v_prev_lensq = ( v_prev_x * v_prev_x + v_prev_y * v_prev_y );\n\n\t\t\t\t// check for collinear edges\n\t\t\t\tconst collinear0 = ( v_prev_x * v_next_y - v_prev_y * v_next_x );\n\n\t\t\t\tif ( Math.abs( collinear0 ) > Number.EPSILON ) {\n\n\t\t\t\t\t// not collinear\n\n\t\t\t\t\t// length of vectors for normalizing\n\n\t\t\t\t\tconst v_prev_len = Math.sqrt( v_prev_lensq );\n\t\t\t\t\tconst v_next_len = Math.sqrt( v_next_x * v_next_x + v_next_y * v_next_y );\n\n\t\t\t\t\t// shift adjacent points by unit vectors to the left\n\n\t\t\t\t\tconst ptPrevShift_x = ( inPrev.x - v_prev_y / v_prev_len );\n\t\t\t\t\tconst ptPrevShift_y = ( inPrev.y + v_prev_x / v_prev_len );\n\n\t\t\t\t\tconst ptNextShift_x = ( inNext.x - v_next_y / v_next_len );\n\t\t\t\t\tconst ptNextShift_y = ( inNext.y + v_next_x / v_next_len );\n\n\t\t\t\t\t// scaling factor for v_prev to intersection point\n\n\t\t\t\t\tconst sf = ( ( ptNextShift_x - ptPrevShift_x ) * v_next_y -\n\t\t\t\t\t\t\t( ptNextShift_y - ptPrevShift_y ) * v_next_x ) /\n\t\t\t\t\t\t( v_prev_x * v_next_y - v_prev_y * v_next_x );\n\n\t\t\t\t\t// vector from inPt to intersection point\n\n\t\t\t\t\tv_trans_x = ( ptPrevShift_x + v_prev_x * sf - inPt.x );\n\t\t\t\t\tv_trans_y = ( ptPrevShift_y + v_prev_y * sf - inPt.y );\n\n\t\t\t\t\t// Don't normalize!, otherwise sharp corners become ugly\n\t\t\t\t\t// but prevent crazy spikes\n\t\t\t\t\tconst v_trans_lensq = ( v_trans_x * v_trans_x + v_trans_y * v_trans_y );\n\t\t\t\t\tif ( v_trans_lensq <= 2 ) {\n\n\t\t\t\t\t\treturn new Vector2( v_trans_x, v_trans_y );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_trans_lensq / 2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// handle special case of collinear edges\n\n\t\t\t\t\tlet direction_eq = false; // assumes: opposite\n\n\t\t\t\t\tif ( v_prev_x > Number.EPSILON ) {\n\n\t\t\t\t\t\tif ( v_next_x > Number.EPSILON ) {\n\n\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( v_prev_x < - Number.EPSILON ) {\n\n\t\t\t\t\t\t\tif ( v_next_x < - Number.EPSILON ) {\n\n\t\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tif ( Math.sign( v_prev_y ) === Math.sign( v_next_y ) ) {\n\n\t\t\t\t\t\t\t\tdirection_eq = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( direction_eq ) {\n\n\t\t\t\t\t\t// console.log(\"Warning: lines are a straight sequence\");\n\t\t\t\t\t\tv_trans_x = - v_prev_y;\n\t\t\t\t\t\tv_trans_y = v_prev_x;\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_prev_lensq );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// console.log(\"Warning: lines are a straight spike\");\n\t\t\t\t\t\tv_trans_x = v_prev_x;\n\t\t\t\t\t\tv_trans_y = v_prev_y;\n\t\t\t\t\t\tshrink_by = Math.sqrt( v_prev_lensq / 2 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\treturn new Vector2( v_trans_x / shrink_by, v_trans_y / shrink_by );\n\n\t\t\t}\n\n\n\t\t\tconst contourMovements = [];\n\n\t\t\tfor ( let i = 0, il = contour.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) {\n\n\t\t\t\tif ( j === il ) j = 0;\n\t\t\t\tif ( k === il ) k = 0;\n\n\t\t\t\t// (j)---(i)---(k)\n\t\t\t\t// console.log('i,j,k', i, j , k)\n\n\t\t\t\tcontourMovements[ i ] = getBevelVec( contour[ i ], contour[ j ], contour[ k ] );\n\n\t\t\t}\n\n\t\t\tconst holesMovements = [];\n\t\t\tlet oneHoleMovements, verticesMovements = contourMovements.concat();\n\n\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\tconst ahole = holes[ h ];\n\n\t\t\t\toneHoleMovements = [];\n\n\t\t\t\tfor ( let i = 0, il = ahole.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) {\n\n\t\t\t\t\tif ( j === il ) j = 0;\n\t\t\t\t\tif ( k === il ) k = 0;\n\n\t\t\t\t\t// (j)---(i)---(k)\n\t\t\t\t\toneHoleMovements[ i ] = getBevelVec( ahole[ i ], ahole[ j ], ahole[ k ] );\n\n\t\t\t\t}\n\n\t\t\t\tholesMovements.push( oneHoleMovements );\n\t\t\t\tverticesMovements = verticesMovements.concat( oneHoleMovements );\n\n\t\t\t}\n\n\n\t\t\t// Loop bevelSegments, 1 for the front, 1 for the back\n\n\t\t\tfor ( let b = 0; b < bevelSegments; b ++ ) {\n\n\t\t\t\t//for ( b = bevelSegments; b > 0; b -- ) {\n\n\t\t\t\tconst t = b / bevelSegments;\n\t\t\t\tconst z = bevelThickness * Math.cos( t * Math.PI / 2 );\n\t\t\t\tconst bs = bevelSize * Math.sin( t * Math.PI / 2 ) + bevelOffset;\n\n\t\t\t\t// contract shape\n\n\t\t\t\tfor ( let i = 0, il = contour.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst vert = scalePt2( contour[ i ], contourMovements[ i ], bs );\n\n\t\t\t\t\tv( vert.x, vert.y, - z );\n\n\t\t\t\t}\n\n\t\t\t\t// expand holes\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\toneHoleMovements = holesMovements[ h ];\n\n\t\t\t\t\tfor ( let i = 0, il = ahole.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs );\n\n\t\t\t\t\t\tv( vert.x, vert.y, - z );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst bs = bevelSize + bevelOffset;\n\n\t\t\t// Back facing vertices\n\n\t\t\tfor ( let i = 0; i < vlen; i ++ ) {\n\n\t\t\t\tconst vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ];\n\n\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\tv( vert.x, vert.y, 0 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// v( vert.x, vert.y + extrudePts[ 0 ].y, extrudePts[ 0 ].x );\n\n\t\t\t\t\tnormal.copy( splineTube.normals[ 0 ] ).multiplyScalar( vert.x );\n\t\t\t\t\tbinormal.copy( splineTube.binormals[ 0 ] ).multiplyScalar( vert.y );\n\n\t\t\t\t\tposition2.copy( extrudePts[ 0 ] ).add( normal ).add( binormal );\n\n\t\t\t\t\tv( position2.x, position2.y, position2.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Add stepped vertices...\n\t\t\t// Including front facing vertices\n\n\t\t\tfor ( let s = 1; s <= steps; s ++ ) {\n\n\t\t\t\tfor ( let i = 0; i < vlen; i ++ ) {\n\n\t\t\t\t\tconst vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ];\n\n\t\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\t\tv( vert.x, vert.y, depth / steps * s );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// v( vert.x, vert.y + extrudePts[ s - 1 ].y, extrudePts[ s - 1 ].x );\n\n\t\t\t\t\t\tnormal.copy( splineTube.normals[ s ] ).multiplyScalar( vert.x );\n\t\t\t\t\t\tbinormal.copy( splineTube.binormals[ s ] ).multiplyScalar( vert.y );\n\n\t\t\t\t\t\tposition2.copy( extrudePts[ s ] ).add( normal ).add( binormal );\n\n\t\t\t\t\t\tv( position2.x, position2.y, position2.z );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\n\t\t\t// Add bevel segments planes\n\n\t\t\t//for ( b = 1; b <= bevelSegments; b ++ ) {\n\t\t\tfor ( let b = bevelSegments - 1; b >= 0; b -- ) {\n\n\t\t\t\tconst t = b / bevelSegments;\n\t\t\t\tconst z = bevelThickness * Math.cos( t * Math.PI / 2 );\n\t\t\t\tconst bs = bevelSize * Math.sin( t * Math.PI / 2 ) + bevelOffset;\n\n\t\t\t\t// contract shape\n\n\t\t\t\tfor ( let i = 0, il = contour.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst vert = scalePt2( contour[ i ], contourMovements[ i ], bs );\n\t\t\t\t\tv( vert.x, vert.y, depth + z );\n\n\t\t\t\t}\n\n\t\t\t\t// expand holes\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\toneHoleMovements = holesMovements[ h ];\n\n\t\t\t\t\tfor ( let i = 0, il = ahole.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs );\n\n\t\t\t\t\t\tif ( ! extrudeByPath ) {\n\n\t\t\t\t\t\t\tv( vert.x, vert.y, depth + z );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tv( vert.x, vert.y + extrudePts[ steps - 1 ].y, extrudePts[ steps - 1 ].x + z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t/* Faces */\n\n\t\t\t// Top and bottom faces\n\n\t\t\tbuildLidFaces();\n\n\t\t\t// Sides faces\n\n\t\t\tbuildSideFaces();\n\n\n\t\t\t///// Internal functions\n\n\t\t\tfunction buildLidFaces() {\n\n\t\t\t\tconst start = verticesArray.length / 3;\n\n\t\t\t\tif ( bevelEnabled ) {\n\n\t\t\t\t\tlet layer = 0; // steps + 1\n\t\t\t\t\tlet offset = vlen * layer;\n\n\t\t\t\t\t// Bottom faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 2 ] + offset, face[ 1 ] + offset, face[ 0 ] + offset );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tlayer = steps + bevelSegments * 2;\n\t\t\t\t\toffset = vlen * layer;\n\n\t\t\t\t\t// Top faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 0 ] + offset, face[ 1 ] + offset, face[ 2 ] + offset );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// Bottom faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 2 ], face[ 1 ], face[ 0 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Top faces\n\n\t\t\t\t\tfor ( let i = 0; i < flen; i ++ ) {\n\n\t\t\t\t\t\tconst face = faces[ i ];\n\t\t\t\t\t\tf3( face[ 0 ] + vlen * steps, face[ 1 ] + vlen * steps, face[ 2 ] + vlen * steps );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tscope.addGroup( start, verticesArray.length / 3 - start, 0 );\n\n\t\t\t}\n\n\t\t\t// Create faces for the z-sides of the shape\n\n\t\t\tfunction buildSideFaces() {\n\n\t\t\t\tconst start = verticesArray.length / 3;\n\t\t\t\tlet layeroffset = 0;\n\t\t\t\tsidewalls( contour, layeroffset );\n\t\t\t\tlayeroffset += contour.length;\n\n\t\t\t\tfor ( let h = 0, hl = holes.length; h < hl; h ++ ) {\n\n\t\t\t\t\tconst ahole = holes[ h ];\n\t\t\t\t\tsidewalls( ahole, layeroffset );\n\n\t\t\t\t\t//, true\n\t\t\t\t\tlayeroffset += ahole.length;\n\n\t\t\t\t}\n\n\n\t\t\t\tscope.addGroup( start, verticesArray.length / 3 - start, 1 );\n\n\n\t\t\t}\n\n\t\t\tfunction sidewalls( contour, layeroffset ) {\n\n\t\t\t\tlet i = contour.length;\n\n\t\t\t\twhile ( -- i >= 0 ) {\n\n\t\t\t\t\tconst j = i;\n\t\t\t\t\tlet k = i - 1;\n\t\t\t\t\tif ( k < 0 ) k = contour.length - 1;\n\n\t\t\t\t\t//console.log('b', i,j, i-1, k,vertices.length);\n\n\t\t\t\t\tfor ( let s = 0, sl = ( steps + bevelSegments * 2 ); s < sl; s ++ ) {\n\n\t\t\t\t\t\tconst slen1 = vlen * s;\n\t\t\t\t\t\tconst slen2 = vlen * ( s + 1 );\n\n\t\t\t\t\t\tconst a = layeroffset + j + slen1,\n\t\t\t\t\t\t\tb = layeroffset + k + slen1,\n\t\t\t\t\t\t\tc = layeroffset + k + slen2,\n\t\t\t\t\t\t\td = layeroffset + j + slen2;\n\n\t\t\t\t\t\tf4( a, b, c, d );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tfunction v( x, y, z ) {\n\n\t\t\t\tplaceholder.push( x );\n\t\t\t\tplaceholder.push( y );\n\t\t\t\tplaceholder.push( z );\n\n\t\t\t}\n\n\n\t\t\tfunction f3( a, b, c ) {\n\n\t\t\t\taddVertex( a );\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( c );\n\n\t\t\t\tconst nextIndex = verticesArray.length / 3;\n\t\t\t\tconst uvs = uvgen.generateTopUV( scope, verticesArray, nextIndex - 3, nextIndex - 2, nextIndex - 1 );\n\n\t\t\t\taddUV( uvs[ 0 ] );\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 2 ] );\n\n\t\t\t}\n\n\t\t\tfunction f4( a, b, c, d ) {\n\n\t\t\t\taddVertex( a );\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( d );\n\n\t\t\t\taddVertex( b );\n\t\t\t\taddVertex( c );\n\t\t\t\taddVertex( d );\n\n\n\t\t\t\tconst nextIndex = verticesArray.length / 3;\n\t\t\t\tconst uvs = uvgen.generateSideWallUV( scope, verticesArray, nextIndex - 6, nextIndex - 3, nextIndex - 2, nextIndex - 1 );\n\n\t\t\t\taddUV( uvs[ 0 ] );\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 3 ] );\n\n\t\t\t\taddUV( uvs[ 1 ] );\n\t\t\t\taddUV( uvs[ 2 ] );\n\t\t\t\taddUV( uvs[ 3 ] );\n\n\t\t\t}\n\n\t\t\tfunction addVertex( index ) {\n\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 0 ] );\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 1 ] );\n\t\t\t\tverticesArray.push( placeholder[ index * 3 + 2 ] );\n\n\t\t\t}\n\n\n\t\t\tfunction addUV( vector2 ) {\n\n\t\t\t\tuvArray.push( vector2.x );\n\t\t\t\tuvArray.push( vector2.y );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tconst shapes = this.parameters.shapes;\n\t\tconst options = this.parameters.options;\n\n\t\treturn toJSON$1( shapes, options, data );\n\n\t}\n\n\tstatic fromJSON( data, shapes ) {\n\n\t\tconst geometryShapes = [];\n\n\t\tfor ( let j = 0, jl = data.shapes.length; j < jl; j ++ ) {\n\n\t\t\tconst shape = shapes[ data.shapes[ j ] ];\n\n\t\t\tgeometryShapes.push( shape );\n\n\t\t}\n\n\t\tconst extrudePath = data.options.extrudePath;\n\n\t\tif ( extrudePath !== undefined ) {\n\n\t\t\tdata.options.extrudePath = new Curves[ extrudePath.type ]().fromJSON( extrudePath );\n\n\t\t}\n\n\t\treturn new ExtrudeGeometry( geometryShapes, data.options );\n\n\t}\n\n}\n\nconst WorldUVGenerator = {\n\n\tgenerateTopUV: function ( geometry, vertices, indexA, indexB, indexC ) {\n\n\t\tconst a_x = vertices[ indexA * 3 ];\n\t\tconst a_y = vertices[ indexA * 3 + 1 ];\n\t\tconst b_x = vertices[ indexB * 3 ];\n\t\tconst b_y = vertices[ indexB * 3 + 1 ];\n\t\tconst c_x = vertices[ indexC * 3 ];\n\t\tconst c_y = vertices[ indexC * 3 + 1 ];\n\n\t\treturn [\n\t\t\tnew Vector2( a_x, a_y ),\n\t\t\tnew Vector2( b_x, b_y ),\n\t\t\tnew Vector2( c_x, c_y )\n\t\t];\n\n\t},\n\n\tgenerateSideWallUV: function ( geometry, vertices, indexA, indexB, indexC, indexD ) {\n\n\t\tconst a_x = vertices[ indexA * 3 ];\n\t\tconst a_y = vertices[ indexA * 3 + 1 ];\n\t\tconst a_z = vertices[ indexA * 3 + 2 ];\n\t\tconst b_x = vertices[ indexB * 3 ];\n\t\tconst b_y = vertices[ indexB * 3 + 1 ];\n\t\tconst b_z = vertices[ indexB * 3 + 2 ];\n\t\tconst c_x = vertices[ indexC * 3 ];\n\t\tconst c_y = vertices[ indexC * 3 + 1 ];\n\t\tconst c_z = vertices[ indexC * 3 + 2 ];\n\t\tconst d_x = vertices[ indexD * 3 ];\n\t\tconst d_y = vertices[ indexD * 3 + 1 ];\n\t\tconst d_z = vertices[ indexD * 3 + 2 ];\n\n\t\tif ( Math.abs( a_y - b_y ) < Math.abs( a_x - b_x ) ) {\n\n\t\t\treturn [\n\t\t\t\tnew Vector2( a_x, 1 - a_z ),\n\t\t\t\tnew Vector2( b_x, 1 - b_z ),\n\t\t\t\tnew Vector2( c_x, 1 - c_z ),\n\t\t\t\tnew Vector2( d_x, 1 - d_z )\n\t\t\t];\n\n\t\t} else {\n\n\t\t\treturn [\n\t\t\t\tnew Vector2( a_y, 1 - a_z ),\n\t\t\t\tnew Vector2( b_y, 1 - b_z ),\n\t\t\t\tnew Vector2( c_y, 1 - c_z ),\n\t\t\t\tnew Vector2( d_y, 1 - d_z )\n\t\t\t];\n\n\t\t}\n\n\t}\n\n};\n\nfunction toJSON$1( shapes, options, data ) {\n\n\tdata.shapes = [];\n\n\tif ( Array.isArray( shapes ) ) {\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\n\t\t\tdata.shapes.push( shape.uuid );\n\n\t\t}\n\n\t} else {\n\n\t\tdata.shapes.push( shapes.uuid );\n\n\t}\n\n\tdata.options = Object.assign( {}, options );\n\n\tif ( options.extrudePath !== undefined ) data.options.extrudePath = options.extrudePath.toJSON();\n\n\treturn data;\n\n}\n\nclass IcosahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst t = ( 1 + Math.sqrt( 5 ) ) / 2;\n\n\t\tconst vertices = [\n\t\t\t- 1, t, 0, \t1, t, 0, \t- 1, - t, 0, \t1, - t, 0,\n\t\t\t0, - 1, t, \t0, 1, t,\t0, - 1, - t, \t0, 1, - t,\n\t\t\tt, 0, - 1, \tt, 0, 1, \t- t, 0, - 1, \t- t, 0, 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t0, 11, 5, \t0, 5, 1, \t0, 1, 7, \t0, 7, 10, \t0, 10, 11,\n\t\t\t1, 5, 9, \t5, 11, 4,\t11, 10, 2,\t10, 7, 6,\t7, 1, 8,\n\t\t\t3, 9, 4, \t3, 4, 2,\t3, 2, 6,\t3, 6, 8,\t3, 8, 9,\n\t\t\t4, 9, 5, \t2, 4, 11,\t6, 2, 10,\t8, 6, 7,\t9, 8, 1\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'IcosahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new IcosahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass OctahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst vertices = [\n\t\t\t1, 0, 0, \t- 1, 0, 0,\t0, 1, 0,\n\t\t\t0, - 1, 0, \t0, 0, 1,\t0, 0, - 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t0, 2, 4,\t0, 4, 3,\t0, 3, 5,\n\t\t\t0, 5, 2,\t1, 2, 5,\t1, 5, 3,\n\t\t\t1, 3, 4,\t1, 4, 2\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'OctahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new OctahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass RingGeometry extends BufferGeometry {\n\n\tconstructor( innerRadius = 0.5, outerRadius = 1, thetaSegments = 32, phiSegments = 1, thetaStart = 0, thetaLength = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'RingGeometry';\n\n\t\tthis.parameters = {\n\t\t\tinnerRadius: innerRadius,\n\t\t\touterRadius: outerRadius,\n\t\t\tthetaSegments: thetaSegments,\n\t\t\tphiSegments: phiSegments,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\tthetaSegments = Math.max( 3, thetaSegments );\n\t\tphiSegments = Math.max( 1, phiSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// some helper variables\n\n\t\tlet radius = innerRadius;\n\t\tconst radiusStep = ( ( outerRadius - innerRadius ) / phiSegments );\n\t\tconst vertex = new Vector3();\n\t\tconst uv = new Vector2();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let j = 0; j <= phiSegments; j ++ ) {\n\n\t\t\tfor ( let i = 0; i <= thetaSegments; i ++ ) {\n\n\t\t\t\t// values are generate from the inside of the ring to the outside\n\n\t\t\t\tconst segment = thetaStart + i / thetaSegments * thetaLength;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = radius * Math.cos( segment );\n\t\t\t\tvertex.y = radius * Math.sin( segment );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t\t// uv\n\n\t\t\t\tuv.x = ( vertex.x / outerRadius + 1 ) / 2;\n\t\t\t\tuv.y = ( vertex.y / outerRadius + 1 ) / 2;\n\n\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t}\n\n\t\t\t// increase the radius for next row of vertices\n\n\t\t\tradius += radiusStep;\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let j = 0; j < phiSegments; j ++ ) {\n\n\t\t\tconst thetaSegmentLevel = j * ( thetaSegments + 1 );\n\n\t\t\tfor ( let i = 0; i < thetaSegments; i ++ ) {\n\n\t\t\t\tconst segment = i + thetaSegmentLevel;\n\n\t\t\t\tconst a = segment;\n\t\t\t\tconst b = segment + thetaSegments + 1;\n\t\t\t\tconst c = segment + thetaSegments + 2;\n\t\t\t\tconst d = segment + 1;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new RingGeometry( data.innerRadius, data.outerRadius, data.thetaSegments, data.phiSegments, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass ShapeGeometry extends BufferGeometry {\n\n\tconstructor( shapes = new Shape( [ new Vector2( 0, 0.5 ), new Vector2( - 0.5, - 0.5 ), new Vector2( 0.5, - 0.5 ) ] ), curveSegments = 12 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ShapeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tshapes: shapes,\n\t\t\tcurveSegments: curveSegments\n\t\t};\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet groupStart = 0;\n\t\tlet groupCount = 0;\n\n\t\t// allow single and array values for \"shapes\" parameter\n\n\t\tif ( Array.isArray( shapes ) === false ) {\n\n\t\t\taddShape( shapes );\n\n\t\t} else {\n\n\t\t\tfor ( let i = 0; i < shapes.length; i ++ ) {\n\n\t\t\t\taddShape( shapes[ i ] );\n\n\t\t\t\tthis.addGroup( groupStart, groupCount, i ); // enables MultiMaterial support\n\n\t\t\t\tgroupStart += groupCount;\n\t\t\t\tgroupCount = 0;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\n\t\t// helper functions\n\n\t\tfunction addShape( shape ) {\n\n\t\t\tconst indexOffset = vertices.length / 3;\n\t\t\tconst points = shape.extractPoints( curveSegments );\n\n\t\t\tlet shapeVertices = points.shape;\n\t\t\tconst shapeHoles = points.holes;\n\n\t\t\t// check direction of vertices\n\n\t\t\tif ( ShapeUtils.isClockWise( shapeVertices ) === false ) {\n\n\t\t\t\tshapeVertices = shapeVertices.reverse();\n\n\t\t\t}\n\n\t\t\tfor ( let i = 0, l = shapeHoles.length; i < l; i ++ ) {\n\n\t\t\t\tconst shapeHole = shapeHoles[ i ];\n\n\t\t\t\tif ( ShapeUtils.isClockWise( shapeHole ) === true ) {\n\n\t\t\t\t\tshapeHoles[ i ] = shapeHole.reverse();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst faces = ShapeUtils.triangulateShape( shapeVertices, shapeHoles );\n\n\t\t\t// join vertices of inner and outer paths to a single array\n\n\t\t\tfor ( let i = 0, l = shapeHoles.length; i < l; i ++ ) {\n\n\t\t\t\tconst shapeHole = shapeHoles[ i ];\n\t\t\t\tshapeVertices = shapeVertices.concat( shapeHole );\n\n\t\t\t}\n\n\t\t\t// vertices, normals, uvs\n\n\t\t\tfor ( let i = 0, l = shapeVertices.length; i < l; i ++ ) {\n\n\t\t\t\tconst vertex = shapeVertices[ i ];\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, 0 );\n\t\t\t\tnormals.push( 0, 0, 1 );\n\t\t\t\tuvs.push( vertex.x, vertex.y ); // world uvs\n\n\t\t\t}\n\n\t\t\t// indices\n\n\t\t\tfor ( let i = 0, l = faces.length; i < l; i ++ ) {\n\n\t\t\t\tconst face = faces[ i ];\n\n\t\t\t\tconst a = face[ 0 ] + indexOffset;\n\t\t\t\tconst b = face[ 1 ] + indexOffset;\n\t\t\t\tconst c = face[ 2 ] + indexOffset;\n\n\t\t\t\tindices.push( a, b, c );\n\t\t\t\tgroupCount += 3;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tconst shapes = this.parameters.shapes;\n\n\t\treturn toJSON( shapes, data );\n\n\t}\n\n\tstatic fromJSON( data, shapes ) {\n\n\t\tconst geometryShapes = [];\n\n\t\tfor ( let j = 0, jl = data.shapes.length; j < jl; j ++ ) {\n\n\t\t\tconst shape = shapes[ data.shapes[ j ] ];\n\n\t\t\tgeometryShapes.push( shape );\n\n\t\t}\n\n\t\treturn new ShapeGeometry( geometryShapes, data.curveSegments );\n\n\t}\n\n}\n\nfunction toJSON( shapes, data ) {\n\n\tdata.shapes = [];\n\n\tif ( Array.isArray( shapes ) ) {\n\n\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\tconst shape = shapes[ i ];\n\n\t\t\tdata.shapes.push( shape.uuid );\n\n\t\t}\n\n\t} else {\n\n\t\tdata.shapes.push( shapes.uuid );\n\n\t}\n\n\treturn data;\n\n}\n\nclass SphereGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, widthSegments = 32, heightSegments = 16, phiStart = 0, phiLength = Math.PI * 2, thetaStart = 0, thetaLength = Math.PI ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'SphereGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\tphiStart: phiStart,\n\t\t\tphiLength: phiLength,\n\t\t\tthetaStart: thetaStart,\n\t\t\tthetaLength: thetaLength\n\t\t};\n\n\t\twidthSegments = Math.max( 3, Math.floor( widthSegments ) );\n\t\theightSegments = Math.max( 2, Math.floor( heightSegments ) );\n\n\t\tconst thetaEnd = Math.min( thetaStart + thetaLength, Math.PI );\n\n\t\tlet index = 0;\n\t\tconst grid = [];\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let iy = 0; iy <= heightSegments; iy ++ ) {\n\n\t\t\tconst verticesRow = [];\n\n\t\t\tconst v = iy / heightSegments;\n\n\t\t\t// special case for the poles\n\n\t\t\tlet uOffset = 0;\n\n\t\t\tif ( iy === 0 && thetaStart === 0 ) {\n\n\t\t\t\tuOffset = 0.5 / widthSegments;\n\n\t\t\t} else if ( iy === heightSegments && thetaEnd === Math.PI ) {\n\n\t\t\t\tuOffset = - 0.5 / widthSegments;\n\n\t\t\t}\n\n\t\t\tfor ( let ix = 0; ix <= widthSegments; ix ++ ) {\n\n\t\t\t\tconst u = ix / widthSegments;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = - radius * Math.cos( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength );\n\t\t\t\tvertex.y = radius * Math.cos( thetaStart + v * thetaLength );\n\t\t\t\tvertex.z = radius * Math.sin( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormal.copy( vertex ).normalize();\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( u + uOffset, 1 - v );\n\n\t\t\t\tverticesRow.push( index ++ );\n\n\t\t\t}\n\n\t\t\tgrid.push( verticesRow );\n\n\t\t}\n\n\t\t// indices\n\n\t\tfor ( let iy = 0; iy < heightSegments; iy ++ ) {\n\n\t\t\tfor ( let ix = 0; ix < widthSegments; ix ++ ) {\n\n\t\t\t\tconst a = grid[ iy ][ ix + 1 ];\n\t\t\t\tconst b = grid[ iy ][ ix ];\n\t\t\t\tconst c = grid[ iy + 1 ][ ix ];\n\t\t\t\tconst d = grid[ iy + 1 ][ ix + 1 ];\n\n\t\t\t\tif ( iy !== 0 || thetaStart > 0 ) indices.push( a, b, d );\n\t\t\t\tif ( iy !== heightSegments - 1 || thetaEnd < Math.PI ) indices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new SphereGeometry( data.radius, data.widthSegments, data.heightSegments, data.phiStart, data.phiLength, data.thetaStart, data.thetaLength );\n\n\t}\n\n}\n\nclass TetrahedronGeometry extends PolyhedronGeometry {\n\n\tconstructor( radius = 1, detail = 0 ) {\n\n\t\tconst vertices = [\n\t\t\t1, 1, 1, \t- 1, - 1, 1, \t- 1, 1, - 1, \t1, - 1, - 1\n\t\t];\n\n\t\tconst indices = [\n\t\t\t2, 1, 0, \t0, 3, 2,\t1, 3, 0,\t2, 3, 1\n\t\t];\n\n\t\tsuper( vertices, indices, radius, detail );\n\n\t\tthis.type = 'TetrahedronGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\tdetail: detail\n\t\t};\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TetrahedronGeometry( data.radius, data.detail );\n\n\t}\n\n}\n\nclass TorusGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, tube = 0.4, radialSegments = 12, tubularSegments = 48, arc = Math.PI * 2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'TorusGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\ttube: tube,\n\t\t\tradialSegments: radialSegments,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tarc: arc\n\t\t};\n\n\t\tradialSegments = Math.floor( radialSegments );\n\t\ttubularSegments = Math.floor( tubularSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst center = new Vector3();\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\tfor ( let i = 0; i <= tubularSegments; i ++ ) {\n\n\t\t\t\tconst u = i / tubularSegments * arc;\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = ( radius + tube * Math.cos( v ) ) * Math.cos( u );\n\t\t\t\tvertex.y = ( radius + tube * Math.cos( v ) ) * Math.sin( u );\n\t\t\t\tvertex.z = tube * Math.sin( v );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal\n\n\t\t\t\tcenter.x = radius * Math.cos( u );\n\t\t\t\tcenter.y = radius * Math.sin( u );\n\t\t\t\tnormal.subVectors( vertex, center ).normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( i / tubularSegments );\n\t\t\t\tuvs.push( j / radialSegments );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate indices\n\n\t\tfor ( let j = 1; j <= radialSegments; j ++ ) {\n\n\t\t\tfor ( let i = 1; i <= tubularSegments; i ++ ) {\n\n\t\t\t\t// indices\n\n\t\t\t\tconst a = ( tubularSegments + 1 ) * j + i - 1;\n\t\t\t\tconst b = ( tubularSegments + 1 ) * ( j - 1 ) + i - 1;\n\t\t\t\tconst c = ( tubularSegments + 1 ) * ( j - 1 ) + i;\n\t\t\t\tconst d = ( tubularSegments + 1 ) * j + i;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TorusGeometry( data.radius, data.tube, data.radialSegments, data.tubularSegments, data.arc );\n\n\t}\n\n}\n\nclass TorusKnotGeometry extends BufferGeometry {\n\n\tconstructor( radius = 1, tube = 0.4, tubularSegments = 64, radialSegments = 8, p = 2, q = 3 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'TorusKnotGeometry';\n\n\t\tthis.parameters = {\n\t\t\tradius: radius,\n\t\t\ttube: tube,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tradialSegments: radialSegments,\n\t\t\tp: p,\n\t\t\tq: q\n\t\t};\n\n\t\ttubularSegments = Math.floor( tubularSegments );\n\t\tradialSegments = Math.floor( radialSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\n\t\tconst P1 = new Vector3();\n\t\tconst P2 = new Vector3();\n\n\t\tconst B = new Vector3();\n\t\tconst T = new Vector3();\n\t\tconst N = new Vector3();\n\n\t\t// generate vertices, normals and uvs\n\n\t\tfor ( let i = 0; i <= tubularSegments; ++ i ) {\n\n\t\t\t// the radian \"u\" is used to calculate the position on the torus curve of the current tubular segment\n\n\t\t\tconst u = i / tubularSegments * p * Math.PI * 2;\n\n\t\t\t// now we calculate two points. P1 is our current position on the curve, P2 is a little farther ahead.\n\t\t\t// these points are used to create a special \"coordinate space\", which is necessary to calculate the correct vertex positions\n\n\t\t\tcalculatePositionOnCurve( u, p, q, radius, P1 );\n\t\t\tcalculatePositionOnCurve( u + 0.01, p, q, radius, P2 );\n\n\t\t\t// calculate orthonormal basis\n\n\t\t\tT.subVectors( P2, P1 );\n\t\t\tN.addVectors( P2, P1 );\n\t\t\tB.crossVectors( T, N );\n\t\t\tN.crossVectors( B, T );\n\n\t\t\t// normalize B, N. T can be ignored, we don't use it\n\n\t\t\tB.normalize();\n\t\t\tN.normalize();\n\n\t\t\tfor ( let j = 0; j <= radialSegments; ++ j ) {\n\n\t\t\t\t// now calculate the vertices. they are nothing more than an extrusion of the torus curve.\n\t\t\t\t// because we extrude a shape in the xy-plane, there is no need to calculate a z-value.\n\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\t\t\t\tconst cx = - tube * Math.cos( v );\n\t\t\t\tconst cy = tube * Math.sin( v );\n\n\t\t\t\t// now calculate the final vertex position.\n\t\t\t\t// first we orient the extrusion with our basis vectors, then we add it to the current position on the curve\n\n\t\t\t\tvertex.x = P1.x + ( cx * N.x + cy * B.x );\n\t\t\t\tvertex.y = P1.y + ( cx * N.y + cy * B.y );\n\t\t\t\tvertex.z = P1.z + ( cx * N.z + cy * B.z );\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t\t// normal (P1 is always the center/origin of the extrusion, thus we can use it to calculate the normal)\n\n\t\t\t\tnormal.subVectors( vertex, P1 ).normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// uv\n\n\t\t\t\tuvs.push( i / tubularSegments );\n\t\t\t\tuvs.push( j / radialSegments );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// generate indices\n\n\t\tfor ( let j = 1; j <= tubularSegments; j ++ ) {\n\n\t\t\tfor ( let i = 1; i <= radialSegments; i ++ ) {\n\n\t\t\t\t// indices\n\n\t\t\t\tconst a = ( radialSegments + 1 ) * ( j - 1 ) + ( i - 1 );\n\t\t\t\tconst b = ( radialSegments + 1 ) * j + ( i - 1 );\n\t\t\t\tconst c = ( radialSegments + 1 ) * j + i;\n\t\t\t\tconst d = ( radialSegments + 1 ) * ( j - 1 ) + i;\n\n\t\t\t\t// faces\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\t// this function calculates the current position on the torus curve\n\n\t\tfunction calculatePositionOnCurve( u, p, q, radius, position ) {\n\n\t\t\tconst cu = Math.cos( u );\n\t\t\tconst su = Math.sin( u );\n\t\t\tconst quOverP = q / p * u;\n\t\t\tconst cs = Math.cos( quOverP );\n\n\t\t\tposition.x = radius * ( 2 + cs ) * 0.5 * cu;\n\t\t\tposition.y = radius * ( 2 + cs ) * su * 0.5;\n\t\t\tposition.z = radius * Math.sin( quOverP ) * 0.5;\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\treturn new TorusKnotGeometry( data.radius, data.tube, data.tubularSegments, data.radialSegments, data.p, data.q );\n\n\t}\n\n}\n\nclass TubeGeometry extends BufferGeometry {\n\n\tconstructor( path = new QuadraticBezierCurve3( new Vector3( - 1, - 1, 0 ), new Vector3( - 1, 1, 0 ), new Vector3( 1, 1, 0 ) ), tubularSegments = 64, radius = 1, radialSegments = 8, closed = false ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'TubeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tpath: path,\n\t\t\ttubularSegments: tubularSegments,\n\t\t\tradius: radius,\n\t\t\tradialSegments: radialSegments,\n\t\t\tclosed: closed\n\t\t};\n\n\t\tconst frames = path.computeFrenetFrames( tubularSegments, closed );\n\n\t\t// expose internals\n\n\t\tthis.tangents = frames.tangents;\n\t\tthis.normals = frames.normals;\n\t\tthis.binormals = frames.binormals;\n\n\t\t// helper variables\n\n\t\tconst vertex = new Vector3();\n\t\tconst normal = new Vector3();\n\t\tconst uv = new Vector2();\n\t\tlet P = new Vector3();\n\n\t\t// buffer\n\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\t\tconst indices = [];\n\n\t\t// create buffer data\n\n\t\tgenerateBufferData();\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\t// functions\n\n\t\tfunction generateBufferData() {\n\n\t\t\tfor ( let i = 0; i < tubularSegments; i ++ ) {\n\n\t\t\t\tgenerateSegment( i );\n\n\t\t\t}\n\n\t\t\t// if the geometry is not closed, generate the last row of vertices and normals\n\t\t\t// at the regular position on the given path\n\t\t\t//\n\t\t\t// if the geometry is closed, duplicate the first row of vertices and normals (uvs will differ)\n\n\t\t\tgenerateSegment( ( closed === false ) ? tubularSegments : 0 );\n\n\t\t\t// uvs are generated in a separate function.\n\t\t\t// this makes it easy compute correct values for closed geometries\n\n\t\t\tgenerateUVs();\n\n\t\t\t// finally create faces\n\n\t\t\tgenerateIndices();\n\n\t\t}\n\n\t\tfunction generateSegment( i ) {\n\n\t\t\t// we use getPointAt to sample evenly distributed points from the given path\n\n\t\t\tP = path.getPointAt( i / tubularSegments, P );\n\n\t\t\t// retrieve corresponding normal and binormal\n\n\t\t\tconst N = frames.normals[ i ];\n\t\t\tconst B = frames.binormals[ i ];\n\n\t\t\t// generate normals and vertices for the current segment\n\n\t\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\t\tconst v = j / radialSegments * Math.PI * 2;\n\n\t\t\t\tconst sin = Math.sin( v );\n\t\t\t\tconst cos = - Math.cos( v );\n\n\t\t\t\t// normal\n\n\t\t\t\tnormal.x = ( cos * N.x + sin * B.x );\n\t\t\t\tnormal.y = ( cos * N.y + sin * B.y );\n\t\t\t\tnormal.z = ( cos * N.z + sin * B.z );\n\t\t\t\tnormal.normalize();\n\n\t\t\t\tnormals.push( normal.x, normal.y, normal.z );\n\n\t\t\t\t// vertex\n\n\t\t\t\tvertex.x = P.x + radius * normal.x;\n\t\t\t\tvertex.y = P.y + radius * normal.y;\n\t\t\t\tvertex.z = P.z + radius * normal.z;\n\n\t\t\t\tvertices.push( vertex.x, vertex.y, vertex.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateIndices() {\n\n\t\t\tfor ( let j = 1; j <= tubularSegments; j ++ ) {\n\n\t\t\t\tfor ( let i = 1; i <= radialSegments; i ++ ) {\n\n\t\t\t\t\tconst a = ( radialSegments + 1 ) * ( j - 1 ) + ( i - 1 );\n\t\t\t\t\tconst b = ( radialSegments + 1 ) * j + ( i - 1 );\n\t\t\t\t\tconst c = ( radialSegments + 1 ) * j + i;\n\t\t\t\t\tconst d = ( radialSegments + 1 ) * ( j - 1 ) + i;\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction generateUVs() {\n\n\t\t\tfor ( let i = 0; i <= tubularSegments; i ++ ) {\n\n\t\t\t\tfor ( let j = 0; j <= radialSegments; j ++ ) {\n\n\t\t\t\t\tuv.x = i / tubularSegments;\n\t\t\t\t\tuv.y = j / radialSegments;\n\n\t\t\t\t\tuvs.push( uv.x, uv.y );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.path = this.parameters.path.toJSON();\n\n\t\treturn data;\n\n\t}\n\n\tstatic fromJSON( data ) {\n\n\t\t// This only works for built-in curves (e.g. CatmullRomCurve3).\n\t\t// User defined curves or instances of CurvePath will not be deserialized.\n\t\treturn new TubeGeometry(\n\t\t\tnew Curves[ data.path.type ]().fromJSON( data.path ),\n\t\t\tdata.tubularSegments,\n\t\t\tdata.radius,\n\t\t\tdata.radialSegments,\n\t\t\tdata.closed\n\t\t);\n\n\t}\n\n}\n\nclass WireframeGeometry extends BufferGeometry {\n\n\tconstructor( geometry = null ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'WireframeGeometry';\n\n\t\tthis.parameters = {\n\t\t\tgeometry: geometry\n\t\t};\n\n\t\tif ( geometry !== null ) {\n\n\t\t\t// buffer\n\n\t\t\tconst vertices = [];\n\t\t\tconst edges = new Set();\n\n\t\t\t// helper variables\n\n\t\t\tconst start = new Vector3();\n\t\t\tconst end = new Vector3();\n\n\t\t\tif ( geometry.index !== null ) {\n\n\t\t\t\t// indexed BufferGeometry\n\n\t\t\t\tconst position = geometry.attributes.position;\n\t\t\t\tconst indices = geometry.index;\n\t\t\t\tlet groups = geometry.groups;\n\n\t\t\t\tif ( groups.length === 0 ) {\n\n\t\t\t\t\tgroups = [ { start: 0, count: indices.count, materialIndex: 0 } ];\n\n\t\t\t\t}\n\n\t\t\t\t// create a data structure that contains all edges without duplicates\n\n\t\t\t\tfor ( let o = 0, ol = groups.length; o < ol; ++ o ) {\n\n\t\t\t\t\tconst group = groups[ o ];\n\n\t\t\t\t\tconst groupStart = group.start;\n\t\t\t\t\tconst groupCount = group.count;\n\n\t\t\t\t\tfor ( let i = groupStart, l = ( groupStart + groupCount ); i < l; i += 3 ) {\n\n\t\t\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t\t\tconst index1 = indices.getX( i + j );\n\t\t\t\t\t\t\tconst index2 = indices.getX( i + ( j + 1 ) % 3 );\n\n\t\t\t\t\t\t\tstart.fromBufferAttribute( position, index1 );\n\t\t\t\t\t\t\tend.fromBufferAttribute( position, index2 );\n\n\t\t\t\t\t\t\tif ( isUniqueEdge( start, end, edges ) === true ) {\n\n\t\t\t\t\t\t\t\tvertices.push( start.x, start.y, start.z );\n\t\t\t\t\t\t\t\tvertices.push( end.x, end.y, end.z );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed BufferGeometry\n\n\t\t\t\tconst position = geometry.attributes.position;\n\n\t\t\t\tfor ( let i = 0, l = ( position.count / 3 ); i < l; i ++ ) {\n\n\t\t\t\t\tfor ( let j = 0; j < 3; j ++ ) {\n\n\t\t\t\t\t\t// three edges per triangle, an edge is represented as (index1, index2)\n\t\t\t\t\t\t// e.g. the first triangle has the following edges: (0,1),(1,2),(2,0)\n\n\t\t\t\t\t\tconst index1 = 3 * i + j;\n\t\t\t\t\t\tconst index2 = 3 * i + ( ( j + 1 ) % 3 );\n\n\t\t\t\t\t\tstart.fromBufferAttribute( position, index1 );\n\t\t\t\t\t\tend.fromBufferAttribute( position, index2 );\n\n\t\t\t\t\t\tif ( isUniqueEdge( start, end, edges ) === true ) {\n\n\t\t\t\t\t\t\tvertices.push( start.x, start.y, start.z );\n\t\t\t\t\t\t\tvertices.push( end.x, end.y, end.z );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// build geometry\n\n\t\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.parameters = Object.assign( {}, source.parameters );\n\n\t\treturn this;\n\n\t}\n\n}\n\nfunction isUniqueEdge( start, end, edges ) {\n\n\tconst hash1 = `${start.x},${start.y},${start.z}-${end.x},${end.y},${end.z}`;\n\tconst hash2 = `${end.x},${end.y},${end.z}-${start.x},${start.y},${start.z}`; // coincident edge\n\n\tif ( edges.has( hash1 ) === true || edges.has( hash2 ) === true ) {\n\n\t\treturn false;\n\n\t} else {\n\n\t\tedges.add( hash1 );\n\t\tedges.add( hash2 );\n\t\treturn true;\n\n\t}\n\n}\n\nvar Geometries = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tBoxGeometry: BoxGeometry,\n\tCapsuleGeometry: CapsuleGeometry,\n\tCircleGeometry: CircleGeometry,\n\tConeGeometry: ConeGeometry,\n\tCylinderGeometry: CylinderGeometry,\n\tDodecahedronGeometry: DodecahedronGeometry,\n\tEdgesGeometry: EdgesGeometry,\n\tExtrudeGeometry: ExtrudeGeometry,\n\tIcosahedronGeometry: IcosahedronGeometry,\n\tLatheGeometry: LatheGeometry,\n\tOctahedronGeometry: OctahedronGeometry,\n\tPlaneGeometry: PlaneGeometry,\n\tPolyhedronGeometry: PolyhedronGeometry,\n\tRingGeometry: RingGeometry,\n\tShapeGeometry: ShapeGeometry,\n\tSphereGeometry: SphereGeometry,\n\tTetrahedronGeometry: TetrahedronGeometry,\n\tTorusGeometry: TorusGeometry,\n\tTorusKnotGeometry: TorusKnotGeometry,\n\tTubeGeometry: TubeGeometry,\n\tWireframeGeometry: WireframeGeometry\n});\n\nclass ShadowMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isShadowMaterial = true;\n\n\t\tthis.type = 'ShadowMaterial';\n\n\t\tthis.color = new Color( 0x000000 );\n\t\tthis.transparent = true;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass RawShaderMaterial extends ShaderMaterial {\n\n\tconstructor( parameters ) {\n\n\t\tsuper( parameters );\n\n\t\tthis.isRawShaderMaterial = true;\n\n\t\tthis.type = 'RawShaderMaterial';\n\n\t}\n\n}\n\nclass MeshStandardMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshStandardMaterial = true;\n\n\t\tthis.defines = { 'STANDARD': '' };\n\n\t\tthis.type = 'MeshStandardMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\t\tthis.roughness = 1.0;\n\t\tthis.metalness = 0.0;\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.roughnessMap = null;\n\n\t\tthis.metalnessMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.envMapIntensity = 1.0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = { 'STANDARD': '' };\n\n\t\tthis.color.copy( source.color );\n\t\tthis.roughness = source.roughness;\n\t\tthis.metalness = source.metalness;\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.roughnessMap = source.roughnessMap;\n\n\t\tthis.metalnessMap = source.metalnessMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.envMapIntensity = source.envMapIntensity;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshPhysicalMaterial extends MeshStandardMaterial {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshPhysicalMaterial = true;\n\n\t\tthis.defines = {\n\n\t\t\t'STANDARD': '',\n\t\t\t'PHYSICAL': ''\n\n\t\t};\n\n\t\tthis.type = 'MeshPhysicalMaterial';\n\n\t\tthis.anisotropyRotation = 0;\n\t\tthis.anisotropyMap = null;\n\n\t\tthis.clearcoatMap = null;\n\t\tthis.clearcoatRoughness = 0.0;\n\t\tthis.clearcoatRoughnessMap = null;\n\t\tthis.clearcoatNormalScale = new Vector2( 1, 1 );\n\t\tthis.clearcoatNormalMap = null;\n\n\t\tthis.ior = 1.5;\n\n\t\tObject.defineProperty( this, 'reflectivity', {\n\t\t\tget: function () {\n\n\t\t\t\treturn ( clamp( 2.5 * ( this.ior - 1 ) / ( this.ior + 1 ), 0, 1 ) );\n\n\t\t\t},\n\t\t\tset: function ( reflectivity ) {\n\n\t\t\t\tthis.ior = ( 1 + 0.4 * reflectivity ) / ( 1 - 0.4 * reflectivity );\n\n\t\t\t}\n\t\t} );\n\n\t\tthis.iridescenceMap = null;\n\t\tthis.iridescenceIOR = 1.3;\n\t\tthis.iridescenceThicknessRange = [ 100, 400 ];\n\t\tthis.iridescenceThicknessMap = null;\n\n\t\tthis.sheenColor = new Color( 0x000000 );\n\t\tthis.sheenColorMap = null;\n\t\tthis.sheenRoughness = 1.0;\n\t\tthis.sheenRoughnessMap = null;\n\n\t\tthis.transmissionMap = null;\n\n\t\tthis.thickness = 0;\n\t\tthis.thicknessMap = null;\n\t\tthis.attenuationDistance = Infinity;\n\t\tthis.attenuationColor = new Color( 1, 1, 1 );\n\n\t\tthis.specularIntensity = 1.0;\n\t\tthis.specularIntensityMap = null;\n\t\tthis.specularColor = new Color( 1, 1, 1 );\n\t\tthis.specularColorMap = null;\n\n\t\tthis._anisotropy = 0;\n\t\tthis._clearcoat = 0;\n\t\tthis._dispersion = 0;\n\t\tthis._iridescence = 0;\n\t\tthis._sheen = 0.0;\n\t\tthis._transmission = 0;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tget anisotropy() {\n\n\t\treturn this._anisotropy;\n\n\t}\n\n\tset anisotropy( value ) {\n\n\t\tif ( this._anisotropy > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._anisotropy = value;\n\n\t}\n\n\tget clearcoat() {\n\n\t\treturn this._clearcoat;\n\n\t}\n\n\tset clearcoat( value ) {\n\n\t\tif ( this._clearcoat > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._clearcoat = value;\n\n\t}\n\n\tget iridescence() {\n\n\t\treturn this._iridescence;\n\n\t}\n\n\tset iridescence( value ) {\n\n\t\tif ( this._iridescence > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._iridescence = value;\n\n\t}\n\n\tget dispersion() {\n\n\t\treturn this._dispersion;\n\n\t}\n\n\tset dispersion( value ) {\n\n\t\tif ( this._dispersion > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._dispersion = value;\n\n\t}\n\n\tget sheen() {\n\n\t\treturn this._sheen;\n\n\t}\n\n\tset sheen( value ) {\n\n\t\tif ( this._sheen > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._sheen = value;\n\n\t}\n\n\tget transmission() {\n\n\t\treturn this._transmission;\n\n\t}\n\n\tset transmission( value ) {\n\n\t\tif ( this._transmission > 0 !== value > 0 ) {\n\n\t\t\tthis.version ++;\n\n\t\t}\n\n\t\tthis._transmission = value;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = {\n\n\t\t\t'STANDARD': '',\n\t\t\t'PHYSICAL': ''\n\n\t\t};\n\n\t\tthis.anisotropy = source.anisotropy;\n\t\tthis.anisotropyRotation = source.anisotropyRotation;\n\t\tthis.anisotropyMap = source.anisotropyMap;\n\n\t\tthis.clearcoat = source.clearcoat;\n\t\tthis.clearcoatMap = source.clearcoatMap;\n\t\tthis.clearcoatRoughness = source.clearcoatRoughness;\n\t\tthis.clearcoatRoughnessMap = source.clearcoatRoughnessMap;\n\t\tthis.clearcoatNormalMap = source.clearcoatNormalMap;\n\t\tthis.clearcoatNormalScale.copy( source.clearcoatNormalScale );\n\n\t\tthis.dispersion = source.dispersion;\n\t\tthis.ior = source.ior;\n\n\t\tthis.iridescence = source.iridescence;\n\t\tthis.iridescenceMap = source.iridescenceMap;\n\t\tthis.iridescenceIOR = source.iridescenceIOR;\n\t\tthis.iridescenceThicknessRange = [ ...source.iridescenceThicknessRange ];\n\t\tthis.iridescenceThicknessMap = source.iridescenceThicknessMap;\n\n\t\tthis.sheen = source.sheen;\n\t\tthis.sheenColor.copy( source.sheenColor );\n\t\tthis.sheenColorMap = source.sheenColorMap;\n\t\tthis.sheenRoughness = source.sheenRoughness;\n\t\tthis.sheenRoughnessMap = source.sheenRoughnessMap;\n\n\t\tthis.transmission = source.transmission;\n\t\tthis.transmissionMap = source.transmissionMap;\n\n\t\tthis.thickness = source.thickness;\n\t\tthis.thicknessMap = source.thicknessMap;\n\t\tthis.attenuationDistance = source.attenuationDistance;\n\t\tthis.attenuationColor.copy( source.attenuationColor );\n\n\t\tthis.specularIntensity = source.specularIntensity;\n\t\tthis.specularIntensityMap = source.specularIntensityMap;\n\t\tthis.specularColor.copy( source.specularColor );\n\t\tthis.specularColorMap = source.specularColorMap;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshPhongMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshPhongMaterial = true;\n\n\t\tthis.type = 'MeshPhongMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\t\tthis.specular = new Color( 0x111111 );\n\t\tthis.shininess = 30;\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\t\tthis.specular.copy( source.specular );\n\t\tthis.shininess = source.shininess;\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshToonMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshToonMaterial = true;\n\n\t\tthis.defines = { 'TOON': '' };\n\n\t\tthis.type = 'MeshToonMaterial';\n\n\t\tthis.color = new Color( 0xffffff );\n\n\t\tthis.map = null;\n\t\tthis.gradientMap = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\t\tthis.gradientMap = source.gradientMap;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshNormalMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshNormalMaterial = true;\n\n\t\tthis.type = 'MeshNormalMaterial';\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\n\t\tthis.flatShading = false;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshLambertMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshLambertMaterial = true;\n\n\t\tthis.type = 'MeshLambertMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\tthis.map = null;\n\n\t\tthis.lightMap = null;\n\t\tthis.lightMapIntensity = 1.0;\n\n\t\tthis.aoMap = null;\n\t\tthis.aoMapIntensity = 1.0;\n\n\t\tthis.emissive = new Color( 0x000000 );\n\t\tthis.emissiveIntensity = 1.0;\n\t\tthis.emissiveMap = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.specularMap = null;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.envMap = null;\n\t\tthis.envMapRotation = new Euler();\n\t\tthis.combine = MultiplyOperation;\n\t\tthis.reflectivity = 1;\n\t\tthis.refractionRatio = 0.98;\n\n\t\tthis.wireframe = false;\n\t\tthis.wireframeLinewidth = 1;\n\t\tthis.wireframeLinecap = 'round';\n\t\tthis.wireframeLinejoin = 'round';\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.map = source.map;\n\n\t\tthis.lightMap = source.lightMap;\n\t\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\t\tthis.aoMap = source.aoMap;\n\t\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\t\tthis.emissive.copy( source.emissive );\n\t\tthis.emissiveMap = source.emissiveMap;\n\t\tthis.emissiveIntensity = source.emissiveIntensity;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.specularMap = source.specularMap;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.envMap = source.envMap;\n\t\tthis.envMapRotation.copy( source.envMapRotation );\n\t\tthis.combine = source.combine;\n\t\tthis.reflectivity = source.reflectivity;\n\t\tthis.refractionRatio = source.refractionRatio;\n\n\t\tthis.wireframe = source.wireframe;\n\t\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\t\tthis.wireframeLinecap = source.wireframeLinecap;\n\t\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass MeshMatcapMaterial extends Material {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isMeshMatcapMaterial = true;\n\n\t\tthis.defines = { 'MATCAP': '' };\n\n\t\tthis.type = 'MeshMatcapMaterial';\n\n\t\tthis.color = new Color( 0xffffff ); // diffuse\n\n\t\tthis.matcap = null;\n\n\t\tthis.map = null;\n\n\t\tthis.bumpMap = null;\n\t\tthis.bumpScale = 1;\n\n\t\tthis.normalMap = null;\n\t\tthis.normalMapType = TangentSpaceNormalMap;\n\t\tthis.normalScale = new Vector2( 1, 1 );\n\n\t\tthis.displacementMap = null;\n\t\tthis.displacementScale = 1;\n\t\tthis.displacementBias = 0;\n\n\t\tthis.alphaMap = null;\n\n\t\tthis.flatShading = false;\n\n\t\tthis.fog = true;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.defines = { 'MATCAP': '' };\n\n\t\tthis.color.copy( source.color );\n\n\t\tthis.matcap = source.matcap;\n\n\t\tthis.map = source.map;\n\n\t\tthis.bumpMap = source.bumpMap;\n\t\tthis.bumpScale = source.bumpScale;\n\n\t\tthis.normalMap = source.normalMap;\n\t\tthis.normalMapType = source.normalMapType;\n\t\tthis.normalScale.copy( source.normalScale );\n\n\t\tthis.displacementMap = source.displacementMap;\n\t\tthis.displacementScale = source.displacementScale;\n\t\tthis.displacementBias = source.displacementBias;\n\n\t\tthis.alphaMap = source.alphaMap;\n\n\t\tthis.flatShading = source.flatShading;\n\n\t\tthis.fog = source.fog;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass LineDashedMaterial extends LineBasicMaterial {\n\n\tconstructor( parameters ) {\n\n\t\tsuper();\n\n\t\tthis.isLineDashedMaterial = true;\n\n\t\tthis.type = 'LineDashedMaterial';\n\n\t\tthis.scale = 1;\n\t\tthis.dashSize = 3;\n\t\tthis.gapSize = 1;\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.scale = source.scale;\n\t\tthis.dashSize = source.dashSize;\n\t\tthis.gapSize = source.gapSize;\n\n\t\treturn this;\n\n\t}\n\n}\n\n// converts an array to a specific type\nfunction convertArray( array, type, forceClone ) {\n\n\tif ( ! array || // let 'undefined' and 'null' pass\n\t\t! forceClone && array.constructor === type ) return array;\n\n\tif ( typeof type.BYTES_PER_ELEMENT === 'number' ) {\n\n\t\treturn new type( array ); // create typed array\n\n\t}\n\n\treturn Array.prototype.slice.call( array ); // create Array\n\n}\n\nfunction isTypedArray( object ) {\n\n\treturn ArrayBuffer.isView( object ) &&\n\t\t! ( object instanceof DataView );\n\n}\n\n// returns an array by which times and values can be sorted\nfunction getKeyframeOrder( times ) {\n\n\tfunction compareTime( i, j ) {\n\n\t\treturn times[ i ] - times[ j ];\n\n\t}\n\n\tconst n = times.length;\n\tconst result = new Array( n );\n\tfor ( let i = 0; i !== n; ++ i ) result[ i ] = i;\n\n\tresult.sort( compareTime );\n\n\treturn result;\n\n}\n\n// uses the array previously returned by 'getKeyframeOrder' to sort data\nfunction sortedArray( values, stride, order ) {\n\n\tconst nValues = values.length;\n\tconst result = new values.constructor( nValues );\n\n\tfor ( let i = 0, dstOffset = 0; dstOffset !== nValues; ++ i ) {\n\n\t\tconst srcOffset = order[ i ] * stride;\n\n\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\tresult[ dstOffset ++ ] = values[ srcOffset + j ];\n\n\t\t}\n\n\t}\n\n\treturn result;\n\n}\n\n// function for parsing AOS keyframe formats\nfunction flattenJSON( jsonKeys, times, values, valuePropertyName ) {\n\n\tlet i = 1, key = jsonKeys[ 0 ];\n\n\twhile ( key !== undefined && key[ valuePropertyName ] === undefined ) {\n\n\t\tkey = jsonKeys[ i ++ ];\n\n\t}\n\n\tif ( key === undefined ) return; // no data\n\n\tlet value = key[ valuePropertyName ];\n\tif ( value === undefined ) return; // no data\n\n\tif ( Array.isArray( value ) ) {\n\n\t\tdo {\n\n\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\tif ( value !== undefined ) {\n\n\t\t\t\ttimes.push( key.time );\n\t\t\t\tvalues.push.apply( values, value ); // push all elements\n\n\t\t\t}\n\n\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t} while ( key !== undefined );\n\n\t} else if ( value.toArray !== undefined ) {\n\n\t\t// ...assume THREE.Math-ish\n\n\t\tdo {\n\n\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\tif ( value !== undefined ) {\n\n\t\t\t\ttimes.push( key.time );\n\t\t\t\tvalue.toArray( values, values.length );\n\n\t\t\t}\n\n\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t} while ( key !== undefined );\n\n\t} else {\n\n\t\t// otherwise push as-is\n\n\t\tdo {\n\n\t\t\tvalue = key[ valuePropertyName ];\n\n\t\t\tif ( value !== undefined ) {\n\n\t\t\t\ttimes.push( key.time );\n\t\t\t\tvalues.push( value );\n\n\t\t\t}\n\n\t\t\tkey = jsonKeys[ i ++ ];\n\n\t\t} while ( key !== undefined );\n\n\t}\n\n}\n\nfunction subclip( sourceClip, name, startFrame, endFrame, fps = 30 ) {\n\n\tconst clip = sourceClip.clone();\n\n\tclip.name = name;\n\n\tconst tracks = [];\n\n\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\tconst track = clip.tracks[ i ];\n\t\tconst valueSize = track.getValueSize();\n\n\t\tconst times = [];\n\t\tconst values = [];\n\n\t\tfor ( let j = 0; j < track.times.length; ++ j ) {\n\n\t\t\tconst frame = track.times[ j ] * fps;\n\n\t\t\tif ( frame < startFrame || frame >= endFrame ) continue;\n\n\t\t\ttimes.push( track.times[ j ] );\n\n\t\t\tfor ( let k = 0; k < valueSize; ++ k ) {\n\n\t\t\t\tvalues.push( track.values[ j * valueSize + k ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( times.length === 0 ) continue;\n\n\t\ttrack.times = convertArray( times, track.times.constructor );\n\t\ttrack.values = convertArray( values, track.values.constructor );\n\n\t\ttracks.push( track );\n\n\t}\n\n\tclip.tracks = tracks;\n\n\t// find minimum .times value across all tracks in the trimmed clip\n\n\tlet minStartTime = Infinity;\n\n\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\tif ( minStartTime > clip.tracks[ i ].times[ 0 ] ) {\n\n\t\t\tminStartTime = clip.tracks[ i ].times[ 0 ];\n\n\t\t}\n\n\t}\n\n\t// shift all tracks such that clip begins at t=0\n\n\tfor ( let i = 0; i < clip.tracks.length; ++ i ) {\n\n\t\tclip.tracks[ i ].shift( - 1 * minStartTime );\n\n\t}\n\n\tclip.resetDuration();\n\n\treturn clip;\n\n}\n\nfunction makeClipAdditive( targetClip, referenceFrame = 0, referenceClip = targetClip, fps = 30 ) {\n\n\tif ( fps <= 0 ) fps = 30;\n\n\tconst numTracks = referenceClip.tracks.length;\n\tconst referenceTime = referenceFrame / fps;\n\n\t// Make each track's values relative to the values at the reference frame\n\tfor ( let i = 0; i < numTracks; ++ i ) {\n\n\t\tconst referenceTrack = referenceClip.tracks[ i ];\n\t\tconst referenceTrackType = referenceTrack.ValueTypeName;\n\n\t\t// Skip this track if it's non-numeric\n\t\tif ( referenceTrackType === 'bool' || referenceTrackType === 'string' ) continue;\n\n\t\t// Find the track in the target clip whose name and type matches the reference track\n\t\tconst targetTrack = targetClip.tracks.find( function ( track ) {\n\n\t\t\treturn track.name === referenceTrack.name\n\t\t\t\t&& track.ValueTypeName === referenceTrackType;\n\n\t\t} );\n\n\t\tif ( targetTrack === undefined ) continue;\n\n\t\tlet referenceOffset = 0;\n\t\tconst referenceValueSize = referenceTrack.getValueSize();\n\n\t\tif ( referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {\n\n\t\t\treferenceOffset = referenceValueSize / 3;\n\n\t\t}\n\n\t\tlet targetOffset = 0;\n\t\tconst targetValueSize = targetTrack.getValueSize();\n\n\t\tif ( targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {\n\n\t\t\ttargetOffset = targetValueSize / 3;\n\n\t\t}\n\n\t\tconst lastIndex = referenceTrack.times.length - 1;\n\t\tlet referenceValue;\n\n\t\t// Find the value to subtract out of the track\n\t\tif ( referenceTime <= referenceTrack.times[ 0 ] ) {\n\n\t\t\t// Reference frame is earlier than the first keyframe, so just use the first keyframe\n\t\t\tconst startIndex = referenceOffset;\n\t\t\tconst endIndex = referenceValueSize - referenceOffset;\n\t\t\treferenceValue = referenceTrack.values.slice( startIndex, endIndex );\n\n\t\t} else if ( referenceTime >= referenceTrack.times[ lastIndex ] ) {\n\n\t\t\t// Reference frame is after the last keyframe, so just use the last keyframe\n\t\t\tconst startIndex = lastIndex * referenceValueSize + referenceOffset;\n\t\t\tconst endIndex = startIndex + referenceValueSize - referenceOffset;\n\t\t\treferenceValue = referenceTrack.values.slice( startIndex, endIndex );\n\n\t\t} else {\n\n\t\t\t// Interpolate to the reference value\n\t\t\tconst interpolant = referenceTrack.createInterpolant();\n\t\t\tconst startIndex = referenceOffset;\n\t\t\tconst endIndex = referenceValueSize - referenceOffset;\n\t\t\tinterpolant.evaluate( referenceTime );\n\t\t\treferenceValue = interpolant.resultBuffer.slice( startIndex, endIndex );\n\n\t\t}\n\n\t\t// Conjugate the quaternion\n\t\tif ( referenceTrackType === 'quaternion' ) {\n\n\t\t\tconst referenceQuat = new Quaternion().fromArray( referenceValue ).normalize().conjugate();\n\t\t\treferenceQuat.toArray( referenceValue );\n\n\t\t}\n\n\t\t// Subtract the reference value from all of the track values\n\n\t\tconst numTimes = targetTrack.times.length;\n\t\tfor ( let j = 0; j < numTimes; ++ j ) {\n\n\t\t\tconst valueStart = j * targetValueSize + targetOffset;\n\n\t\t\tif ( referenceTrackType === 'quaternion' ) {\n\n\t\t\t\t// Multiply the conjugate for quaternion track types\n\t\t\t\tQuaternion.multiplyQuaternionsFlat(\n\t\t\t\t\ttargetTrack.values,\n\t\t\t\t\tvalueStart,\n\t\t\t\t\treferenceValue,\n\t\t\t\t\t0,\n\t\t\t\t\ttargetTrack.values,\n\t\t\t\t\tvalueStart\n\t\t\t\t);\n\n\t\t\t} else {\n\n\t\t\t\tconst valueEnd = targetValueSize - targetOffset * 2;\n\n\t\t\t\t// Subtract each value for all other numeric track types\n\t\t\t\tfor ( let k = 0; k < valueEnd; ++ k ) {\n\n\t\t\t\t\ttargetTrack.values[ valueStart + k ] -= referenceValue[ k ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\ttargetClip.blendMode = AdditiveAnimationBlendMode;\n\n\treturn targetClip;\n\n}\n\nconst AnimationUtils = {\n\tconvertArray: convertArray,\n\tisTypedArray: isTypedArray,\n\tgetKeyframeOrder: getKeyframeOrder,\n\tsortedArray: sortedArray,\n\tflattenJSON: flattenJSON,\n\tsubclip: subclip,\n\tmakeClipAdditive: makeClipAdditive\n};\n\n/**\n * Abstract base class of interpolants over parametric samples.\n *\n * The parameter domain is one dimensional, typically the time or a path\n * along a curve defined by the data.\n *\n * The sample values can have any dimensionality and derived classes may\n * apply special interpretations to the data.\n *\n * This class provides the interval seek in a Template Method, deferring\n * the actual interpolation to derived classes.\n *\n * Time complexity is O(1) for linear access crossing at most two points\n * and O(log N) for random access, where N is the number of positions.\n *\n * References:\n *\n * \t\thttp://www.oodesign.com/template-method-pattern.html\n *\n */\n\nclass Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tthis.parameterPositions = parameterPositions;\n\t\tthis._cachedIndex = 0;\n\n\t\tthis.resultBuffer = resultBuffer !== undefined ?\n\t\t\tresultBuffer : new sampleValues.constructor( sampleSize );\n\t\tthis.sampleValues = sampleValues;\n\t\tthis.valueSize = sampleSize;\n\n\t\tthis.settings = null;\n\t\tthis.DefaultSettings_ = {};\n\n\t}\n\n\tevaluate( t ) {\n\n\t\tconst pp = this.parameterPositions;\n\t\tlet i1 = this._cachedIndex,\n\t\t\tt1 = pp[ i1 ],\n\t\t\tt0 = pp[ i1 - 1 ];\n\n\t\tvalidate_interval: {\n\n\t\t\tseek: {\n\n\t\t\t\tlet right;\n\n\t\t\t\tlinear_scan: {\n\n\t\t\t\t\t//- See http://jsperf.com/comparison-to-undefined/3\n\t\t\t\t\t//- slower code:\n\t\t\t\t\t//-\n\t\t\t\t\t//- \t\t\t\tif ( t >= t1 || t1 === undefined ) {\n\t\t\t\t\tforward_scan: if ( ! ( t < t1 ) ) {\n\n\t\t\t\t\t\tfor ( let giveUpAt = i1 + 2; ; ) {\n\n\t\t\t\t\t\t\tif ( t1 === undefined ) {\n\n\t\t\t\t\t\t\t\tif ( t < t0 ) break forward_scan;\n\n\t\t\t\t\t\t\t\t// after end\n\n\t\t\t\t\t\t\t\ti1 = pp.length;\n\t\t\t\t\t\t\t\tthis._cachedIndex = i1;\n\t\t\t\t\t\t\t\treturn this.copySampleValue_( i1 - 1 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( i1 === giveUpAt ) break; // this loop\n\n\t\t\t\t\t\t\tt0 = t1;\n\t\t\t\t\t\t\tt1 = pp[ ++ i1 ];\n\n\t\t\t\t\t\t\tif ( t < t1 ) {\n\n\t\t\t\t\t\t\t\t// we have arrived at the sought interval\n\t\t\t\t\t\t\t\tbreak seek;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// prepare binary search on the right side of the index\n\t\t\t\t\t\tright = pp.length;\n\t\t\t\t\t\tbreak linear_scan;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t//- slower code:\n\t\t\t\t\t//-\t\t\t\t\tif ( t < t0 || t0 === undefined ) {\n\t\t\t\t\tif ( ! ( t >= t0 ) ) {\n\n\t\t\t\t\t\t// looping?\n\n\t\t\t\t\t\tconst t1global = pp[ 1 ];\n\n\t\t\t\t\t\tif ( t < t1global ) {\n\n\t\t\t\t\t\t\ti1 = 2; // + 1, using the scan for the details\n\t\t\t\t\t\t\tt0 = t1global;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// linear reverse scan\n\n\t\t\t\t\t\tfor ( let giveUpAt = i1 - 2; ; ) {\n\n\t\t\t\t\t\t\tif ( t0 === undefined ) {\n\n\t\t\t\t\t\t\t\t// before start\n\n\t\t\t\t\t\t\t\tthis._cachedIndex = 0;\n\t\t\t\t\t\t\t\treturn this.copySampleValue_( 0 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( i1 === giveUpAt ) break; // this loop\n\n\t\t\t\t\t\t\tt1 = t0;\n\t\t\t\t\t\t\tt0 = pp[ -- i1 - 1 ];\n\n\t\t\t\t\t\t\tif ( t >= t0 ) {\n\n\t\t\t\t\t\t\t\t// we have arrived at the sought interval\n\t\t\t\t\t\t\t\tbreak seek;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// prepare binary search on the left side of the index\n\t\t\t\t\t\tright = i1;\n\t\t\t\t\t\ti1 = 0;\n\t\t\t\t\t\tbreak linear_scan;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// the interval is valid\n\n\t\t\t\t\tbreak validate_interval;\n\n\t\t\t\t} // linear scan\n\n\t\t\t\t// binary search\n\n\t\t\t\twhile ( i1 < right ) {\n\n\t\t\t\t\tconst mid = ( i1 + right ) >>> 1;\n\n\t\t\t\t\tif ( t < pp[ mid ] ) {\n\n\t\t\t\t\t\tright = mid;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ti1 = mid + 1;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tt1 = pp[ i1 ];\n\t\t\t\tt0 = pp[ i1 - 1 ];\n\n\t\t\t\t// check boundary cases, again\n\n\t\t\t\tif ( t0 === undefined ) {\n\n\t\t\t\t\tthis._cachedIndex = 0;\n\t\t\t\t\treturn this.copySampleValue_( 0 );\n\n\t\t\t\t}\n\n\t\t\t\tif ( t1 === undefined ) {\n\n\t\t\t\t\ti1 = pp.length;\n\t\t\t\t\tthis._cachedIndex = i1;\n\t\t\t\t\treturn this.copySampleValue_( i1 - 1 );\n\n\t\t\t\t}\n\n\t\t\t} // seek\n\n\t\t\tthis._cachedIndex = i1;\n\n\t\t\tthis.intervalChanged_( i1, t0, t1 );\n\n\t\t} // validate_interval\n\n\t\treturn this.interpolate_( i1, t0, t, t1 );\n\n\t}\n\n\tgetSettings_() {\n\n\t\treturn this.settings || this.DefaultSettings_;\n\n\t}\n\n\tcopySampleValue_( index ) {\n\n\t\t// copies a sample value to the result buffer\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = index * stride;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] = values[ offset + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n\t// Template methods for derived classes:\n\n\tinterpolate_( /* i1, t0, t, t1 */ ) {\n\n\t\tthrow new Error( 'call to abstract method' );\n\t\t// implementations shall return this.resultBuffer\n\n\t}\n\n\tintervalChanged_( /* i1, t0, t1 */ ) {\n\n\t\t// empty\n\n\t}\n\n}\n\n/**\n * Fast and simple cubic spline interpolant.\n *\n * It was derived from a Hermitian construction setting the first derivative\n * at each sample position to the linear slope between neighboring positions\n * over their parameter interval.\n */\n\nclass CubicInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t\tthis._weightPrev = - 0;\n\t\tthis._offsetPrev = - 0;\n\t\tthis._weightNext = - 0;\n\t\tthis._offsetNext = - 0;\n\n\t\tthis.DefaultSettings_ = {\n\n\t\t\tendingStart: ZeroCurvatureEnding,\n\t\t\tendingEnd: ZeroCurvatureEnding\n\n\t\t};\n\n\t}\n\n\tintervalChanged_( i1, t0, t1 ) {\n\n\t\tconst pp = this.parameterPositions;\n\t\tlet iPrev = i1 - 2,\n\t\t\tiNext = i1 + 1,\n\n\t\t\ttPrev = pp[ iPrev ],\n\t\t\ttNext = pp[ iNext ];\n\n\t\tif ( tPrev === undefined ) {\n\n\t\t\tswitch ( this.getSettings_().endingStart ) {\n\n\t\t\t\tcase ZeroSlopeEnding:\n\n\t\t\t\t\t// f'(t0) = 0\n\t\t\t\t\tiPrev = i1;\n\t\t\t\t\ttPrev = 2 * t0 - t1;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase WrapAroundEnding:\n\n\t\t\t\t\t// use the other end of the curve\n\t\t\t\t\tiPrev = pp.length - 2;\n\t\t\t\t\ttPrev = t0 + pp[ iPrev ] - pp[ iPrev + 1 ];\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault: // ZeroCurvatureEnding\n\n\t\t\t\t\t// f''(t0) = 0 a.k.a. Natural Spline\n\t\t\t\t\tiPrev = i1;\n\t\t\t\t\ttPrev = t1;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( tNext === undefined ) {\n\n\t\t\tswitch ( this.getSettings_().endingEnd ) {\n\n\t\t\t\tcase ZeroSlopeEnding:\n\n\t\t\t\t\t// f'(tN) = 0\n\t\t\t\t\tiNext = i1;\n\t\t\t\t\ttNext = 2 * t1 - t0;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase WrapAroundEnding:\n\n\t\t\t\t\t// use the other end of the curve\n\t\t\t\t\tiNext = 1;\n\t\t\t\t\ttNext = t1 + pp[ 1 ] - pp[ 0 ];\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault: // ZeroCurvatureEnding\n\n\t\t\t\t\t// f''(tN) = 0, a.k.a. Natural Spline\n\t\t\t\t\tiNext = i1 - 1;\n\t\t\t\t\ttNext = t0;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst halfDt = ( t1 - t0 ) * 0.5,\n\t\t\tstride = this.valueSize;\n\n\t\tthis._weightPrev = halfDt / ( t0 - tPrev );\n\t\tthis._weightNext = halfDt / ( tNext - t1 );\n\t\tthis._offsetPrev = iPrev * stride;\n\t\tthis._offsetNext = iNext * stride;\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\to1 = i1 * stride,\t\to0 = o1 - stride,\n\t\t\toP = this._offsetPrev, \toN = this._offsetNext,\n\t\t\twP = this._weightPrev,\twN = this._weightNext,\n\n\t\t\tp = ( t - t0 ) / ( t1 - t0 ),\n\t\t\tpp = p * p,\n\t\t\tppp = pp * p;\n\n\t\t// evaluate polynomials\n\n\t\tconst sP = - wP * ppp + 2 * wP * pp - wP * p;\n\t\tconst s0 = ( 1 + wP ) * ppp + ( - 1.5 - 2 * wP ) * pp + ( - 0.5 + wP ) * p + 1;\n\t\tconst s1 = ( - 1 - wN ) * ppp + ( 1.5 + wN ) * pp + 0.5 * p;\n\t\tconst sN = wN * ppp - wN * pp;\n\n\t\t// combine data linearly\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] =\n\t\t\t\t\tsP * values[ oP + i ] +\n\t\t\t\t\ts0 * values[ o0 + i ] +\n\t\t\t\t\ts1 * values[ o1 + i ] +\n\t\t\t\t\tsN * values[ oN + i ];\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\nclass LinearInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\toffset1 = i1 * stride,\n\t\t\toffset0 = offset1 - stride,\n\n\t\t\tweight1 = ( t - t0 ) / ( t1 - t0 ),\n\t\t\tweight0 = 1 - weight1;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tresult[ i ] =\n\t\t\t\t\tvalues[ offset0 + i ] * weight0 +\n\t\t\t\t\tvalues[ offset1 + i ] * weight1;\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\n/**\n *\n * Interpolant that evaluates to the sample value at the position preceding\n * the parameter.\n */\n\nclass DiscreteInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1 /*, t0, t, t1 */ ) {\n\n\t\treturn this.copySampleValue_( i1 - 1 );\n\n\t}\n\n}\n\nclass KeyframeTrack {\n\n\tconstructor( name, times, values, interpolation ) {\n\n\t\tif ( name === undefined ) throw new Error( 'THREE.KeyframeTrack: track name is undefined' );\n\t\tif ( times === undefined || times.length === 0 ) throw new Error( 'THREE.KeyframeTrack: no keyframes in track named ' + name );\n\n\t\tthis.name = name;\n\n\t\tthis.times = convertArray( times, this.TimeBufferType );\n\t\tthis.values = convertArray( values, this.ValueBufferType );\n\n\t\tthis.setInterpolation( interpolation || this.DefaultInterpolation );\n\n\t}\n\n\t// Serialization (in static context, because of constructor invocation\n\t// and automatic invocation of .toJSON):\n\n\tstatic toJSON( track ) {\n\n\t\tconst trackType = track.constructor;\n\n\t\tlet json;\n\n\t\t// derived classes can define a static toJSON method\n\t\tif ( trackType.toJSON !== this.toJSON ) {\n\n\t\t\tjson = trackType.toJSON( track );\n\n\t\t} else {\n\n\t\t\t// by default, we assume the data can be serialized as-is\n\t\t\tjson = {\n\n\t\t\t\t'name': track.name,\n\t\t\t\t'times': convertArray( track.times, Array ),\n\t\t\t\t'values': convertArray( track.values, Array )\n\n\t\t\t};\n\n\t\t\tconst interpolation = track.getInterpolation();\n\n\t\t\tif ( interpolation !== track.DefaultInterpolation ) {\n\n\t\t\t\tjson.interpolation = interpolation;\n\n\t\t\t}\n\n\t\t}\n\n\t\tjson.type = track.ValueTypeName; // mandatory\n\n\t\treturn json;\n\n\t}\n\n\tInterpolantFactoryMethodDiscrete( result ) {\n\n\t\treturn new DiscreteInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new LinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tInterpolantFactoryMethodSmooth( result ) {\n\n\t\treturn new CubicInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n\tsetInterpolation( interpolation ) {\n\n\t\tlet factoryMethod;\n\n\t\tswitch ( interpolation ) {\n\n\t\t\tcase InterpolateDiscrete:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodDiscrete;\n\n\t\t\t\tbreak;\n\n\t\t\tcase InterpolateLinear:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodLinear;\n\n\t\t\t\tbreak;\n\n\t\t\tcase InterpolateSmooth:\n\n\t\t\t\tfactoryMethod = this.InterpolantFactoryMethodSmooth;\n\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tif ( factoryMethod === undefined ) {\n\n\t\t\tconst message = 'unsupported interpolation for ' +\n\t\t\t\tthis.ValueTypeName + ' keyframe track named ' + this.name;\n\n\t\t\tif ( this.createInterpolant === undefined ) {\n\n\t\t\t\t// fall back to default, unless the default itself is messed up\n\t\t\t\tif ( interpolation !== this.DefaultInterpolation ) {\n\n\t\t\t\t\tthis.setInterpolation( this.DefaultInterpolation );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new Error( message ); // fatal, in this case\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconsole.warn( 'THREE.KeyframeTrack:', message );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tthis.createInterpolant = factoryMethod;\n\n\t\treturn this;\n\n\t}\n\n\tgetInterpolation() {\n\n\t\tswitch ( this.createInterpolant ) {\n\n\t\t\tcase this.InterpolantFactoryMethodDiscrete:\n\n\t\t\t\treturn InterpolateDiscrete;\n\n\t\t\tcase this.InterpolantFactoryMethodLinear:\n\n\t\t\t\treturn InterpolateLinear;\n\n\t\t\tcase this.InterpolantFactoryMethodSmooth:\n\n\t\t\t\treturn InterpolateSmooth;\n\n\t\t}\n\n\t}\n\n\tgetValueSize() {\n\n\t\treturn this.values.length / this.times.length;\n\n\t}\n\n\t// move all keyframes either forwards or backwards in time\n\tshift( timeOffset ) {\n\n\t\tif ( timeOffset !== 0.0 ) {\n\n\t\t\tconst times = this.times;\n\n\t\t\tfor ( let i = 0, n = times.length; i !== n; ++ i ) {\n\n\t\t\t\ttimes[ i ] += timeOffset;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// scale all keyframe times by a factor (useful for frame <-> seconds conversions)\n\tscale( timeScale ) {\n\n\t\tif ( timeScale !== 1.0 ) {\n\n\t\t\tconst times = this.times;\n\n\t\t\tfor ( let i = 0, n = times.length; i !== n; ++ i ) {\n\n\t\t\t\ttimes[ i ] *= timeScale;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// removes keyframes before and after animation without changing any values within the range [startTime, endTime].\n\t// IMPORTANT: We do not shift around keys to the start of the track time, because for interpolated keys this will change their values\n\ttrim( startTime, endTime ) {\n\n\t\tconst times = this.times,\n\t\t\tnKeys = times.length;\n\n\t\tlet from = 0,\n\t\t\tto = nKeys - 1;\n\n\t\twhile ( from !== nKeys && times[ from ] < startTime ) {\n\n\t\t\t++ from;\n\n\t\t}\n\n\t\twhile ( to !== - 1 && times[ to ] > endTime ) {\n\n\t\t\t-- to;\n\n\t\t}\n\n\t\t++ to; // inclusive -> exclusive bound\n\n\t\tif ( from !== 0 || to !== nKeys ) {\n\n\t\t\t// empty tracks are forbidden, so keep at least one keyframe\n\t\t\tif ( from >= to ) {\n\n\t\t\t\tto = Math.max( to, 1 );\n\t\t\t\tfrom = to - 1;\n\n\t\t\t}\n\n\t\t\tconst stride = this.getValueSize();\n\t\t\tthis.times = times.slice( from, to );\n\t\t\tthis.values = this.values.slice( from * stride, to * stride );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// ensure we do not get a GarbageInGarbageOut situation, make sure tracks are at least minimally viable\n\tvalidate() {\n\n\t\tlet valid = true;\n\n\t\tconst valueSize = this.getValueSize();\n\t\tif ( valueSize - Math.floor( valueSize ) !== 0 ) {\n\n\t\t\tconsole.error( 'THREE.KeyframeTrack: Invalid value size in track.', this );\n\t\t\tvalid = false;\n\n\t\t}\n\n\t\tconst times = this.times,\n\t\t\tvalues = this.values,\n\n\t\t\tnKeys = times.length;\n\n\t\tif ( nKeys === 0 ) {\n\n\t\t\tconsole.error( 'THREE.KeyframeTrack: Track is empty.', this );\n\t\t\tvalid = false;\n\n\t\t}\n\n\t\tlet prevTime = null;\n\n\t\tfor ( let i = 0; i !== nKeys; i ++ ) {\n\n\t\t\tconst currTime = times[ i ];\n\n\t\t\tif ( typeof currTime === 'number' && isNaN( currTime ) ) {\n\n\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Time is not a valid number.', this, i, currTime );\n\t\t\t\tvalid = false;\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( prevTime !== null && prevTime > currTime ) {\n\n\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Out of order keys.', this, i, currTime, prevTime );\n\t\t\t\tvalid = false;\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tprevTime = currTime;\n\n\t\t}\n\n\t\tif ( values !== undefined ) {\n\n\t\t\tif ( isTypedArray( values ) ) {\n\n\t\t\t\tfor ( let i = 0, n = values.length; i !== n; ++ i ) {\n\n\t\t\t\t\tconst value = values[ i ];\n\n\t\t\t\t\tif ( isNaN( value ) ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.KeyframeTrack: Value is not a valid number.', this, i, value );\n\t\t\t\t\t\tvalid = false;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn valid;\n\n\t}\n\n\t// removes equivalent sequential keys as common in morph target sequences\n\t// (0,0,0,0,1,1,1,0,0,0,0,0,0,0) --> (0,0,1,1,0,0)\n\toptimize() {\n\n\t\t// times or values may be shared with other tracks, so overwriting is unsafe\n\t\tconst times = this.times.slice(),\n\t\t\tvalues = this.values.slice(),\n\t\t\tstride = this.getValueSize(),\n\n\t\t\tsmoothInterpolation = this.getInterpolation() === InterpolateSmooth,\n\n\t\t\tlastIndex = times.length - 1;\n\n\t\tlet writeIndex = 1;\n\n\t\tfor ( let i = 1; i < lastIndex; ++ i ) {\n\n\t\t\tlet keep = false;\n\n\t\t\tconst time = times[ i ];\n\t\t\tconst timeNext = times[ i + 1 ];\n\n\t\t\t// remove adjacent keyframes scheduled at the same time\n\n\t\t\tif ( time !== timeNext && ( i !== 1 || time !== times[ 0 ] ) ) {\n\n\t\t\t\tif ( ! smoothInterpolation ) {\n\n\t\t\t\t\t// remove unnecessary keyframes same as their neighbors\n\n\t\t\t\t\tconst offset = i * stride,\n\t\t\t\t\t\toffsetP = offset - stride,\n\t\t\t\t\t\toffsetN = offset + stride;\n\n\t\t\t\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\t\t\t\tconst value = values[ offset + j ];\n\n\t\t\t\t\t\tif ( value !== values[ offsetP + j ] ||\n\t\t\t\t\t\t\tvalue !== values[ offsetN + j ] ) {\n\n\t\t\t\t\t\t\tkeep = true;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tkeep = true;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// in-place compaction\n\n\t\t\tif ( keep ) {\n\n\t\t\t\tif ( i !== writeIndex ) {\n\n\t\t\t\t\ttimes[ writeIndex ] = times[ i ];\n\n\t\t\t\t\tconst readOffset = i * stride,\n\t\t\t\t\t\twriteOffset = writeIndex * stride;\n\n\t\t\t\t\tfor ( let j = 0; j !== stride; ++ j ) {\n\n\t\t\t\t\t\tvalues[ writeOffset + j ] = values[ readOffset + j ];\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t++ writeIndex;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// flush last keyframe (compaction looks ahead)\n\n\t\tif ( lastIndex > 0 ) {\n\n\t\t\ttimes[ writeIndex ] = times[ lastIndex ];\n\n\t\t\tfor ( let readOffset = lastIndex * stride, writeOffset = writeIndex * stride, j = 0; j !== stride; ++ j ) {\n\n\t\t\t\tvalues[ writeOffset + j ] = values[ readOffset + j ];\n\n\t\t\t}\n\n\t\t\t++ writeIndex;\n\n\t\t}\n\n\t\tif ( writeIndex !== times.length ) {\n\n\t\t\tthis.times = times.slice( 0, writeIndex );\n\t\t\tthis.values = values.slice( 0, writeIndex * stride );\n\n\t\t} else {\n\n\t\t\tthis.times = times;\n\t\t\tthis.values = values;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\tconst times = this.times.slice();\n\t\tconst values = this.values.slice();\n\n\t\tconst TypedKeyframeTrack = this.constructor;\n\t\tconst track = new TypedKeyframeTrack( this.name, times, values );\n\n\t\t// Interpolant argument to constructor is not saved, so copy the factory method directly.\n\t\ttrack.createInterpolant = this.createInterpolant;\n\n\t\treturn track;\n\n\t}\n\n}\n\nKeyframeTrack.prototype.TimeBufferType = Float32Array;\nKeyframeTrack.prototype.ValueBufferType = Float32Array;\nKeyframeTrack.prototype.DefaultInterpolation = InterpolateLinear;\n\n/**\n * A Track of Boolean keyframe values.\n */\nclass BooleanKeyframeTrack extends KeyframeTrack {\n\n\t// No interpolation parameter because only InterpolateDiscrete is valid.\n\tconstructor( name, times, values ) {\n\n\t\tsuper( name, times, values );\n\n\t}\n\n}\n\nBooleanKeyframeTrack.prototype.ValueTypeName = 'bool';\nBooleanKeyframeTrack.prototype.ValueBufferType = Array;\nBooleanKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nBooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track of keyframe values that represent color.\n */\nclass ColorKeyframeTrack extends KeyframeTrack {}\n\nColorKeyframeTrack.prototype.ValueTypeName = 'color';\n\n/**\n * A Track of numeric keyframe values.\n */\nclass NumberKeyframeTrack extends KeyframeTrack {}\n\nNumberKeyframeTrack.prototype.ValueTypeName = 'number';\n\n/**\n * Spherical linear unit quaternion interpolant.\n */\n\nclass QuaternionLinearInterpolant extends Interpolant {\n\n\tconstructor( parameterPositions, sampleValues, sampleSize, resultBuffer ) {\n\n\t\tsuper( parameterPositions, sampleValues, sampleSize, resultBuffer );\n\n\t}\n\n\tinterpolate_( i1, t0, t, t1 ) {\n\n\t\tconst result = this.resultBuffer,\n\t\t\tvalues = this.sampleValues,\n\t\t\tstride = this.valueSize,\n\n\t\t\talpha = ( t - t0 ) / ( t1 - t0 );\n\n\t\tlet offset = i1 * stride;\n\n\t\tfor ( let end = offset + stride; offset !== end; offset += 4 ) {\n\n\t\t\tQuaternion.slerpFlat( result, 0, values, offset - stride, values, offset, alpha );\n\n\t\t}\n\n\t\treturn result;\n\n\t}\n\n}\n\n/**\n * A Track of quaternion keyframe values.\n */\nclass QuaternionKeyframeTrack extends KeyframeTrack {\n\n\tInterpolantFactoryMethodLinear( result ) {\n\n\t\treturn new QuaternionLinearInterpolant( this.times, this.values, this.getValueSize(), result );\n\n\t}\n\n}\n\nQuaternionKeyframeTrack.prototype.ValueTypeName = 'quaternion';\n// ValueBufferType is inherited\n// DefaultInterpolation is inherited;\nQuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track that interpolates Strings\n */\nclass StringKeyframeTrack extends KeyframeTrack {\n\n\t// No interpolation parameter because only InterpolateDiscrete is valid.\n\tconstructor( name, times, values ) {\n\n\t\tsuper( name, times, values );\n\n\t}\n\n}\n\nStringKeyframeTrack.prototype.ValueTypeName = 'string';\nStringKeyframeTrack.prototype.ValueBufferType = Array;\nStringKeyframeTrack.prototype.DefaultInterpolation = InterpolateDiscrete;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodLinear = undefined;\nStringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth = undefined;\n\n/**\n * A Track of vectored keyframe values.\n */\nclass VectorKeyframeTrack extends KeyframeTrack {}\n\nVectorKeyframeTrack.prototype.ValueTypeName = 'vector';\n\nclass AnimationClip {\n\n\tconstructor( name = '', duration = - 1, tracks = [], blendMode = NormalAnimationBlendMode ) {\n\n\t\tthis.name = name;\n\t\tthis.tracks = tracks;\n\t\tthis.duration = duration;\n\t\tthis.blendMode = blendMode;\n\n\t\tthis.uuid = generateUUID();\n\n\t\t// this means it should figure out its duration by scanning the tracks\n\t\tif ( this.duration < 0 ) {\n\n\t\t\tthis.resetDuration();\n\n\t\t}\n\n\t}\n\n\n\tstatic parse( json ) {\n\n\t\tconst tracks = [],\n\t\t\tjsonTracks = json.tracks,\n\t\t\tframeTime = 1.0 / ( json.fps || 1.0 );\n\n\t\tfor ( let i = 0, n = jsonTracks.length; i !== n; ++ i ) {\n\n\t\t\ttracks.push( parseKeyframeTrack( jsonTracks[ i ] ).scale( frameTime ) );\n\n\t\t}\n\n\t\tconst clip = new this( json.name, json.duration, tracks, json.blendMode );\n\t\tclip.uuid = json.uuid;\n\n\t\treturn clip;\n\n\t}\n\n\tstatic toJSON( clip ) {\n\n\t\tconst tracks = [],\n\t\t\tclipTracks = clip.tracks;\n\n\t\tconst json = {\n\n\t\t\t'name': clip.name,\n\t\t\t'duration': clip.duration,\n\t\t\t'tracks': tracks,\n\t\t\t'uuid': clip.uuid,\n\t\t\t'blendMode': clip.blendMode\n\n\t\t};\n\n\t\tfor ( let i = 0, n = clipTracks.length; i !== n; ++ i ) {\n\n\t\t\ttracks.push( KeyframeTrack.toJSON( clipTracks[ i ] ) );\n\n\t\t}\n\n\t\treturn json;\n\n\t}\n\n\tstatic CreateFromMorphTargetSequence( name, morphTargetSequence, fps, noLoop ) {\n\n\t\tconst numMorphTargets = morphTargetSequence.length;\n\t\tconst tracks = [];\n\n\t\tfor ( let i = 0; i < numMorphTargets; i ++ ) {\n\n\t\t\tlet times = [];\n\t\t\tlet values = [];\n\n\t\t\ttimes.push(\n\t\t\t\t( i + numMorphTargets - 1 ) % numMorphTargets,\n\t\t\t\ti,\n\t\t\t\t( i + 1 ) % numMorphTargets );\n\n\t\t\tvalues.push( 0, 1, 0 );\n\n\t\t\tconst order = getKeyframeOrder( times );\n\t\t\ttimes = sortedArray( times, 1, order );\n\t\t\tvalues = sortedArray( values, 1, order );\n\n\t\t\t// if there is a key at the first frame, duplicate it as the\n\t\t\t// last frame as well for perfect loop.\n\t\t\tif ( ! noLoop && times[ 0 ] === 0 ) {\n\n\t\t\t\ttimes.push( numMorphTargets );\n\t\t\t\tvalues.push( values[ 0 ] );\n\n\t\t\t}\n\n\t\t\ttracks.push(\n\t\t\t\tnew NumberKeyframeTrack(\n\t\t\t\t\t'.morphTargetInfluences[' + morphTargetSequence[ i ].name + ']',\n\t\t\t\t\ttimes, values\n\t\t\t\t).scale( 1.0 / fps ) );\n\n\t\t}\n\n\t\treturn new this( name, - 1, tracks );\n\n\t}\n\n\tstatic findByName( objectOrClipArray, name ) {\n\n\t\tlet clipArray = objectOrClipArray;\n\n\t\tif ( ! Array.isArray( objectOrClipArray ) ) {\n\n\t\t\tconst o = objectOrClipArray;\n\t\t\tclipArray = o.geometry && o.geometry.animations || o.animations;\n\n\t\t}\n\n\t\tfor ( let i = 0; i < clipArray.length; i ++ ) {\n\n\t\t\tif ( clipArray[ i ].name === name ) {\n\n\t\t\t\treturn clipArray[ i ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\tstatic CreateClipsFromMorphTargetSequences( morphTargets, fps, noLoop ) {\n\n\t\tconst animationToMorphTargets = {};\n\n\t\t// tested with https://regex101.com/ on trick sequences\n\t\t// such flamingo_flyA_003, flamingo_run1_003, crdeath0059\n\t\tconst pattern = /^([\\w-]*?)([\\d]+)$/;\n\n\t\t// sort morph target names into animation groups based\n\t\t// patterns like Walk_001, Walk_002, Run_001, Run_002\n\t\tfor ( let i = 0, il = morphTargets.length; i < il; i ++ ) {\n\n\t\t\tconst morphTarget = morphTargets[ i ];\n\t\t\tconst parts = morphTarget.name.match( pattern );\n\n\t\t\tif ( parts && parts.length > 1 ) {\n\n\t\t\t\tconst name = parts[ 1 ];\n\n\t\t\t\tlet animationMorphTargets = animationToMorphTargets[ name ];\n\n\t\t\t\tif ( ! animationMorphTargets ) {\n\n\t\t\t\t\tanimationToMorphTargets[ name ] = animationMorphTargets = [];\n\n\t\t\t\t}\n\n\t\t\t\tanimationMorphTargets.push( morphTarget );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst clips = [];\n\n\t\tfor ( const name in animationToMorphTargets ) {\n\n\t\t\tclips.push( this.CreateFromMorphTargetSequence( name, animationToMorphTargets[ name ], fps, noLoop ) );\n\n\t\t}\n\n\t\treturn clips;\n\n\t}\n\n\t// parse the animation.hierarchy format\n\tstatic parseAnimation( animation, bones ) {\n\n\t\tif ( ! animation ) {\n\n\t\t\tconsole.error( 'THREE.AnimationClip: No animation in JSONLoader data.' );\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst addNonemptyTrack = function ( trackType, trackName, animationKeys, propertyName, destTracks ) {\n\n\t\t\t// only return track if there are actually keys.\n\t\t\tif ( animationKeys.length !== 0 ) {\n\n\t\t\t\tconst times = [];\n\t\t\t\tconst values = [];\n\n\t\t\t\tflattenJSON( animationKeys, times, values, propertyName );\n\n\t\t\t\t// empty keys are filtered out, so check again\n\t\t\t\tif ( times.length !== 0 ) {\n\n\t\t\t\t\tdestTracks.push( new trackType( trackName, times, values ) );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tconst tracks = [];\n\n\t\tconst clipName = animation.name || 'default';\n\t\tconst fps = animation.fps || 30;\n\t\tconst blendMode = animation.blendMode;\n\n\t\t// automatic length determination in AnimationClip.\n\t\tlet duration = animation.length || - 1;\n\n\t\tconst hierarchyTracks = animation.hierarchy || [];\n\n\t\tfor ( let h = 0; h < hierarchyTracks.length; h ++ ) {\n\n\t\t\tconst animationKeys = hierarchyTracks[ h ].keys;\n\n\t\t\t// skip empty tracks\n\t\t\tif ( ! animationKeys || animationKeys.length === 0 ) continue;\n\n\t\t\t// process morph targets\n\t\t\tif ( animationKeys[ 0 ].morphTargets ) {\n\n\t\t\t\t// figure out all morph targets used in this track\n\t\t\t\tconst morphTargetNames = {};\n\n\t\t\t\tlet k;\n\n\t\t\t\tfor ( k = 0; k < animationKeys.length; k ++ ) {\n\n\t\t\t\t\tif ( animationKeys[ k ].morphTargets ) {\n\n\t\t\t\t\t\tfor ( let m = 0; m < animationKeys[ k ].morphTargets.length; m ++ ) {\n\n\t\t\t\t\t\t\tmorphTargetNames[ animationKeys[ k ].morphTargets[ m ] ] = - 1;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// create a track for each morph target with all zero\n\t\t\t\t// morphTargetInfluences except for the keys in which\n\t\t\t\t// the morphTarget is named.\n\t\t\t\tfor ( const morphTargetName in morphTargetNames ) {\n\n\t\t\t\t\tconst times = [];\n\t\t\t\t\tconst values = [];\n\n\t\t\t\t\tfor ( let m = 0; m !== animationKeys[ k ].morphTargets.length; ++ m ) {\n\n\t\t\t\t\t\tconst animationKey = animationKeys[ k ];\n\n\t\t\t\t\t\ttimes.push( animationKey.time );\n\t\t\t\t\t\tvalues.push( ( animationKey.morphTarget === morphTargetName ) ? 1 : 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttracks.push( new NumberKeyframeTrack( '.morphTargetInfluence[' + morphTargetName + ']', times, values ) );\n\n\t\t\t\t}\n\n\t\t\t\tduration = morphTargetNames.length * fps;\n\n\t\t\t} else {\n\n\t\t\t\t// ...assume skeletal animation\n\n\t\t\t\tconst boneName = '.bones[' + bones[ h ].name + ']';\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tVectorKeyframeTrack, boneName + '.position',\n\t\t\t\t\tanimationKeys, 'pos', tracks );\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tQuaternionKeyframeTrack, boneName + '.quaternion',\n\t\t\t\t\tanimationKeys, 'rot', tracks );\n\n\t\t\t\taddNonemptyTrack(\n\t\t\t\t\tVectorKeyframeTrack, boneName + '.scale',\n\t\t\t\t\tanimationKeys, 'scl', tracks );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( tracks.length === 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst clip = new this( clipName, duration, tracks, blendMode );\n\n\t\treturn clip;\n\n\t}\n\n\tresetDuration() {\n\n\t\tconst tracks = this.tracks;\n\t\tlet duration = 0;\n\n\t\tfor ( let i = 0, n = tracks.length; i !== n; ++ i ) {\n\n\t\t\tconst track = this.tracks[ i ];\n\n\t\t\tduration = Math.max( duration, track.times[ track.times.length - 1 ] );\n\n\t\t}\n\n\t\tthis.duration = duration;\n\n\t\treturn this;\n\n\t}\n\n\ttrim() {\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tthis.tracks[ i ].trim( 0, this.duration );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tvalidate() {\n\n\t\tlet valid = true;\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tvalid = valid && this.tracks[ i ].validate();\n\n\t\t}\n\n\t\treturn valid;\n\n\t}\n\n\toptimize() {\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\tthis.tracks[ i ].optimize();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\tconst tracks = [];\n\n\t\tfor ( let i = 0; i < this.tracks.length; i ++ ) {\n\n\t\t\ttracks.push( this.tracks[ i ].clone() );\n\n\t\t}\n\n\t\treturn new this.constructor( this.name, this.duration, tracks, this.blendMode );\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.constructor.toJSON( this );\n\n\t}\n\n}\n\nfunction getTrackTypeForValueTypeName( typeName ) {\n\n\tswitch ( typeName.toLowerCase() ) {\n\n\t\tcase 'scalar':\n\t\tcase 'double':\n\t\tcase 'float':\n\t\tcase 'number':\n\t\tcase 'integer':\n\n\t\t\treturn NumberKeyframeTrack;\n\n\t\tcase 'vector':\n\t\tcase 'vector2':\n\t\tcase 'vector3':\n\t\tcase 'vector4':\n\n\t\t\treturn VectorKeyframeTrack;\n\n\t\tcase 'color':\n\n\t\t\treturn ColorKeyframeTrack;\n\n\t\tcase 'quaternion':\n\n\t\t\treturn QuaternionKeyframeTrack;\n\n\t\tcase 'bool':\n\t\tcase 'boolean':\n\n\t\t\treturn BooleanKeyframeTrack;\n\n\t\tcase 'string':\n\n\t\t\treturn StringKeyframeTrack;\n\n\t}\n\n\tthrow new Error( 'THREE.KeyframeTrack: Unsupported typeName: ' + typeName );\n\n}\n\nfunction parseKeyframeTrack( json ) {\n\n\tif ( json.type === undefined ) {\n\n\t\tthrow new Error( 'THREE.KeyframeTrack: track type undefined, can not parse' );\n\n\t}\n\n\tconst trackType = getTrackTypeForValueTypeName( json.type );\n\n\tif ( json.times === undefined ) {\n\n\t\tconst times = [], values = [];\n\n\t\tflattenJSON( json.keys, times, values, 'value' );\n\n\t\tjson.times = times;\n\t\tjson.values = values;\n\n\t}\n\n\t// derived classes can define a static parse method\n\tif ( trackType.parse !== undefined ) {\n\n\t\treturn trackType.parse( json );\n\n\t} else {\n\n\t\t// by default, we assume a constructor compatible with the base\n\t\treturn new trackType( json.name, json.times, json.values, json.interpolation );\n\n\t}\n\n}\n\nconst Cache = {\n\n\tenabled: false,\n\n\tfiles: {},\n\n\tadd: function ( key, file ) {\n\n\t\tif ( this.enabled === false ) return;\n\n\t\t// console.log( 'THREE.Cache', 'Adding key:', key );\n\n\t\tthis.files[ key ] = file;\n\n\t},\n\n\tget: function ( key ) {\n\n\t\tif ( this.enabled === false ) return;\n\n\t\t// console.log( 'THREE.Cache', 'Checking key:', key );\n\n\t\treturn this.files[ key ];\n\n\t},\n\n\tremove: function ( key ) {\n\n\t\tdelete this.files[ key ];\n\n\t},\n\n\tclear: function () {\n\n\t\tthis.files = {};\n\n\t}\n\n};\n\nclass LoadingManager {\n\n\tconstructor( onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tlet isLoading = false;\n\t\tlet itemsLoaded = 0;\n\t\tlet itemsTotal = 0;\n\t\tlet urlModifier = undefined;\n\t\tconst handlers = [];\n\n\t\t// Refer to #5689 for the reason why we don't set .onStart\n\t\t// in the constructor\n\n\t\tthis.onStart = undefined;\n\t\tthis.onLoad = onLoad;\n\t\tthis.onProgress = onProgress;\n\t\tthis.onError = onError;\n\n\t\tthis.itemStart = function ( url ) {\n\n\t\t\titemsTotal ++;\n\n\t\t\tif ( isLoading === false ) {\n\n\t\t\t\tif ( scope.onStart !== undefined ) {\n\n\t\t\t\t\tscope.onStart( url, itemsLoaded, itemsTotal );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tisLoading = true;\n\n\t\t};\n\n\t\tthis.itemEnd = function ( url ) {\n\n\t\t\titemsLoaded ++;\n\n\t\t\tif ( scope.onProgress !== undefined ) {\n\n\t\t\t\tscope.onProgress( url, itemsLoaded, itemsTotal );\n\n\t\t\t}\n\n\t\t\tif ( itemsLoaded === itemsTotal ) {\n\n\t\t\t\tisLoading = false;\n\n\t\t\t\tif ( scope.onLoad !== undefined ) {\n\n\t\t\t\t\tscope.onLoad();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.itemError = function ( url ) {\n\n\t\t\tif ( scope.onError !== undefined ) {\n\n\t\t\t\tscope.onError( url );\n\n\t\t\t}\n\n\t\t};\n\n\t\tthis.resolveURL = function ( url ) {\n\n\t\t\tif ( urlModifier ) {\n\n\t\t\t\treturn urlModifier( url );\n\n\t\t\t}\n\n\t\t\treturn url;\n\n\t\t};\n\n\t\tthis.setURLModifier = function ( transform ) {\n\n\t\t\turlModifier = transform;\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.addHandler = function ( regex, loader ) {\n\n\t\t\thandlers.push( regex, loader );\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.removeHandler = function ( regex ) {\n\n\t\t\tconst index = handlers.indexOf( regex );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\thandlers.splice( index, 2 );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t};\n\n\t\tthis.getHandler = function ( file ) {\n\n\t\t\tfor ( let i = 0, l = handlers.length; i < l; i += 2 ) {\n\n\t\t\t\tconst regex = handlers[ i ];\n\t\t\t\tconst loader = handlers[ i + 1 ];\n\n\t\t\t\tif ( regex.global ) regex.lastIndex = 0; // see #17920\n\n\t\t\t\tif ( regex.test( file ) ) {\n\n\t\t\t\t\treturn loader;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn null;\n\n\t\t};\n\n\t}\n\n}\n\nconst DefaultLoadingManager = /*@__PURE__*/ new LoadingManager();\n\nclass Loader {\n\n\tconstructor( manager ) {\n\n\t\tthis.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;\n\n\t\tthis.crossOrigin = 'anonymous';\n\t\tthis.withCredentials = false;\n\t\tthis.path = '';\n\t\tthis.resourcePath = '';\n\t\tthis.requestHeader = {};\n\n\t}\n\n\tload( /* url, onLoad, onProgress, onError */ ) {}\n\n\tloadAsync( url, onProgress ) {\n\n\t\tconst scope = this;\n\n\t\treturn new Promise( function ( resolve, reject ) {\n\n\t\t\tscope.load( url, resolve, onProgress, reject );\n\n\t\t} );\n\n\t}\n\n\tparse( /* data */ ) {}\n\n\tsetCrossOrigin( crossOrigin ) {\n\n\t\tthis.crossOrigin = crossOrigin;\n\t\treturn this;\n\n\t}\n\n\tsetWithCredentials( value ) {\n\n\t\tthis.withCredentials = value;\n\t\treturn this;\n\n\t}\n\n\tsetPath( path ) {\n\n\t\tthis.path = path;\n\t\treturn this;\n\n\t}\n\n\tsetResourcePath( resourcePath ) {\n\n\t\tthis.resourcePath = resourcePath;\n\t\treturn this;\n\n\t}\n\n\tsetRequestHeader( requestHeader ) {\n\n\t\tthis.requestHeader = requestHeader;\n\t\treturn this;\n\n\t}\n\n}\n\nLoader.DEFAULT_MATERIAL_NAME = '__DEFAULT';\n\nconst loading = {};\n\nclass HttpError extends Error {\n\n\tconstructor( message, response ) {\n\n\t\tsuper( message );\n\t\tthis.response = response;\n\n\t}\n\n}\n\nclass FileLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( url === undefined ) url = '';\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tthis.manager.itemStart( url );\n\n\t\t\tsetTimeout( () => {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tthis.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\t// Check if request is duplicate\n\n\t\tif ( loading[ url ] !== undefined ) {\n\n\t\t\tloading[ url ].push( {\n\n\t\t\t\tonLoad: onLoad,\n\t\t\t\tonProgress: onProgress,\n\t\t\t\tonError: onError\n\n\t\t\t} );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\t// Initialise array for duplicate requests\n\t\tloading[ url ] = [];\n\n\t\tloading[ url ].push( {\n\t\t\tonLoad: onLoad,\n\t\t\tonProgress: onProgress,\n\t\t\tonError: onError,\n\t\t} );\n\n\t\t// create request\n\t\tconst req = new Request( url, {\n\t\t\theaders: new Headers( this.requestHeader ),\n\t\t\tcredentials: this.withCredentials ? 'include' : 'same-origin',\n\t\t\t// An abort controller could be added within a future PR\n\t\t} );\n\n\t\t// record states ( avoid data race )\n\t\tconst mimeType = this.mimeType;\n\t\tconst responseType = this.responseType;\n\n\t\t// start the fetch\n\t\tfetch( req )\n\t\t\t.then( response => {\n\n\t\t\t\tif ( response.status === 200 || response.status === 0 ) {\n\n\t\t\t\t\t// Some browsers return HTTP Status 0 when using non-http protocol\n\t\t\t\t\t// e.g. 'file://' or 'data://'. Handle as success.\n\n\t\t\t\t\tif ( response.status === 0 ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.FileLoader: HTTP Status 0 received.' );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// Workaround: Checking if response.body === undefined for Alipay browser #23548\n\n\t\t\t\t\tif ( typeof ReadableStream === 'undefined' || response.body === undefined || response.body.getReader === undefined ) {\n\n\t\t\t\t\t\treturn response;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst callbacks = loading[ url ];\n\t\t\t\t\tconst reader = response.body.getReader();\n\n\t\t\t\t\t// Nginx needs X-File-Size check\n\t\t\t\t\t// https://serverfault.com/questions/482875/why-does-nginx-remove-content-length-header-for-chunked-content\n\t\t\t\t\tconst contentLength = response.headers.get( 'X-File-Size' ) || response.headers.get( 'Content-Length' );\n\t\t\t\t\tconst total = contentLength ? parseInt( contentLength ) : 0;\n\t\t\t\t\tconst lengthComputable = total !== 0;\n\t\t\t\t\tlet loaded = 0;\n\n\t\t\t\t\t// periodically read data into the new stream tracking while download progress\n\t\t\t\t\tconst stream = new ReadableStream( {\n\t\t\t\t\t\tstart( controller ) {\n\n\t\t\t\t\t\t\treadData();\n\n\t\t\t\t\t\t\tfunction readData() {\n\n\t\t\t\t\t\t\t\treader.read().then( ( { done, value } ) => {\n\n\t\t\t\t\t\t\t\t\tif ( done ) {\n\n\t\t\t\t\t\t\t\t\t\tcontroller.close();\n\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\tloaded += value.byteLength;\n\n\t\t\t\t\t\t\t\t\t\tconst event = new ProgressEvent( 'progress', { lengthComputable, loaded, total } );\n\t\t\t\t\t\t\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\t\t\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\t\t\t\t\t\t\tif ( callback.onProgress ) callback.onProgress( event );\n\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tcontroller.enqueue( value );\n\t\t\t\t\t\t\t\t\t\treadData();\n\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t}, ( e ) => {\n\n\t\t\t\t\t\t\t\t\tcontroller.error( e );\n\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn new Response( stream );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthrow new HttpError( `fetch for \"${response.url}\" responded with ${response.status}: ${response.statusText}`, response );\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.then( response => {\n\n\t\t\t\tswitch ( responseType ) {\n\n\t\t\t\t\tcase 'arraybuffer':\n\n\t\t\t\t\t\treturn response.arrayBuffer();\n\n\t\t\t\t\tcase 'blob':\n\n\t\t\t\t\t\treturn response.blob();\n\n\t\t\t\t\tcase 'document':\n\n\t\t\t\t\t\treturn response.text()\n\t\t\t\t\t\t\t.then( text => {\n\n\t\t\t\t\t\t\t\tconst parser = new DOMParser();\n\t\t\t\t\t\t\t\treturn parser.parseFromString( text, mimeType );\n\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\tcase 'json':\n\n\t\t\t\t\t\treturn response.json();\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( mimeType === undefined ) {\n\n\t\t\t\t\t\t\treturn response.text();\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// sniff encoding\n\t\t\t\t\t\t\tconst re = /charset=\"?([^;\"\\s]*)\"?/i;\n\t\t\t\t\t\t\tconst exec = re.exec( mimeType );\n\t\t\t\t\t\t\tconst label = exec && exec[ 1 ] ? exec[ 1 ].toLowerCase() : undefined;\n\t\t\t\t\t\t\tconst decoder = new TextDecoder( label );\n\t\t\t\t\t\t\treturn response.arrayBuffer().then( ab => decoder.decode( ab ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.then( data => {\n\n\t\t\t\t// Add to cache only on HTTP success, so that we do not cache\n\t\t\t\t// error response bodies as proper responses to requests.\n\t\t\t\tCache.add( url, data );\n\n\t\t\t\tconst callbacks = loading[ url ];\n\t\t\t\tdelete loading[ url ];\n\n\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\tif ( callback.onLoad ) callback.onLoad( data );\n\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.catch( err => {\n\n\t\t\t\t// Abort errors and other errors are handled the same\n\n\t\t\t\tconst callbacks = loading[ url ];\n\n\t\t\t\tif ( callbacks === undefined ) {\n\n\t\t\t\t\t// When onLoad was called and url was deleted in `loading`\n\t\t\t\t\tthis.manager.itemError( url );\n\t\t\t\t\tthrow err;\n\n\t\t\t\t}\n\n\t\t\t\tdelete loading[ url ];\n\n\t\t\t\tfor ( let i = 0, il = callbacks.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst callback = callbacks[ i ];\n\t\t\t\t\tif ( callback.onError ) callback.onError( err );\n\n\t\t\t\t}\n\n\t\t\t\tthis.manager.itemError( url );\n\n\t\t\t} )\n\t\t\t.finally( () => {\n\n\t\t\t\tthis.manager.itemEnd( url );\n\n\t\t\t} );\n\n\t\tthis.manager.itemStart( url );\n\n\t}\n\n\tsetResponseType( value ) {\n\n\t\tthis.responseType = value;\n\t\treturn this;\n\n\t}\n\n\tsetMimeType( value ) {\n\n\t\tthis.mimeType = value;\n\t\treturn this;\n\n\t}\n\n}\n\nclass AnimationLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst animations = [];\n\n\t\tfor ( let i = 0; i < json.length; i ++ ) {\n\n\t\t\tconst clip = AnimationClip.parse( json[ i ] );\n\n\t\t\tanimations.push( clip );\n\n\t\t}\n\n\t\treturn animations;\n\n\t}\n\n}\n\n/**\n * Abstract Base class to block based textures loader (dds, pvr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\nclass CompressedTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst images = [];\n\n\t\tconst texture = new CompressedTexture();\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\n\t\tlet loaded = 0;\n\n\t\tfunction loadTexture( i ) {\n\n\t\t\tloader.load( url[ i ], function ( buffer ) {\n\n\t\t\t\tconst texDatas = scope.parse( buffer, true );\n\n\t\t\t\timages[ i ] = {\n\t\t\t\t\twidth: texDatas.width,\n\t\t\t\t\theight: texDatas.height,\n\t\t\t\t\tformat: texDatas.format,\n\t\t\t\t\tmipmaps: texDatas.mipmaps\n\t\t\t\t};\n\n\t\t\t\tloaded += 1;\n\n\t\t\t\tif ( loaded === 6 ) {\n\n\t\t\t\t\tif ( texDatas.mipmapCount === 1 ) texture.minFilter = LinearFilter;\n\n\t\t\t\t\ttexture.image = images;\n\t\t\t\t\ttexture.format = texDatas.format;\n\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t\t}\n\n\t\t\t}, onProgress, onError );\n\n\t\t}\n\n\t\tif ( Array.isArray( url ) ) {\n\n\t\t\tfor ( let i = 0, il = url.length; i < il; ++ i ) {\n\n\t\t\t\tloadTexture( i );\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// compressed cubemap texture stored in a single DDS file\n\n\t\t\tloader.load( url, function ( buffer ) {\n\n\t\t\t\tconst texDatas = scope.parse( buffer, true );\n\n\t\t\t\tif ( texDatas.isCubemap ) {\n\n\t\t\t\t\tconst faces = texDatas.mipmaps.length / texDatas.mipmapCount;\n\n\t\t\t\t\tfor ( let f = 0; f < faces; f ++ ) {\n\n\t\t\t\t\t\timages[ f ] = { mipmaps: [] };\n\n\t\t\t\t\t\tfor ( let i = 0; i < texDatas.mipmapCount; i ++ ) {\n\n\t\t\t\t\t\t\timages[ f ].mipmaps.push( texDatas.mipmaps[ f * texDatas.mipmapCount + i ] );\n\t\t\t\t\t\t\timages[ f ].format = texDatas.format;\n\t\t\t\t\t\t\timages[ f ].width = texDatas.width;\n\t\t\t\t\t\t\timages[ f ].height = texDatas.height;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttexture.image = images;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ttexture.image.width = texDatas.width;\n\t\t\t\t\ttexture.image.height = texDatas.height;\n\t\t\t\t\ttexture.mipmaps = texDatas.mipmaps;\n\n\t\t\t\t}\n\n\t\t\t\tif ( texDatas.mipmapCount === 1 ) {\n\n\t\t\t\t\ttexture.minFilter = LinearFilter;\n\n\t\t\t\t}\n\n\t\t\t\ttexture.format = texDatas.format;\n\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t}, onProgress, onError );\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass ImageLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst scope = this;\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\tsetTimeout( function () {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\tconst image = createElementNS( 'img' );\n\n\t\tfunction onImageLoad() {\n\n\t\t\tremoveEventListeners();\n\n\t\t\tCache.add( url, this );\n\n\t\t\tif ( onLoad ) onLoad( this );\n\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t}\n\n\t\tfunction onImageError( event ) {\n\n\t\t\tremoveEventListeners();\n\n\t\t\tif ( onError ) onError( event );\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t}\n\n\t\tfunction removeEventListeners() {\n\n\t\t\timage.removeEventListener( 'load', onImageLoad, false );\n\t\t\timage.removeEventListener( 'error', onImageError, false );\n\n\t\t}\n\n\t\timage.addEventListener( 'load', onImageLoad, false );\n\t\timage.addEventListener( 'error', onImageError, false );\n\n\t\tif ( url.slice( 0, 5 ) !== 'data:' ) {\n\n\t\t\tif ( this.crossOrigin !== undefined ) image.crossOrigin = this.crossOrigin;\n\n\t\t}\n\n\t\tscope.manager.itemStart( url );\n\n\t\timage.src = url;\n\n\t\treturn image;\n\n\t}\n\n}\n\nclass CubeTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( urls, onLoad, onProgress, onError ) {\n\n\t\tconst texture = new CubeTexture();\n\t\ttexture.colorSpace = SRGBColorSpace;\n\n\t\tconst loader = new ImageLoader( this.manager );\n\t\tloader.setCrossOrigin( this.crossOrigin );\n\t\tloader.setPath( this.path );\n\n\t\tlet loaded = 0;\n\n\t\tfunction loadTexture( i ) {\n\n\t\t\tloader.load( urls[ i ], function ( image ) {\n\n\t\t\t\ttexture.images[ i ] = image;\n\n\t\t\t\tloaded ++;\n\n\t\t\t\tif ( loaded === 6 ) {\n\n\t\t\t\t\ttexture.needsUpdate = true;\n\n\t\t\t\t\tif ( onLoad ) onLoad( texture );\n\n\t\t\t\t}\n\n\t\t\t}, undefined, onError );\n\n\t\t}\n\n\t\tfor ( let i = 0; i < urls.length; ++ i ) {\n\n\t\t\tloadTexture( i );\n\n\t\t}\n\n\t\treturn texture;\n\n\t}\n\n}\n\n/**\n * Abstract Base class to load generic binary textures formats (rgbe, hdr, ...)\n *\n * Sub classes have to implement the parse() method which will be used in load().\n */\n\nclass DataTextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst texture = new DataTexture();\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setPath( this.path );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( buffer ) {\n\n\t\t\tlet texData;\n\n\t\t\ttry {\n\n\t\t\t\ttexData = scope.parse( buffer );\n\n\t\t\t} catch ( error ) {\n\n\t\t\t\tif ( onError !== undefined ) {\n\n\t\t\t\t\tonError( error );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( error );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( texData.image !== undefined ) {\n\n\t\t\t\ttexture.image = texData.image;\n\n\t\t\t} else if ( texData.data !== undefined ) {\n\n\t\t\t\ttexture.image.width = texData.width;\n\t\t\t\ttexture.image.height = texData.height;\n\t\t\t\ttexture.image.data = texData.data;\n\n\t\t\t}\n\n\t\t\ttexture.wrapS = texData.wrapS !== undefined ? texData.wrapS : ClampToEdgeWrapping;\n\t\t\ttexture.wrapT = texData.wrapT !== undefined ? texData.wrapT : ClampToEdgeWrapping;\n\n\t\t\ttexture.magFilter = texData.magFilter !== undefined ? texData.magFilter : LinearFilter;\n\t\t\ttexture.minFilter = texData.minFilter !== undefined ? texData.minFilter : LinearFilter;\n\n\t\t\ttexture.anisotropy = texData.anisotropy !== undefined ? texData.anisotropy : 1;\n\n\t\t\tif ( texData.colorSpace !== undefined ) {\n\n\t\t\t\ttexture.colorSpace = texData.colorSpace;\n\n\t\t\t}\n\n\t\t\tif ( texData.flipY !== undefined ) {\n\n\t\t\t\ttexture.flipY = texData.flipY;\n\n\t\t\t}\n\n\t\t\tif ( texData.format !== undefined ) {\n\n\t\t\t\ttexture.format = texData.format;\n\n\t\t\t}\n\n\t\t\tif ( texData.type !== undefined ) {\n\n\t\t\t\ttexture.type = texData.type;\n\n\t\t\t}\n\n\t\t\tif ( texData.mipmaps !== undefined ) {\n\n\t\t\t\ttexture.mipmaps = texData.mipmaps;\n\t\t\t\ttexture.minFilter = LinearMipmapLinearFilter; // presumably...\n\n\t\t\t}\n\n\t\t\tif ( texData.mipmapCount === 1 ) {\n\n\t\t\t\ttexture.minFilter = LinearFilter;\n\n\t\t\t}\n\n\t\t\tif ( texData.generateMipmaps !== undefined ) {\n\n\t\t\t\ttexture.generateMipmaps = texData.generateMipmaps;\n\n\t\t\t}\n\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\tif ( onLoad ) onLoad( texture, texData );\n\n\t\t}, onProgress, onError );\n\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass TextureLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst texture = new Texture();\n\n\t\tconst loader = new ImageLoader( this.manager );\n\t\tloader.setCrossOrigin( this.crossOrigin );\n\t\tloader.setPath( this.path );\n\n\t\tloader.load( url, function ( image ) {\n\n\t\t\ttexture.image = image;\n\t\t\ttexture.needsUpdate = true;\n\n\t\t\tif ( onLoad !== undefined ) {\n\n\t\t\t\tonLoad( texture );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t\treturn texture;\n\n\t}\n\n}\n\nclass Light extends Object3D {\n\n\tconstructor( color, intensity = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.isLight = true;\n\n\t\tthis.type = 'Light';\n\n\t\tthis.color = new Color( color );\n\t\tthis.intensity = intensity;\n\n\t}\n\n\tdispose() {\n\n\t\t// Empty here in base class; some subclasses override.\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.color.copy( source.color );\n\t\tthis.intensity = source.intensity;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.color = this.color.getHex();\n\t\tdata.object.intensity = this.intensity;\n\n\t\tif ( this.groundColor !== undefined ) data.object.groundColor = this.groundColor.getHex();\n\n\t\tif ( this.distance !== undefined ) data.object.distance = this.distance;\n\t\tif ( this.angle !== undefined ) data.object.angle = this.angle;\n\t\tif ( this.decay !== undefined ) data.object.decay = this.decay;\n\t\tif ( this.penumbra !== undefined ) data.object.penumbra = this.penumbra;\n\n\t\tif ( this.shadow !== undefined ) data.object.shadow = this.shadow.toJSON();\n\t\tif ( this.target !== undefined ) data.object.target = this.target.uuid;\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass HemisphereLight extends Light {\n\n\tconstructor( skyColor, groundColor, intensity ) {\n\n\t\tsuper( skyColor, intensity );\n\n\t\tthis.isHemisphereLight = true;\n\n\t\tthis.type = 'HemisphereLight';\n\n\t\tthis.position.copy( Object3D.DEFAULT_UP );\n\t\tthis.updateMatrix();\n\n\t\tthis.groundColor = new Color( groundColor );\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.groundColor.copy( source.groundColor );\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _projScreenMatrix$1 = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld$1 = /*@__PURE__*/ new Vector3();\nconst _lookTarget$1 = /*@__PURE__*/ new Vector3();\n\nclass LightShadow {\n\n\tconstructor( camera ) {\n\n\t\tthis.camera = camera;\n\n\t\tthis.intensity = 1;\n\n\t\tthis.bias = 0;\n\t\tthis.normalBias = 0;\n\t\tthis.radius = 1;\n\t\tthis.blurSamples = 8;\n\n\t\tthis.mapSize = new Vector2( 512, 512 );\n\n\t\tthis.map = null;\n\t\tthis.mapPass = null;\n\t\tthis.matrix = new Matrix4();\n\n\t\tthis.autoUpdate = true;\n\t\tthis.needsUpdate = false;\n\n\t\tthis._frustum = new Frustum();\n\t\tthis._frameExtents = new Vector2( 1, 1 );\n\n\t\tthis._viewportCount = 1;\n\n\t\tthis._viewports = [\n\n\t\t\tnew Vector4( 0, 0, 1, 1 )\n\n\t\t];\n\n\t}\n\n\tgetViewportCount() {\n\n\t\treturn this._viewportCount;\n\n\t}\n\n\tgetFrustum() {\n\n\t\treturn this._frustum;\n\n\t}\n\n\tupdateMatrices( light ) {\n\n\t\tconst shadowCamera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\t_lightPositionWorld$1.setFromMatrixPosition( light.matrixWorld );\n\t\tshadowCamera.position.copy( _lightPositionWorld$1 );\n\n\t\t_lookTarget$1.setFromMatrixPosition( light.target.matrixWorld );\n\t\tshadowCamera.lookAt( _lookTarget$1 );\n\t\tshadowCamera.updateMatrixWorld();\n\n\t\t_projScreenMatrix$1.multiplyMatrices( shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix$1 );\n\n\t\tshadowMatrix.set(\n\t\t\t0.5, 0.0, 0.0, 0.5,\n\t\t\t0.0, 0.5, 0.0, 0.5,\n\t\t\t0.0, 0.0, 0.5, 0.5,\n\t\t\t0.0, 0.0, 0.0, 1.0\n\t\t);\n\n\t\tshadowMatrix.multiply( _projScreenMatrix$1 );\n\n\t}\n\n\tgetViewport( viewportIndex ) {\n\n\t\treturn this._viewports[ viewportIndex ];\n\n\t}\n\n\tgetFrameExtents() {\n\n\t\treturn this._frameExtents;\n\n\t}\n\n\tdispose() {\n\n\t\tif ( this.map ) {\n\n\t\t\tthis.map.dispose();\n\n\t\t}\n\n\t\tif ( this.mapPass ) {\n\n\t\t\tthis.mapPass.dispose();\n\n\t\t}\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.camera = source.camera.clone();\n\n\t\tthis.intensity = source.intensity;\n\n\t\tthis.bias = source.bias;\n\t\tthis.radius = source.radius;\n\n\t\tthis.mapSize.copy( source.mapSize );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst object = {};\n\n\t\tif ( this.intensity !== 1 ) object.intensity = this.intensity;\n\t\tif ( this.bias !== 0 ) object.bias = this.bias;\n\t\tif ( this.normalBias !== 0 ) object.normalBias = this.normalBias;\n\t\tif ( this.radius !== 1 ) object.radius = this.radius;\n\t\tif ( this.mapSize.x !== 512 || this.mapSize.y !== 512 ) object.mapSize = this.mapSize.toArray();\n\n\t\tobject.camera = this.camera.toJSON( false ).object;\n\t\tdelete object.camera.matrix;\n\n\t\treturn object;\n\n\t}\n\n}\n\nclass SpotLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 50, 1, 0.5, 500 ) );\n\n\t\tthis.isSpotLightShadow = true;\n\n\t\tthis.focus = 1;\n\n\t}\n\n\tupdateMatrices( light ) {\n\n\t\tconst camera = this.camera;\n\n\t\tconst fov = RAD2DEG * 2 * light.angle * this.focus;\n\t\tconst aspect = this.mapSize.width / this.mapSize.height;\n\t\tconst far = light.distance || camera.far;\n\n\t\tif ( fov !== camera.fov || aspect !== camera.aspect || far !== camera.far ) {\n\n\t\t\tcamera.fov = fov;\n\t\t\tcamera.aspect = aspect;\n\t\t\tcamera.far = far;\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t}\n\n\t\tsuper.updateMatrices( light );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.focus = source.focus;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass SpotLight extends Light {\n\n\tconstructor( color, intensity, distance = 0, angle = Math.PI / 3, penumbra = 0, decay = 2 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isSpotLight = true;\n\n\t\tthis.type = 'SpotLight';\n\n\t\tthis.position.copy( Object3D.DEFAULT_UP );\n\t\tthis.updateMatrix();\n\n\t\tthis.target = new Object3D();\n\n\t\tthis.distance = distance;\n\t\tthis.angle = angle;\n\t\tthis.penumbra = penumbra;\n\t\tthis.decay = decay;\n\n\t\tthis.map = null;\n\n\t\tthis.shadow = new SpotLightShadow();\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in candela)\n\t\t// by convention for a spotlight, luminous power (lm) = π * luminous intensity (cd)\n\t\treturn this.intensity * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in candela) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / Math.PI;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.distance = source.distance;\n\t\tthis.angle = source.angle;\n\t\tthis.penumbra = source.penumbra;\n\t\tthis.decay = source.decay;\n\n\t\tthis.target = source.target.clone();\n\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _projScreenMatrix = /*@__PURE__*/ new Matrix4();\nconst _lightPositionWorld = /*@__PURE__*/ new Vector3();\nconst _lookTarget = /*@__PURE__*/ new Vector3();\n\nclass PointLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new PerspectiveCamera( 90, 1, 0.5, 500 ) );\n\n\t\tthis.isPointLightShadow = true;\n\n\t\tthis._frameExtents = new Vector2( 4, 2 );\n\n\t\tthis._viewportCount = 6;\n\n\t\tthis._viewports = [\n\t\t\t// These viewports map a cube-map onto a 2D texture with the\n\t\t\t// following orientation:\n\t\t\t//\n\t\t\t// xzXZ\n\t\t\t// y Y\n\t\t\t//\n\t\t\t// X - Positive x direction\n\t\t\t// x - Negative x direction\n\t\t\t// Y - Positive y direction\n\t\t\t// y - Negative y direction\n\t\t\t// Z - Positive z direction\n\t\t\t// z - Negative z direction\n\n\t\t\t// positive X\n\t\t\tnew Vector4( 2, 1, 1, 1 ),\n\t\t\t// negative X\n\t\t\tnew Vector4( 0, 1, 1, 1 ),\n\t\t\t// positive Z\n\t\t\tnew Vector4( 3, 1, 1, 1 ),\n\t\t\t// negative Z\n\t\t\tnew Vector4( 1, 1, 1, 1 ),\n\t\t\t// positive Y\n\t\t\tnew Vector4( 3, 0, 1, 1 ),\n\t\t\t// negative Y\n\t\t\tnew Vector4( 1, 0, 1, 1 )\n\t\t];\n\n\t\tthis._cubeDirections = [\n\t\t\tnew Vector3( 1, 0, 0 ), new Vector3( - 1, 0, 0 ), new Vector3( 0, 0, 1 ),\n\t\t\tnew Vector3( 0, 0, - 1 ), new Vector3( 0, 1, 0 ), new Vector3( 0, - 1, 0 )\n\t\t];\n\n\t\tthis._cubeUps = [\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ), new Vector3( 0, 1, 0 ),\n\t\t\tnew Vector3( 0, 1, 0 ), new Vector3( 0, 0, 1 ),\tnew Vector3( 0, 0, - 1 )\n\t\t];\n\n\t}\n\n\tupdateMatrices( light, viewportIndex = 0 ) {\n\n\t\tconst camera = this.camera;\n\t\tconst shadowMatrix = this.matrix;\n\n\t\tconst far = light.distance || camera.far;\n\n\t\tif ( far !== camera.far ) {\n\n\t\t\tcamera.far = far;\n\t\t\tcamera.updateProjectionMatrix();\n\n\t\t}\n\n\t\t_lightPositionWorld.setFromMatrixPosition( light.matrixWorld );\n\t\tcamera.position.copy( _lightPositionWorld );\n\n\t\t_lookTarget.copy( camera.position );\n\t\t_lookTarget.add( this._cubeDirections[ viewportIndex ] );\n\t\tcamera.up.copy( this._cubeUps[ viewportIndex ] );\n\t\tcamera.lookAt( _lookTarget );\n\t\tcamera.updateMatrixWorld();\n\n\t\tshadowMatrix.makeTranslation( - _lightPositionWorld.x, - _lightPositionWorld.y, - _lightPositionWorld.z );\n\n\t\t_projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse );\n\t\tthis._frustum.setFromProjectionMatrix( _projScreenMatrix );\n\n\t}\n\n}\n\nclass PointLight extends Light {\n\n\tconstructor( color, intensity, distance = 0, decay = 2 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isPointLight = true;\n\n\t\tthis.type = 'PointLight';\n\n\t\tthis.distance = distance;\n\t\tthis.decay = decay;\n\n\t\tthis.shadow = new PointLightShadow();\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in candela)\n\t\t// for an isotropic light source, luminous power (lm) = 4 π luminous intensity (cd)\n\t\treturn this.intensity * 4 * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in candela) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / ( 4 * Math.PI );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.distance = source.distance;\n\t\tthis.decay = source.decay;\n\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass DirectionalLightShadow extends LightShadow {\n\n\tconstructor() {\n\n\t\tsuper( new OrthographicCamera( - 5, 5, 5, - 5, 0.5, 500 ) );\n\n\t\tthis.isDirectionalLightShadow = true;\n\n\t}\n\n}\n\nclass DirectionalLight extends Light {\n\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isDirectionalLight = true;\n\n\t\tthis.type = 'DirectionalLight';\n\n\t\tthis.position.copy( Object3D.DEFAULT_UP );\n\t\tthis.updateMatrix();\n\n\t\tthis.target = new Object3D();\n\n\t\tthis.shadow = new DirectionalLightShadow();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.shadow.dispose();\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.target = source.target.clone();\n\t\tthis.shadow = source.shadow.clone();\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass AmbientLight extends Light {\n\n\tconstructor( color, intensity ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isAmbientLight = true;\n\n\t\tthis.type = 'AmbientLight';\n\n\t}\n\n}\n\nclass RectAreaLight extends Light {\n\n\tconstructor( color, intensity, width = 10, height = 10 ) {\n\n\t\tsuper( color, intensity );\n\n\t\tthis.isRectAreaLight = true;\n\n\t\tthis.type = 'RectAreaLight';\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\n\t}\n\n\tget power() {\n\n\t\t// compute the light's luminous power (in lumens) from its intensity (in nits)\n\t\treturn this.intensity * this.width * this.height * Math.PI;\n\n\t}\n\n\tset power( power ) {\n\n\t\t// set the light's intensity (in nits) from the desired luminous power (in lumens)\n\t\tthis.intensity = power / ( this.width * this.height * Math.PI );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.width = this.width;\n\t\tdata.object.height = this.height;\n\n\t\treturn data;\n\n\t}\n\n}\n\n/**\n * Primary reference:\n * https://graphics.stanford.edu/papers/envmap/envmap.pdf\n *\n * Secondary reference:\n * https://www.ppsloan.org/publications/StupidSH36.pdf\n */\n\n// 3-band SH defined by 9 coefficients\n\nclass SphericalHarmonics3 {\n\n\tconstructor() {\n\n\t\tthis.isSphericalHarmonics3 = true;\n\n\t\tthis.coefficients = [];\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients.push( new Vector3() );\n\n\t\t}\n\n\t}\n\n\tset( coefficients ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].copy( coefficients[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tzero() {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].set( 0, 0, 0 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// get the radiance in the direction of the normal\n\t// target is a Vector3\n\tgetAt( normal, target ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\tconst coeff = this.coefficients;\n\n\t\t// band 0\n\t\ttarget.copy( coeff[ 0 ] ).multiplyScalar( 0.282095 );\n\n\t\t// band 1\n\t\ttarget.addScaledVector( coeff[ 1 ], 0.488603 * y );\n\t\ttarget.addScaledVector( coeff[ 2 ], 0.488603 * z );\n\t\ttarget.addScaledVector( coeff[ 3 ], 0.488603 * x );\n\n\t\t// band 2\n\t\ttarget.addScaledVector( coeff[ 4 ], 1.092548 * ( x * y ) );\n\t\ttarget.addScaledVector( coeff[ 5 ], 1.092548 * ( y * z ) );\n\t\ttarget.addScaledVector( coeff[ 6 ], 0.315392 * ( 3.0 * z * z - 1.0 ) );\n\t\ttarget.addScaledVector( coeff[ 7 ], 1.092548 * ( x * z ) );\n\t\ttarget.addScaledVector( coeff[ 8 ], 0.546274 * ( x * x - y * y ) );\n\n\t\treturn target;\n\n\t}\n\n\t// get the irradiance (radiance convolved with cosine lobe) in the direction of the normal\n\t// target is a Vector3\n\t// https://graphics.stanford.edu/papers/envmap/envmap.pdf\n\tgetIrradianceAt( normal, target ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\tconst coeff = this.coefficients;\n\n\t\t// band 0\n\t\ttarget.copy( coeff[ 0 ] ).multiplyScalar( 0.886227 ); // π * 0.282095\n\n\t\t// band 1\n\t\ttarget.addScaledVector( coeff[ 1 ], 2.0 * 0.511664 * y ); // ( 2 * π / 3 ) * 0.488603\n\t\ttarget.addScaledVector( coeff[ 2 ], 2.0 * 0.511664 * z );\n\t\ttarget.addScaledVector( coeff[ 3 ], 2.0 * 0.511664 * x );\n\n\t\t// band 2\n\t\ttarget.addScaledVector( coeff[ 4 ], 2.0 * 0.429043 * x * y ); // ( π / 4 ) * 1.092548\n\t\ttarget.addScaledVector( coeff[ 5 ], 2.0 * 0.429043 * y * z );\n\t\ttarget.addScaledVector( coeff[ 6 ], 0.743125 * z * z - 0.247708 ); // ( π / 4 ) * 0.315392 * 3\n\t\ttarget.addScaledVector( coeff[ 7 ], 2.0 * 0.429043 * x * z );\n\t\ttarget.addScaledVector( coeff[ 8 ], 0.429043 * ( x * x - y * y ) ); // ( π / 4 ) * 0.546274\n\n\t\treturn target;\n\n\t}\n\n\tadd( sh ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].add( sh.coefficients[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\taddScaledSH( sh, s ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].addScaledVector( sh.coefficients[ i ], s );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tscale( s ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].multiplyScalar( s );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tlerp( sh, alpha ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.coefficients[ i ].lerp( sh.coefficients[ i ], alpha );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tequals( sh ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( ! this.coefficients[ i ].equals( sh.coefficients[ i ] ) ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcopy( sh ) {\n\n\t\treturn this.set( sh.coefficients );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tconst coefficients = this.coefficients;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tcoefficients[ i ].fromArray( array, offset + ( i * 3 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst coefficients = this.coefficients;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tcoefficients[ i ].toArray( array, offset + ( i * 3 ) );\n\n\t\t}\n\n\t\treturn array;\n\n\t}\n\n\t// evaluate the basis functions\n\t// shBasis is an Array[ 9 ]\n\tstatic getBasisAt( normal, shBasis ) {\n\n\t\t// normal is assumed to be unit length\n\n\t\tconst x = normal.x, y = normal.y, z = normal.z;\n\n\t\t// band 0\n\t\tshBasis[ 0 ] = 0.282095;\n\n\t\t// band 1\n\t\tshBasis[ 1 ] = 0.488603 * y;\n\t\tshBasis[ 2 ] = 0.488603 * z;\n\t\tshBasis[ 3 ] = 0.488603 * x;\n\n\t\t// band 2\n\t\tshBasis[ 4 ] = 1.092548 * x * y;\n\t\tshBasis[ 5 ] = 1.092548 * y * z;\n\t\tshBasis[ 6 ] = 0.315392 * ( 3 * z * z - 1 );\n\t\tshBasis[ 7 ] = 1.092548 * x * z;\n\t\tshBasis[ 8 ] = 0.546274 * ( x * x - y * y );\n\n\t}\n\n}\n\nclass LightProbe extends Light {\n\n\tconstructor( sh = new SphericalHarmonics3(), intensity = 1 ) {\n\n\t\tsuper( undefined, intensity );\n\n\t\tthis.isLightProbe = true;\n\n\t\tthis.sh = sh;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.sh.copy( source.sh );\n\n\t\treturn this;\n\n\t}\n\n\tfromJSON( json ) {\n\n\t\tthis.intensity = json.intensity; // TODO: Move this bit to Light.fromJSON();\n\t\tthis.sh.fromArray( json.sh );\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON( meta ) {\n\n\t\tconst data = super.toJSON( meta );\n\n\t\tdata.object.sh = this.sh.toArray();\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass MaterialLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\t\tthis.textures = {};\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( scope.manager );\n\t\tloader.setPath( scope.path );\n\t\tloader.setRequestHeader( scope.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst textures = this.textures;\n\n\t\tfunction getTexture( name ) {\n\n\t\t\tif ( textures[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.MaterialLoader: Undefined texture', name );\n\n\t\t\t}\n\n\t\t\treturn textures[ name ];\n\n\t\t}\n\n\t\tconst material = MaterialLoader.createMaterialFromType( json.type );\n\n\t\tif ( json.uuid !== undefined ) material.uuid = json.uuid;\n\t\tif ( json.name !== undefined ) material.name = json.name;\n\t\tif ( json.color !== undefined && material.color !== undefined ) material.color.setHex( json.color );\n\t\tif ( json.roughness !== undefined ) material.roughness = json.roughness;\n\t\tif ( json.metalness !== undefined ) material.metalness = json.metalness;\n\t\tif ( json.sheen !== undefined ) material.sheen = json.sheen;\n\t\tif ( json.sheenColor !== undefined ) material.sheenColor = new Color().setHex( json.sheenColor );\n\t\tif ( json.sheenRoughness !== undefined ) material.sheenRoughness = json.sheenRoughness;\n\t\tif ( json.emissive !== undefined && material.emissive !== undefined ) material.emissive.setHex( json.emissive );\n\t\tif ( json.specular !== undefined && material.specular !== undefined ) material.specular.setHex( json.specular );\n\t\tif ( json.specularIntensity !== undefined ) material.specularIntensity = json.specularIntensity;\n\t\tif ( json.specularColor !== undefined && material.specularColor !== undefined ) material.specularColor.setHex( json.specularColor );\n\t\tif ( json.shininess !== undefined ) material.shininess = json.shininess;\n\t\tif ( json.clearcoat !== undefined ) material.clearcoat = json.clearcoat;\n\t\tif ( json.clearcoatRoughness !== undefined ) material.clearcoatRoughness = json.clearcoatRoughness;\n\t\tif ( json.dispersion !== undefined ) material.dispersion = json.dispersion;\n\t\tif ( json.iridescence !== undefined ) material.iridescence = json.iridescence;\n\t\tif ( json.iridescenceIOR !== undefined ) material.iridescenceIOR = json.iridescenceIOR;\n\t\tif ( json.iridescenceThicknessRange !== undefined ) material.iridescenceThicknessRange = json.iridescenceThicknessRange;\n\t\tif ( json.transmission !== undefined ) material.transmission = json.transmission;\n\t\tif ( json.thickness !== undefined ) material.thickness = json.thickness;\n\t\tif ( json.attenuationDistance !== undefined ) material.attenuationDistance = json.attenuationDistance;\n\t\tif ( json.attenuationColor !== undefined && material.attenuationColor !== undefined ) material.attenuationColor.setHex( json.attenuationColor );\n\t\tif ( json.anisotropy !== undefined ) material.anisotropy = json.anisotropy;\n\t\tif ( json.anisotropyRotation !== undefined ) material.anisotropyRotation = json.anisotropyRotation;\n\t\tif ( json.fog !== undefined ) material.fog = json.fog;\n\t\tif ( json.flatShading !== undefined ) material.flatShading = json.flatShading;\n\t\tif ( json.blending !== undefined ) material.blending = json.blending;\n\t\tif ( json.combine !== undefined ) material.combine = json.combine;\n\t\tif ( json.side !== undefined ) material.side = json.side;\n\t\tif ( json.shadowSide !== undefined ) material.shadowSide = json.shadowSide;\n\t\tif ( json.opacity !== undefined ) material.opacity = json.opacity;\n\t\tif ( json.transparent !== undefined ) material.transparent = json.transparent;\n\t\tif ( json.alphaTest !== undefined ) material.alphaTest = json.alphaTest;\n\t\tif ( json.alphaHash !== undefined ) material.alphaHash = json.alphaHash;\n\t\tif ( json.depthFunc !== undefined ) material.depthFunc = json.depthFunc;\n\t\tif ( json.depthTest !== undefined ) material.depthTest = json.depthTest;\n\t\tif ( json.depthWrite !== undefined ) material.depthWrite = json.depthWrite;\n\t\tif ( json.colorWrite !== undefined ) material.colorWrite = json.colorWrite;\n\t\tif ( json.blendSrc !== undefined ) material.blendSrc = json.blendSrc;\n\t\tif ( json.blendDst !== undefined ) material.blendDst = json.blendDst;\n\t\tif ( json.blendEquation !== undefined ) material.blendEquation = json.blendEquation;\n\t\tif ( json.blendSrcAlpha !== undefined ) material.blendSrcAlpha = json.blendSrcAlpha;\n\t\tif ( json.blendDstAlpha !== undefined ) material.blendDstAlpha = json.blendDstAlpha;\n\t\tif ( json.blendEquationAlpha !== undefined ) material.blendEquationAlpha = json.blendEquationAlpha;\n\t\tif ( json.blendColor !== undefined && material.blendColor !== undefined ) material.blendColor.setHex( json.blendColor );\n\t\tif ( json.blendAlpha !== undefined ) material.blendAlpha = json.blendAlpha;\n\t\tif ( json.stencilWriteMask !== undefined ) material.stencilWriteMask = json.stencilWriteMask;\n\t\tif ( json.stencilFunc !== undefined ) material.stencilFunc = json.stencilFunc;\n\t\tif ( json.stencilRef !== undefined ) material.stencilRef = json.stencilRef;\n\t\tif ( json.stencilFuncMask !== undefined ) material.stencilFuncMask = json.stencilFuncMask;\n\t\tif ( json.stencilFail !== undefined ) material.stencilFail = json.stencilFail;\n\t\tif ( json.stencilZFail !== undefined ) material.stencilZFail = json.stencilZFail;\n\t\tif ( json.stencilZPass !== undefined ) material.stencilZPass = json.stencilZPass;\n\t\tif ( json.stencilWrite !== undefined ) material.stencilWrite = json.stencilWrite;\n\n\t\tif ( json.wireframe !== undefined ) material.wireframe = json.wireframe;\n\t\tif ( json.wireframeLinewidth !== undefined ) material.wireframeLinewidth = json.wireframeLinewidth;\n\t\tif ( json.wireframeLinecap !== undefined ) material.wireframeLinecap = json.wireframeLinecap;\n\t\tif ( json.wireframeLinejoin !== undefined ) material.wireframeLinejoin = json.wireframeLinejoin;\n\n\t\tif ( json.rotation !== undefined ) material.rotation = json.rotation;\n\n\t\tif ( json.linewidth !== undefined ) material.linewidth = json.linewidth;\n\t\tif ( json.dashSize !== undefined ) material.dashSize = json.dashSize;\n\t\tif ( json.gapSize !== undefined ) material.gapSize = json.gapSize;\n\t\tif ( json.scale !== undefined ) material.scale = json.scale;\n\n\t\tif ( json.polygonOffset !== undefined ) material.polygonOffset = json.polygonOffset;\n\t\tif ( json.polygonOffsetFactor !== undefined ) material.polygonOffsetFactor = json.polygonOffsetFactor;\n\t\tif ( json.polygonOffsetUnits !== undefined ) material.polygonOffsetUnits = json.polygonOffsetUnits;\n\n\t\tif ( json.dithering !== undefined ) material.dithering = json.dithering;\n\n\t\tif ( json.alphaToCoverage !== undefined ) material.alphaToCoverage = json.alphaToCoverage;\n\t\tif ( json.premultipliedAlpha !== undefined ) material.premultipliedAlpha = json.premultipliedAlpha;\n\t\tif ( json.forceSinglePass !== undefined ) material.forceSinglePass = json.forceSinglePass;\n\n\t\tif ( json.visible !== undefined ) material.visible = json.visible;\n\n\t\tif ( json.toneMapped !== undefined ) material.toneMapped = json.toneMapped;\n\n\t\tif ( json.userData !== undefined ) material.userData = json.userData;\n\n\t\tif ( json.vertexColors !== undefined ) {\n\n\t\t\tif ( typeof json.vertexColors === 'number' ) {\n\n\t\t\t\tmaterial.vertexColors = ( json.vertexColors > 0 ) ? true : false;\n\n\t\t\t} else {\n\n\t\t\t\tmaterial.vertexColors = json.vertexColors;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// Shader Material\n\n\t\tif ( json.uniforms !== undefined ) {\n\n\t\t\tfor ( const name in json.uniforms ) {\n\n\t\t\t\tconst uniform = json.uniforms[ name ];\n\n\t\t\t\tmaterial.uniforms[ name ] = {};\n\n\t\t\t\tswitch ( uniform.type ) {\n\n\t\t\t\t\tcase 't':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = getTexture( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'c':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Color().setHex( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v2':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector2().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v3':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector3().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'v4':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Vector4().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'm3':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Matrix3().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'm4':\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = new Matrix4().fromArray( uniform.value );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tmaterial.uniforms[ name ].value = uniform.value;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json.defines !== undefined ) material.defines = json.defines;\n\t\tif ( json.vertexShader !== undefined ) material.vertexShader = json.vertexShader;\n\t\tif ( json.fragmentShader !== undefined ) material.fragmentShader = json.fragmentShader;\n\t\tif ( json.glslVersion !== undefined ) material.glslVersion = json.glslVersion;\n\n\t\tif ( json.extensions !== undefined ) {\n\n\t\t\tfor ( const key in json.extensions ) {\n\n\t\t\t\tmaterial.extensions[ key ] = json.extensions[ key ];\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json.lights !== undefined ) material.lights = json.lights;\n\t\tif ( json.clipping !== undefined ) material.clipping = json.clipping;\n\n\t\t// for PointsMaterial\n\n\t\tif ( json.size !== undefined ) material.size = json.size;\n\t\tif ( json.sizeAttenuation !== undefined ) material.sizeAttenuation = json.sizeAttenuation;\n\n\t\t// maps\n\n\t\tif ( json.map !== undefined ) material.map = getTexture( json.map );\n\t\tif ( json.matcap !== undefined ) material.matcap = getTexture( json.matcap );\n\n\t\tif ( json.alphaMap !== undefined ) material.alphaMap = getTexture( json.alphaMap );\n\n\t\tif ( json.bumpMap !== undefined ) material.bumpMap = getTexture( json.bumpMap );\n\t\tif ( json.bumpScale !== undefined ) material.bumpScale = json.bumpScale;\n\n\t\tif ( json.normalMap !== undefined ) material.normalMap = getTexture( json.normalMap );\n\t\tif ( json.normalMapType !== undefined ) material.normalMapType = json.normalMapType;\n\t\tif ( json.normalScale !== undefined ) {\n\n\t\t\tlet normalScale = json.normalScale;\n\n\t\t\tif ( Array.isArray( normalScale ) === false ) {\n\n\t\t\t\t// Blender exporter used to export a scalar. See #7459\n\n\t\t\t\tnormalScale = [ normalScale, normalScale ];\n\n\t\t\t}\n\n\t\t\tmaterial.normalScale = new Vector2().fromArray( normalScale );\n\n\t\t}\n\n\t\tif ( json.displacementMap !== undefined ) material.displacementMap = getTexture( json.displacementMap );\n\t\tif ( json.displacementScale !== undefined ) material.displacementScale = json.displacementScale;\n\t\tif ( json.displacementBias !== undefined ) material.displacementBias = json.displacementBias;\n\n\t\tif ( json.roughnessMap !== undefined ) material.roughnessMap = getTexture( json.roughnessMap );\n\t\tif ( json.metalnessMap !== undefined ) material.metalnessMap = getTexture( json.metalnessMap );\n\n\t\tif ( json.emissiveMap !== undefined ) material.emissiveMap = getTexture( json.emissiveMap );\n\t\tif ( json.emissiveIntensity !== undefined ) material.emissiveIntensity = json.emissiveIntensity;\n\n\t\tif ( json.specularMap !== undefined ) material.specularMap = getTexture( json.specularMap );\n\t\tif ( json.specularIntensityMap !== undefined ) material.specularIntensityMap = getTexture( json.specularIntensityMap );\n\t\tif ( json.specularColorMap !== undefined ) material.specularColorMap = getTexture( json.specularColorMap );\n\n\t\tif ( json.envMap !== undefined ) material.envMap = getTexture( json.envMap );\n\t\tif ( json.envMapRotation !== undefined ) material.envMapRotation.fromArray( json.envMapRotation );\n\t\tif ( json.envMapIntensity !== undefined ) material.envMapIntensity = json.envMapIntensity;\n\n\t\tif ( json.reflectivity !== undefined ) material.reflectivity = json.reflectivity;\n\t\tif ( json.refractionRatio !== undefined ) material.refractionRatio = json.refractionRatio;\n\n\t\tif ( json.lightMap !== undefined ) material.lightMap = getTexture( json.lightMap );\n\t\tif ( json.lightMapIntensity !== undefined ) material.lightMapIntensity = json.lightMapIntensity;\n\n\t\tif ( json.aoMap !== undefined ) material.aoMap = getTexture( json.aoMap );\n\t\tif ( json.aoMapIntensity !== undefined ) material.aoMapIntensity = json.aoMapIntensity;\n\n\t\tif ( json.gradientMap !== undefined ) material.gradientMap = getTexture( json.gradientMap );\n\n\t\tif ( json.clearcoatMap !== undefined ) material.clearcoatMap = getTexture( json.clearcoatMap );\n\t\tif ( json.clearcoatRoughnessMap !== undefined ) material.clearcoatRoughnessMap = getTexture( json.clearcoatRoughnessMap );\n\t\tif ( json.clearcoatNormalMap !== undefined ) material.clearcoatNormalMap = getTexture( json.clearcoatNormalMap );\n\t\tif ( json.clearcoatNormalScale !== undefined ) material.clearcoatNormalScale = new Vector2().fromArray( json.clearcoatNormalScale );\n\n\t\tif ( json.iridescenceMap !== undefined ) material.iridescenceMap = getTexture( json.iridescenceMap );\n\t\tif ( json.iridescenceThicknessMap !== undefined ) material.iridescenceThicknessMap = getTexture( json.iridescenceThicknessMap );\n\n\t\tif ( json.transmissionMap !== undefined ) material.transmissionMap = getTexture( json.transmissionMap );\n\t\tif ( json.thicknessMap !== undefined ) material.thicknessMap = getTexture( json.thicknessMap );\n\n\t\tif ( json.anisotropyMap !== undefined ) material.anisotropyMap = getTexture( json.anisotropyMap );\n\n\t\tif ( json.sheenColorMap !== undefined ) material.sheenColorMap = getTexture( json.sheenColorMap );\n\t\tif ( json.sheenRoughnessMap !== undefined ) material.sheenRoughnessMap = getTexture( json.sheenRoughnessMap );\n\n\t\treturn material;\n\n\t}\n\n\tsetTextures( value ) {\n\n\t\tthis.textures = value;\n\t\treturn this;\n\n\t}\n\n\tstatic createMaterialFromType( type ) {\n\n\t\tconst materialLib = {\n\t\t\tShadowMaterial,\n\t\t\tSpriteMaterial,\n\t\t\tRawShaderMaterial,\n\t\t\tShaderMaterial,\n\t\t\tPointsMaterial,\n\t\t\tMeshPhysicalMaterial,\n\t\t\tMeshStandardMaterial,\n\t\t\tMeshPhongMaterial,\n\t\t\tMeshToonMaterial,\n\t\t\tMeshNormalMaterial,\n\t\t\tMeshLambertMaterial,\n\t\t\tMeshDepthMaterial,\n\t\t\tMeshDistanceMaterial,\n\t\t\tMeshBasicMaterial,\n\t\t\tMeshMatcapMaterial,\n\t\t\tLineDashedMaterial,\n\t\t\tLineBasicMaterial,\n\t\t\tMaterial\n\t\t};\n\n\t\treturn new materialLib[ type ]();\n\n\t}\n\n}\n\nclass LoaderUtils {\n\n\tstatic decodeText( array ) { // @deprecated, r165\n\n\t\tconsole.warn( 'THREE.LoaderUtils: decodeText() has been deprecated with r165 and will be removed with r175. Use TextDecoder instead.' );\n\n\t\tif ( typeof TextDecoder !== 'undefined' ) {\n\n\t\t\treturn new TextDecoder().decode( array );\n\n\t\t}\n\n\t\t// Avoid the String.fromCharCode.apply(null, array) shortcut, which\n\t\t// throws a \"maximum call stack size exceeded\" error for large arrays.\n\n\t\tlet s = '';\n\n\t\tfor ( let i = 0, il = array.length; i < il; i ++ ) {\n\n\t\t\t// Implicitly assumes little-endian.\n\t\t\ts += String.fromCharCode( array[ i ] );\n\n\t\t}\n\n\t\ttry {\n\n\t\t\t// merges multi-byte utf-8 characters.\n\n\t\t\treturn decodeURIComponent( escape( s ) );\n\n\t\t} catch ( e ) { // see #16358\n\n\t\t\treturn s;\n\n\t\t}\n\n\t}\n\n\tstatic extractUrlBase( url ) {\n\n\t\tconst index = url.lastIndexOf( '/' );\n\n\t\tif ( index === - 1 ) return './';\n\n\t\treturn url.slice( 0, index + 1 );\n\n\t}\n\n\tstatic resolveURL( url, path ) {\n\n\t\t// Invalid URL\n\t\tif ( typeof url !== 'string' || url === '' ) return '';\n\n\t\t// Host Relative URL\n\t\tif ( /^https?:\\/\\//i.test( path ) && /^\\//.test( url ) ) {\n\n\t\t\tpath = path.replace( /(^https?:\\/\\/[^\\/]+).*/i, '$1' );\n\n\t\t}\n\n\t\t// Absolute URL http://,https://,//\n\t\tif ( /^(https?:)?\\/\\//i.test( url ) ) return url;\n\n\t\t// Data URI\n\t\tif ( /^data:.*,.*$/i.test( url ) ) return url;\n\n\t\t// Blob URL\n\t\tif ( /^blob:.*$/i.test( url ) ) return url;\n\n\t\t// Relative URL\n\t\treturn path + url;\n\n\t}\n\n}\n\nclass InstancedBufferGeometry extends BufferGeometry {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isInstancedBufferGeometry = true;\n\n\t\tthis.type = 'InstancedBufferGeometry';\n\t\tthis.instanceCount = Infinity;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.instanceCount = source.instanceCount;\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\tconst data = super.toJSON();\n\n\t\tdata.instanceCount = this.instanceCount;\n\n\t\tdata.isInstancedBufferGeometry = true;\n\n\t\treturn data;\n\n\t}\n\n}\n\nclass BufferGeometryLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( scope.manager );\n\t\tloader.setPath( scope.path );\n\t\tloader.setRequestHeader( scope.requestHeader );\n\t\tloader.setWithCredentials( scope.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\ttry {\n\n\t\t\t\tonLoad( scope.parse( JSON.parse( text ) ) );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\tif ( onError ) {\n\n\t\t\t\t\tonError( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.error( e );\n\n\t\t\t\t}\n\n\t\t\t\tscope.manager.itemError( url );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tparse( json ) {\n\n\t\tconst interleavedBufferMap = {};\n\t\tconst arrayBufferMap = {};\n\n\t\tfunction getInterleavedBuffer( json, uuid ) {\n\n\t\t\tif ( interleavedBufferMap[ uuid ] !== undefined ) return interleavedBufferMap[ uuid ];\n\n\t\t\tconst interleavedBuffers = json.interleavedBuffers;\n\t\t\tconst interleavedBuffer = interleavedBuffers[ uuid ];\n\n\t\t\tconst buffer = getArrayBuffer( json, interleavedBuffer.buffer );\n\n\t\t\tconst array = getTypedArray( interleavedBuffer.type, buffer );\n\t\t\tconst ib = new InterleavedBuffer( array, interleavedBuffer.stride );\n\t\t\tib.uuid = interleavedBuffer.uuid;\n\n\t\t\tinterleavedBufferMap[ uuid ] = ib;\n\n\t\t\treturn ib;\n\n\t\t}\n\n\t\tfunction getArrayBuffer( json, uuid ) {\n\n\t\t\tif ( arrayBufferMap[ uuid ] !== undefined ) return arrayBufferMap[ uuid ];\n\n\t\t\tconst arrayBuffers = json.arrayBuffers;\n\t\t\tconst arrayBuffer = arrayBuffers[ uuid ];\n\n\t\t\tconst ab = new Uint32Array( arrayBuffer ).buffer;\n\n\t\t\tarrayBufferMap[ uuid ] = ab;\n\n\t\t\treturn ab;\n\n\t\t}\n\n\t\tconst geometry = json.isInstancedBufferGeometry ? new InstancedBufferGeometry() : new BufferGeometry();\n\n\t\tconst index = json.data.index;\n\n\t\tif ( index !== undefined ) {\n\n\t\t\tconst typedArray = getTypedArray( index.type, index.array );\n\t\t\tgeometry.setIndex( new BufferAttribute( typedArray, 1 ) );\n\n\t\t}\n\n\t\tconst attributes = json.data.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\t\t\tlet bufferAttribute;\n\n\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\tconst interleavedBuffer = getInterleavedBuffer( json.data, attribute.data );\n\t\t\t\tbufferAttribute = new InterleavedBufferAttribute( interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized );\n\n\t\t\t} else {\n\n\t\t\t\tconst typedArray = getTypedArray( attribute.type, attribute.array );\n\t\t\t\tconst bufferAttributeConstr = attribute.isInstancedBufferAttribute ? InstancedBufferAttribute : BufferAttribute;\n\t\t\t\tbufferAttribute = new bufferAttributeConstr( typedArray, attribute.itemSize, attribute.normalized );\n\n\t\t\t}\n\n\t\t\tif ( attribute.name !== undefined ) bufferAttribute.name = attribute.name;\n\t\t\tif ( attribute.usage !== undefined ) bufferAttribute.setUsage( attribute.usage );\n\n\t\t\tgeometry.setAttribute( key, bufferAttribute );\n\n\t\t}\n\n\t\tconst morphAttributes = json.data.morphAttributes;\n\n\t\tif ( morphAttributes ) {\n\n\t\t\tfor ( const key in morphAttributes ) {\n\n\t\t\t\tconst attributeArray = morphAttributes[ key ];\n\n\t\t\t\tconst array = [];\n\n\t\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst attribute = attributeArray[ i ];\n\t\t\t\t\tlet bufferAttribute;\n\n\t\t\t\t\tif ( attribute.isInterleavedBufferAttribute ) {\n\n\t\t\t\t\t\tconst interleavedBuffer = getInterleavedBuffer( json.data, attribute.data );\n\t\t\t\t\t\tbufferAttribute = new InterleavedBufferAttribute( interleavedBuffer, attribute.itemSize, attribute.offset, attribute.normalized );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst typedArray = getTypedArray( attribute.type, attribute.array );\n\t\t\t\t\t\tbufferAttribute = new BufferAttribute( typedArray, attribute.itemSize, attribute.normalized );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( attribute.name !== undefined ) bufferAttribute.name = attribute.name;\n\t\t\t\t\tarray.push( bufferAttribute );\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.morphAttributes[ key ] = array;\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst morphTargetsRelative = json.data.morphTargetsRelative;\n\n\t\tif ( morphTargetsRelative ) {\n\n\t\t\tgeometry.morphTargetsRelative = true;\n\n\t\t}\n\n\t\tconst groups = json.data.groups || json.data.drawcalls || json.data.offsets;\n\n\t\tif ( groups !== undefined ) {\n\n\t\t\tfor ( let i = 0, n = groups.length; i !== n; ++ i ) {\n\n\t\t\t\tconst group = groups[ i ];\n\n\t\t\t\tgeometry.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst boundingSphere = json.data.boundingSphere;\n\n\t\tif ( boundingSphere !== undefined ) {\n\n\t\t\tconst center = new Vector3();\n\n\t\t\tif ( boundingSphere.center !== undefined ) {\n\n\t\t\t\tcenter.fromArray( boundingSphere.center );\n\n\t\t\t}\n\n\t\t\tgeometry.boundingSphere = new Sphere( center, boundingSphere.radius );\n\n\t\t}\n\n\t\tif ( json.name ) geometry.name = json.name;\n\t\tif ( json.userData ) geometry.userData = json.userData;\n\n\t\treturn geometry;\n\n\t}\n\n}\n\nclass ObjectLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( this.path === '' ) ? LoaderUtils.extractUrlBase( url ) : this.path;\n\t\tthis.resourcePath = this.resourcePath || path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( text ) {\n\n\t\t\tlet json = null;\n\n\t\t\ttry {\n\n\t\t\t\tjson = JSON.parse( text );\n\n\t\t\t} catch ( error ) {\n\n\t\t\t\tif ( onError !== undefined ) onError( error );\n\n\t\t\t\tconsole.error( 'THREE:ObjectLoader: Can\\'t parse ' + url + '.', error.message );\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tconst metadata = json.metadata;\n\n\t\t\tif ( metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry' ) {\n\n\t\t\t\tif ( onError !== undefined ) onError( new Error( 'THREE.ObjectLoader: Can\\'t load ' + url ) );\n\n\t\t\t\tconsole.error( 'THREE.ObjectLoader: Can\\'t load ' + url );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tscope.parse( json, onLoad );\n\n\t\t}, onProgress, onError );\n\n\t}\n\n\tasync loadAsync( url, onProgress ) {\n\n\t\tconst scope = this;\n\n\t\tconst path = ( this.path === '' ) ? LoaderUtils.extractUrlBase( url ) : this.path;\n\t\tthis.resourcePath = this.resourcePath || path;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\n\t\tconst text = await loader.loadAsync( url, onProgress );\n\n\t\tconst json = JSON.parse( text );\n\n\t\tconst metadata = json.metadata;\n\n\t\tif ( metadata === undefined || metadata.type === undefined || metadata.type.toLowerCase() === 'geometry' ) {\n\n\t\t\tthrow new Error( 'THREE.ObjectLoader: Can\\'t load ' + url );\n\n\t\t}\n\n\t\treturn await scope.parseAsync( json );\n\n\t}\n\n\tparse( json, onLoad ) {\n\n\t\tconst animations = this.parseAnimations( json.animations );\n\t\tconst shapes = this.parseShapes( json.shapes );\n\t\tconst geometries = this.parseGeometries( json.geometries, shapes );\n\n\t\tconst images = this.parseImages( json.images, function () {\n\n\t\t\tif ( onLoad !== undefined ) onLoad( object );\n\n\t\t} );\n\n\t\tconst textures = this.parseTextures( json.textures, images );\n\t\tconst materials = this.parseMaterials( json.materials, textures );\n\n\t\tconst object = this.parseObject( json.object, geometries, materials, textures, animations );\n\t\tconst skeletons = this.parseSkeletons( json.skeletons, object );\n\n\t\tthis.bindSkeletons( object, skeletons );\n\t\tthis.bindLightTargets( object );\n\n\t\t//\n\n\t\tif ( onLoad !== undefined ) {\n\n\t\t\tlet hasImages = false;\n\n\t\t\tfor ( const uuid in images ) {\n\n\t\t\t\tif ( images[ uuid ].data instanceof HTMLImageElement ) {\n\n\t\t\t\t\thasImages = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( hasImages === false ) onLoad( object );\n\n\t\t}\n\n\t\treturn object;\n\n\t}\n\n\tasync parseAsync( json ) {\n\n\t\tconst animations = this.parseAnimations( json.animations );\n\t\tconst shapes = this.parseShapes( json.shapes );\n\t\tconst geometries = this.parseGeometries( json.geometries, shapes );\n\n\t\tconst images = await this.parseImagesAsync( json.images );\n\n\t\tconst textures = this.parseTextures( json.textures, images );\n\t\tconst materials = this.parseMaterials( json.materials, textures );\n\n\t\tconst object = this.parseObject( json.object, geometries, materials, textures, animations );\n\t\tconst skeletons = this.parseSkeletons( json.skeletons, object );\n\n\t\tthis.bindSkeletons( object, skeletons );\n\t\tthis.bindLightTargets( object );\n\n\t\treturn object;\n\n\t}\n\n\tparseShapes( json ) {\n\n\t\tconst shapes = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst shape = new Shape().fromJSON( json[ i ] );\n\n\t\t\t\tshapes[ shape.uuid ] = shape;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn shapes;\n\n\t}\n\n\tparseSkeletons( json, object ) {\n\n\t\tconst skeletons = {};\n\t\tconst bones = {};\n\n\t\t// generate bone lookup table\n\n\t\tobject.traverse( function ( child ) {\n\n\t\t\tif ( child.isBone ) bones[ child.uuid ] = child;\n\n\t\t} );\n\n\t\t// create skeletons\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst skeleton = new Skeleton().fromJSON( json[ i ], bones );\n\n\t\t\t\tskeletons[ skeleton.uuid ] = skeleton;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn skeletons;\n\n\t}\n\n\tparseGeometries( json, shapes ) {\n\n\t\tconst geometries = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tconst bufferGeometryLoader = new BufferGeometryLoader();\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tlet geometry;\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tswitch ( data.type ) {\n\n\t\t\t\t\tcase 'BufferGeometry':\n\t\t\t\t\tcase 'InstancedBufferGeometry':\n\n\t\t\t\t\t\tgeometry = bufferGeometryLoader.parse( data );\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\n\t\t\t\t\t\tif ( data.type in Geometries ) {\n\n\t\t\t\t\t\t\tgeometry = Geometries[ data.type ].fromJSON( data, shapes );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tconsole.warn( `THREE.ObjectLoader: Unsupported geometry type \"${ data.type }\"` );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tgeometry.uuid = data.uuid;\n\n\t\t\t\tif ( data.name !== undefined ) geometry.name = data.name;\n\t\t\t\tif ( data.userData !== undefined ) geometry.userData = data.userData;\n\n\t\t\t\tgeometries[ data.uuid ] = geometry;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn geometries;\n\n\t}\n\n\tparseMaterials( json, textures ) {\n\n\t\tconst cache = {}; // MultiMaterial\n\t\tconst materials = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tconst loader = new MaterialLoader();\n\t\t\tloader.setTextures( textures );\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tif ( cache[ data.uuid ] === undefined ) {\n\n\t\t\t\t\tcache[ data.uuid ] = loader.parse( data );\n\n\t\t\t\t}\n\n\t\t\t\tmaterials[ data.uuid ] = cache[ data.uuid ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn materials;\n\n\t}\n\n\tparseAnimations( json ) {\n\n\t\tconst animations = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0; i < json.length; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tconst clip = AnimationClip.parse( data );\n\n\t\t\t\tanimations[ clip.uuid ] = clip;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn animations;\n\n\t}\n\n\tparseImages( json, onLoad ) {\n\n\t\tconst scope = this;\n\t\tconst images = {};\n\n\t\tlet loader;\n\n\t\tfunction loadImage( url ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\treturn loader.load( url, function () {\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, undefined, function () {\n\n\t\t\t\tscope.manager.itemError( url );\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t} );\n\n\t\t}\n\n\t\tfunction deserializeImage( image ) {\n\n\t\t\tif ( typeof image === 'string' ) {\n\n\t\t\t\tconst url = image;\n\n\t\t\t\tconst path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test( url ) ? url : scope.resourcePath + url;\n\n\t\t\t\treturn loadImage( path );\n\n\t\t\t} else {\n\n\t\t\t\tif ( image.data ) {\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata: getTypedArray( image.type, image.data ),\n\t\t\t\t\t\twidth: image.width,\n\t\t\t\t\t\theight: image.height\n\t\t\t\t\t};\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json !== undefined && json.length > 0 ) {\n\n\t\t\tconst manager = new LoadingManager( onLoad );\n\n\t\t\tloader = new ImageLoader( manager );\n\t\t\tloader.setCrossOrigin( this.crossOrigin );\n\n\t\t\tfor ( let i = 0, il = json.length; i < il; i ++ ) {\n\n\t\t\t\tconst image = json[ i ];\n\t\t\t\tconst url = image.url;\n\n\t\t\t\tif ( Array.isArray( url ) ) {\n\n\t\t\t\t\t// load array of images e.g CubeTexture\n\n\t\t\t\t\tconst imageArray = [];\n\n\t\t\t\t\tfor ( let j = 0, jl = url.length; j < jl; j ++ ) {\n\n\t\t\t\t\t\tconst currentUrl = url[ j ];\n\n\t\t\t\t\t\tconst deserializedImage = deserializeImage( currentUrl );\n\n\t\t\t\t\t\tif ( deserializedImage !== null ) {\n\n\t\t\t\t\t\t\tif ( deserializedImage instanceof HTMLImageElement ) {\n\n\t\t\t\t\t\t\t\timageArray.push( deserializedImage );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// special case: handle array of data textures for cube textures\n\n\t\t\t\t\t\t\t\timageArray.push( new DataTexture( deserializedImage.data, deserializedImage.width, deserializedImage.height ) );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\timages[ image.uuid ] = new Source( imageArray );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// load single image\n\n\t\t\t\t\tconst deserializedImage = deserializeImage( image.url );\n\t\t\t\t\timages[ image.uuid ] = new Source( deserializedImage );\n\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn images;\n\n\t}\n\n\tasync parseImagesAsync( json ) {\n\n\t\tconst scope = this;\n\t\tconst images = {};\n\n\t\tlet loader;\n\n\t\tasync function deserializeImage( image ) {\n\n\t\t\tif ( typeof image === 'string' ) {\n\n\t\t\t\tconst url = image;\n\n\t\t\t\tconst path = /^(\\/\\/)|([a-z]+:(\\/\\/)?)/i.test( url ) ? url : scope.resourcePath + url;\n\n\t\t\t\treturn await loader.loadAsync( path );\n\n\t\t\t} else {\n\n\t\t\t\tif ( image.data ) {\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdata: getTypedArray( image.type, image.data ),\n\t\t\t\t\t\twidth: image.width,\n\t\t\t\t\t\theight: image.height\n\t\t\t\t\t};\n\n\t\t\t\t} else {\n\n\t\t\t\t\treturn null;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( json !== undefined && json.length > 0 ) {\n\n\t\t\tloader = new ImageLoader( this.manager );\n\t\t\tloader.setCrossOrigin( this.crossOrigin );\n\n\t\t\tfor ( let i = 0, il = json.length; i < il; i ++ ) {\n\n\t\t\t\tconst image = json[ i ];\n\t\t\t\tconst url = image.url;\n\n\t\t\t\tif ( Array.isArray( url ) ) {\n\n\t\t\t\t\t// load array of images e.g CubeTexture\n\n\t\t\t\t\tconst imageArray = [];\n\n\t\t\t\t\tfor ( let j = 0, jl = url.length; j < jl; j ++ ) {\n\n\t\t\t\t\t\tconst currentUrl = url[ j ];\n\n\t\t\t\t\t\tconst deserializedImage = await deserializeImage( currentUrl );\n\n\t\t\t\t\t\tif ( deserializedImage !== null ) {\n\n\t\t\t\t\t\t\tif ( deserializedImage instanceof HTMLImageElement ) {\n\n\t\t\t\t\t\t\t\timageArray.push( deserializedImage );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// special case: handle array of data textures for cube textures\n\n\t\t\t\t\t\t\t\timageArray.push( new DataTexture( deserializedImage.data, deserializedImage.width, deserializedImage.height ) );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\timages[ image.uuid ] = new Source( imageArray );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// load single image\n\n\t\t\t\t\tconst deserializedImage = await deserializeImage( image.url );\n\t\t\t\t\timages[ image.uuid ] = new Source( deserializedImage );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn images;\n\n\t}\n\n\tparseTextures( json, images ) {\n\n\t\tfunction parseConstant( value, type ) {\n\n\t\t\tif ( typeof value === 'number' ) return value;\n\n\t\t\tconsole.warn( 'THREE.ObjectLoader.parseTexture: Constant should be in numeric form.', value );\n\n\t\t\treturn type[ value ];\n\n\t\t}\n\n\t\tconst textures = {};\n\n\t\tif ( json !== undefined ) {\n\n\t\t\tfor ( let i = 0, l = json.length; i < l; i ++ ) {\n\n\t\t\t\tconst data = json[ i ];\n\n\t\t\t\tif ( data.image === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: No \"image\" specified for', data.uuid );\n\n\t\t\t\t}\n\n\t\t\t\tif ( images[ data.image ] === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined image', data.image );\n\n\t\t\t\t}\n\n\t\t\t\tconst source = images[ data.image ];\n\t\t\t\tconst image = source.data;\n\n\t\t\t\tlet texture;\n\n\t\t\t\tif ( Array.isArray( image ) ) {\n\n\t\t\t\t\ttexture = new CubeTexture();\n\n\t\t\t\t\tif ( image.length === 6 ) texture.needsUpdate = true;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( image && image.data ) {\n\n\t\t\t\t\t\ttexture = new DataTexture();\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\ttexture = new Texture();\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( image ) texture.needsUpdate = true; // textures can have undefined image data\n\n\t\t\t\t}\n\n\t\t\t\ttexture.source = source;\n\n\t\t\t\ttexture.uuid = data.uuid;\n\n\t\t\t\tif ( data.name !== undefined ) texture.name = data.name;\n\n\t\t\t\tif ( data.mapping !== undefined ) texture.mapping = parseConstant( data.mapping, TEXTURE_MAPPING );\n\t\t\t\tif ( data.channel !== undefined ) texture.channel = data.channel;\n\n\t\t\t\tif ( data.offset !== undefined ) texture.offset.fromArray( data.offset );\n\t\t\t\tif ( data.repeat !== undefined ) texture.repeat.fromArray( data.repeat );\n\t\t\t\tif ( data.center !== undefined ) texture.center.fromArray( data.center );\n\t\t\t\tif ( data.rotation !== undefined ) texture.rotation = data.rotation;\n\n\t\t\t\tif ( data.wrap !== undefined ) {\n\n\t\t\t\t\ttexture.wrapS = parseConstant( data.wrap[ 0 ], TEXTURE_WRAPPING );\n\t\t\t\t\ttexture.wrapT = parseConstant( data.wrap[ 1 ], TEXTURE_WRAPPING );\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.format !== undefined ) texture.format = data.format;\n\t\t\t\tif ( data.internalFormat !== undefined ) texture.internalFormat = data.internalFormat;\n\t\t\t\tif ( data.type !== undefined ) texture.type = data.type;\n\t\t\t\tif ( data.colorSpace !== undefined ) texture.colorSpace = data.colorSpace;\n\n\t\t\t\tif ( data.minFilter !== undefined ) texture.minFilter = parseConstant( data.minFilter, TEXTURE_FILTER );\n\t\t\t\tif ( data.magFilter !== undefined ) texture.magFilter = parseConstant( data.magFilter, TEXTURE_FILTER );\n\t\t\t\tif ( data.anisotropy !== undefined ) texture.anisotropy = data.anisotropy;\n\n\t\t\t\tif ( data.flipY !== undefined ) texture.flipY = data.flipY;\n\n\t\t\t\tif ( data.generateMipmaps !== undefined ) texture.generateMipmaps = data.generateMipmaps;\n\t\t\t\tif ( data.premultiplyAlpha !== undefined ) texture.premultiplyAlpha = data.premultiplyAlpha;\n\t\t\t\tif ( data.unpackAlignment !== undefined ) texture.unpackAlignment = data.unpackAlignment;\n\t\t\t\tif ( data.compareFunction !== undefined ) texture.compareFunction = data.compareFunction;\n\n\t\t\t\tif ( data.userData !== undefined ) texture.userData = data.userData;\n\n\t\t\t\ttextures[ data.uuid ] = texture;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn textures;\n\n\t}\n\n\tparseObject( data, geometries, materials, textures, animations ) {\n\n\t\tlet object;\n\n\t\tfunction getGeometry( name ) {\n\n\t\t\tif ( geometries[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined geometry', name );\n\n\t\t\t}\n\n\t\t\treturn geometries[ name ];\n\n\t\t}\n\n\t\tfunction getMaterial( name ) {\n\n\t\t\tif ( name === undefined ) return undefined;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\n\t\t\t\tconst array = [];\n\n\t\t\t\tfor ( let i = 0, l = name.length; i < l; i ++ ) {\n\n\t\t\t\t\tconst uuid = name[ i ];\n\n\t\t\t\t\tif ( materials[ uuid ] === undefined ) {\n\n\t\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined material', uuid );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tarray.push( materials[ uuid ] );\n\n\t\t\t\t}\n\n\t\t\t\treturn array;\n\n\t\t\t}\n\n\t\t\tif ( materials[ name ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined material', name );\n\n\t\t\t}\n\n\t\t\treturn materials[ name ];\n\n\t\t}\n\n\t\tfunction getTexture( uuid ) {\n\n\t\t\tif ( textures[ uuid ] === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.ObjectLoader: Undefined texture', uuid );\n\n\t\t\t}\n\n\t\t\treturn textures[ uuid ];\n\n\t\t}\n\n\t\tlet geometry, material;\n\n\t\tswitch ( data.type ) {\n\n\t\t\tcase 'Scene':\n\n\t\t\t\tobject = new Scene();\n\n\t\t\t\tif ( data.background !== undefined ) {\n\n\t\t\t\t\tif ( Number.isInteger( data.background ) ) {\n\n\t\t\t\t\t\tobject.background = new Color( data.background );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tobject.background = getTexture( data.background );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.environment !== undefined ) {\n\n\t\t\t\t\tobject.environment = getTexture( data.environment );\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.fog !== undefined ) {\n\n\t\t\t\t\tif ( data.fog.type === 'Fog' ) {\n\n\t\t\t\t\t\tobject.fog = new Fog( data.fog.color, data.fog.near, data.fog.far );\n\n\t\t\t\t\t} else if ( data.fog.type === 'FogExp2' ) {\n\n\t\t\t\t\t\tobject.fog = new FogExp2( data.fog.color, data.fog.density );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( data.fog.name !== '' ) {\n\n\t\t\t\t\t\tobject.fog.name = data.fog.name;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tif ( data.backgroundBlurriness !== undefined ) object.backgroundBlurriness = data.backgroundBlurriness;\n\t\t\t\tif ( data.backgroundIntensity !== undefined ) object.backgroundIntensity = data.backgroundIntensity;\n\t\t\t\tif ( data.backgroundRotation !== undefined ) object.backgroundRotation.fromArray( data.backgroundRotation );\n\n\t\t\t\tif ( data.environmentIntensity !== undefined ) object.environmentIntensity = data.environmentIntensity;\n\t\t\t\tif ( data.environmentRotation !== undefined ) object.environmentRotation.fromArray( data.environmentRotation );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PerspectiveCamera':\n\n\t\t\t\tobject = new PerspectiveCamera( data.fov, data.aspect, data.near, data.far );\n\n\t\t\t\tif ( data.focus !== undefined ) object.focus = data.focus;\n\t\t\t\tif ( data.zoom !== undefined ) object.zoom = data.zoom;\n\t\t\t\tif ( data.filmGauge !== undefined ) object.filmGauge = data.filmGauge;\n\t\t\t\tif ( data.filmOffset !== undefined ) object.filmOffset = data.filmOffset;\n\t\t\t\tif ( data.view !== undefined ) object.view = Object.assign( {}, data.view );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'OrthographicCamera':\n\n\t\t\t\tobject = new OrthographicCamera( data.left, data.right, data.top, data.bottom, data.near, data.far );\n\n\t\t\t\tif ( data.zoom !== undefined ) object.zoom = data.zoom;\n\t\t\t\tif ( data.view !== undefined ) object.view = Object.assign( {}, data.view );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'AmbientLight':\n\n\t\t\t\tobject = new AmbientLight( data.color, data.intensity );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'DirectionalLight':\n\n\t\t\t\tobject = new DirectionalLight( data.color, data.intensity );\n\t\t\t\tobject.target = data.target || '';\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PointLight':\n\n\t\t\t\tobject = new PointLight( data.color, data.intensity, data.distance, data.decay );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'RectAreaLight':\n\n\t\t\t\tobject = new RectAreaLight( data.color, data.intensity, data.width, data.height );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'SpotLight':\n\n\t\t\t\tobject = new SpotLight( data.color, data.intensity, data.distance, data.angle, data.penumbra, data.decay );\n\t\t\t\tobject.target = data.target || '';\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'HemisphereLight':\n\n\t\t\t\tobject = new HemisphereLight( data.color, data.groundColor, data.intensity );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LightProbe':\n\n\t\t\t\tobject = new LightProbe().fromJSON( data );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'SkinnedMesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t \tmaterial = getMaterial( data.material );\n\n\t\t\t\tobject = new SkinnedMesh( geometry, material );\n\n\t\t\t\tif ( data.bindMode !== undefined ) object.bindMode = data.bindMode;\n\t\t\t\tif ( data.bindMatrix !== undefined ) object.bindMatrix.fromArray( data.bindMatrix );\n\t\t\t\tif ( data.skeleton !== undefined ) object.skeleton = data.skeleton;\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Mesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t\tmaterial = getMaterial( data.material );\n\n\t\t\t\tobject = new Mesh( geometry, material );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'InstancedMesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t\tmaterial = getMaterial( data.material );\n\t\t\t\tconst count = data.count;\n\t\t\t\tconst instanceMatrix = data.instanceMatrix;\n\t\t\t\tconst instanceColor = data.instanceColor;\n\n\t\t\t\tobject = new InstancedMesh( geometry, material, count );\n\t\t\t\tobject.instanceMatrix = new InstancedBufferAttribute( new Float32Array( instanceMatrix.array ), 16 );\n\t\t\t\tif ( instanceColor !== undefined ) object.instanceColor = new InstancedBufferAttribute( new Float32Array( instanceColor.array ), instanceColor.itemSize );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'BatchedMesh':\n\n\t\t\t\tgeometry = getGeometry( data.geometry );\n\t\t\t\tmaterial = getMaterial( data.material );\n\n\t\t\t\tobject = new BatchedMesh( data.maxInstanceCount, data.maxVertexCount, data.maxIndexCount, material );\n\t\t\t\tobject.geometry = geometry;\n\t\t\t\tobject.perObjectFrustumCulled = data.perObjectFrustumCulled;\n\t\t\t\tobject.sortObjects = data.sortObjects;\n\n\t\t\t\tobject._drawRanges = data.drawRanges;\n\t\t\t\tobject._reservedRanges = data.reservedRanges;\n\n\t\t\t\tobject._visibility = data.visibility;\n\t\t\t\tobject._active = data.active;\n\t\t\t\tobject._bounds = data.bounds.map( bound => {\n\n\t\t\t\t\tconst box = new Box3();\n\t\t\t\t\tbox.min.fromArray( bound.boxMin );\n\t\t\t\t\tbox.max.fromArray( bound.boxMax );\n\n\t\t\t\t\tconst sphere = new Sphere();\n\t\t\t\t\tsphere.radius = bound.sphereRadius;\n\t\t\t\t\tsphere.center.fromArray( bound.sphereCenter );\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tboxInitialized: bound.boxInitialized,\n\t\t\t\t\t\tbox: box,\n\n\t\t\t\t\t\tsphereInitialized: bound.sphereInitialized,\n\t\t\t\t\t\tsphere: sphere\n\t\t\t\t\t};\n\n\t\t\t\t} );\n\n\t\t\t\tobject._maxInstanceCount = data.maxInstanceCount;\n\t\t\t\tobject._maxVertexCount = data.maxVertexCount;\n\t\t\t\tobject._maxIndexCount = data.maxIndexCount;\n\n\t\t\t\tobject._geometryInitialized = data.geometryInitialized;\n\t\t\t\tobject._geometryCount = data.geometryCount;\n\n\t\t\t\tobject._matricesTexture = getTexture( data.matricesTexture.uuid );\n\t\t\t\tif ( data.colorsTexture !== undefined ) object._colorsTexture = getTexture( data.colorsTexture.uuid );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LOD':\n\n\t\t\t\tobject = new LOD();\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Line':\n\n\t\t\t\tobject = new Line( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LineLoop':\n\n\t\t\t\tobject = new LineLoop( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'LineSegments':\n\n\t\t\t\tobject = new LineSegments( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'PointCloud':\n\t\t\tcase 'Points':\n\n\t\t\t\tobject = new Points( getGeometry( data.geometry ), getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Sprite':\n\n\t\t\t\tobject = new Sprite( getMaterial( data.material ) );\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Group':\n\n\t\t\t\tobject = new Group();\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'Bone':\n\n\t\t\t\tobject = new Bone();\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tobject = new Object3D();\n\n\t\t}\n\n\t\tobject.uuid = data.uuid;\n\n\t\tif ( data.name !== undefined ) object.name = data.name;\n\n\t\tif ( data.matrix !== undefined ) {\n\n\t\t\tobject.matrix.fromArray( data.matrix );\n\n\t\t\tif ( data.matrixAutoUpdate !== undefined ) object.matrixAutoUpdate = data.matrixAutoUpdate;\n\t\t\tif ( object.matrixAutoUpdate ) object.matrix.decompose( object.position, object.quaternion, object.scale );\n\n\t\t} else {\n\n\t\t\tif ( data.position !== undefined ) object.position.fromArray( data.position );\n\t\t\tif ( data.rotation !== undefined ) object.rotation.fromArray( data.rotation );\n\t\t\tif ( data.quaternion !== undefined ) object.quaternion.fromArray( data.quaternion );\n\t\t\tif ( data.scale !== undefined ) object.scale.fromArray( data.scale );\n\n\t\t}\n\n\t\tif ( data.up !== undefined ) object.up.fromArray( data.up );\n\n\t\tif ( data.castShadow !== undefined ) object.castShadow = data.castShadow;\n\t\tif ( data.receiveShadow !== undefined ) object.receiveShadow = data.receiveShadow;\n\n\t\tif ( data.shadow ) {\n\n\t\t\tif ( data.shadow.intensity !== undefined ) object.shadow.intensity = data.shadow.intensity;\n\t\t\tif ( data.shadow.bias !== undefined ) object.shadow.bias = data.shadow.bias;\n\t\t\tif ( data.shadow.normalBias !== undefined ) object.shadow.normalBias = data.shadow.normalBias;\n\t\t\tif ( data.shadow.radius !== undefined ) object.shadow.radius = data.shadow.radius;\n\t\t\tif ( data.shadow.mapSize !== undefined ) object.shadow.mapSize.fromArray( data.shadow.mapSize );\n\t\t\tif ( data.shadow.camera !== undefined ) object.shadow.camera = this.parseObject( data.shadow.camera );\n\n\t\t}\n\n\t\tif ( data.visible !== undefined ) object.visible = data.visible;\n\t\tif ( data.frustumCulled !== undefined ) object.frustumCulled = data.frustumCulled;\n\t\tif ( data.renderOrder !== undefined ) object.renderOrder = data.renderOrder;\n\t\tif ( data.userData !== undefined ) object.userData = data.userData;\n\t\tif ( data.layers !== undefined ) object.layers.mask = data.layers;\n\n\t\tif ( data.children !== undefined ) {\n\n\t\t\tconst children = data.children;\n\n\t\t\tfor ( let i = 0; i < children.length; i ++ ) {\n\n\t\t\t\tobject.add( this.parseObject( children[ i ], geometries, materials, textures, animations ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( data.animations !== undefined ) {\n\n\t\t\tconst objectAnimations = data.animations;\n\n\t\t\tfor ( let i = 0; i < objectAnimations.length; i ++ ) {\n\n\t\t\t\tconst uuid = objectAnimations[ i ];\n\n\t\t\t\tobject.animations.push( animations[ uuid ] );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( data.type === 'LOD' ) {\n\n\t\t\tif ( data.autoUpdate !== undefined ) object.autoUpdate = data.autoUpdate;\n\n\t\t\tconst levels = data.levels;\n\n\t\t\tfor ( let l = 0; l < levels.length; l ++ ) {\n\n\t\t\t\tconst level = levels[ l ];\n\t\t\t\tconst child = object.getObjectByProperty( 'uuid', level.object );\n\n\t\t\t\tif ( child !== undefined ) {\n\n\t\t\t\t\tobject.addLevel( child, level.distance, level.hysteresis );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn object;\n\n\t}\n\n\tbindSkeletons( object, skeletons ) {\n\n\t\tif ( Object.keys( skeletons ).length === 0 ) return;\n\n\t\tobject.traverse( function ( child ) {\n\n\t\t\tif ( child.isSkinnedMesh === true && child.skeleton !== undefined ) {\n\n\t\t\t\tconst skeleton = skeletons[ child.skeleton ];\n\n\t\t\t\tif ( skeleton === undefined ) {\n\n\t\t\t\t\tconsole.warn( 'THREE.ObjectLoader: No skeleton found with UUID:', child.skeleton );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tchild.bind( skeleton, child.bindMatrix );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n\tbindLightTargets( object ) {\n\n\t\tobject.traverse( function ( child ) {\n\n\t\t\tif ( child.isDirectionalLight || child.isSpotLight ) {\n\n\t\t\t\tconst uuid = child.target;\n\n\t\t\t\tconst target = object.getObjectByProperty( 'uuid', uuid );\n\n\t\t\t\tif ( target !== undefined ) {\n\n\t\t\t\t\tchild.target = target;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tchild.target = new Object3D();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} );\n\n\t}\n\n}\n\nconst TEXTURE_MAPPING = {\n\tUVMapping: UVMapping,\n\tCubeReflectionMapping: CubeReflectionMapping,\n\tCubeRefractionMapping: CubeRefractionMapping,\n\tEquirectangularReflectionMapping: EquirectangularReflectionMapping,\n\tEquirectangularRefractionMapping: EquirectangularRefractionMapping,\n\tCubeUVReflectionMapping: CubeUVReflectionMapping\n};\n\nconst TEXTURE_WRAPPING = {\n\tRepeatWrapping: RepeatWrapping,\n\tClampToEdgeWrapping: ClampToEdgeWrapping,\n\tMirroredRepeatWrapping: MirroredRepeatWrapping\n};\n\nconst TEXTURE_FILTER = {\n\tNearestFilter: NearestFilter,\n\tNearestMipmapNearestFilter: NearestMipmapNearestFilter,\n\tNearestMipmapLinearFilter: NearestMipmapLinearFilter,\n\tLinearFilter: LinearFilter,\n\tLinearMipmapNearestFilter: LinearMipmapNearestFilter,\n\tLinearMipmapLinearFilter: LinearMipmapLinearFilter\n};\n\nclass ImageBitmapLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tthis.isImageBitmapLoader = true;\n\n\t\tif ( typeof createImageBitmap === 'undefined' ) {\n\n\t\t\tconsole.warn( 'THREE.ImageBitmapLoader: createImageBitmap() not supported.' );\n\n\t\t}\n\n\t\tif ( typeof fetch === 'undefined' ) {\n\n\t\t\tconsole.warn( 'THREE.ImageBitmapLoader: fetch() not supported.' );\n\n\t\t}\n\n\t\tthis.options = { premultiplyAlpha: 'none' };\n\n\t}\n\n\tsetOptions( options ) {\n\n\t\tthis.options = options;\n\n\t\treturn this;\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tif ( url === undefined ) url = '';\n\n\t\tif ( this.path !== undefined ) url = this.path + url;\n\n\t\turl = this.manager.resolveURL( url );\n\n\t\tconst scope = this;\n\n\t\tconst cached = Cache.get( url );\n\n\t\tif ( cached !== undefined ) {\n\n\t\t\tscope.manager.itemStart( url );\n\n\t\t\t// If cached is a promise, wait for it to resolve\n\t\t\tif ( cached.then ) {\n\n\t\t\t\tcached.then( imageBitmap => {\n\n\t\t\t\t\tif ( onLoad ) onLoad( imageBitmap );\n\n\t\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t\t} ).catch( e => {\n\n\t\t\t\t\tif ( onError ) onError( e );\n\n\t\t\t\t} );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\t// If cached is not a promise (i.e., it's already an imageBitmap)\n\t\t\tsetTimeout( function () {\n\n\t\t\t\tif ( onLoad ) onLoad( cached );\n\n\t\t\t\tscope.manager.itemEnd( url );\n\n\t\t\t}, 0 );\n\n\t\t\treturn cached;\n\n\t\t}\n\n\t\tconst fetchOptions = {};\n\t\tfetchOptions.credentials = ( this.crossOrigin === 'anonymous' ) ? 'same-origin' : 'include';\n\t\tfetchOptions.headers = this.requestHeader;\n\n\t\tconst promise = fetch( url, fetchOptions ).then( function ( res ) {\n\n\t\t\treturn res.blob();\n\n\t\t} ).then( function ( blob ) {\n\n\t\t\treturn createImageBitmap( blob, Object.assign( scope.options, { colorSpaceConversion: 'none' } ) );\n\n\t\t} ).then( function ( imageBitmap ) {\n\n\t\t\tCache.add( url, imageBitmap );\n\n\t\t\tif ( onLoad ) onLoad( imageBitmap );\n\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t\treturn imageBitmap;\n\n\t\t} ).catch( function ( e ) {\n\n\t\t\tif ( onError ) onError( e );\n\n\t\t\tCache.remove( url );\n\n\t\t\tscope.manager.itemError( url );\n\t\t\tscope.manager.itemEnd( url );\n\n\t\t} );\n\n\t\tCache.add( url, promise );\n\t\tscope.manager.itemStart( url );\n\n\t}\n\n}\n\nlet _context;\n\nclass AudioContext {\n\n\tstatic getContext() {\n\n\t\tif ( _context === undefined ) {\n\n\t\t\t_context = new ( window.AudioContext || window.webkitAudioContext )();\n\n\t\t}\n\n\t\treturn _context;\n\n\t}\n\n\tstatic setContext( value ) {\n\n\t\t_context = value;\n\n\t}\n\n}\n\nclass AudioLoader extends Loader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tconst scope = this;\n\n\t\tconst loader = new FileLoader( this.manager );\n\t\tloader.setResponseType( 'arraybuffer' );\n\t\tloader.setPath( this.path );\n\t\tloader.setRequestHeader( this.requestHeader );\n\t\tloader.setWithCredentials( this.withCredentials );\n\t\tloader.load( url, function ( buffer ) {\n\n\t\t\ttry {\n\n\t\t\t\t// Create a copy of the buffer. The `decodeAudioData` method\n\t\t\t\t// detaches the buffer when complete, preventing reuse.\n\t\t\t\tconst bufferCopy = buffer.slice( 0 );\n\n\t\t\t\tconst context = AudioContext.getContext();\n\t\t\t\tcontext.decodeAudioData( bufferCopy, function ( audioBuffer ) {\n\n\t\t\t\t\tonLoad( audioBuffer );\n\n\t\t\t\t} ).catch( handleError );\n\n\t\t\t} catch ( e ) {\n\n\t\t\t\thandleError( e );\n\n\t\t\t}\n\n\t\t}, onProgress, onError );\n\n\t\tfunction handleError( e ) {\n\n\t\t\tif ( onError ) {\n\n\t\t\t\tonError( e );\n\n\t\t\t} else {\n\n\t\t\t\tconsole.error( e );\n\n\t\t\t}\n\n\t\t\tscope.manager.itemError( url );\n\n\t\t}\n\n\t}\n\n}\n\nconst _eyeRight = /*@__PURE__*/ new Matrix4();\nconst _eyeLeft = /*@__PURE__*/ new Matrix4();\nconst _projectionMatrix = /*@__PURE__*/ new Matrix4();\n\nclass StereoCamera {\n\n\tconstructor() {\n\n\t\tthis.type = 'StereoCamera';\n\n\t\tthis.aspect = 1;\n\n\t\tthis.eyeSep = 0.064;\n\n\t\tthis.cameraL = new PerspectiveCamera();\n\t\tthis.cameraL.layers.enable( 1 );\n\t\tthis.cameraL.matrixAutoUpdate = false;\n\n\t\tthis.cameraR = new PerspectiveCamera();\n\t\tthis.cameraR.layers.enable( 2 );\n\t\tthis.cameraR.matrixAutoUpdate = false;\n\n\t\tthis._cache = {\n\t\t\tfocus: null,\n\t\t\tfov: null,\n\t\t\taspect: null,\n\t\t\tnear: null,\n\t\t\tfar: null,\n\t\t\tzoom: null,\n\t\t\teyeSep: null\n\t\t};\n\n\t}\n\n\tupdate( camera ) {\n\n\t\tconst cache = this._cache;\n\n\t\tconst needsUpdate = cache.focus !== camera.focus || cache.fov !== camera.fov ||\n\t\t\tcache.aspect !== camera.aspect * this.aspect || cache.near !== camera.near ||\n\t\t\tcache.far !== camera.far || cache.zoom !== camera.zoom || cache.eyeSep !== this.eyeSep;\n\n\t\tif ( needsUpdate ) {\n\n\t\t\tcache.focus = camera.focus;\n\t\t\tcache.fov = camera.fov;\n\t\t\tcache.aspect = camera.aspect * this.aspect;\n\t\t\tcache.near = camera.near;\n\t\t\tcache.far = camera.far;\n\t\t\tcache.zoom = camera.zoom;\n\t\t\tcache.eyeSep = this.eyeSep;\n\n\t\t\t// Off-axis stereoscopic effect based on\n\t\t\t// http://paulbourke.net/stereographics/stereorender/\n\n\t\t\t_projectionMatrix.copy( camera.projectionMatrix );\n\t\t\tconst eyeSepHalf = cache.eyeSep / 2;\n\t\t\tconst eyeSepOnProjection = eyeSepHalf * cache.near / cache.focus;\n\t\t\tconst ymax = ( cache.near * Math.tan( DEG2RAD * cache.fov * 0.5 ) ) / cache.zoom;\n\t\t\tlet xmin, xmax;\n\n\t\t\t// translate xOffset\n\n\t\t\t_eyeLeft.elements[ 12 ] = - eyeSepHalf;\n\t\t\t_eyeRight.elements[ 12 ] = eyeSepHalf;\n\n\t\t\t// for left eye\n\n\t\t\txmin = - ymax * cache.aspect + eyeSepOnProjection;\n\t\t\txmax = ymax * cache.aspect + eyeSepOnProjection;\n\n\t\t\t_projectionMatrix.elements[ 0 ] = 2 * cache.near / ( xmax - xmin );\n\t\t\t_projectionMatrix.elements[ 8 ] = ( xmax + xmin ) / ( xmax - xmin );\n\n\t\t\tthis.cameraL.projectionMatrix.copy( _projectionMatrix );\n\n\t\t\t// for right eye\n\n\t\t\txmin = - ymax * cache.aspect - eyeSepOnProjection;\n\t\t\txmax = ymax * cache.aspect - eyeSepOnProjection;\n\n\t\t\t_projectionMatrix.elements[ 0 ] = 2 * cache.near / ( xmax - xmin );\n\t\t\t_projectionMatrix.elements[ 8 ] = ( xmax + xmin ) / ( xmax - xmin );\n\n\t\t\tthis.cameraR.projectionMatrix.copy( _projectionMatrix );\n\n\t\t}\n\n\t\tthis.cameraL.matrixWorld.copy( camera.matrixWorld ).multiply( _eyeLeft );\n\t\tthis.cameraR.matrixWorld.copy( camera.matrixWorld ).multiply( _eyeRight );\n\n\t}\n\n}\n\nclass Clock {\n\n\tconstructor( autoStart = true ) {\n\n\t\tthis.autoStart = autoStart;\n\n\t\tthis.startTime = 0;\n\t\tthis.oldTime = 0;\n\t\tthis.elapsedTime = 0;\n\n\t\tthis.running = false;\n\n\t}\n\n\tstart() {\n\n\t\tthis.startTime = now();\n\n\t\tthis.oldTime = this.startTime;\n\t\tthis.elapsedTime = 0;\n\t\tthis.running = true;\n\n\t}\n\n\tstop() {\n\n\t\tthis.getElapsedTime();\n\t\tthis.running = false;\n\t\tthis.autoStart = false;\n\n\t}\n\n\tgetElapsedTime() {\n\n\t\tthis.getDelta();\n\t\treturn this.elapsedTime;\n\n\t}\n\n\tgetDelta() {\n\n\t\tlet diff = 0;\n\n\t\tif ( this.autoStart && ! this.running ) {\n\n\t\t\tthis.start();\n\t\t\treturn 0;\n\n\t\t}\n\n\t\tif ( this.running ) {\n\n\t\t\tconst newTime = now();\n\n\t\t\tdiff = ( newTime - this.oldTime ) / 1000;\n\t\t\tthis.oldTime = newTime;\n\n\t\t\tthis.elapsedTime += diff;\n\n\t\t}\n\n\t\treturn diff;\n\n\t}\n\n}\n\nfunction now() {\n\n\treturn ( typeof performance === 'undefined' ? Date : performance ).now(); // see #10732\n\n}\n\nconst _position$1 = /*@__PURE__*/ new Vector3();\nconst _quaternion$1 = /*@__PURE__*/ new Quaternion();\nconst _scale$1 = /*@__PURE__*/ new Vector3();\nconst _orientation$1 = /*@__PURE__*/ new Vector3();\n\nclass AudioListener extends Object3D {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.type = 'AudioListener';\n\n\t\tthis.context = AudioContext.getContext();\n\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( this.context.destination );\n\n\t\tthis.filter = null;\n\n\t\tthis.timeDelta = 0;\n\n\t\t// private\n\n\t\tthis._clock = new Clock();\n\n\t}\n\n\tgetInput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\tremoveFilter() {\n\n\t\tif ( this.filter !== null ) {\n\n\t\t\tthis.gain.disconnect( this.filter );\n\t\t\tthis.filter.disconnect( this.context.destination );\n\t\t\tthis.gain.connect( this.context.destination );\n\t\t\tthis.filter = null;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetFilter() {\n\n\t\treturn this.filter;\n\n\t}\n\n\tsetFilter( value ) {\n\n\t\tif ( this.filter !== null ) {\n\n\t\t\tthis.gain.disconnect( this.filter );\n\t\t\tthis.filter.disconnect( this.context.destination );\n\n\t\t} else {\n\n\t\t\tthis.gain.disconnect( this.context.destination );\n\n\t\t}\n\n\t\tthis.filter = value;\n\t\tthis.gain.connect( this.filter );\n\t\tthis.filter.connect( this.context.destination );\n\n\t\treturn this;\n\n\t}\n\n\tgetMasterVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\tsetMasterVolume( value ) {\n\n\t\tthis.gain.gain.setTargetAtTime( value, this.context.currentTime, 0.01 );\n\n\t\treturn this;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tconst listener = this.context.listener;\n\t\tconst up = this.up;\n\n\t\tthis.timeDelta = this._clock.getDelta();\n\n\t\tthis.matrixWorld.decompose( _position$1, _quaternion$1, _scale$1 );\n\n\t\t_orientation$1.set( 0, 0, - 1 ).applyQuaternion( _quaternion$1 );\n\n\t\tif ( listener.positionX ) {\n\n\t\t\t// code path for Chrome (see #14393)\n\n\t\t\tconst endTime = this.context.currentTime + this.timeDelta;\n\n\t\t\tlistener.positionX.linearRampToValueAtTime( _position$1.x, endTime );\n\t\t\tlistener.positionY.linearRampToValueAtTime( _position$1.y, endTime );\n\t\t\tlistener.positionZ.linearRampToValueAtTime( _position$1.z, endTime );\n\t\t\tlistener.forwardX.linearRampToValueAtTime( _orientation$1.x, endTime );\n\t\t\tlistener.forwardY.linearRampToValueAtTime( _orientation$1.y, endTime );\n\t\t\tlistener.forwardZ.linearRampToValueAtTime( _orientation$1.z, endTime );\n\t\t\tlistener.upX.linearRampToValueAtTime( up.x, endTime );\n\t\t\tlistener.upY.linearRampToValueAtTime( up.y, endTime );\n\t\t\tlistener.upZ.linearRampToValueAtTime( up.z, endTime );\n\n\t\t} else {\n\n\t\t\tlistener.setPosition( _position$1.x, _position$1.y, _position$1.z );\n\t\t\tlistener.setOrientation( _orientation$1.x, _orientation$1.y, _orientation$1.z, up.x, up.y, up.z );\n\n\t\t}\n\n\t}\n\n}\n\nclass Audio extends Object3D {\n\n\tconstructor( listener ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'Audio';\n\n\t\tthis.listener = listener;\n\t\tthis.context = listener.context;\n\n\t\tthis.gain = this.context.createGain();\n\t\tthis.gain.connect( listener.getInput() );\n\n\t\tthis.autoplay = false;\n\n\t\tthis.buffer = null;\n\t\tthis.detune = 0;\n\t\tthis.loop = false;\n\t\tthis.loopStart = 0;\n\t\tthis.loopEnd = 0;\n\t\tthis.offset = 0;\n\t\tthis.duration = undefined;\n\t\tthis.playbackRate = 1;\n\t\tthis.isPlaying = false;\n\t\tthis.hasPlaybackControl = true;\n\t\tthis.source = null;\n\t\tthis.sourceType = 'empty';\n\n\t\tthis._startedAt = 0;\n\t\tthis._progress = 0;\n\t\tthis._connected = false;\n\n\t\tthis.filters = [];\n\n\t}\n\n\tgetOutput() {\n\n\t\treturn this.gain;\n\n\t}\n\n\tsetNodeSource( audioNode ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'audioNode';\n\t\tthis.source = audioNode;\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetMediaElementSource( mediaElement ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'mediaNode';\n\t\tthis.source = this.context.createMediaElementSource( mediaElement );\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetMediaStreamSource( mediaStream ) {\n\n\t\tthis.hasPlaybackControl = false;\n\t\tthis.sourceType = 'mediaStreamNode';\n\t\tthis.source = this.context.createMediaStreamSource( mediaStream );\n\t\tthis.connect();\n\n\t\treturn this;\n\n\t}\n\n\tsetBuffer( audioBuffer ) {\n\n\t\tthis.buffer = audioBuffer;\n\t\tthis.sourceType = 'buffer';\n\n\t\tif ( this.autoplay ) this.play();\n\n\t\treturn this;\n\n\t}\n\n\tplay( delay = 0 ) {\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: Audio is already playing.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._startedAt = this.context.currentTime + delay;\n\n\t\tconst source = this.context.createBufferSource();\n\t\tsource.buffer = this.buffer;\n\t\tsource.loop = this.loop;\n\t\tsource.loopStart = this.loopStart;\n\t\tsource.loopEnd = this.loopEnd;\n\t\tsource.onended = this.onEnded.bind( this );\n\t\tsource.start( this._startedAt, this._progress + this.offset, this.duration );\n\n\t\tthis.isPlaying = true;\n\n\t\tthis.source = source;\n\n\t\tthis.setDetune( this.detune );\n\t\tthis.setPlaybackRate( this.playbackRate );\n\n\t\treturn this.connect();\n\n\t}\n\n\tpause() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\t// update current progress\n\n\t\t\tthis._progress += Math.max( this.context.currentTime - this._startedAt, 0 ) * this.playbackRate;\n\n\t\t\tif ( this.loop === true ) {\n\n\t\t\t\t// ensure _progress does not exceed duration with looped audios\n\n\t\t\t\tthis._progress = this._progress % ( this.duration || this.buffer.duration );\n\n\t\t\t}\n\n\t\t\tthis.source.stop();\n\t\t\tthis.source.onended = null;\n\n\t\t\tthis.isPlaying = false;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tstop() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._progress = 0;\n\n\t\tif ( this.source !== null ) {\n\n\t\t\tthis.source.stop();\n\t\t\tthis.source.onended = null;\n\n\t\t}\n\n\t\tthis.isPlaying = false;\n\n\t\treturn this;\n\n\t}\n\n\tconnect() {\n\n\t\tif ( this.filters.length > 0 ) {\n\n\t\t\tthis.source.connect( this.filters[ 0 ] );\n\n\t\t\tfor ( let i = 1, l = this.filters.length; i < l; i ++ ) {\n\n\t\t\t\tthis.filters[ i - 1 ].connect( this.filters[ i ] );\n\n\t\t\t}\n\n\t\t\tthis.filters[ this.filters.length - 1 ].connect( this.getOutput() );\n\n\t\t} else {\n\n\t\t\tthis.source.connect( this.getOutput() );\n\n\t\t}\n\n\t\tthis._connected = true;\n\n\t\treturn this;\n\n\t}\n\n\tdisconnect() {\n\n\t\tif ( this._connected === false ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( this.filters.length > 0 ) {\n\n\t\t\tthis.source.disconnect( this.filters[ 0 ] );\n\n\t\t\tfor ( let i = 1, l = this.filters.length; i < l; i ++ ) {\n\n\t\t\t\tthis.filters[ i - 1 ].disconnect( this.filters[ i ] );\n\n\t\t\t}\n\n\t\t\tthis.filters[ this.filters.length - 1 ].disconnect( this.getOutput() );\n\n\t\t} else {\n\n\t\t\tthis.source.disconnect( this.getOutput() );\n\n\t\t}\n\n\t\tthis._connected = false;\n\n\t\treturn this;\n\n\t}\n\n\tgetFilters() {\n\n\t\treturn this.filters;\n\n\t}\n\n\tsetFilters( value ) {\n\n\t\tif ( ! value ) value = [];\n\n\t\tif ( this._connected === true ) {\n\n\t\t\tthis.disconnect();\n\t\t\tthis.filters = value.slice();\n\t\t\tthis.connect();\n\n\t\t} else {\n\n\t\t\tthis.filters = value.slice();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetDetune( value ) {\n\n\t\tthis.detune = value;\n\n\t\tif ( this.isPlaying === true && this.source.detune !== undefined ) {\n\n\t\t\tthis.source.detune.setTargetAtTime( this.detune, this.context.currentTime, 0.01 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetDetune() {\n\n\t\treturn this.detune;\n\n\t}\n\n\tgetFilter() {\n\n\t\treturn this.getFilters()[ 0 ];\n\n\t}\n\n\tsetFilter( filter ) {\n\n\t\treturn this.setFilters( filter ? [ filter ] : [] );\n\n\t}\n\n\tsetPlaybackRate( value ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.playbackRate = value;\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tthis.source.playbackRate.setTargetAtTime( this.playbackRate, this.context.currentTime, 0.01 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetPlaybackRate() {\n\n\t\treturn this.playbackRate;\n\n\t}\n\n\tonEnded() {\n\n\t\tthis.isPlaying = false;\n\n\t}\n\n\tgetLoop() {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn false;\n\n\t\t}\n\n\t\treturn this.loop;\n\n\t}\n\n\tsetLoop( value ) {\n\n\t\tif ( this.hasPlaybackControl === false ) {\n\n\t\t\tconsole.warn( 'THREE.Audio: this Audio has no playback control.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.loop = value;\n\n\t\tif ( this.isPlaying === true ) {\n\n\t\t\tthis.source.loop = this.loop;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetLoopStart( value ) {\n\n\t\tthis.loopStart = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetLoopEnd( value ) {\n\n\t\tthis.loopEnd = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetVolume() {\n\n\t\treturn this.gain.gain.value;\n\n\t}\n\n\tsetVolume( value ) {\n\n\t\tthis.gain.gain.setTargetAtTime( value, this.context.currentTime, 0.01 );\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _position = /*@__PURE__*/ new Vector3();\nconst _quaternion = /*@__PURE__*/ new Quaternion();\nconst _scale = /*@__PURE__*/ new Vector3();\nconst _orientation = /*@__PURE__*/ new Vector3();\n\nclass PositionalAudio extends Audio {\n\n\tconstructor( listener ) {\n\n\t\tsuper( listener );\n\n\t\tthis.panner = this.context.createPanner();\n\t\tthis.panner.panningModel = 'HRTF';\n\t\tthis.panner.connect( this.gain );\n\n\t}\n\n\tconnect() {\n\n\t\tsuper.connect();\n\n\t\tthis.panner.connect( this.gain );\n\n\t}\n\n\tdisconnect() {\n\n\t\tsuper.disconnect();\n\n\t\tthis.panner.disconnect( this.gain );\n\n\t}\n\n\tgetOutput() {\n\n\t\treturn this.panner;\n\n\t}\n\n\tgetRefDistance() {\n\n\t\treturn this.panner.refDistance;\n\n\t}\n\n\tsetRefDistance( value ) {\n\n\t\tthis.panner.refDistance = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetRolloffFactor() {\n\n\t\treturn this.panner.rolloffFactor;\n\n\t}\n\n\tsetRolloffFactor( value ) {\n\n\t\tthis.panner.rolloffFactor = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetDistanceModel() {\n\n\t\treturn this.panner.distanceModel;\n\n\t}\n\n\tsetDistanceModel( value ) {\n\n\t\tthis.panner.distanceModel = value;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxDistance() {\n\n\t\treturn this.panner.maxDistance;\n\n\t}\n\n\tsetMaxDistance( value ) {\n\n\t\tthis.panner.maxDistance = value;\n\n\t\treturn this;\n\n\t}\n\n\tsetDirectionalCone( coneInnerAngle, coneOuterAngle, coneOuterGain ) {\n\n\t\tthis.panner.coneInnerAngle = coneInnerAngle;\n\t\tthis.panner.coneOuterAngle = coneOuterAngle;\n\t\tthis.panner.coneOuterGain = coneOuterGain;\n\n\t\treturn this;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t\tif ( this.hasPlaybackControl === true && this.isPlaying === false ) return;\n\n\t\tthis.matrixWorld.decompose( _position, _quaternion, _scale );\n\n\t\t_orientation.set( 0, 0, 1 ).applyQuaternion( _quaternion );\n\n\t\tconst panner = this.panner;\n\n\t\tif ( panner.positionX ) {\n\n\t\t\t// code path for Chrome and Firefox (see #14393)\n\n\t\t\tconst endTime = this.context.currentTime + this.listener.timeDelta;\n\n\t\t\tpanner.positionX.linearRampToValueAtTime( _position.x, endTime );\n\t\t\tpanner.positionY.linearRampToValueAtTime( _position.y, endTime );\n\t\t\tpanner.positionZ.linearRampToValueAtTime( _position.z, endTime );\n\t\t\tpanner.orientationX.linearRampToValueAtTime( _orientation.x, endTime );\n\t\t\tpanner.orientationY.linearRampToValueAtTime( _orientation.y, endTime );\n\t\t\tpanner.orientationZ.linearRampToValueAtTime( _orientation.z, endTime );\n\n\t\t} else {\n\n\t\t\tpanner.setPosition( _position.x, _position.y, _position.z );\n\t\t\tpanner.setOrientation( _orientation.x, _orientation.y, _orientation.z );\n\n\t\t}\n\n\t}\n\n}\n\nclass AudioAnalyser {\n\n\tconstructor( audio, fftSize = 2048 ) {\n\n\t\tthis.analyser = audio.context.createAnalyser();\n\t\tthis.analyser.fftSize = fftSize;\n\n\t\tthis.data = new Uint8Array( this.analyser.frequencyBinCount );\n\n\t\taudio.getOutput().connect( this.analyser );\n\n\t}\n\n\n\tgetFrequencyData() {\n\n\t\tthis.analyser.getByteFrequencyData( this.data );\n\n\t\treturn this.data;\n\n\t}\n\n\tgetAverageFrequency() {\n\n\t\tlet value = 0;\n\t\tconst data = this.getFrequencyData();\n\n\t\tfor ( let i = 0; i < data.length; i ++ ) {\n\n\t\t\tvalue += data[ i ];\n\n\t\t}\n\n\t\treturn value / data.length;\n\n\t}\n\n}\n\nclass PropertyMixer {\n\n\tconstructor( binding, typeName, valueSize ) {\n\n\t\tthis.binding = binding;\n\t\tthis.valueSize = valueSize;\n\n\t\tlet mixFunction,\n\t\t\tmixFunctionAdditive,\n\t\t\tsetIdentity;\n\n\t\t// buffer layout: [ incoming | accu0 | accu1 | orig | addAccu | (optional work) ]\n\t\t//\n\t\t// interpolators can use .buffer as their .result\n\t\t// the data then goes to 'incoming'\n\t\t//\n\t\t// 'accu0' and 'accu1' are used frame-interleaved for\n\t\t// the cumulative result and are compared to detect\n\t\t// changes\n\t\t//\n\t\t// 'orig' stores the original state of the property\n\t\t//\n\t\t// 'add' is used for additive cumulative results\n\t\t//\n\t\t// 'work' is optional and is only present for quaternion types. It is used\n\t\t// to store intermediate quaternion multiplication results\n\n\t\tswitch ( typeName ) {\n\n\t\t\tcase 'quaternion':\n\t\t\t\tmixFunction = this._slerp;\n\t\t\t\tmixFunctionAdditive = this._slerpAdditive;\n\t\t\t\tsetIdentity = this._setAdditiveIdentityQuaternion;\n\n\t\t\t\tthis.buffer = new Float64Array( valueSize * 6 );\n\t\t\t\tthis._workIndex = 5;\n\t\t\t\tbreak;\n\n\t\t\tcase 'string':\n\t\t\tcase 'bool':\n\t\t\t\tmixFunction = this._select;\n\n\t\t\t\t// Use the regular mix function and for additive on these types,\n\t\t\t\t// additive is not relevant for non-numeric types\n\t\t\t\tmixFunctionAdditive = this._select;\n\n\t\t\t\tsetIdentity = this._setAdditiveIdentityOther;\n\n\t\t\t\tthis.buffer = new Array( valueSize * 5 );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tmixFunction = this._lerp;\n\t\t\t\tmixFunctionAdditive = this._lerpAdditive;\n\t\t\t\tsetIdentity = this._setAdditiveIdentityNumeric;\n\n\t\t\t\tthis.buffer = new Float64Array( valueSize * 5 );\n\n\t\t}\n\n\t\tthis._mixBufferRegion = mixFunction;\n\t\tthis._mixBufferRegionAdditive = mixFunctionAdditive;\n\t\tthis._setIdentity = setIdentity;\n\t\tthis._origIndex = 3;\n\t\tthis._addIndex = 4;\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t\tthis.useCount = 0;\n\t\tthis.referenceCount = 0;\n\n\t}\n\n\t// accumulate data in the 'incoming' region into 'accu'\n\taccumulate( accuIndex, weight ) {\n\n\t\t// note: happily accumulating nothing when weight = 0, the caller knows\n\t\t// the weight and shouldn't have made the call in the first place\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = accuIndex * stride + stride;\n\n\t\tlet currentWeight = this.cumulativeWeight;\n\n\t\tif ( currentWeight === 0 ) {\n\n\t\t\t// accuN := incoming * weight\n\n\t\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\t\tbuffer[ offset + i ] = buffer[ i ];\n\n\t\t\t}\n\n\t\t\tcurrentWeight = weight;\n\n\t\t} else {\n\n\t\t\t// accuN := accuN + incoming * weight\n\n\t\t\tcurrentWeight += weight;\n\t\t\tconst mix = weight / currentWeight;\n\t\t\tthis._mixBufferRegion( buffer, offset, 0, mix, stride );\n\n\t\t}\n\n\t\tthis.cumulativeWeight = currentWeight;\n\n\t}\n\n\t// accumulate data in the 'incoming' region into 'add'\n\taccumulateAdditive( weight ) {\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\t\t\toffset = stride * this._addIndex;\n\n\t\tif ( this.cumulativeWeightAdditive === 0 ) {\n\n\t\t\t// add = identity\n\n\t\t\tthis._setIdentity();\n\n\t\t}\n\n\t\t// add := add + incoming * weight\n\n\t\tthis._mixBufferRegionAdditive( buffer, offset, 0, weight, stride );\n\t\tthis.cumulativeWeightAdditive += weight;\n\n\t}\n\n\t// apply the state of 'accu' to the binding when accus differ\n\tapply( accuIndex ) {\n\n\t\tconst stride = this.valueSize,\n\t\t\tbuffer = this.buffer,\n\t\t\toffset = accuIndex * stride + stride,\n\n\t\t\tweight = this.cumulativeWeight,\n\t\t\tweightAdditive = this.cumulativeWeightAdditive,\n\n\t\t\tbinding = this.binding;\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t\tif ( weight < 1 ) {\n\n\t\t\t// accuN := accuN + original * ( 1 - cumulativeWeight )\n\n\t\t\tconst originalValueOffset = stride * this._origIndex;\n\n\t\t\tthis._mixBufferRegion(\n\t\t\t\tbuffer, offset, originalValueOffset, 1 - weight, stride );\n\n\t\t}\n\n\t\tif ( weightAdditive > 0 ) {\n\n\t\t\t// accuN := accuN + additive accuN\n\n\t\t\tthis._mixBufferRegionAdditive( buffer, offset, this._addIndex * stride, 1, stride );\n\n\t\t}\n\n\t\tfor ( let i = stride, e = stride + stride; i !== e; ++ i ) {\n\n\t\t\tif ( buffer[ i ] !== buffer[ i + stride ] ) {\n\n\t\t\t\t// value has changed -> update scene graph\n\n\t\t\t\tbinding.setValue( buffer, offset );\n\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// remember the state of the bound property and copy it to both accus\n\tsaveOriginalState() {\n\n\t\tconst binding = this.binding;\n\n\t\tconst buffer = this.buffer,\n\t\t\tstride = this.valueSize,\n\n\t\t\toriginalValueOffset = stride * this._origIndex;\n\n\t\tbinding.getValue( buffer, originalValueOffset );\n\n\t\t// accu[0..1] := orig -- initially detect changes against the original\n\t\tfor ( let i = stride, e = originalValueOffset; i !== e; ++ i ) {\n\n\t\t\tbuffer[ i ] = buffer[ originalValueOffset + ( i % stride ) ];\n\n\t\t}\n\n\t\t// Add to identity for additive\n\t\tthis._setIdentity();\n\n\t\tthis.cumulativeWeight = 0;\n\t\tthis.cumulativeWeightAdditive = 0;\n\n\t}\n\n\t// apply the state previously taken via 'saveOriginalState' to the binding\n\trestoreOriginalState() {\n\n\t\tconst originalValueOffset = this.valueSize * 3;\n\t\tthis.binding.setValue( this.buffer, originalValueOffset );\n\n\t}\n\n\t_setAdditiveIdentityNumeric() {\n\n\t\tconst startIndex = this._addIndex * this.valueSize;\n\t\tconst endIndex = startIndex + this.valueSize;\n\n\t\tfor ( let i = startIndex; i < endIndex; i ++ ) {\n\n\t\t\tthis.buffer[ i ] = 0;\n\n\t\t}\n\n\t}\n\n\t_setAdditiveIdentityQuaternion() {\n\n\t\tthis._setAdditiveIdentityNumeric();\n\t\tthis.buffer[ this._addIndex * this.valueSize + 3 ] = 1;\n\n\t}\n\n\t_setAdditiveIdentityOther() {\n\n\t\tconst startIndex = this._origIndex * this.valueSize;\n\t\tconst targetIndex = this._addIndex * this.valueSize;\n\n\t\tfor ( let i = 0; i < this.valueSize; i ++ ) {\n\n\t\t\tthis.buffer[ targetIndex + i ] = this.buffer[ startIndex + i ];\n\n\t\t}\n\n\t}\n\n\n\t// mix functions\n\n\t_select( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tif ( t >= 0.5 ) {\n\n\t\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\t\tbuffer[ dstOffset + i ] = buffer[ srcOffset + i ];\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_slerp( buffer, dstOffset, srcOffset, t ) {\n\n\t\tQuaternion.slerpFlat( buffer, dstOffset, buffer, dstOffset, buffer, srcOffset, t );\n\n\t}\n\n\t_slerpAdditive( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tconst workOffset = this._workIndex * stride;\n\n\t\t// Store result in intermediate buffer offset\n\t\tQuaternion.multiplyQuaternionsFlat( buffer, workOffset, buffer, dstOffset, buffer, srcOffset );\n\n\t\t// Slerp to the intermediate result\n\t\tQuaternion.slerpFlat( buffer, dstOffset, buffer, dstOffset, buffer, workOffset, t );\n\n\t}\n\n\t_lerp( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tconst s = 1 - t;\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tconst j = dstOffset + i;\n\n\t\t\tbuffer[ j ] = buffer[ j ] * s + buffer[ srcOffset + i ] * t;\n\n\t\t}\n\n\t}\n\n\t_lerpAdditive( buffer, dstOffset, srcOffset, t, stride ) {\n\n\t\tfor ( let i = 0; i !== stride; ++ i ) {\n\n\t\t\tconst j = dstOffset + i;\n\n\t\t\tbuffer[ j ] = buffer[ j ] + buffer[ srcOffset + i ] * t;\n\n\t\t}\n\n\t}\n\n}\n\n// Characters [].:/ are reserved for track binding syntax.\nconst _RESERVED_CHARS_RE = '\\\\[\\\\]\\\\.:\\\\/';\nconst _reservedRe = new RegExp( '[' + _RESERVED_CHARS_RE + ']', 'g' );\n\n// Attempts to allow node names from any language. ES5's `\\w` regexp matches\n// only latin characters, and the unicode \\p{L} is not yet supported. So\n// instead, we exclude reserved characters and match everything else.\nconst _wordChar = '[^' + _RESERVED_CHARS_RE + ']';\nconst _wordCharOrDot = '[^' + _RESERVED_CHARS_RE.replace( '\\\\.', '' ) + ']';\n\n// Parent directories, delimited by '/' or ':'. Currently unused, but must\n// be matched to parse the rest of the track name.\nconst _directoryRe = /*@__PURE__*/ /((?:WC+[\\/:])*)/.source.replace( 'WC', _wordChar );\n\n// Target node. May contain word characters (a-zA-Z0-9_) and '.' or '-'.\nconst _nodeRe = /*@__PURE__*/ /(WCOD+)?/.source.replace( 'WCOD', _wordCharOrDot );\n\n// Object on target node, and accessor. May not contain reserved\n// characters. Accessor may contain any character except closing bracket.\nconst _objectRe = /*@__PURE__*/ /(?:\\.(WC+)(?:\\[(.+)\\])?)?/.source.replace( 'WC', _wordChar );\n\n// Property and accessor. May not contain reserved characters. Accessor may\n// contain any non-bracket characters.\nconst _propertyRe = /*@__PURE__*/ /\\.(WC+)(?:\\[(.+)\\])?/.source.replace( 'WC', _wordChar );\n\nconst _trackRe = new RegExp( ''\n\t+ '^'\n\t+ _directoryRe\n\t+ _nodeRe\n\t+ _objectRe\n\t+ _propertyRe\n\t+ '$'\n);\n\nconst _supportedObjectNames = [ 'material', 'materials', 'bones', 'map' ];\n\nclass Composite {\n\n\tconstructor( targetGroup, path, optionalParsedPath ) {\n\n\t\tconst parsedPath = optionalParsedPath || PropertyBinding.parseTrackName( path );\n\n\t\tthis._targetGroup = targetGroup;\n\t\tthis._bindings = targetGroup.subscribe_( path, parsedPath );\n\n\t}\n\n\tgetValue( array, offset ) {\n\n\t\tthis.bind(); // bind all binding\n\n\t\tconst firstValidIndex = this._targetGroup.nCachedObjects_,\n\t\t\tbinding = this._bindings[ firstValidIndex ];\n\n\t\t// and only call .getValue on the first\n\t\tif ( binding !== undefined ) binding.getValue( array, offset );\n\n\t}\n\n\tsetValue( array, offset ) {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].setValue( array, offset );\n\n\t\t}\n\n\t}\n\n\tbind() {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].bind();\n\n\t\t}\n\n\t}\n\n\tunbind() {\n\n\t\tconst bindings = this._bindings;\n\n\t\tfor ( let i = this._targetGroup.nCachedObjects_, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tbindings[ i ].unbind();\n\n\t\t}\n\n\t}\n\n}\n\n// Note: This class uses a State pattern on a per-method basis:\n// 'bind' sets 'this.getValue' / 'setValue' and shadows the\n// prototype version of these methods with one that represents\n// the bound state. When the property is not found, the methods\n// become no-ops.\nclass PropertyBinding {\n\n\tconstructor( rootNode, path, parsedPath ) {\n\n\t\tthis.path = path;\n\t\tthis.parsedPath = parsedPath || PropertyBinding.parseTrackName( path );\n\n\t\tthis.node = PropertyBinding.findNode( rootNode, this.parsedPath.nodeName );\n\n\t\tthis.rootNode = rootNode;\n\n\t\t// initial state of these methods that calls 'bind'\n\t\tthis.getValue = this._getValue_unbound;\n\t\tthis.setValue = this._setValue_unbound;\n\n\t}\n\n\n\tstatic create( root, path, parsedPath ) {\n\n\t\tif ( ! ( root && root.isAnimationObjectGroup ) ) {\n\n\t\t\treturn new PropertyBinding( root, path, parsedPath );\n\n\t\t} else {\n\n\t\t\treturn new PropertyBinding.Composite( root, path, parsedPath );\n\n\t\t}\n\n\t}\n\n\t/**\n\t * Replaces spaces with underscores and removes unsupported characters from\n\t * node names, to ensure compatibility with parseTrackName().\n\t *\n\t * @param {string} name Node name to be sanitized.\n\t * @return {string}\n\t */\n\tstatic sanitizeNodeName( name ) {\n\n\t\treturn name.replace( /\\s/g, '_' ).replace( _reservedRe, '' );\n\n\t}\n\n\tstatic parseTrackName( trackName ) {\n\n\t\tconst matches = _trackRe.exec( trackName );\n\n\t\tif ( matches === null ) {\n\n\t\t\tthrow new Error( 'PropertyBinding: Cannot parse trackName: ' + trackName );\n\n\t\t}\n\n\t\tconst results = {\n\t\t\t// directoryName: matches[ 1 ], // (tschw) currently unused\n\t\t\tnodeName: matches[ 2 ],\n\t\t\tobjectName: matches[ 3 ],\n\t\t\tobjectIndex: matches[ 4 ],\n\t\t\tpropertyName: matches[ 5 ], // required\n\t\t\tpropertyIndex: matches[ 6 ]\n\t\t};\n\n\t\tconst lastDot = results.nodeName && results.nodeName.lastIndexOf( '.' );\n\n\t\tif ( lastDot !== undefined && lastDot !== - 1 ) {\n\n\t\t\tconst objectName = results.nodeName.substring( lastDot + 1 );\n\n\t\t\t// Object names must be checked against an allowlist. Otherwise, there\n\t\t\t// is no way to parse 'foo.bar.baz': 'baz' must be a property, but\n\t\t\t// 'bar' could be the objectName, or part of a nodeName (which can\n\t\t\t// include '.' characters).\n\t\t\tif ( _supportedObjectNames.indexOf( objectName ) !== - 1 ) {\n\n\t\t\t\tresults.nodeName = results.nodeName.substring( 0, lastDot );\n\t\t\t\tresults.objectName = objectName;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( results.propertyName === null || results.propertyName.length === 0 ) {\n\n\t\t\tthrow new Error( 'PropertyBinding: can not parse propertyName from trackName: ' + trackName );\n\n\t\t}\n\n\t\treturn results;\n\n\t}\n\n\tstatic findNode( root, nodeName ) {\n\n\t\tif ( nodeName === undefined || nodeName === '' || nodeName === '.' || nodeName === - 1 || nodeName === root.name || nodeName === root.uuid ) {\n\n\t\t\treturn root;\n\n\t\t}\n\n\t\t// search into skeleton bones.\n\t\tif ( root.skeleton ) {\n\n\t\t\tconst bone = root.skeleton.getBoneByName( nodeName );\n\n\t\t\tif ( bone !== undefined ) {\n\n\t\t\t\treturn bone;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// search into node subtree.\n\t\tif ( root.children ) {\n\n\t\t\tconst searchNodeSubtree = function ( children ) {\n\n\t\t\t\tfor ( let i = 0; i < children.length; i ++ ) {\n\n\t\t\t\t\tconst childNode = children[ i ];\n\n\t\t\t\t\tif ( childNode.name === nodeName || childNode.uuid === nodeName ) {\n\n\t\t\t\t\t\treturn childNode;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = searchNodeSubtree( childNode.children );\n\n\t\t\t\t\tif ( result ) return result;\n\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\n\t\t\t};\n\n\t\t\tconst subTreeNode = searchNodeSubtree( root.children );\n\n\t\t\tif ( subTreeNode ) {\n\n\t\t\t\treturn subTreeNode;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t// these are used to \"bind\" a nonexistent property\n\t_getValue_unavailable() {}\n\t_setValue_unavailable() {}\n\n\t// Getters\n\n\t_getValue_direct( buffer, offset ) {\n\n\t\tbuffer[ offset ] = this.targetObject[ this.propertyName ];\n\n\t}\n\n\t_getValue_array( buffer, offset ) {\n\n\t\tconst source = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = source.length; i !== n; ++ i ) {\n\n\t\t\tbuffer[ offset ++ ] = source[ i ];\n\n\t\t}\n\n\t}\n\n\t_getValue_arrayElement( buffer, offset ) {\n\n\t\tbuffer[ offset ] = this.resolvedProperty[ this.propertyIndex ];\n\n\t}\n\n\t_getValue_toArray( buffer, offset ) {\n\n\t\tthis.resolvedProperty.toArray( buffer, offset );\n\n\t}\n\n\t// Direct\n\n\t_setValue_direct( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\n\t}\n\n\t_setValue_direct_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_direct_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.targetObject[ this.propertyName ] = buffer[ offset ];\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// EntireArray\n\n\t_setValue_array( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t}\n\n\t_setValue_array_setNeedsUpdate( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_array_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tconst dest = this.resolvedProperty;\n\n\t\tfor ( let i = 0, n = dest.length; i !== n; ++ i ) {\n\n\t\t\tdest[ i ] = buffer[ offset ++ ];\n\n\t\t}\n\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// ArrayElement\n\n\t_setValue_arrayElement( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\n\t}\n\n\t_setValue_arrayElement_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_arrayElement_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty[ this.propertyIndex ] = buffer[ offset ];\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t// HasToFromArray\n\n\t_setValue_fromArray( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\n\t}\n\n\t_setValue_fromArray_setNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\t\tthis.targetObject.needsUpdate = true;\n\n\t}\n\n\t_setValue_fromArray_setMatrixWorldNeedsUpdate( buffer, offset ) {\n\n\t\tthis.resolvedProperty.fromArray( buffer, offset );\n\t\tthis.targetObject.matrixWorldNeedsUpdate = true;\n\n\t}\n\n\t_getValue_unbound( targetArray, offset ) {\n\n\t\tthis.bind();\n\t\tthis.getValue( targetArray, offset );\n\n\t}\n\n\t_setValue_unbound( sourceArray, offset ) {\n\n\t\tthis.bind();\n\t\tthis.setValue( sourceArray, offset );\n\n\t}\n\n\t// create getter / setter pair for a property in the scene graph\n\tbind() {\n\n\t\tlet targetObject = this.node;\n\t\tconst parsedPath = this.parsedPath;\n\n\t\tconst objectName = parsedPath.objectName;\n\t\tconst propertyName = parsedPath.propertyName;\n\t\tlet propertyIndex = parsedPath.propertyIndex;\n\n\t\tif ( ! targetObject ) {\n\n\t\t\ttargetObject = PropertyBinding.findNode( this.rootNode, parsedPath.nodeName );\n\n\t\t\tthis.node = targetObject;\n\n\t\t}\n\n\t\t// set fail state so we can just 'return' on error\n\t\tthis.getValue = this._getValue_unavailable;\n\t\tthis.setValue = this._setValue_unavailable;\n\n\t\t// ensure there is a value node\n\t\tif ( ! targetObject ) {\n\n\t\t\tconsole.warn( 'THREE.PropertyBinding: No target node found for track: ' + this.path + '.' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( objectName ) {\n\n\t\t\tlet objectIndex = parsedPath.objectIndex;\n\n\t\t\t// special cases were we need to reach deeper into the hierarchy to get the face materials....\n\t\t\tswitch ( objectName ) {\n\n\t\t\t\tcase 'materials':\n\n\t\t\t\t\tif ( ! targetObject.material ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material as node does not have a material.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! targetObject.material.materials ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject.material.materials;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'bones':\n\n\t\t\t\t\tif ( ! targetObject.skeleton ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// potential future optimization: skip this if propertyIndex is already an integer\n\t\t\t\t\t// and convert the integer string to a true integer.\n\n\t\t\t\t\ttargetObject = targetObject.skeleton.bones;\n\n\t\t\t\t\t// support resolving morphTarget names into indices.\n\t\t\t\t\tfor ( let i = 0; i < targetObject.length; i ++ ) {\n\n\t\t\t\t\t\tif ( targetObject[ i ].name === objectIndex ) {\n\n\t\t\t\t\t\t\tobjectIndex = i;\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'map':\n\n\t\t\t\t\tif ( 'map' in targetObject ) {\n\n\t\t\t\t\t\ttargetObject = targetObject.map;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! targetObject.material ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material as node does not have a material.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! targetObject.material.map ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject.material.map;\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tif ( targetObject[ objectName ] === undefined ) {\n\n\t\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to objectName of node undefined.', this );\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetObject = targetObject[ objectName ];\n\n\t\t\t}\n\n\n\t\t\tif ( objectIndex !== undefined ) {\n\n\t\t\t\tif ( targetObject[ objectIndex ] === undefined ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.', this, targetObject );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\ttargetObject = targetObject[ objectIndex ];\n\n\t\t\t}\n\n\t\t}\n\n\t\t// resolve property\n\t\tconst nodeProperty = targetObject[ propertyName ];\n\n\t\tif ( nodeProperty === undefined ) {\n\n\t\t\tconst nodeName = parsedPath.nodeName;\n\n\t\t\tconsole.error( 'THREE.PropertyBinding: Trying to update property for track: ' + nodeName +\n\t\t\t\t'.' + propertyName + ' but it wasn\\'t found.', targetObject );\n\t\t\treturn;\n\n\t\t}\n\n\t\t// determine versioning scheme\n\t\tlet versioning = this.Versioning.None;\n\n\t\tthis.targetObject = targetObject;\n\n\t\tif ( targetObject.needsUpdate !== undefined ) { // material\n\n\t\t\tversioning = this.Versioning.NeedsUpdate;\n\n\t\t} else if ( targetObject.matrixWorldNeedsUpdate !== undefined ) { // node transform\n\n\t\t\tversioning = this.Versioning.MatrixWorldNeedsUpdate;\n\n\t\t}\n\n\t\t// determine how the property gets bound\n\t\tlet bindingType = this.BindingType.Direct;\n\n\t\tif ( propertyIndex !== undefined ) {\n\n\t\t\t// access a sub element of the property array (only primitives are supported right now)\n\n\t\t\tif ( propertyName === 'morphTargetInfluences' ) {\n\n\t\t\t\t// potential optimization, skip this if propertyIndex is already an integer, and convert the integer string to a true integer.\n\n\t\t\t\t// support resolving morphTarget names into indices.\n\t\t\t\tif ( ! targetObject.geometry ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.', this );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! targetObject.geometry.morphAttributes ) {\n\n\t\t\t\t\tconsole.error( 'THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.', this );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t\tif ( targetObject.morphTargetDictionary[ propertyIndex ] !== undefined ) {\n\n\t\t\t\t\tpropertyIndex = targetObject.morphTargetDictionary[ propertyIndex ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tbindingType = this.BindingType.ArrayElement;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\t\t\tthis.propertyIndex = propertyIndex;\n\n\t\t} else if ( nodeProperty.fromArray !== undefined && nodeProperty.toArray !== undefined ) {\n\n\t\t\t// must use copy for Object3D.Euler/Quaternion\n\n\t\t\tbindingType = this.BindingType.HasFromToArray;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\n\t\t} else if ( Array.isArray( nodeProperty ) ) {\n\n\t\t\tbindingType = this.BindingType.EntireArray;\n\n\t\t\tthis.resolvedProperty = nodeProperty;\n\n\t\t} else {\n\n\t\t\tthis.propertyName = propertyName;\n\n\t\t}\n\n\t\t// select getter / setter\n\t\tthis.getValue = this.GetterByBindingType[ bindingType ];\n\t\tthis.setValue = this.SetterByBindingTypeAndVersioning[ bindingType ][ versioning ];\n\n\t}\n\n\tunbind() {\n\n\t\tthis.node = null;\n\n\t\t// back to the prototype version of getValue / setValue\n\t\t// note: avoiding to mutate the shape of 'this' via 'delete'\n\t\tthis.getValue = this._getValue_unbound;\n\t\tthis.setValue = this._setValue_unbound;\n\n\t}\n\n}\n\nPropertyBinding.Composite = Composite;\n\nPropertyBinding.prototype.BindingType = {\n\tDirect: 0,\n\tEntireArray: 1,\n\tArrayElement: 2,\n\tHasFromToArray: 3\n};\n\nPropertyBinding.prototype.Versioning = {\n\tNone: 0,\n\tNeedsUpdate: 1,\n\tMatrixWorldNeedsUpdate: 2\n};\n\nPropertyBinding.prototype.GetterByBindingType = [\n\n\tPropertyBinding.prototype._getValue_direct,\n\tPropertyBinding.prototype._getValue_array,\n\tPropertyBinding.prototype._getValue_arrayElement,\n\tPropertyBinding.prototype._getValue_toArray,\n\n];\n\nPropertyBinding.prototype.SetterByBindingTypeAndVersioning = [\n\n\t[\n\t\t// Direct\n\t\tPropertyBinding.prototype._setValue_direct,\n\t\tPropertyBinding.prototype._setValue_direct_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// EntireArray\n\n\t\tPropertyBinding.prototype._setValue_array,\n\t\tPropertyBinding.prototype._setValue_array_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// ArrayElement\n\t\tPropertyBinding.prototype._setValue_arrayElement,\n\t\tPropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate,\n\n\t], [\n\n\t\t// HasToFromArray\n\t\tPropertyBinding.prototype._setValue_fromArray,\n\t\tPropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,\n\t\tPropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate,\n\n\t]\n\n];\n\n/**\n *\n * A group of objects that receives a shared animation state.\n *\n * Usage:\n *\n * - Add objects you would otherwise pass as 'root' to the\n * constructor or the .clipAction method of AnimationMixer.\n *\n * - Instead pass this object as 'root'.\n *\n * - You can also add and remove objects later when the mixer\n * is running.\n *\n * Note:\n *\n * Objects of this class appear as one object to the mixer,\n * so cache control of the individual objects must be done\n * on the group.\n *\n * Limitation:\n *\n * - The animated properties must be compatible among the\n * all objects in the group.\n *\n * - A single property can either be controlled through a\n * target group or directly, but not both.\n */\n\nclass AnimationObjectGroup {\n\n\tconstructor() {\n\n\t\tthis.isAnimationObjectGroup = true;\n\n\t\tthis.uuid = generateUUID();\n\n\t\t// cached objects followed by the active ones\n\t\tthis._objects = Array.prototype.slice.call( arguments );\n\n\t\tthis.nCachedObjects_ = 0; // threshold\n\t\t// note: read by PropertyBinding.Composite\n\n\t\tconst indices = {};\n\t\tthis._indicesByUUID = indices; // for bookkeeping\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tindices[ arguments[ i ].uuid ] = i;\n\n\t\t}\n\n\t\tthis._paths = []; // inside: string\n\t\tthis._parsedPaths = []; // inside: { we don't care, here }\n\t\tthis._bindings = []; // inside: Array< PropertyBinding >\n\t\tthis._bindingsIndicesByPath = {}; // inside: indices in these arrays\n\n\t\tconst scope = this;\n\n\t\tthis.stats = {\n\n\t\t\tobjects: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._objects.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn this.total - scope.nCachedObjects_;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tget bindingsPerObject() {\n\n\t\t\t\treturn scope._bindings.length;\n\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\tadd() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tpaths = this._paths,\n\t\t\tparsedPaths = this._parsedPaths,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet knownObject = undefined,\n\t\t\tnObjects = objects.length,\n\t\t\tnCachedObjects = this.nCachedObjects_;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid;\n\t\t\tlet index = indicesByUUID[ uuid ];\n\n\t\t\tif ( index === undefined ) {\n\n\t\t\t\t// unknown object -> add it to the ACTIVE region\n\n\t\t\t\tindex = nObjects ++;\n\t\t\t\tindicesByUUID[ uuid ] = index;\n\t\t\t\tobjects.push( object );\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tbindings[ j ].push( new PropertyBinding( object, paths[ j ], parsedPaths[ j ] ) );\n\n\t\t\t\t}\n\n\t\t\t} else if ( index < nCachedObjects ) {\n\n\t\t\t\tknownObject = objects[ index ];\n\n\t\t\t\t// move existing object to the ACTIVE region\n\n\t\t\t\tconst firstActiveIndex = -- nCachedObjects,\n\t\t\t\t\tlastCachedObject = objects[ firstActiveIndex ];\n\n\t\t\t\tindicesByUUID[ lastCachedObject.uuid ] = index;\n\t\t\t\tobjects[ index ] = lastCachedObject;\n\n\t\t\t\tindicesByUUID[ uuid ] = firstActiveIndex;\n\t\t\t\tobjects[ firstActiveIndex ] = object;\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\tlastCached = bindingsForPath[ firstActiveIndex ];\n\n\t\t\t\t\tlet binding = bindingsForPath[ index ];\n\n\t\t\t\t\tbindingsForPath[ index ] = lastCached;\n\n\t\t\t\t\tif ( binding === undefined ) {\n\n\t\t\t\t\t\t// since we do not bother to create new bindings\n\t\t\t\t\t\t// for objects that are cached, the binding may\n\t\t\t\t\t\t// or may not exist\n\n\t\t\t\t\t\tbinding = new PropertyBinding( object, paths[ j ], parsedPaths[ j ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbindingsForPath[ firstActiveIndex ] = binding;\n\n\t\t\t\t}\n\n\t\t\t} else if ( objects[ index ] !== knownObject ) {\n\n\t\t\t\tconsole.error( 'THREE.AnimationObjectGroup: Different objects with the same UUID ' +\n\t\t\t\t\t'detected. Clean the caches or recreate your infrastructure when reloading scenes.' );\n\n\t\t\t} // else the object is already where we want it to be\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\tremove() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet nCachedObjects = this.nCachedObjects_;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid,\n\t\t\t\tindex = indicesByUUID[ uuid ];\n\n\t\t\tif ( index !== undefined && index >= nCachedObjects ) {\n\n\t\t\t\t// move existing object into the CACHED region\n\n\t\t\t\tconst lastCachedIndex = nCachedObjects ++,\n\t\t\t\t\tfirstActiveObject = objects[ lastCachedIndex ];\n\n\t\t\t\tindicesByUUID[ firstActiveObject.uuid ] = index;\n\t\t\t\tobjects[ index ] = firstActiveObject;\n\n\t\t\t\tindicesByUUID[ uuid ] = lastCachedIndex;\n\t\t\t\tobjects[ lastCachedIndex ] = object;\n\n\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\tfirstActive = bindingsForPath[ lastCachedIndex ],\n\t\t\t\t\t\tbinding = bindingsForPath[ index ];\n\n\t\t\t\t\tbindingsForPath[ index ] = firstActive;\n\t\t\t\t\tbindingsForPath[ lastCachedIndex ] = binding;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\t// remove & forget\n\tuncache() {\n\n\t\tconst objects = this._objects,\n\t\t\tindicesByUUID = this._indicesByUUID,\n\t\t\tbindings = this._bindings,\n\t\t\tnBindings = bindings.length;\n\n\t\tlet nCachedObjects = this.nCachedObjects_,\n\t\t\tnObjects = objects.length;\n\n\t\tfor ( let i = 0, n = arguments.length; i !== n; ++ i ) {\n\n\t\t\tconst object = arguments[ i ],\n\t\t\t\tuuid = object.uuid,\n\t\t\t\tindex = indicesByUUID[ uuid ];\n\n\t\t\tif ( index !== undefined ) {\n\n\t\t\t\tdelete indicesByUUID[ uuid ];\n\n\t\t\t\tif ( index < nCachedObjects ) {\n\n\t\t\t\t\t// object is cached, shrink the CACHED region\n\n\t\t\t\t\tconst firstActiveIndex = -- nCachedObjects,\n\t\t\t\t\t\tlastCachedObject = objects[ firstActiveIndex ],\n\t\t\t\t\t\tlastIndex = -- nObjects,\n\t\t\t\t\t\tlastObject = objects[ lastIndex ];\n\n\t\t\t\t\t// last cached object takes this object's place\n\t\t\t\t\tindicesByUUID[ lastCachedObject.uuid ] = index;\n\t\t\t\t\tobjects[ index ] = lastCachedObject;\n\n\t\t\t\t\t// last object goes to the activated slot and pop\n\t\t\t\t\tindicesByUUID[ lastObject.uuid ] = firstActiveIndex;\n\t\t\t\t\tobjects[ firstActiveIndex ] = lastObject;\n\t\t\t\t\tobjects.pop();\n\n\t\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\t\tconst bindingsForPath = bindings[ j ],\n\t\t\t\t\t\t\tlastCached = bindingsForPath[ firstActiveIndex ],\n\t\t\t\t\t\t\tlast = bindingsForPath[ lastIndex ];\n\n\t\t\t\t\t\tbindingsForPath[ index ] = lastCached;\n\t\t\t\t\t\tbindingsForPath[ firstActiveIndex ] = last;\n\t\t\t\t\t\tbindingsForPath.pop();\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// object is active, just swap with the last and pop\n\n\t\t\t\t\tconst lastIndex = -- nObjects,\n\t\t\t\t\t\tlastObject = objects[ lastIndex ];\n\n\t\t\t\t\tif ( lastIndex > 0 ) {\n\n\t\t\t\t\t\tindicesByUUID[ lastObject.uuid ] = index;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tobjects[ index ] = lastObject;\n\t\t\t\t\tobjects.pop();\n\n\t\t\t\t\t// accounting is done, now do the same for all bindings\n\n\t\t\t\t\tfor ( let j = 0, m = nBindings; j !== m; ++ j ) {\n\n\t\t\t\t\t\tconst bindingsForPath = bindings[ j ];\n\n\t\t\t\t\t\tbindingsForPath[ index ] = bindingsForPath[ lastIndex ];\n\t\t\t\t\t\tbindingsForPath.pop();\n\n\t\t\t\t\t}\n\n\t\t\t\t} // cached or active\n\n\t\t\t} // if object is known\n\n\t\t} // for arguments\n\n\t\tthis.nCachedObjects_ = nCachedObjects;\n\n\t}\n\n\t// Internal interface used by befriended PropertyBinding.Composite:\n\n\tsubscribe_( path, parsedPath ) {\n\n\t\t// returns an array of bindings for the given path that is changed\n\t\t// according to the contained objects in the group\n\n\t\tconst indicesByPath = this._bindingsIndicesByPath;\n\t\tlet index = indicesByPath[ path ];\n\t\tconst bindings = this._bindings;\n\n\t\tif ( index !== undefined ) return bindings[ index ];\n\n\t\tconst paths = this._paths,\n\t\t\tparsedPaths = this._parsedPaths,\n\t\t\tobjects = this._objects,\n\t\t\tnObjects = objects.length,\n\t\t\tnCachedObjects = this.nCachedObjects_,\n\t\t\tbindingsForPath = new Array( nObjects );\n\n\t\tindex = bindings.length;\n\n\t\tindicesByPath[ path ] = index;\n\n\t\tpaths.push( path );\n\t\tparsedPaths.push( parsedPath );\n\t\tbindings.push( bindingsForPath );\n\n\t\tfor ( let i = nCachedObjects, n = objects.length; i !== n; ++ i ) {\n\n\t\t\tconst object = objects[ i ];\n\t\t\tbindingsForPath[ i ] = new PropertyBinding( object, path, parsedPath );\n\n\t\t}\n\n\t\treturn bindingsForPath;\n\n\t}\n\n\tunsubscribe_( path ) {\n\n\t\t// tells the group to forget about a property path and no longer\n\t\t// update the array previously obtained with 'subscribe_'\n\n\t\tconst indicesByPath = this._bindingsIndicesByPath,\n\t\t\tindex = indicesByPath[ path ];\n\n\t\tif ( index !== undefined ) {\n\n\t\t\tconst paths = this._paths,\n\t\t\t\tparsedPaths = this._parsedPaths,\n\t\t\t\tbindings = this._bindings,\n\t\t\t\tlastBindingsIndex = bindings.length - 1,\n\t\t\t\tlastBindings = bindings[ lastBindingsIndex ],\n\t\t\t\tlastBindingsPath = path[ lastBindingsIndex ];\n\n\t\t\tindicesByPath[ lastBindingsPath ] = index;\n\n\t\t\tbindings[ index ] = lastBindings;\n\t\t\tbindings.pop();\n\n\t\t\tparsedPaths[ index ] = parsedPaths[ lastBindingsIndex ];\n\t\t\tparsedPaths.pop();\n\n\t\t\tpaths[ index ] = paths[ lastBindingsIndex ];\n\t\t\tpaths.pop();\n\n\t\t}\n\n\t}\n\n}\n\nclass AnimationAction {\n\n\tconstructor( mixer, clip, localRoot = null, blendMode = clip.blendMode ) {\n\n\t\tthis._mixer = mixer;\n\t\tthis._clip = clip;\n\t\tthis._localRoot = localRoot;\n\t\tthis.blendMode = blendMode;\n\n\t\tconst tracks = clip.tracks,\n\t\t\tnTracks = tracks.length,\n\t\t\tinterpolants = new Array( nTracks );\n\n\t\tconst interpolantSettings = {\n\t\t\tendingStart: ZeroCurvatureEnding,\n\t\t\tendingEnd: ZeroCurvatureEnding\n\t\t};\n\n\t\tfor ( let i = 0; i !== nTracks; ++ i ) {\n\n\t\t\tconst interpolant = tracks[ i ].createInterpolant( null );\n\t\t\tinterpolants[ i ] = interpolant;\n\t\t\tinterpolant.settings = interpolantSettings;\n\n\t\t}\n\n\t\tthis._interpolantSettings = interpolantSettings;\n\n\t\tthis._interpolants = interpolants; // bound by the mixer\n\n\t\t// inside: PropertyMixer (managed by the mixer)\n\t\tthis._propertyBindings = new Array( nTracks );\n\n\t\tthis._cacheIndex = null; // for the memory manager\n\t\tthis._byClipCacheIndex = null; // for the memory manager\n\n\t\tthis._timeScaleInterpolant = null;\n\t\tthis._weightInterpolant = null;\n\n\t\tthis.loop = LoopRepeat;\n\t\tthis._loopCount = - 1;\n\n\t\t// global mixer time when the action is to be started\n\t\t// it's set back to 'null' upon start of the action\n\t\tthis._startTime = null;\n\n\t\t// scaled local time of the action\n\t\t// gets clamped or wrapped to 0..clip.duration according to loop\n\t\tthis.time = 0;\n\n\t\tthis.timeScale = 1;\n\t\tthis._effectiveTimeScale = 1;\n\n\t\tthis.weight = 1;\n\t\tthis._effectiveWeight = 1;\n\n\t\tthis.repetitions = Infinity; // no. of repetitions when looping\n\n\t\tthis.paused = false; // true -> zero effective time scale\n\t\tthis.enabled = true; // false -> zero effective weight\n\n\t\tthis.clampWhenFinished = false;// keep feeding the last frame?\n\n\t\tthis.zeroSlopeAtStart = true;// for smooth interpolation w/o separate\n\t\tthis.zeroSlopeAtEnd = true;// clips for start, loop and end\n\n\t}\n\n\t// State & Scheduling\n\n\tplay() {\n\n\t\tthis._mixer._activateAction( this );\n\n\t\treturn this;\n\n\t}\n\n\tstop() {\n\n\t\tthis._mixer._deactivateAction( this );\n\n\t\treturn this.reset();\n\n\t}\n\n\treset() {\n\n\t\tthis.paused = false;\n\t\tthis.enabled = true;\n\n\t\tthis.time = 0; // restart clip\n\t\tthis._loopCount = - 1;// forget previous loops\n\t\tthis._startTime = null;// forget scheduling\n\n\t\treturn this.stopFading().stopWarping();\n\n\t}\n\n\tisRunning() {\n\n\t\treturn this.enabled && ! this.paused && this.timeScale !== 0 &&\n\t\t\tthis._startTime === null && this._mixer._isActiveAction( this );\n\n\t}\n\n\t// return true when play has been called\n\tisScheduled() {\n\n\t\treturn this._mixer._isActiveAction( this );\n\n\t}\n\n\tstartAt( time ) {\n\n\t\tthis._startTime = time;\n\n\t\treturn this;\n\n\t}\n\n\tsetLoop( mode, repetitions ) {\n\n\t\tthis.loop = mode;\n\t\tthis.repetitions = repetitions;\n\n\t\treturn this;\n\n\t}\n\n\t// Weight\n\n\t// set the weight stopping any scheduled fading\n\t// although .enabled = false yields an effective weight of zero, this\n\t// method does *not* change .enabled, because it would be confusing\n\tsetEffectiveWeight( weight ) {\n\n\t\tthis.weight = weight;\n\n\t\t// note: same logic as when updated at runtime\n\t\tthis._effectiveWeight = this.enabled ? weight : 0;\n\n\t\treturn this.stopFading();\n\n\t}\n\n\t// return the weight considering fading and .enabled\n\tgetEffectiveWeight() {\n\n\t\treturn this._effectiveWeight;\n\n\t}\n\n\tfadeIn( duration ) {\n\n\t\treturn this._scheduleFading( duration, 0, 1 );\n\n\t}\n\n\tfadeOut( duration ) {\n\n\t\treturn this._scheduleFading( duration, 1, 0 );\n\n\t}\n\n\tcrossFadeFrom( fadeOutAction, duration, warp ) {\n\n\t\tfadeOutAction.fadeOut( duration );\n\t\tthis.fadeIn( duration );\n\n\t\tif ( warp ) {\n\n\t\t\tconst fadeInDuration = this._clip.duration,\n\t\t\t\tfadeOutDuration = fadeOutAction._clip.duration,\n\n\t\t\t\tstartEndRatio = fadeOutDuration / fadeInDuration,\n\t\t\t\tendStartRatio = fadeInDuration / fadeOutDuration;\n\n\t\t\tfadeOutAction.warp( 1.0, startEndRatio, duration );\n\t\t\tthis.warp( endStartRatio, 1.0, duration );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcrossFadeTo( fadeInAction, duration, warp ) {\n\n\t\treturn fadeInAction.crossFadeFrom( this, duration, warp );\n\n\t}\n\n\tstopFading() {\n\n\t\tconst weightInterpolant = this._weightInterpolant;\n\n\t\tif ( weightInterpolant !== null ) {\n\n\t\t\tthis._weightInterpolant = null;\n\t\t\tthis._mixer._takeBackControlInterpolant( weightInterpolant );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Time Scale Control\n\n\t// set the time scale stopping any scheduled warping\n\t// although .paused = true yields an effective time scale of zero, this\n\t// method does *not* change .paused, because it would be confusing\n\tsetEffectiveTimeScale( timeScale ) {\n\n\t\tthis.timeScale = timeScale;\n\t\tthis._effectiveTimeScale = this.paused ? 0 : timeScale;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\t// return the time scale considering warping and .paused\n\tgetEffectiveTimeScale() {\n\n\t\treturn this._effectiveTimeScale;\n\n\t}\n\n\tsetDuration( duration ) {\n\n\t\tthis.timeScale = this._clip.duration / duration;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\tsyncWith( action ) {\n\n\t\tthis.time = action.time;\n\t\tthis.timeScale = action.timeScale;\n\n\t\treturn this.stopWarping();\n\n\t}\n\n\thalt( duration ) {\n\n\t\treturn this.warp( this._effectiveTimeScale, 0, duration );\n\n\t}\n\n\twarp( startTimeScale, endTimeScale, duration ) {\n\n\t\tconst mixer = this._mixer,\n\t\t\tnow = mixer.time,\n\t\t\ttimeScale = this.timeScale;\n\n\t\tlet interpolant = this._timeScaleInterpolant;\n\n\t\tif ( interpolant === null ) {\n\n\t\t\tinterpolant = mixer._lendControlInterpolant();\n\t\t\tthis._timeScaleInterpolant = interpolant;\n\n\t\t}\n\n\t\tconst times = interpolant.parameterPositions,\n\t\t\tvalues = interpolant.sampleValues;\n\n\t\ttimes[ 0 ] = now;\n\t\ttimes[ 1 ] = now + duration;\n\n\t\tvalues[ 0 ] = startTimeScale / timeScale;\n\t\tvalues[ 1 ] = endTimeScale / timeScale;\n\n\t\treturn this;\n\n\t}\n\n\tstopWarping() {\n\n\t\tconst timeScaleInterpolant = this._timeScaleInterpolant;\n\n\t\tif ( timeScaleInterpolant !== null ) {\n\n\t\t\tthis._timeScaleInterpolant = null;\n\t\t\tthis._mixer._takeBackControlInterpolant( timeScaleInterpolant );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Object Accessors\n\n\tgetMixer() {\n\n\t\treturn this._mixer;\n\n\t}\n\n\tgetClip() {\n\n\t\treturn this._clip;\n\n\t}\n\n\tgetRoot() {\n\n\t\treturn this._localRoot || this._mixer._root;\n\n\t}\n\n\t// Interna\n\n\t_update( time, deltaTime, timeDirection, accuIndex ) {\n\n\t\t// called by the mixer\n\n\t\tif ( ! this.enabled ) {\n\n\t\t\t// call ._updateWeight() to update ._effectiveWeight\n\n\t\t\tthis._updateWeight( time );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst startTime = this._startTime;\n\n\t\tif ( startTime !== null ) {\n\n\t\t\t// check for scheduled start of action\n\n\t\t\tconst timeRunning = ( time - startTime ) * timeDirection;\n\t\t\tif ( timeRunning < 0 || timeDirection === 0 ) {\n\n\t\t\t\tdeltaTime = 0;\n\n\t\t\t} else {\n\n\n\t\t\t\tthis._startTime = null; // unschedule\n\t\t\t\tdeltaTime = timeDirection * timeRunning;\n\n\t\t\t}\n\n\t\t}\n\n\t\t// apply time scale and advance time\n\n\t\tdeltaTime *= this._updateTimeScale( time );\n\t\tconst clipTime = this._updateTime( deltaTime );\n\n\t\t// note: _updateTime may disable the action resulting in\n\t\t// an effective weight of 0\n\n\t\tconst weight = this._updateWeight( time );\n\n\t\tif ( weight > 0 ) {\n\n\t\t\tconst interpolants = this._interpolants;\n\t\t\tconst propertyMixers = this._propertyBindings;\n\n\t\t\tswitch ( this.blendMode ) {\n\n\t\t\t\tcase AdditiveAnimationBlendMode:\n\n\t\t\t\t\tfor ( let j = 0, m = interpolants.length; j !== m; ++ j ) {\n\n\t\t\t\t\t\tinterpolants[ j ].evaluate( clipTime );\n\t\t\t\t\t\tpropertyMixers[ j ].accumulateAdditive( weight );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase NormalAnimationBlendMode:\n\t\t\t\tdefault:\n\n\t\t\t\t\tfor ( let j = 0, m = interpolants.length; j !== m; ++ j ) {\n\n\t\t\t\t\t\tinterpolants[ j ].evaluate( clipTime );\n\t\t\t\t\t\tpropertyMixers[ j ].accumulate( accuIndex, weight );\n\n\t\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_updateWeight( time ) {\n\n\t\tlet weight = 0;\n\n\t\tif ( this.enabled ) {\n\n\t\t\tweight = this.weight;\n\t\t\tconst interpolant = this._weightInterpolant;\n\n\t\t\tif ( interpolant !== null ) {\n\n\t\t\t\tconst interpolantValue = interpolant.evaluate( time )[ 0 ];\n\n\t\t\t\tweight *= interpolantValue;\n\n\t\t\t\tif ( time > interpolant.parameterPositions[ 1 ] ) {\n\n\t\t\t\t\tthis.stopFading();\n\n\t\t\t\t\tif ( interpolantValue === 0 ) {\n\n\t\t\t\t\t\t// faded out, disable\n\t\t\t\t\t\tthis.enabled = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._effectiveWeight = weight;\n\t\treturn weight;\n\n\t}\n\n\t_updateTimeScale( time ) {\n\n\t\tlet timeScale = 0;\n\n\t\tif ( ! this.paused ) {\n\n\t\t\ttimeScale = this.timeScale;\n\n\t\t\tconst interpolant = this._timeScaleInterpolant;\n\n\t\t\tif ( interpolant !== null ) {\n\n\t\t\t\tconst interpolantValue = interpolant.evaluate( time )[ 0 ];\n\n\t\t\t\ttimeScale *= interpolantValue;\n\n\t\t\t\tif ( time > interpolant.parameterPositions[ 1 ] ) {\n\n\t\t\t\t\tthis.stopWarping();\n\n\t\t\t\t\tif ( timeScale === 0 ) {\n\n\t\t\t\t\t\t// motion has halted, pause\n\t\t\t\t\t\tthis.paused = true;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// warp done - apply final time scale\n\t\t\t\t\t\tthis.timeScale = timeScale;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._effectiveTimeScale = timeScale;\n\t\treturn timeScale;\n\n\t}\n\n\t_updateTime( deltaTime ) {\n\n\t\tconst duration = this._clip.duration;\n\t\tconst loop = this.loop;\n\n\t\tlet time = this.time + deltaTime;\n\t\tlet loopCount = this._loopCount;\n\n\t\tconst pingPong = ( loop === LoopPingPong );\n\n\t\tif ( deltaTime === 0 ) {\n\n\t\t\tif ( loopCount === - 1 ) return time;\n\n\t\t\treturn ( pingPong && ( loopCount & 1 ) === 1 ) ? duration - time : time;\n\n\t\t}\n\n\t\tif ( loop === LoopOnce ) {\n\n\t\t\tif ( loopCount === - 1 ) {\n\n\t\t\t\t// just started\n\n\t\t\t\tthis._loopCount = 0;\n\t\t\t\tthis._setEndings( true, true, false );\n\n\t\t\t}\n\n\t\t\thandle_stop: {\n\n\t\t\t\tif ( time >= duration ) {\n\n\t\t\t\t\ttime = duration;\n\n\t\t\t\t} else if ( time < 0 ) {\n\n\t\t\t\t\ttime = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tbreak handle_stop;\n\n\t\t\t\t}\n\n\t\t\t\tif ( this.clampWhenFinished ) this.paused = true;\n\t\t\t\telse this.enabled = false;\n\n\t\t\t\tthis.time = time;\n\n\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\ttype: 'finished', action: this,\n\t\t\t\t\tdirection: deltaTime < 0 ? - 1 : 1\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t} else { // repetitive Repeat or PingPong\n\n\t\t\tif ( loopCount === - 1 ) {\n\n\t\t\t\t// just started\n\n\t\t\t\tif ( deltaTime >= 0 ) {\n\n\t\t\t\t\tloopCount = 0;\n\n\t\t\t\t\tthis._setEndings( true, this.repetitions === 0, pingPong );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// when looping in reverse direction, the initial\n\t\t\t\t\t// transition through zero counts as a repetition,\n\t\t\t\t\t// so leave loopCount at -1\n\n\t\t\t\t\tthis._setEndings( this.repetitions === 0, true, pingPong );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( time >= duration || time < 0 ) {\n\n\t\t\t\t// wrap around\n\n\t\t\t\tconst loopDelta = Math.floor( time / duration ); // signed\n\t\t\t\ttime -= duration * loopDelta;\n\n\t\t\t\tloopCount += Math.abs( loopDelta );\n\n\t\t\t\tconst pending = this.repetitions - loopCount;\n\n\t\t\t\tif ( pending <= 0 ) {\n\n\t\t\t\t\t// have to stop (switch state, clamp time, fire event)\n\n\t\t\t\t\tif ( this.clampWhenFinished ) this.paused = true;\n\t\t\t\t\telse this.enabled = false;\n\n\t\t\t\t\ttime = deltaTime > 0 ? duration : 0;\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\t\ttype: 'finished', action: this,\n\t\t\t\t\t\tdirection: deltaTime > 0 ? 1 : - 1\n\t\t\t\t\t} );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// keep running\n\n\t\t\t\t\tif ( pending === 1 ) {\n\n\t\t\t\t\t\t// entering the last round\n\n\t\t\t\t\t\tconst atStart = deltaTime < 0;\n\t\t\t\t\t\tthis._setEndings( atStart, ! atStart, pingPong );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis._setEndings( false, false, pingPong );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._loopCount = loopCount;\n\n\t\t\t\t\tthis.time = time;\n\n\t\t\t\t\tthis._mixer.dispatchEvent( {\n\t\t\t\t\t\ttype: 'loop', action: this, loopDelta: loopDelta\n\t\t\t\t\t} );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tthis.time = time;\n\n\t\t\t}\n\n\t\t\tif ( pingPong && ( loopCount & 1 ) === 1 ) {\n\n\t\t\t\t// invert time for the \"pong round\"\n\n\t\t\t\treturn duration - time;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn time;\n\n\t}\n\n\t_setEndings( atStart, atEnd, pingPong ) {\n\n\t\tconst settings = this._interpolantSettings;\n\n\t\tif ( pingPong ) {\n\n\t\t\tsettings.endingStart = ZeroSlopeEnding;\n\t\t\tsettings.endingEnd = ZeroSlopeEnding;\n\n\t\t} else {\n\n\t\t\t// assuming for LoopOnce atStart == atEnd == true\n\n\t\t\tif ( atStart ) {\n\n\t\t\t\tsettings.endingStart = this.zeroSlopeAtStart ? ZeroSlopeEnding : ZeroCurvatureEnding;\n\n\t\t\t} else {\n\n\t\t\t\tsettings.endingStart = WrapAroundEnding;\n\n\t\t\t}\n\n\t\t\tif ( atEnd ) {\n\n\t\t\t\tsettings.endingEnd = this.zeroSlopeAtEnd ? ZeroSlopeEnding : ZeroCurvatureEnding;\n\n\t\t\t} else {\n\n\t\t\t\tsettings.endingEnd \t = WrapAroundEnding;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_scheduleFading( duration, weightNow, weightThen ) {\n\n\t\tconst mixer = this._mixer, now = mixer.time;\n\t\tlet interpolant = this._weightInterpolant;\n\n\t\tif ( interpolant === null ) {\n\n\t\t\tinterpolant = mixer._lendControlInterpolant();\n\t\t\tthis._weightInterpolant = interpolant;\n\n\t\t}\n\n\t\tconst times = interpolant.parameterPositions,\n\t\t\tvalues = interpolant.sampleValues;\n\n\t\ttimes[ 0 ] = now;\n\t\tvalues[ 0 ] = weightNow;\n\t\ttimes[ 1 ] = now + duration;\n\t\tvalues[ 1 ] = weightThen;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _controlInterpolantsResultBuffer = new Float32Array( 1 );\n\n\nclass AnimationMixer extends EventDispatcher {\n\n\tconstructor( root ) {\n\n\t\tsuper();\n\n\t\tthis._root = root;\n\t\tthis._initMemoryManager();\n\t\tthis._accuIndex = 0;\n\t\tthis.time = 0;\n\t\tthis.timeScale = 1.0;\n\n\t}\n\n\t_bindAction( action, prototypeAction ) {\n\n\t\tconst root = action._localRoot || this._root,\n\t\t\ttracks = action._clip.tracks,\n\t\t\tnTracks = tracks.length,\n\t\t\tbindings = action._propertyBindings,\n\t\t\tinterpolants = action._interpolants,\n\t\t\trootUuid = root.uuid,\n\t\t\tbindingsByRoot = this._bindingsByRootAndName;\n\n\t\tlet bindingsByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingsByName === undefined ) {\n\n\t\t\tbindingsByName = {};\n\t\t\tbindingsByRoot[ rootUuid ] = bindingsByName;\n\n\t\t}\n\n\t\tfor ( let i = 0; i !== nTracks; ++ i ) {\n\n\t\t\tconst track = tracks[ i ],\n\t\t\t\ttrackName = track.name;\n\n\t\t\tlet binding = bindingsByName[ trackName ];\n\n\t\t\tif ( binding !== undefined ) {\n\n\t\t\t\t++ binding.referenceCount;\n\t\t\t\tbindings[ i ] = binding;\n\n\t\t\t} else {\n\n\t\t\t\tbinding = bindings[ i ];\n\n\t\t\t\tif ( binding !== undefined ) {\n\n\t\t\t\t\t// existing binding, make sure the cache knows\n\n\t\t\t\t\tif ( binding._cacheIndex === null ) {\n\n\t\t\t\t\t\t++ binding.referenceCount;\n\t\t\t\t\t\tthis._addInactiveBinding( binding, rootUuid, trackName );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\t}\n\n\t\t\t\tconst path = prototypeAction && prototypeAction.\n\t\t\t\t\t_propertyBindings[ i ].binding.parsedPath;\n\n\t\t\t\tbinding = new PropertyMixer(\n\t\t\t\t\tPropertyBinding.create( root, trackName, path ),\n\t\t\t\t\ttrack.ValueTypeName, track.getValueSize() );\n\n\t\t\t\t++ binding.referenceCount;\n\t\t\t\tthis._addInactiveBinding( binding, rootUuid, trackName );\n\n\t\t\t\tbindings[ i ] = binding;\n\n\t\t\t}\n\n\t\t\tinterpolants[ i ].resultBuffer = binding.buffer;\n\n\t\t}\n\n\t}\n\n\t_activateAction( action ) {\n\n\t\tif ( ! this._isActiveAction( action ) ) {\n\n\t\t\tif ( action._cacheIndex === null ) {\n\n\t\t\t\t// this action has been forgotten by the cache, but the user\n\t\t\t\t// appears to be still using it -> rebind\n\n\t\t\t\tconst rootUuid = ( action._localRoot || this._root ).uuid,\n\t\t\t\t\tclipUuid = action._clip.uuid,\n\t\t\t\t\tactionsForClip = this._actionsByClip[ clipUuid ];\n\n\t\t\t\tthis._bindAction( action,\n\t\t\t\t\tactionsForClip && actionsForClip.knownActions[ 0 ] );\n\n\t\t\t\tthis._addInactiveAction( action, clipUuid, rootUuid );\n\n\t\t\t}\n\n\t\t\tconst bindings = action._propertyBindings;\n\n\t\t\t// increment reference counts / sort out state\n\t\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\t\tconst binding = bindings[ i ];\n\n\t\t\t\tif ( binding.useCount ++ === 0 ) {\n\n\t\t\t\t\tthis._lendBinding( binding );\n\t\t\t\t\tbinding.saveOriginalState();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._lendAction( action );\n\n\t\t}\n\n\t}\n\n\t_deactivateAction( action ) {\n\n\t\tif ( this._isActiveAction( action ) ) {\n\n\t\t\tconst bindings = action._propertyBindings;\n\n\t\t\t// decrement reference counts / sort out state\n\t\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\t\tconst binding = bindings[ i ];\n\n\t\t\t\tif ( -- binding.useCount === 0 ) {\n\n\t\t\t\t\tbinding.restoreOriginalState();\n\t\t\t\t\tthis._takeBackBinding( binding );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._takeBackAction( action );\n\n\t\t}\n\n\t}\n\n\t// Memory manager\n\n\t_initMemoryManager() {\n\n\t\tthis._actions = []; // 'nActiveActions' followed by inactive ones\n\t\tthis._nActiveActions = 0;\n\n\t\tthis._actionsByClip = {};\n\t\t// inside:\n\t\t// {\n\t\t// \tknownActions: Array< AnimationAction > - used as prototypes\n\t\t// \tactionByRoot: AnimationAction - lookup\n\t\t// }\n\n\n\t\tthis._bindings = []; // 'nActiveBindings' followed by inactive ones\n\t\tthis._nActiveBindings = 0;\n\n\t\tthis._bindingsByRootAndName = {}; // inside: Map< name, PropertyMixer >\n\n\n\t\tthis._controlInterpolants = []; // same game as above\n\t\tthis._nActiveControlInterpolants = 0;\n\n\t\tconst scope = this;\n\n\t\tthis.stats = {\n\n\t\t\tactions: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._actions.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveActions;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tbindings: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._bindings.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveBindings;\n\n\t\t\t\t}\n\t\t\t},\n\t\t\tcontrolInterpolants: {\n\t\t\t\tget total() {\n\n\t\t\t\t\treturn scope._controlInterpolants.length;\n\n\t\t\t\t},\n\t\t\t\tget inUse() {\n\n\t\t\t\t\treturn scope._nActiveControlInterpolants;\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t};\n\n\t}\n\n\t// Memory management for AnimationAction objects\n\n\t_isActiveAction( action ) {\n\n\t\tconst index = action._cacheIndex;\n\t\treturn index !== null && index < this._nActiveActions;\n\n\t}\n\n\t_addInactiveAction( action, clipUuid, rootUuid ) {\n\n\t\tconst actions = this._actions,\n\t\t\tactionsByClip = this._actionsByClip;\n\n\t\tlet actionsForClip = actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip === undefined ) {\n\n\t\t\tactionsForClip = {\n\n\t\t\t\tknownActions: [ action ],\n\t\t\t\tactionByRoot: {}\n\n\t\t\t};\n\n\t\t\taction._byClipCacheIndex = 0;\n\n\t\t\tactionsByClip[ clipUuid ] = actionsForClip;\n\n\t\t} else {\n\n\t\t\tconst knownActions = actionsForClip.knownActions;\n\n\t\t\taction._byClipCacheIndex = knownActions.length;\n\t\t\tknownActions.push( action );\n\n\t\t}\n\n\t\taction._cacheIndex = actions.length;\n\t\tactions.push( action );\n\n\t\tactionsForClip.actionByRoot[ rootUuid ] = action;\n\n\t}\n\n\t_removeInactiveAction( action ) {\n\n\t\tconst actions = this._actions,\n\t\t\tlastInactiveAction = actions[ actions.length - 1 ],\n\t\t\tcacheIndex = action._cacheIndex;\n\n\t\tlastInactiveAction._cacheIndex = cacheIndex;\n\t\tactions[ cacheIndex ] = lastInactiveAction;\n\t\tactions.pop();\n\n\t\taction._cacheIndex = null;\n\n\n\t\tconst clipUuid = action._clip.uuid,\n\t\t\tactionsByClip = this._actionsByClip,\n\t\t\tactionsForClip = actionsByClip[ clipUuid ],\n\t\t\tknownActionsForClip = actionsForClip.knownActions,\n\n\t\t\tlastKnownAction =\n\t\t\t\tknownActionsForClip[ knownActionsForClip.length - 1 ],\n\n\t\t\tbyClipCacheIndex = action._byClipCacheIndex;\n\n\t\tlastKnownAction._byClipCacheIndex = byClipCacheIndex;\n\t\tknownActionsForClip[ byClipCacheIndex ] = lastKnownAction;\n\t\tknownActionsForClip.pop();\n\n\t\taction._byClipCacheIndex = null;\n\n\n\t\tconst actionByRoot = actionsForClip.actionByRoot,\n\t\t\trootUuid = ( action._localRoot || this._root ).uuid;\n\n\t\tdelete actionByRoot[ rootUuid ];\n\n\t\tif ( knownActionsForClip.length === 0 ) {\n\n\t\t\tdelete actionsByClip[ clipUuid ];\n\n\t\t}\n\n\t\tthis._removeInactiveBindingsForAction( action );\n\n\t}\n\n\t_removeInactiveBindingsForAction( action ) {\n\n\t\tconst bindings = action._propertyBindings;\n\n\t\tfor ( let i = 0, n = bindings.length; i !== n; ++ i ) {\n\n\t\t\tconst binding = bindings[ i ];\n\n\t\t\tif ( -- binding.referenceCount === 0 ) {\n\n\t\t\t\tthis._removeInactiveBinding( binding );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_lendAction( action ) {\n\n\t\t// [ active actions | inactive actions ]\n\t\t// [ active actions >| inactive actions ]\n\t\t// s a\n\t\t// <-swap->\n\t\t// a s\n\n\t\tconst actions = this._actions,\n\t\t\tprevIndex = action._cacheIndex,\n\n\t\t\tlastActiveIndex = this._nActiveActions ++,\n\n\t\t\tfirstInactiveAction = actions[ lastActiveIndex ];\n\n\t\taction._cacheIndex = lastActiveIndex;\n\t\tactions[ lastActiveIndex ] = action;\n\n\t\tfirstInactiveAction._cacheIndex = prevIndex;\n\t\tactions[ prevIndex ] = firstInactiveAction;\n\n\t}\n\n\t_takeBackAction( action ) {\n\n\t\t// [ active actions | inactive actions ]\n\t\t// [ active actions |< inactive actions ]\n\t\t// a s\n\t\t// <-swap->\n\t\t// s a\n\n\t\tconst actions = this._actions,\n\t\t\tprevIndex = action._cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveActions,\n\n\t\t\tlastActiveAction = actions[ firstInactiveIndex ];\n\n\t\taction._cacheIndex = firstInactiveIndex;\n\t\tactions[ firstInactiveIndex ] = action;\n\n\t\tlastActiveAction._cacheIndex = prevIndex;\n\t\tactions[ prevIndex ] = lastActiveAction;\n\n\t}\n\n\t// Memory management for PropertyMixer objects\n\n\t_addInactiveBinding( binding, rootUuid, trackName ) {\n\n\t\tconst bindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindings = this._bindings;\n\n\t\tlet bindingByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingByName === undefined ) {\n\n\t\t\tbindingByName = {};\n\t\t\tbindingsByRoot[ rootUuid ] = bindingByName;\n\n\t\t}\n\n\t\tbindingByName[ trackName ] = binding;\n\n\t\tbinding._cacheIndex = bindings.length;\n\t\tbindings.push( binding );\n\n\t}\n\n\t_removeInactiveBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tpropBinding = binding.binding,\n\t\t\trootUuid = propBinding.rootNode.uuid,\n\t\t\ttrackName = propBinding.path,\n\t\t\tbindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindingByName = bindingsByRoot[ rootUuid ],\n\n\t\t\tlastInactiveBinding = bindings[ bindings.length - 1 ],\n\t\t\tcacheIndex = binding._cacheIndex;\n\n\t\tlastInactiveBinding._cacheIndex = cacheIndex;\n\t\tbindings[ cacheIndex ] = lastInactiveBinding;\n\t\tbindings.pop();\n\n\t\tdelete bindingByName[ trackName ];\n\n\t\tif ( Object.keys( bindingByName ).length === 0 ) {\n\n\t\t\tdelete bindingsByRoot[ rootUuid ];\n\n\t\t}\n\n\t}\n\n\t_lendBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tprevIndex = binding._cacheIndex,\n\n\t\t\tlastActiveIndex = this._nActiveBindings ++,\n\n\t\t\tfirstInactiveBinding = bindings[ lastActiveIndex ];\n\n\t\tbinding._cacheIndex = lastActiveIndex;\n\t\tbindings[ lastActiveIndex ] = binding;\n\n\t\tfirstInactiveBinding._cacheIndex = prevIndex;\n\t\tbindings[ prevIndex ] = firstInactiveBinding;\n\n\t}\n\n\t_takeBackBinding( binding ) {\n\n\t\tconst bindings = this._bindings,\n\t\t\tprevIndex = binding._cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveBindings,\n\n\t\t\tlastActiveBinding = bindings[ firstInactiveIndex ];\n\n\t\tbinding._cacheIndex = firstInactiveIndex;\n\t\tbindings[ firstInactiveIndex ] = binding;\n\n\t\tlastActiveBinding._cacheIndex = prevIndex;\n\t\tbindings[ prevIndex ] = lastActiveBinding;\n\n\t}\n\n\n\t// Memory management of Interpolants for weight and time scale\n\n\t_lendControlInterpolant() {\n\n\t\tconst interpolants = this._controlInterpolants,\n\t\t\tlastActiveIndex = this._nActiveControlInterpolants ++;\n\n\t\tlet interpolant = interpolants[ lastActiveIndex ];\n\n\t\tif ( interpolant === undefined ) {\n\n\t\t\tinterpolant = new LinearInterpolant(\n\t\t\t\tnew Float32Array( 2 ), new Float32Array( 2 ),\n\t\t\t\t1, _controlInterpolantsResultBuffer );\n\n\t\t\tinterpolant.__cacheIndex = lastActiveIndex;\n\t\t\tinterpolants[ lastActiveIndex ] = interpolant;\n\n\t\t}\n\n\t\treturn interpolant;\n\n\t}\n\n\t_takeBackControlInterpolant( interpolant ) {\n\n\t\tconst interpolants = this._controlInterpolants,\n\t\t\tprevIndex = interpolant.__cacheIndex,\n\n\t\t\tfirstInactiveIndex = -- this._nActiveControlInterpolants,\n\n\t\t\tlastActiveInterpolant = interpolants[ firstInactiveIndex ];\n\n\t\tinterpolant.__cacheIndex = firstInactiveIndex;\n\t\tinterpolants[ firstInactiveIndex ] = interpolant;\n\n\t\tlastActiveInterpolant.__cacheIndex = prevIndex;\n\t\tinterpolants[ prevIndex ] = lastActiveInterpolant;\n\n\t}\n\n\t// return an action for a clip optionally using a custom root target\n\t// object (this method allocates a lot of dynamic memory in case a\n\t// previously unknown clip/root combination is specified)\n\tclipAction( clip, optionalRoot, blendMode ) {\n\n\t\tconst root = optionalRoot || this._root,\n\t\t\trootUuid = root.uuid;\n\n\t\tlet clipObject = typeof clip === 'string' ? AnimationClip.findByName( root, clip ) : clip;\n\n\t\tconst clipUuid = clipObject !== null ? clipObject.uuid : clip;\n\n\t\tconst actionsForClip = this._actionsByClip[ clipUuid ];\n\t\tlet prototypeAction = null;\n\n\t\tif ( blendMode === undefined ) {\n\n\t\t\tif ( clipObject !== null ) {\n\n\t\t\t\tblendMode = clipObject.blendMode;\n\n\t\t\t} else {\n\n\t\t\t\tblendMode = NormalAnimationBlendMode;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\tconst existingAction = actionsForClip.actionByRoot[ rootUuid ];\n\n\t\t\tif ( existingAction !== undefined && existingAction.blendMode === blendMode ) {\n\n\t\t\t\treturn existingAction;\n\n\t\t\t}\n\n\t\t\t// we know the clip, so we don't have to parse all\n\t\t\t// the bindings again but can just copy\n\t\t\tprototypeAction = actionsForClip.knownActions[ 0 ];\n\n\t\t\t// also, take the clip from the prototype action\n\t\t\tif ( clipObject === null )\n\t\t\t\tclipObject = prototypeAction._clip;\n\n\t\t}\n\n\t\t// clip must be known when specified via string\n\t\tif ( clipObject === null ) return null;\n\n\t\t// allocate all resources required to run it\n\t\tconst newAction = new AnimationAction( this, clipObject, optionalRoot, blendMode );\n\n\t\tthis._bindAction( newAction, prototypeAction );\n\n\t\t// and make the action known to the memory manager\n\t\tthis._addInactiveAction( newAction, clipUuid, rootUuid );\n\n\t\treturn newAction;\n\n\t}\n\n\t// get an existing action\n\texistingAction( clip, optionalRoot ) {\n\n\t\tconst root = optionalRoot || this._root,\n\t\t\trootUuid = root.uuid,\n\n\t\t\tclipObject = typeof clip === 'string' ?\n\t\t\t\tAnimationClip.findByName( root, clip ) : clip,\n\n\t\t\tclipUuid = clipObject ? clipObject.uuid : clip,\n\n\t\t\tactionsForClip = this._actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\treturn actionsForClip.actionByRoot[ rootUuid ] || null;\n\n\t\t}\n\n\t\treturn null;\n\n\t}\n\n\t// deactivates all previously scheduled actions\n\tstopAllAction() {\n\n\t\tconst actions = this._actions,\n\t\t\tnActions = this._nActiveActions;\n\n\t\tfor ( let i = nActions - 1; i >= 0; -- i ) {\n\n\t\t\tactions[ i ].stop();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// advance the time and update apply the animation\n\tupdate( deltaTime ) {\n\n\t\tdeltaTime *= this.timeScale;\n\n\t\tconst actions = this._actions,\n\t\t\tnActions = this._nActiveActions,\n\n\t\t\ttime = this.time += deltaTime,\n\t\t\ttimeDirection = Math.sign( deltaTime ),\n\n\t\t\taccuIndex = this._accuIndex ^= 1;\n\n\t\t// run active actions\n\n\t\tfor ( let i = 0; i !== nActions; ++ i ) {\n\n\t\t\tconst action = actions[ i ];\n\n\t\t\taction._update( time, deltaTime, timeDirection, accuIndex );\n\n\t\t}\n\n\t\t// update scene graph\n\n\t\tconst bindings = this._bindings,\n\t\t\tnBindings = this._nActiveBindings;\n\n\t\tfor ( let i = 0; i !== nBindings; ++ i ) {\n\n\t\t\tbindings[ i ].apply( accuIndex );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t// Allows you to seek to a specific time in an animation.\n\tsetTime( timeInSeconds ) {\n\n\t\tthis.time = 0; // Zero out time attribute for AnimationMixer object;\n\t\tfor ( let i = 0; i < this._actions.length; i ++ ) {\n\n\t\t\tthis._actions[ i ].time = 0; // Zero out time attribute for all associated AnimationAction objects.\n\n\t\t}\n\n\t\treturn this.update( timeInSeconds ); // Update used to set exact time. Returns \"this\" AnimationMixer object.\n\n\t}\n\n\t// return this mixer's root target object\n\tgetRoot() {\n\n\t\treturn this._root;\n\n\t}\n\n\t// free all resources specific to a particular clip\n\tuncacheClip( clip ) {\n\n\t\tconst actions = this._actions,\n\t\t\tclipUuid = clip.uuid,\n\t\t\tactionsByClip = this._actionsByClip,\n\t\t\tactionsForClip = actionsByClip[ clipUuid ];\n\n\t\tif ( actionsForClip !== undefined ) {\n\n\t\t\t// note: just calling _removeInactiveAction would mess up the\n\t\t\t// iteration state and also require updating the state we can\n\t\t\t// just throw away\n\n\t\t\tconst actionsToRemove = actionsForClip.knownActions;\n\n\t\t\tfor ( let i = 0, n = actionsToRemove.length; i !== n; ++ i ) {\n\n\t\t\t\tconst action = actionsToRemove[ i ];\n\n\t\t\t\tthis._deactivateAction( action );\n\n\t\t\t\tconst cacheIndex = action._cacheIndex,\n\t\t\t\t\tlastInactiveAction = actions[ actions.length - 1 ];\n\n\t\t\t\taction._cacheIndex = null;\n\t\t\t\taction._byClipCacheIndex = null;\n\n\t\t\t\tlastInactiveAction._cacheIndex = cacheIndex;\n\t\t\t\tactions[ cacheIndex ] = lastInactiveAction;\n\t\t\t\tactions.pop();\n\n\t\t\t\tthis._removeInactiveBindingsForAction( action );\n\n\t\t\t}\n\n\t\t\tdelete actionsByClip[ clipUuid ];\n\n\t\t}\n\n\t}\n\n\t// free all resources specific to a particular root target object\n\tuncacheRoot( root ) {\n\n\t\tconst rootUuid = root.uuid,\n\t\t\tactionsByClip = this._actionsByClip;\n\n\t\tfor ( const clipUuid in actionsByClip ) {\n\n\t\t\tconst actionByRoot = actionsByClip[ clipUuid ].actionByRoot,\n\t\t\t\taction = actionByRoot[ rootUuid ];\n\n\t\t\tif ( action !== undefined ) {\n\n\t\t\t\tthis._deactivateAction( action );\n\t\t\t\tthis._removeInactiveAction( action );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst bindingsByRoot = this._bindingsByRootAndName,\n\t\t\tbindingByName = bindingsByRoot[ rootUuid ];\n\n\t\tif ( bindingByName !== undefined ) {\n\n\t\t\tfor ( const trackName in bindingByName ) {\n\n\t\t\t\tconst binding = bindingByName[ trackName ];\n\t\t\t\tbinding.restoreOriginalState();\n\t\t\t\tthis._removeInactiveBinding( binding );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t// remove a targeted clip from the cache\n\tuncacheAction( clip, optionalRoot ) {\n\n\t\tconst action = this.existingAction( clip, optionalRoot );\n\n\t\tif ( action !== null ) {\n\n\t\t\tthis._deactivateAction( action );\n\t\t\tthis._removeInactiveAction( action );\n\n\t\t}\n\n\t}\n\n}\n\nclass Uniform {\n\n\tconstructor( value ) {\n\n\t\tthis.value = value;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Uniform( this.value.clone === undefined ? this.value : this.value.clone() );\n\n\t}\n\n}\n\nlet _id = 0;\n\nclass UniformsGroup extends EventDispatcher {\n\n\tconstructor() {\n\n\t\tsuper();\n\n\t\tthis.isUniformsGroup = true;\n\n\t\tObject.defineProperty( this, 'id', { value: _id ++ } );\n\n\t\tthis.name = '';\n\n\t\tthis.usage = StaticDrawUsage;\n\t\tthis.uniforms = [];\n\n\t}\n\n\tadd( uniform ) {\n\n\t\tthis.uniforms.push( uniform );\n\n\t\treturn this;\n\n\t}\n\n\tremove( uniform ) {\n\n\t\tconst index = this.uniforms.indexOf( uniform );\n\n\t\tif ( index !== - 1 ) this.uniforms.splice( index, 1 );\n\n\t\treturn this;\n\n\t}\n\n\tsetName( name ) {\n\n\t\tthis.name = name;\n\n\t\treturn this;\n\n\t}\n\n\tsetUsage( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.name = source.name;\n\t\tthis.usage = source.usage;\n\n\t\tconst uniformsSource = source.uniforms;\n\n\t\tthis.uniforms.length = 0;\n\n\t\tfor ( let i = 0, l = uniformsSource.length; i < l; i ++ ) {\n\n\t\t\tconst uniforms = Array.isArray( uniformsSource[ i ] ) ? uniformsSource[ i ] : [ uniformsSource[ i ] ];\n\n\t\t\tfor ( let j = 0; j < uniforms.length; j ++ ) {\n\n\t\t\t\tthis.uniforms.push( uniforms[ j ].clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nclass InstancedInterleavedBuffer extends InterleavedBuffer {\n\n\tconstructor( array, stride, meshPerAttribute = 1 ) {\n\n\t\tsuper( array, stride );\n\n\t\tthis.isInstancedInterleavedBuffer = true;\n\n\t\tthis.meshPerAttribute = meshPerAttribute;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source );\n\n\t\tthis.meshPerAttribute = source.meshPerAttribute;\n\n\t\treturn this;\n\n\t}\n\n\tclone( data ) {\n\n\t\tconst ib = super.clone( data );\n\n\t\tib.meshPerAttribute = this.meshPerAttribute;\n\n\t\treturn ib;\n\n\t}\n\n\ttoJSON( data ) {\n\n\t\tconst json = super.toJSON( data );\n\n\t\tjson.isInstancedInterleavedBuffer = true;\n\t\tjson.meshPerAttribute = this.meshPerAttribute;\n\n\t\treturn json;\n\n\t}\n\n}\n\nclass GLBufferAttribute {\n\n\tconstructor( buffer, type, itemSize, elementSize, count ) {\n\n\t\tthis.isGLBufferAttribute = true;\n\n\t\tthis.name = '';\n\n\t\tthis.buffer = buffer;\n\t\tthis.type = type;\n\t\tthis.itemSize = itemSize;\n\t\tthis.elementSize = elementSize;\n\t\tthis.count = count;\n\n\t\tthis.version = 0;\n\n\t}\n\n\tset needsUpdate( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n\tsetBuffer( buffer ) {\n\n\t\tthis.buffer = buffer;\n\n\t\treturn this;\n\n\t}\n\n\tsetType( type, elementSize ) {\n\n\t\tthis.type = type;\n\t\tthis.elementSize = elementSize;\n\n\t\treturn this;\n\n\t}\n\n\tsetItemSize( itemSize ) {\n\n\t\tthis.itemSize = itemSize;\n\n\t\treturn this;\n\n\t}\n\n\tsetCount( count ) {\n\n\t\tthis.count = count;\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _matrix = /*@__PURE__*/ new Matrix4();\n\nclass Raycaster {\n\n\tconstructor( origin, direction, near = 0, far = Infinity ) {\n\n\t\tthis.ray = new Ray( origin, direction );\n\t\t// direction is assumed to be normalized (for accurate distance calculations)\n\n\t\tthis.near = near;\n\t\tthis.far = far;\n\t\tthis.camera = null;\n\t\tthis.layers = new Layers();\n\n\t\tthis.params = {\n\t\t\tMesh: {},\n\t\t\tLine: { threshold: 1 },\n\t\t\tLOD: {},\n\t\t\tPoints: { threshold: 1 },\n\t\t\tSprite: {}\n\t\t};\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\t// direction is assumed to be normalized (for accurate distance calculations)\n\n\t\tthis.ray.set( origin, direction );\n\n\t}\n\n\tsetFromCamera( coords, camera ) {\n\n\t\tif ( camera.isPerspectiveCamera ) {\n\n\t\t\tthis.ray.origin.setFromMatrixPosition( camera.matrixWorld );\n\t\t\tthis.ray.direction.set( coords.x, coords.y, 0.5 ).unproject( camera ).sub( this.ray.origin ).normalize();\n\t\t\tthis.camera = camera;\n\n\t\t} else if ( camera.isOrthographicCamera ) {\n\n\t\t\tthis.ray.origin.set( coords.x, coords.y, ( camera.near + camera.far ) / ( camera.near - camera.far ) ).unproject( camera ); // set origin in plane of camera\n\t\t\tthis.ray.direction.set( 0, 0, - 1 ).transformDirection( camera.matrixWorld );\n\t\t\tthis.camera = camera;\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Raycaster: Unsupported camera type: ' + camera.type );\n\n\t\t}\n\n\t}\n\n\tsetFromXRController( controller ) {\n\n\t\t_matrix.identity().extractRotation( controller.matrixWorld );\n\n\t\tthis.ray.origin.setFromMatrixPosition( controller.matrixWorld );\n\t\tthis.ray.direction.set( 0, 0, - 1 ).applyMatrix4( _matrix );\n\n\t\treturn this;\n\n\t}\n\n\tintersectObject( object, recursive = true, intersects = [] ) {\n\n\t\tintersect( object, this, intersects, recursive );\n\n\t\tintersects.sort( ascSort );\n\n\t\treturn intersects;\n\n\t}\n\n\tintersectObjects( objects, recursive = true, intersects = [] ) {\n\n\t\tfor ( let i = 0, l = objects.length; i < l; i ++ ) {\n\n\t\t\tintersect( objects[ i ], this, intersects, recursive );\n\n\t\t}\n\n\t\tintersects.sort( ascSort );\n\n\t\treturn intersects;\n\n\t}\n\n}\n\nfunction ascSort( a, b ) {\n\n\treturn a.distance - b.distance;\n\n}\n\nfunction intersect( object, raycaster, intersects, recursive ) {\n\n\tlet propagate = true;\n\n\tif ( object.layers.test( raycaster.layers ) ) {\n\n\t\tconst result = object.raycast( raycaster, intersects );\n\n\t\tif ( result === false ) propagate = false;\n\n\t}\n\n\tif ( propagate === true && recursive === true ) {\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tintersect( children[ i ], raycaster, intersects, true );\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Ref: https://en.wikipedia.org/wiki/Spherical_coordinate_system\n *\n * phi (the polar angle) is measured from the positive y-axis. The positive y-axis is up.\n * theta (the azimuthal angle) is measured from the positive z-axis.\n */\nclass Spherical {\n\n\tconstructor( radius = 1, phi = 0, theta = 0 ) {\n\n\t\tthis.radius = radius;\n\t\tthis.phi = phi; // polar angle\n\t\tthis.theta = theta; // azimuthal angle\n\n\t\treturn this;\n\n\t}\n\n\tset( radius, phi, theta ) {\n\n\t\tthis.radius = radius;\n\t\tthis.phi = phi;\n\t\tthis.theta = theta;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( other ) {\n\n\t\tthis.radius = other.radius;\n\t\tthis.phi = other.phi;\n\t\tthis.theta = other.theta;\n\n\t\treturn this;\n\n\t}\n\n\t// restrict phi to be between EPS and PI-EPS\n\tmakeSafe() {\n\n\t\tconst EPS = 0.000001;\n\t\tthis.phi = Math.max( EPS, Math.min( Math.PI - EPS, this.phi ) );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\tsetFromCartesianCoords( x, y, z ) {\n\n\t\tthis.radius = Math.sqrt( x * x + y * y + z * z );\n\n\t\tif ( this.radius === 0 ) {\n\n\t\t\tthis.theta = 0;\n\t\t\tthis.phi = 0;\n\n\t\t} else {\n\n\t\t\tthis.theta = Math.atan2( x, z );\n\t\t\tthis.phi = Math.acos( clamp( y / this.radius, - 1, 1 ) );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\n/**\n * Ref: https://en.wikipedia.org/wiki/Cylindrical_coordinate_system\n */\n\nclass Cylindrical {\n\n\tconstructor( radius = 1, theta = 0, y = 0 ) {\n\n\t\tthis.radius = radius; // distance from the origin to a point in the x-z plane\n\t\tthis.theta = theta; // counterclockwise angle in the x-z plane measured in radians from the positive z-axis\n\t\tthis.y = y; // height above the x-z plane\n\n\t\treturn this;\n\n\t}\n\n\tset( radius, theta, y ) {\n\n\t\tthis.radius = radius;\n\t\tthis.theta = theta;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tcopy( other ) {\n\n\t\tthis.radius = other.radius;\n\t\tthis.theta = other.theta;\n\t\tthis.y = other.y;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromVector3( v ) {\n\n\t\treturn this.setFromCartesianCoords( v.x, v.y, v.z );\n\n\t}\n\n\tsetFromCartesianCoords( x, y, z ) {\n\n\t\tthis.radius = Math.sqrt( x * x + z * z );\n\t\tthis.theta = Math.atan2( x, z );\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$4 = /*@__PURE__*/ new Vector2();\n\nclass Box2 {\n\n\tconstructor( min = new Vector2( + Infinity, + Infinity ), max = new Vector2( - Infinity, - Infinity ) ) {\n\n\t\tthis.isBox2 = true;\n\n\t\tthis.min = min;\n\t\tthis.max = max;\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$4.copy( size ).multiplyScalar( 0.5 );\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = + Infinity;\n\t\tthis.max.x = this.max.y = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\treturn this.isEmpty() ? target.set( 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x < this.min.x || point.x > this.max.x ||\n\t\t\tpoint.y < this.min.y || point.y > this.max.y ? false : true;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 4 splitting planes to rule out intersections\n\n\t\treturn box.max.x < this.min.x || box.min.x > this.max.x ||\n\t\t\tbox.max.y < this.min.y || box.min.y > this.max.y ? false : true;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.clampPoint( point, _vector$4 ).distanceTo( point );\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nconst _startP = /*@__PURE__*/ new Vector3();\nconst _startEnd = /*@__PURE__*/ new Vector3();\n\nclass Line3 {\n\n\tconstructor( start = new Vector3(), end = new Vector3() ) {\n\n\t\tthis.start = start;\n\t\tthis.end = end;\n\n\t}\n\n\tset( start, end ) {\n\n\t\tthis.start.copy( start );\n\t\tthis.end.copy( end );\n\n\t\treturn this;\n\n\t}\n\n\tcopy( line ) {\n\n\t\tthis.start.copy( line.start );\n\t\tthis.end.copy( line.end );\n\n\t\treturn this;\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\treturn target.addVectors( this.start, this.end ).multiplyScalar( 0.5 );\n\n\t}\n\n\tdelta( target ) {\n\n\t\treturn target.subVectors( this.end, this.start );\n\n\t}\n\n\tdistanceSq() {\n\n\t\treturn this.start.distanceToSquared( this.end );\n\n\t}\n\n\tdistance() {\n\n\t\treturn this.start.distanceTo( this.end );\n\n\t}\n\n\tat( t, target ) {\n\n\t\treturn this.delta( target ).multiplyScalar( t ).add( this.start );\n\n\t}\n\n\tclosestPointToPointParameter( point, clampToLine ) {\n\n\t\t_startP.subVectors( point, this.start );\n\t\t_startEnd.subVectors( this.end, this.start );\n\n\t\tconst startEnd2 = _startEnd.dot( _startEnd );\n\t\tconst startEnd_startP = _startEnd.dot( _startP );\n\n\t\tlet t = startEnd_startP / startEnd2;\n\n\t\tif ( clampToLine ) {\n\n\t\t\tt = clamp( t, 0, 1 );\n\n\t\t}\n\n\t\treturn t;\n\n\t}\n\n\tclosestPointToPoint( point, clampToLine, target ) {\n\n\t\tconst t = this.closestPointToPointParameter( point, clampToLine );\n\n\t\treturn this.delta( target ).multiplyScalar( t ).add( this.start );\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.start.applyMatrix4( matrix );\n\t\tthis.end.applyMatrix4( matrix );\n\n\t\treturn this;\n\n\t}\n\n\tequals( line ) {\n\n\t\treturn line.start.equals( this.start ) && line.end.equals( this.end );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n}\n\nconst _vector$3 = /*@__PURE__*/ new Vector3();\n\nclass SpotLightHelper extends Object3D {\n\n\tconstructor( light, color ) {\n\n\t\tsuper();\n\n\t\tthis.light = light;\n\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'SpotLightHelper';\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tconst positions = [\n\t\t\t0, 0, 0, \t0, 0, 1,\n\t\t\t0, 0, 0, \t1, 0, 1,\n\t\t\t0, 0, 0,\t- 1, 0, 1,\n\t\t\t0, 0, 0, \t0, 1, 1,\n\t\t\t0, 0, 0, \t0, - 1, 1\n\t\t];\n\n\t\tfor ( let i = 0, j = 1, l = 32; i < l; i ++, j ++ ) {\n\n\t\t\tconst p1 = ( i / l ) * Math.PI * 2;\n\t\t\tconst p2 = ( j / l ) * Math.PI * 2;\n\n\t\t\tpositions.push(\n\t\t\t\tMath.cos( p1 ), Math.sin( p1 ), 1,\n\t\t\t\tMath.cos( p2 ), Math.sin( p2 ), 1\n\t\t\t);\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { fog: false, toneMapped: false } );\n\n\t\tthis.cone = new LineSegments( geometry, material );\n\t\tthis.add( this.cone );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.cone.geometry.dispose();\n\t\tthis.cone.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\t\tthis.light.target.updateWorldMatrix( true, false );\n\n\t\t// update the local matrix based on the parent and light target transforms\n\t\tif ( this.parent ) {\n\n\t\t\tthis.parent.updateWorldMatrix( true );\n\n\t\t\tthis.matrix\n\t\t\t\t.copy( this.parent.matrixWorld )\n\t\t\t\t.invert()\n\t\t\t\t.multiply( this.light.matrixWorld );\n\n\t\t} else {\n\n\t\t\tthis.matrix.copy( this.light.matrixWorld );\n\n\t\t}\n\n\t\tthis.matrixWorld.copy( this.light.matrixWorld );\n\n\t\tconst coneLength = this.light.distance ? this.light.distance : 1000;\n\t\tconst coneWidth = coneLength * Math.tan( this.light.angle );\n\n\t\tthis.cone.scale.set( coneWidth, coneWidth, coneLength );\n\n\t\t_vector$3.setFromMatrixPosition( this.light.target.matrixWorld );\n\n\t\tthis.cone.lookAt( _vector$3 );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.cone.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.cone.material.color.copy( this.light.color );\n\n\t\t}\n\n\t}\n\n}\n\nconst _vector$2 = /*@__PURE__*/ new Vector3();\nconst _boneMatrix = /*@__PURE__*/ new Matrix4();\nconst _matrixWorldInv = /*@__PURE__*/ new Matrix4();\n\n\nclass SkeletonHelper extends LineSegments {\n\n\tconstructor( object ) {\n\n\t\tconst bones = getBoneList( object );\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\tconst color1 = new Color( 0, 0, 1 );\n\t\tconst color2 = new Color( 0, 1, 0 );\n\n\t\tfor ( let i = 0; i < bones.length; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\n\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tcolors.push( color1.r, color1.g, color1.b );\n\t\t\t\tcolors.push( color2.r, color2.g, color2.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, depthTest: false, depthWrite: false, toneMapped: false, transparent: true } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.isSkeletonHelper = true;\n\n\t\tthis.type = 'SkeletonHelper';\n\n\t\tthis.root = object;\n\t\tthis.bones = bones;\n\n\t\tthis.matrix = object.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tconst bones = this.bones;\n\n\t\tconst geometry = this.geometry;\n\t\tconst position = geometry.getAttribute( 'position' );\n\n\t\t_matrixWorldInv.copy( this.root.matrixWorld ).invert();\n\n\t\tfor ( let i = 0, j = 0; i < bones.length; i ++ ) {\n\n\t\t\tconst bone = bones[ i ];\n\n\t\t\tif ( bone.parent && bone.parent.isBone ) {\n\n\t\t\t\t_boneMatrix.multiplyMatrices( _matrixWorldInv, bone.matrixWorld );\n\t\t\t\t_vector$2.setFromMatrixPosition( _boneMatrix );\n\t\t\t\tposition.setXYZ( j, _vector$2.x, _vector$2.y, _vector$2.z );\n\n\t\t\t\t_boneMatrix.multiplyMatrices( _matrixWorldInv, bone.parent.matrixWorld );\n\t\t\t\t_vector$2.setFromMatrixPosition( _boneMatrix );\n\t\t\t\tposition.setXYZ( j + 1, _vector$2.x, _vector$2.y, _vector$2.z );\n\n\t\t\t\tj += 2;\n\n\t\t\t}\n\n\t\t}\n\n\t\tgeometry.getAttribute( 'position' ).needsUpdate = true;\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n\nfunction getBoneList( object ) {\n\n\tconst boneList = [];\n\n\tif ( object.isBone === true ) {\n\n\t\tboneList.push( object );\n\n\t}\n\n\tfor ( let i = 0; i < object.children.length; i ++ ) {\n\n\t\tboneList.push.apply( boneList, getBoneList( object.children[ i ] ) );\n\n\t}\n\n\treturn boneList;\n\n}\n\nclass PointLightHelper extends Mesh {\n\n\tconstructor( light, sphereSize, color ) {\n\n\t\tconst geometry = new SphereGeometry( sphereSize, 4, 2 );\n\t\tconst material = new MeshBasicMaterial( { wireframe: true, fog: false, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.light = light;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'PointLightHelper';\n\n\t\tthis.matrix = this.light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.update();\n\n\n\t\t/*\n\t// TODO: delete this comment?\n\tconst distanceGeometry = new THREE.IcosahedronGeometry( 1, 2 );\n\tconst distanceMaterial = new THREE.MeshBasicMaterial( { color: hexColor, fog: false, wireframe: true, opacity: 0.1, transparent: true } );\n\n\tthis.lightSphere = new THREE.Mesh( bulbGeometry, bulbMaterial );\n\tthis.lightDistance = new THREE.Mesh( distanceGeometry, distanceMaterial );\n\n\tconst d = light.distance;\n\n\tif ( d === 0.0 ) {\n\n\t\tthis.lightDistance.visible = false;\n\n\t} else {\n\n\t\tthis.lightDistance.scale.set( d, d, d );\n\n\t}\n\n\tthis.add( this.lightDistance );\n\t*/\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.material.color.copy( this.light.color );\n\n\t\t}\n\n\t\t/*\n\t\tconst d = this.light.distance;\n\n\t\tif ( d === 0.0 ) {\n\n\t\t\tthis.lightDistance.visible = false;\n\n\t\t} else {\n\n\t\t\tthis.lightDistance.visible = true;\n\t\t\tthis.lightDistance.scale.set( d, d, d );\n\n\t\t}\n\t\t*/\n\n\t}\n\n}\n\nconst _vector$1 = /*@__PURE__*/ new Vector3();\nconst _color1 = /*@__PURE__*/ new Color();\nconst _color2 = /*@__PURE__*/ new Color();\n\nclass HemisphereLightHelper extends Object3D {\n\n\tconstructor( light, size, color ) {\n\n\t\tsuper();\n\n\t\tthis.light = light;\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'HemisphereLightHelper';\n\n\t\tconst geometry = new OctahedronGeometry( size );\n\t\tgeometry.rotateY( Math.PI * 0.5 );\n\n\t\tthis.material = new MeshBasicMaterial( { wireframe: true, fog: false, toneMapped: false } );\n\t\tif ( this.color === undefined ) this.material.vertexColors = true;\n\n\t\tconst position = geometry.getAttribute( 'position' );\n\t\tconst colors = new Float32Array( position.count * 3 );\n\n\t\tgeometry.setAttribute( 'color', new BufferAttribute( colors, 3 ) );\n\n\t\tthis.add( new Mesh( geometry, this.material ) );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.children[ 0 ].geometry.dispose();\n\t\tthis.children[ 0 ].material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tconst mesh = this.children[ 0 ];\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tconst colors = mesh.geometry.getAttribute( 'color' );\n\n\t\t\t_color1.copy( this.light.color );\n\t\t\t_color2.copy( this.light.groundColor );\n\n\t\t\tfor ( let i = 0, l = colors.count; i < l; i ++ ) {\n\n\t\t\t\tconst color = ( i < ( l / 2 ) ) ? _color1 : _color2;\n\n\t\t\t\tcolors.setXYZ( i, color.r, color.g, color.b );\n\n\t\t\t}\n\n\t\t\tcolors.needsUpdate = true;\n\n\t\t}\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\n\t\tmesh.lookAt( _vector$1.setFromMatrixPosition( this.light.matrixWorld ).negate() );\n\n\t}\n\n}\n\nclass GridHelper extends LineSegments {\n\n\tconstructor( size = 10, divisions = 10, color1 = 0x444444, color2 = 0x888888 ) {\n\n\t\tcolor1 = new Color( color1 );\n\t\tcolor2 = new Color( color2 );\n\n\t\tconst center = divisions / 2;\n\t\tconst step = size / divisions;\n\t\tconst halfSize = size / 2;\n\n\t\tconst vertices = [], colors = [];\n\n\t\tfor ( let i = 0, j = 0, k = - halfSize; i <= divisions; i ++, k += step ) {\n\n\t\t\tvertices.push( - halfSize, 0, k, halfSize, 0, k );\n\t\t\tvertices.push( k, 0, - halfSize, k, 0, halfSize );\n\n\t\t\tconst color = i === center ? color1 : color2;\n\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\t\t\tcolor.toArray( colors, j ); j += 3;\n\n\t\t}\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'GridHelper';\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass PolarGridHelper extends LineSegments {\n\n\tconstructor( radius = 10, sectors = 16, rings = 8, divisions = 64, color1 = 0x444444, color2 = 0x888888 ) {\n\n\t\tcolor1 = new Color( color1 );\n\t\tcolor2 = new Color( color2 );\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\t// create the sectors\n\n\t\tif ( sectors > 1 ) {\n\n\t\t\tfor ( let i = 0; i < sectors; i ++ ) {\n\n\t\t\t\tconst v = ( i / sectors ) * ( Math.PI * 2 );\n\n\t\t\t\tconst x = Math.sin( v ) * radius;\n\t\t\t\tconst z = Math.cos( v ) * radius;\n\n\t\t\t\tvertices.push( 0, 0, 0 );\n\t\t\t\tvertices.push( x, 0, z );\n\n\t\t\t\tconst color = ( i & 1 ) ? color1 : color2;\n\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// create the rings\n\n\t\tfor ( let i = 0; i < rings; i ++ ) {\n\n\t\t\tconst color = ( i & 1 ) ? color1 : color2;\n\n\t\t\tconst r = radius - ( radius / rings * i );\n\n\t\t\tfor ( let j = 0; j < divisions; j ++ ) {\n\n\t\t\t\t// first vertex\n\n\t\t\t\tlet v = ( j / divisions ) * ( Math.PI * 2 );\n\n\t\t\t\tlet x = Math.sin( v ) * r;\n\t\t\t\tlet z = Math.cos( v ) * r;\n\n\t\t\t\tvertices.push( x, 0, z );\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\t\t// second vertex\n\n\t\t\t\tv = ( ( j + 1 ) / divisions ) * ( Math.PI * 2 );\n\n\t\t\t\tx = Math.sin( v ) * r;\n\t\t\t\tz = Math.cos( v ) * r;\n\n\t\t\t\tvertices.push( x, 0, z );\n\t\t\t\tcolors.push( color.r, color.g, color.b );\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'PolarGridHelper';\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nconst _v1 = /*@__PURE__*/ new Vector3();\nconst _v2 = /*@__PURE__*/ new Vector3();\nconst _v3 = /*@__PURE__*/ new Vector3();\n\nclass DirectionalLightHelper extends Object3D {\n\n\tconstructor( light, size, color ) {\n\n\t\tsuper();\n\n\t\tthis.light = light;\n\n\t\tthis.matrix = light.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.color = color;\n\n\t\tthis.type = 'DirectionalLightHelper';\n\n\t\tif ( size === undefined ) size = 1;\n\n\t\tlet geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( [\n\t\t\t- size, size, 0,\n\t\t\tsize, size, 0,\n\t\t\tsize, - size, 0,\n\t\t\t- size, - size, 0,\n\t\t\t- size, size, 0\n\t\t], 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { fog: false, toneMapped: false } );\n\n\t\tthis.lightPlane = new Line( geometry, material );\n\t\tthis.add( this.lightPlane );\n\n\t\tgeometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 0, 0, 1 ], 3 ) );\n\n\t\tthis.targetLine = new Line( geometry, material );\n\t\tthis.add( this.targetLine );\n\n\t\tthis.update();\n\n\t}\n\n\tdispose() {\n\n\t\tthis.lightPlane.geometry.dispose();\n\t\tthis.lightPlane.material.dispose();\n\t\tthis.targetLine.geometry.dispose();\n\t\tthis.targetLine.material.dispose();\n\n\t}\n\n\tupdate() {\n\n\t\tthis.light.updateWorldMatrix( true, false );\n\t\tthis.light.target.updateWorldMatrix( true, false );\n\n\t\t_v1.setFromMatrixPosition( this.light.matrixWorld );\n\t\t_v2.setFromMatrixPosition( this.light.target.matrixWorld );\n\t\t_v3.subVectors( _v2, _v1 );\n\n\t\tthis.lightPlane.lookAt( _v2 );\n\n\t\tif ( this.color !== undefined ) {\n\n\t\t\tthis.lightPlane.material.color.set( this.color );\n\t\t\tthis.targetLine.material.color.set( this.color );\n\n\t\t} else {\n\n\t\t\tthis.lightPlane.material.color.copy( this.light.color );\n\t\t\tthis.targetLine.material.color.copy( this.light.color );\n\n\t\t}\n\n\t\tthis.targetLine.lookAt( _v2 );\n\t\tthis.targetLine.scale.z = _v3.length();\n\n\t}\n\n}\n\nconst _vector = /*@__PURE__*/ new Vector3();\nconst _camera = /*@__PURE__*/ new Camera();\n\n/**\n *\t- shows frustum, line of sight and up of the camera\n *\t- suitable for fast updates\n * \t- based on frustum visualization in lightgl.js shadowmap example\n *\t\thttps://github.com/evanw/lightgl.js/blob/master/tests/shadowmap.html\n */\n\nclass CameraHelper extends LineSegments {\n\n\tconstructor( camera ) {\n\n\t\tconst geometry = new BufferGeometry();\n\t\tconst material = new LineBasicMaterial( { color: 0xffffff, vertexColors: true, toneMapped: false } );\n\n\t\tconst vertices = [];\n\t\tconst colors = [];\n\n\t\tconst pointMap = {};\n\n\t\t// near\n\n\t\taddLine( 'n1', 'n2' );\n\t\taddLine( 'n2', 'n4' );\n\t\taddLine( 'n4', 'n3' );\n\t\taddLine( 'n3', 'n1' );\n\n\t\t// far\n\n\t\taddLine( 'f1', 'f2' );\n\t\taddLine( 'f2', 'f4' );\n\t\taddLine( 'f4', 'f3' );\n\t\taddLine( 'f3', 'f1' );\n\n\t\t// sides\n\n\t\taddLine( 'n1', 'f1' );\n\t\taddLine( 'n2', 'f2' );\n\t\taddLine( 'n3', 'f3' );\n\t\taddLine( 'n4', 'f4' );\n\n\t\t// cone\n\n\t\taddLine( 'p', 'n1' );\n\t\taddLine( 'p', 'n2' );\n\t\taddLine( 'p', 'n3' );\n\t\taddLine( 'p', 'n4' );\n\n\t\t// up\n\n\t\taddLine( 'u1', 'u2' );\n\t\taddLine( 'u2', 'u3' );\n\t\taddLine( 'u3', 'u1' );\n\n\t\t// target\n\n\t\taddLine( 'c', 't' );\n\t\taddLine( 'p', 'c' );\n\n\t\t// cross\n\n\t\taddLine( 'cn1', 'cn2' );\n\t\taddLine( 'cn3', 'cn4' );\n\n\t\taddLine( 'cf1', 'cf2' );\n\t\taddLine( 'cf3', 'cf4' );\n\n\t\tfunction addLine( a, b ) {\n\n\t\t\taddPoint( a );\n\t\t\taddPoint( b );\n\n\t\t}\n\n\t\tfunction addPoint( id ) {\n\n\t\t\tvertices.push( 0, 0, 0 );\n\t\t\tcolors.push( 0, 0, 0 );\n\n\t\t\tif ( pointMap[ id ] === undefined ) {\n\n\t\t\t\tpointMap[ id ] = [];\n\n\t\t\t}\n\n\t\t\tpointMap[ id ].push( ( vertices.length / 3 ) - 1 );\n\n\t\t}\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'CameraHelper';\n\n\t\tthis.camera = camera;\n\t\tif ( this.camera.updateProjectionMatrix ) this.camera.updateProjectionMatrix();\n\n\t\tthis.matrix = camera.matrixWorld;\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.pointMap = pointMap;\n\n\t\tthis.update();\n\n\t\t// colors\n\n\t\tconst colorFrustum = new Color( 0xffaa00 );\n\t\tconst colorCone = new Color( 0xff0000 );\n\t\tconst colorUp = new Color( 0x00aaff );\n\t\tconst colorTarget = new Color( 0xffffff );\n\t\tconst colorCross = new Color( 0x333333 );\n\n\t\tthis.setColors( colorFrustum, colorCone, colorUp, colorTarget, colorCross );\n\n\t}\n\n\tsetColors( frustum, cone, up, target, cross ) {\n\n\t\tconst geometry = this.geometry;\n\n\t\tconst colorAttribute = geometry.getAttribute( 'color' );\n\n\t\t// near\n\n\t\tcolorAttribute.setXYZ( 0, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 1, frustum.r, frustum.g, frustum.b ); // n1, n2\n\t\tcolorAttribute.setXYZ( 2, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 3, frustum.r, frustum.g, frustum.b ); // n2, n4\n\t\tcolorAttribute.setXYZ( 4, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 5, frustum.r, frustum.g, frustum.b ); // n4, n3\n\t\tcolorAttribute.setXYZ( 6, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 7, frustum.r, frustum.g, frustum.b ); // n3, n1\n\n\t\t// far\n\n\t\tcolorAttribute.setXYZ( 8, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 9, frustum.r, frustum.g, frustum.b ); // f1, f2\n\t\tcolorAttribute.setXYZ( 10, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 11, frustum.r, frustum.g, frustum.b ); // f2, f4\n\t\tcolorAttribute.setXYZ( 12, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 13, frustum.r, frustum.g, frustum.b ); // f4, f3\n\t\tcolorAttribute.setXYZ( 14, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 15, frustum.r, frustum.g, frustum.b ); // f3, f1\n\n\t\t// sides\n\n\t\tcolorAttribute.setXYZ( 16, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 17, frustum.r, frustum.g, frustum.b ); // n1, f1\n\t\tcolorAttribute.setXYZ( 18, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 19, frustum.r, frustum.g, frustum.b ); // n2, f2\n\t\tcolorAttribute.setXYZ( 20, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 21, frustum.r, frustum.g, frustum.b ); // n3, f3\n\t\tcolorAttribute.setXYZ( 22, frustum.r, frustum.g, frustum.b ); colorAttribute.setXYZ( 23, frustum.r, frustum.g, frustum.b ); // n4, f4\n\n\t\t// cone\n\n\t\tcolorAttribute.setXYZ( 24, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 25, cone.r, cone.g, cone.b ); // p, n1\n\t\tcolorAttribute.setXYZ( 26, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 27, cone.r, cone.g, cone.b ); // p, n2\n\t\tcolorAttribute.setXYZ( 28, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 29, cone.r, cone.g, cone.b ); // p, n3\n\t\tcolorAttribute.setXYZ( 30, cone.r, cone.g, cone.b ); colorAttribute.setXYZ( 31, cone.r, cone.g, cone.b ); // p, n4\n\n\t\t// up\n\n\t\tcolorAttribute.setXYZ( 32, up.r, up.g, up.b ); colorAttribute.setXYZ( 33, up.r, up.g, up.b ); // u1, u2\n\t\tcolorAttribute.setXYZ( 34, up.r, up.g, up.b ); colorAttribute.setXYZ( 35, up.r, up.g, up.b ); // u2, u3\n\t\tcolorAttribute.setXYZ( 36, up.r, up.g, up.b ); colorAttribute.setXYZ( 37, up.r, up.g, up.b ); // u3, u1\n\n\t\t// target\n\n\t\tcolorAttribute.setXYZ( 38, target.r, target.g, target.b ); colorAttribute.setXYZ( 39, target.r, target.g, target.b ); // c, t\n\t\tcolorAttribute.setXYZ( 40, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 41, cross.r, cross.g, cross.b ); // p, c\n\n\t\t// cross\n\n\t\tcolorAttribute.setXYZ( 42, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 43, cross.r, cross.g, cross.b ); // cn1, cn2\n\t\tcolorAttribute.setXYZ( 44, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 45, cross.r, cross.g, cross.b ); // cn3, cn4\n\n\t\tcolorAttribute.setXYZ( 46, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 47, cross.r, cross.g, cross.b ); // cf1, cf2\n\t\tcolorAttribute.setXYZ( 48, cross.r, cross.g, cross.b ); colorAttribute.setXYZ( 49, cross.r, cross.g, cross.b ); // cf3, cf4\n\n\t\tcolorAttribute.needsUpdate = true;\n\n\t}\n\n\tupdate() {\n\n\t\tconst geometry = this.geometry;\n\t\tconst pointMap = this.pointMap;\n\n\t\tconst w = 1, h = 1;\n\n\t\t// we need just camera projection matrix inverse\n\t\t// world matrix must be identity\n\n\t\t_camera.projectionMatrixInverse.copy( this.camera.projectionMatrixInverse );\n\n\t\t// center / target\n\n\t\tsetPoint( 'c', pointMap, geometry, _camera, 0, 0, - 1 );\n\t\tsetPoint( 't', pointMap, geometry, _camera, 0, 0, 1 );\n\n\t\t// near\n\n\t\tsetPoint( 'n1', pointMap, geometry, _camera, - w, - h, - 1 );\n\t\tsetPoint( 'n2', pointMap, geometry, _camera, w, - h, - 1 );\n\t\tsetPoint( 'n3', pointMap, geometry, _camera, - w, h, - 1 );\n\t\tsetPoint( 'n4', pointMap, geometry, _camera, w, h, - 1 );\n\n\t\t// far\n\n\t\tsetPoint( 'f1', pointMap, geometry, _camera, - w, - h, 1 );\n\t\tsetPoint( 'f2', pointMap, geometry, _camera, w, - h, 1 );\n\t\tsetPoint( 'f3', pointMap, geometry, _camera, - w, h, 1 );\n\t\tsetPoint( 'f4', pointMap, geometry, _camera, w, h, 1 );\n\n\t\t// up\n\n\t\tsetPoint( 'u1', pointMap, geometry, _camera, w * 0.7, h * 1.1, - 1 );\n\t\tsetPoint( 'u2', pointMap, geometry, _camera, - w * 0.7, h * 1.1, - 1 );\n\t\tsetPoint( 'u3', pointMap, geometry, _camera, 0, h * 2, - 1 );\n\n\t\t// cross\n\n\t\tsetPoint( 'cf1', pointMap, geometry, _camera, - w, 0, 1 );\n\t\tsetPoint( 'cf2', pointMap, geometry, _camera, w, 0, 1 );\n\t\tsetPoint( 'cf3', pointMap, geometry, _camera, 0, - h, 1 );\n\t\tsetPoint( 'cf4', pointMap, geometry, _camera, 0, h, 1 );\n\n\t\tsetPoint( 'cn1', pointMap, geometry, _camera, - w, 0, - 1 );\n\t\tsetPoint( 'cn2', pointMap, geometry, _camera, w, 0, - 1 );\n\t\tsetPoint( 'cn3', pointMap, geometry, _camera, 0, - h, - 1 );\n\t\tsetPoint( 'cn4', pointMap, geometry, _camera, 0, h, - 1 );\n\n\t\tgeometry.getAttribute( 'position' ).needsUpdate = true;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\n\nfunction setPoint( point, pointMap, geometry, camera, x, y, z ) {\n\n\t_vector.set( x, y, z ).unproject( camera );\n\n\tconst points = pointMap[ point ];\n\n\tif ( points !== undefined ) {\n\n\t\tconst position = geometry.getAttribute( 'position' );\n\n\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\tposition.setXYZ( points[ i ], _vector.x, _vector.y, _vector.z );\n\n\t\t}\n\n\t}\n\n}\n\nconst _box = /*@__PURE__*/ new Box3();\n\nclass BoxHelper extends LineSegments {\n\n\tconstructor( object, color = 0xffff00 ) {\n\n\t\tconst indices = new Uint16Array( [ 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7 ] );\n\t\tconst positions = new Float32Array( 8 * 3 );\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setIndex( new BufferAttribute( indices, 1 ) );\n\t\tgeometry.setAttribute( 'position', new BufferAttribute( positions, 3 ) );\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.object = object;\n\t\tthis.type = 'BoxHelper';\n\n\t\tthis.matrixAutoUpdate = false;\n\n\t\tthis.update();\n\n\t}\n\n\tupdate( object ) {\n\n\t\tif ( object !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.BoxHelper: .update() has no longer arguments.' );\n\n\t\t}\n\n\t\tif ( this.object !== undefined ) {\n\n\t\t\t_box.setFromObject( this.object );\n\n\t\t}\n\n\t\tif ( _box.isEmpty() ) return;\n\n\t\tconst min = _box.min;\n\t\tconst max = _box.max;\n\n\t\t/*\n\t\t\t5____4\n\t\t1/___0/|\n\t\t| 6__|_7\n\t\t2/___3/\n\n\t\t0: max.x, max.y, max.z\n\t\t1: min.x, max.y, max.z\n\t\t2: min.x, min.y, max.z\n\t\t3: max.x, min.y, max.z\n\t\t4: max.x, max.y, min.z\n\t\t5: min.x, max.y, min.z\n\t\t6: min.x, min.y, min.z\n\t\t7: max.x, min.y, min.z\n\t\t*/\n\n\t\tconst position = this.geometry.attributes.position;\n\t\tconst array = position.array;\n\n\t\tarray[ 0 ] = max.x; array[ 1 ] = max.y; array[ 2 ] = max.z;\n\t\tarray[ 3 ] = min.x; array[ 4 ] = max.y; array[ 5 ] = max.z;\n\t\tarray[ 6 ] = min.x; array[ 7 ] = min.y; array[ 8 ] = max.z;\n\t\tarray[ 9 ] = max.x; array[ 10 ] = min.y; array[ 11 ] = max.z;\n\t\tarray[ 12 ] = max.x; array[ 13 ] = max.y; array[ 14 ] = min.z;\n\t\tarray[ 15 ] = min.x; array[ 16 ] = max.y; array[ 17 ] = min.z;\n\t\tarray[ 18 ] = min.x; array[ 19 ] = min.y; array[ 20 ] = min.z;\n\t\tarray[ 21 ] = max.x; array[ 22 ] = min.y; array[ 23 ] = min.z;\n\n\t\tposition.needsUpdate = true;\n\n\t\tthis.geometry.computeBoundingSphere();\n\n\t}\n\n\tsetFromObject( object ) {\n\n\t\tthis.object = object;\n\t\tthis.update();\n\n\t\treturn this;\n\n\t}\n\n\tcopy( source, recursive ) {\n\n\t\tsuper.copy( source, recursive );\n\n\t\tthis.object = source.object;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass Box3Helper extends LineSegments {\n\n\tconstructor( box, color = 0xffff00 ) {\n\n\t\tconst indices = new Uint16Array( [ 0, 1, 1, 2, 2, 3, 3, 0, 4, 5, 5, 6, 6, 7, 7, 4, 0, 4, 1, 5, 2, 6, 3, 7 ] );\n\n\t\tconst 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 ];\n\n\t\tconst geometry = new BufferGeometry();\n\n\t\tgeometry.setIndex( new BufferAttribute( indices, 1 ) );\n\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.box = box;\n\n\t\tthis.type = 'Box3Helper';\n\n\t\tthis.geometry.computeBoundingSphere();\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tconst box = this.box;\n\n\t\tif ( box.isEmpty() ) return;\n\n\t\tbox.getCenter( this.position );\n\n\t\tbox.getSize( this.scale );\n\n\t\tthis.scale.multiplyScalar( 0.5 );\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass PlaneHelper extends Line {\n\n\tconstructor( plane, size = 1, hex = 0xffff00 ) {\n\n\t\tconst color = hex;\n\n\t\tconst positions = [ 1, - 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, - 1, 0, 1, 1, 0 ];\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );\n\t\tgeometry.computeBoundingSphere();\n\n\t\tsuper( geometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\n\t\tthis.type = 'PlaneHelper';\n\n\t\tthis.plane = plane;\n\n\t\tthis.size = size;\n\n\t\tconst positions2 = [ 1, 1, 0, - 1, 1, 0, - 1, - 1, 0, 1, 1, 0, - 1, - 1, 0, 1, - 1, 0 ];\n\n\t\tconst geometry2 = new BufferGeometry();\n\t\tgeometry2.setAttribute( 'position', new Float32BufferAttribute( positions2, 3 ) );\n\t\tgeometry2.computeBoundingSphere();\n\n\t\tthis.add( new Mesh( geometry2, new MeshBasicMaterial( { color: color, opacity: 0.2, transparent: true, depthWrite: false, toneMapped: false } ) ) );\n\n\t}\n\n\tupdateMatrixWorld( force ) {\n\n\t\tthis.position.set( 0, 0, 0 );\n\n\t\tthis.scale.set( 0.5 * this.size, 0.5 * this.size, 1 );\n\n\t\tthis.lookAt( this.plane.normal );\n\n\t\tthis.translateZ( - this.plane.constant );\n\n\t\tsuper.updateMatrixWorld( force );\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\t\tthis.children[ 0 ].geometry.dispose();\n\t\tthis.children[ 0 ].material.dispose();\n\n\t}\n\n}\n\nconst _axis = /*@__PURE__*/ new Vector3();\nlet _lineGeometry, _coneGeometry;\n\nclass ArrowHelper extends Object3D {\n\n\t// dir is assumed to be normalized\n\n\tconstructor( dir = new Vector3( 0, 0, 1 ), origin = new Vector3( 0, 0, 0 ), length = 1, color = 0xffff00, headLength = length * 0.2, headWidth = headLength * 0.2 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'ArrowHelper';\n\n\t\tif ( _lineGeometry === undefined ) {\n\n\t\t\t_lineGeometry = new BufferGeometry();\n\t\t\t_lineGeometry.setAttribute( 'position', new Float32BufferAttribute( [ 0, 0, 0, 0, 1, 0 ], 3 ) );\n\n\t\t\t_coneGeometry = new CylinderGeometry( 0, 0.5, 1, 5, 1 );\n\t\t\t_coneGeometry.translate( 0, - 0.5, 0 );\n\n\t\t}\n\n\t\tthis.position.copy( origin );\n\n\t\tthis.line = new Line( _lineGeometry, new LineBasicMaterial( { color: color, toneMapped: false } ) );\n\t\tthis.line.matrixAutoUpdate = false;\n\t\tthis.add( this.line );\n\n\t\tthis.cone = new Mesh( _coneGeometry, new MeshBasicMaterial( { color: color, toneMapped: false } ) );\n\t\tthis.cone.matrixAutoUpdate = false;\n\t\tthis.add( this.cone );\n\n\t\tthis.setDirection( dir );\n\t\tthis.setLength( length, headLength, headWidth );\n\n\t}\n\n\tsetDirection( dir ) {\n\n\t\t// dir is assumed to be normalized\n\n\t\tif ( dir.y > 0.99999 ) {\n\n\t\t\tthis.quaternion.set( 0, 0, 0, 1 );\n\n\t\t} else if ( dir.y < - 0.99999 ) {\n\n\t\t\tthis.quaternion.set( 1, 0, 0, 0 );\n\n\t\t} else {\n\n\t\t\t_axis.set( dir.z, 0, - dir.x ).normalize();\n\n\t\t\tconst radians = Math.acos( dir.y );\n\n\t\t\tthis.quaternion.setFromAxisAngle( _axis, radians );\n\n\t\t}\n\n\t}\n\n\tsetLength( length, headLength = length * 0.2, headWidth = headLength * 0.2 ) {\n\n\t\tthis.line.scale.set( 1, Math.max( 0.0001, length - headLength ), 1 ); // see #17458\n\t\tthis.line.updateMatrix();\n\n\t\tthis.cone.scale.set( headWidth, headLength, headWidth );\n\t\tthis.cone.position.y = length;\n\t\tthis.cone.updateMatrix();\n\n\t}\n\n\tsetColor( color ) {\n\n\t\tthis.line.material.color.set( color );\n\t\tthis.cone.material.color.set( color );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy( source, false );\n\n\t\tthis.line.copy( source.line );\n\t\tthis.cone.copy( source.cone );\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.line.geometry.dispose();\n\t\tthis.line.material.dispose();\n\t\tthis.cone.geometry.dispose();\n\t\tthis.cone.material.dispose();\n\n\t}\n\n}\n\nclass AxesHelper extends LineSegments {\n\n\tconstructor( size = 1 ) {\n\n\t\tconst vertices = [\n\t\t\t0, 0, 0,\tsize, 0, 0,\n\t\t\t0, 0, 0,\t0, size, 0,\n\t\t\t0, 0, 0,\t0, 0, size\n\t\t];\n\n\t\tconst colors = [\n\t\t\t1, 0, 0,\t1, 0.6, 0,\n\t\t\t0, 1, 0,\t0.6, 1, 0,\n\t\t\t0, 0, 1,\t0, 0.6, 1\n\t\t];\n\n\t\tconst geometry = new BufferGeometry();\n\t\tgeometry.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tgeometry.setAttribute( 'color', new Float32BufferAttribute( colors, 3 ) );\n\n\t\tconst material = new LineBasicMaterial( { vertexColors: true, toneMapped: false } );\n\n\t\tsuper( geometry, material );\n\n\t\tthis.type = 'AxesHelper';\n\n\t}\n\n\tsetColors( xAxisColor, yAxisColor, zAxisColor ) {\n\n\t\tconst color = new Color();\n\t\tconst array = this.geometry.attributes.color.array;\n\n\t\tcolor.set( xAxisColor );\n\t\tcolor.toArray( array, 0 );\n\t\tcolor.toArray( array, 3 );\n\n\t\tcolor.set( yAxisColor );\n\t\tcolor.toArray( array, 6 );\n\t\tcolor.toArray( array, 9 );\n\n\t\tcolor.set( zAxisColor );\n\t\tcolor.toArray( array, 12 );\n\t\tcolor.toArray( array, 15 );\n\n\t\tthis.geometry.attributes.color.needsUpdate = true;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.geometry.dispose();\n\t\tthis.material.dispose();\n\n\t}\n\n}\n\nclass ShapePath {\n\n\tconstructor() {\n\n\t\tthis.type = 'ShapePath';\n\n\t\tthis.color = new Color();\n\n\t\tthis.subPaths = [];\n\t\tthis.currentPath = null;\n\n\t}\n\n\tmoveTo( x, y ) {\n\n\t\tthis.currentPath = new Path();\n\t\tthis.subPaths.push( this.currentPath );\n\t\tthis.currentPath.moveTo( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tlineTo( x, y ) {\n\n\t\tthis.currentPath.lineTo( x, y );\n\n\t\treturn this;\n\n\t}\n\n\tquadraticCurveTo( aCPx, aCPy, aX, aY ) {\n\n\t\tthis.currentPath.quadraticCurveTo( aCPx, aCPy, aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tbezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY ) {\n\n\t\tthis.currentPath.bezierCurveTo( aCP1x, aCP1y, aCP2x, aCP2y, aX, aY );\n\n\t\treturn this;\n\n\t}\n\n\tsplineThru( pts ) {\n\n\t\tthis.currentPath.splineThru( pts );\n\n\t\treturn this;\n\n\t}\n\n\ttoShapes( isCCW ) {\n\n\t\tfunction toShapesNoHoles( inSubpaths ) {\n\n\t\t\tconst shapes = [];\n\n\t\t\tfor ( let i = 0, l = inSubpaths.length; i < l; i ++ ) {\n\n\t\t\t\tconst tmpPath = inSubpaths[ i ];\n\n\t\t\t\tconst tmpShape = new Shape();\n\t\t\t\ttmpShape.curves = tmpPath.curves;\n\n\t\t\t\tshapes.push( tmpShape );\n\n\t\t\t}\n\n\t\t\treturn shapes;\n\n\t\t}\n\n\t\tfunction isPointInsidePolygon( inPt, inPolygon ) {\n\n\t\t\tconst polyLen = inPolygon.length;\n\n\t\t\t// inPt on polygon contour => immediate success or\n\t\t\t// toggling of inside/outside at every single! intersection point of an edge\n\t\t\t// with the horizontal line through inPt, left of inPt\n\t\t\t// not counting lowerY endpoints of edges and whole edges on that line\n\t\t\tlet inside = false;\n\t\t\tfor ( let p = polyLen - 1, q = 0; q < polyLen; p = q ++ ) {\n\n\t\t\t\tlet edgeLowPt = inPolygon[ p ];\n\t\t\t\tlet edgeHighPt = inPolygon[ q ];\n\n\t\t\t\tlet edgeDx = edgeHighPt.x - edgeLowPt.x;\n\t\t\t\tlet edgeDy = edgeHighPt.y - edgeLowPt.y;\n\n\t\t\t\tif ( Math.abs( edgeDy ) > Number.EPSILON ) {\n\n\t\t\t\t\t// not parallel\n\t\t\t\t\tif ( edgeDy < 0 ) {\n\n\t\t\t\t\t\tedgeLowPt = inPolygon[ q ]; edgeDx = - edgeDx;\n\t\t\t\t\t\tedgeHighPt = inPolygon[ p ]; edgeDy = - edgeDy;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ( inPt.y < edgeLowPt.y ) || ( inPt.y > edgeHighPt.y ) ) \t\tcontinue;\n\n\t\t\t\t\tif ( inPt.y === edgeLowPt.y ) {\n\n\t\t\t\t\t\tif ( inPt.x === edgeLowPt.x )\t\treturn\ttrue;\t\t// inPt is on contour ?\n\t\t\t\t\t\t// continue;\t\t\t\t// no intersection or edgeLowPt => doesn't count !!!\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconst perpEdge = edgeDy * ( inPt.x - edgeLowPt.x ) - edgeDx * ( inPt.y - edgeLowPt.y );\n\t\t\t\t\t\tif ( perpEdge === 0 )\t\t\t\treturn\ttrue;\t\t// inPt is on contour ?\n\t\t\t\t\t\tif ( perpEdge < 0 ) \t\t\t\tcontinue;\n\t\t\t\t\t\tinside = ! inside;\t\t// true intersection left of inPt\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// parallel or collinear\n\t\t\t\t\tif ( inPt.y !== edgeLowPt.y ) \t\tcontinue;\t\t\t// parallel\n\t\t\t\t\t// edge lies on the same horizontal line as inPt\n\t\t\t\t\tif ( ( ( edgeHighPt.x <= inPt.x ) && ( inPt.x <= edgeLowPt.x ) ) ||\n\t\t\t\t\t\t ( ( edgeLowPt.x <= inPt.x ) && ( inPt.x <= edgeHighPt.x ) ) )\t\treturn\ttrue;\t// inPt: Point on contour !\n\t\t\t\t\t// continue;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn\tinside;\n\n\t\t}\n\n\t\tconst isClockWise = ShapeUtils.isClockWise;\n\n\t\tconst subPaths = this.subPaths;\n\t\tif ( subPaths.length === 0 ) return [];\n\n\t\tlet solid, tmpPath, tmpShape;\n\t\tconst shapes = [];\n\n\t\tif ( subPaths.length === 1 ) {\n\n\t\t\ttmpPath = subPaths[ 0 ];\n\t\t\ttmpShape = new Shape();\n\t\t\ttmpShape.curves = tmpPath.curves;\n\t\t\tshapes.push( tmpShape );\n\t\t\treturn shapes;\n\n\t\t}\n\n\t\tlet holesFirst = ! isClockWise( subPaths[ 0 ].getPoints() );\n\t\tholesFirst = isCCW ? ! holesFirst : holesFirst;\n\n\t\t// console.log(\"Holes first\", holesFirst);\n\n\t\tconst betterShapeHoles = [];\n\t\tconst newShapes = [];\n\t\tlet newShapeHoles = [];\n\t\tlet mainIdx = 0;\n\t\tlet tmpPoints;\n\n\t\tnewShapes[ mainIdx ] = undefined;\n\t\tnewShapeHoles[ mainIdx ] = [];\n\n\t\tfor ( let i = 0, l = subPaths.length; i < l; i ++ ) {\n\n\t\t\ttmpPath = subPaths[ i ];\n\t\t\ttmpPoints = tmpPath.getPoints();\n\t\t\tsolid = isClockWise( tmpPoints );\n\t\t\tsolid = isCCW ? ! solid : solid;\n\n\t\t\tif ( solid ) {\n\n\t\t\t\tif ( ( ! holesFirst ) && ( newShapes[ mainIdx ] ) )\tmainIdx ++;\n\n\t\t\t\tnewShapes[ mainIdx ] = { s: new Shape(), p: tmpPoints };\n\t\t\t\tnewShapes[ mainIdx ].s.curves = tmpPath.curves;\n\n\t\t\t\tif ( holesFirst )\tmainIdx ++;\n\t\t\t\tnewShapeHoles[ mainIdx ] = [];\n\n\t\t\t\t//console.log('cw', i);\n\n\t\t\t} else {\n\n\t\t\t\tnewShapeHoles[ mainIdx ].push( { h: tmpPath, p: tmpPoints[ 0 ] } );\n\n\t\t\t\t//console.log('ccw', i);\n\n\t\t\t}\n\n\t\t}\n\n\t\t// only Holes? -> probably all Shapes with wrong orientation\n\t\tif ( ! newShapes[ 0 ] )\treturn\ttoShapesNoHoles( subPaths );\n\n\n\t\tif ( newShapes.length > 1 ) {\n\n\t\t\tlet ambiguous = false;\n\t\t\tlet toChange = 0;\n\n\t\t\tfor ( let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) {\n\n\t\t\t\tbetterShapeHoles[ sIdx ] = [];\n\n\t\t\t}\n\n\t\t\tfor ( let sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) {\n\n\t\t\t\tconst sho = newShapeHoles[ sIdx ];\n\n\t\t\t\tfor ( let hIdx = 0; hIdx < sho.length; hIdx ++ ) {\n\n\t\t\t\t\tconst ho = sho[ hIdx ];\n\t\t\t\t\tlet hole_unassigned = true;\n\n\t\t\t\t\tfor ( let s2Idx = 0; s2Idx < newShapes.length; s2Idx ++ ) {\n\n\t\t\t\t\t\tif ( isPointInsidePolygon( ho.p, newShapes[ s2Idx ].p ) ) {\n\n\t\t\t\t\t\t\tif ( sIdx !== s2Idx )\ttoChange ++;\n\n\t\t\t\t\t\t\tif ( hole_unassigned ) {\n\n\t\t\t\t\t\t\t\thole_unassigned = false;\n\t\t\t\t\t\t\t\tbetterShapeHoles[ s2Idx ].push( ho );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\tambiguous = true;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( hole_unassigned ) {\n\n\t\t\t\t\t\tbetterShapeHoles[ sIdx ].push( ho );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tif ( toChange > 0 && ambiguous === false ) {\n\n\t\t\t\tnewShapeHoles = betterShapeHoles;\n\n\t\t\t}\n\n\t\t}\n\n\t\tlet tmpHoles;\n\n\t\tfor ( let i = 0, il = newShapes.length; i < il; i ++ ) {\n\n\t\t\ttmpShape = newShapes[ i ].s;\n\t\t\tshapes.push( tmpShape );\n\t\t\ttmpHoles = newShapeHoles[ i ];\n\n\t\t\tfor ( let j = 0, jl = tmpHoles.length; j < jl; j ++ ) {\n\n\t\t\t\ttmpShape.holes.push( tmpHoles[ j ].h );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//console.log(\"shape\", shapes);\n\n\t\treturn shapes;\n\n\t}\n\n}\n\nclass WebGLMultipleRenderTargets extends WebGLRenderTarget { // @deprecated, r162\n\n\tconstructor( width = 1, height = 1, count = 1, options = {} ) {\n\n\t\tconsole.warn( 'THREE.WebGLMultipleRenderTargets has been deprecated and will be removed in r172. Use THREE.WebGLRenderTarget and set the \"count\" parameter to enable MRT.' );\n\n\t\tsuper( width, height, { ...options, count } );\n\n\t\tthis.isWebGLMultipleRenderTargets = true;\n\n\t}\n\n\tget texture() {\n\n\t\treturn this.textures;\n\n\t}\n\n}\n\nif ( typeof __THREE_DEVTOOLS__ !== 'undefined' ) {\n\n\t__THREE_DEVTOOLS__.dispatchEvent( new CustomEvent( 'register', { detail: {\n\t\trevision: REVISION,\n\t} } ) );\n\n}\n\nif ( typeof window !== 'undefined' ) {\n\n\tif ( window.__THREE__ ) {\n\n\t\tconsole.warn( 'WARNING: Multiple instances of Three.js being imported.' );\n\n\t} else {\n\n\t\twindow.__THREE__ = REVISION;\n\n\t}\n\n}\n\nexport { ACESFilmicToneMapping, AddEquation, AddOperation, AdditiveAnimationBlendMode, AdditiveBlending, AgXToneMapping, AlphaFormat, AlwaysCompare, AlwaysDepth, AlwaysStencilFunc, AmbientLight, AnimationAction, AnimationClip, AnimationLoader, AnimationMixer, AnimationObjectGroup, AnimationUtils, ArcCurve, ArrayCamera, ArrowHelper, AttachedBindMode, Audio, AudioAnalyser, AudioContext, AudioListener, AudioLoader, AxesHelper, BackSide, BasicDepthPacking, BasicShadowMap, BatchedMesh, Bone, BooleanKeyframeTrack, Box2, Box3, Box3Helper, BoxGeometry, BoxHelper, BufferAttribute, BufferGeometry, BufferGeometryLoader, ByteType, Cache, Camera, CameraHelper, CanvasTexture, CapsuleGeometry, CatmullRomCurve3, CineonToneMapping, CircleGeometry, ClampToEdgeWrapping, Clock, Color, ColorKeyframeTrack, ColorManagement, CompressedArrayTexture, CompressedCubeTexture, CompressedTexture, CompressedTextureLoader, ConeGeometry, ConstantAlphaFactor, ConstantColorFactor, CubeCamera, CubeReflectionMapping, CubeRefractionMapping, CubeTexture, CubeTextureLoader, CubeUVReflectionMapping, CubicBezierCurve, CubicBezierCurve3, CubicInterpolant, CullFaceBack, CullFaceFront, CullFaceFrontBack, CullFaceNone, Curve, CurvePath, CustomBlending, CustomToneMapping, CylinderGeometry, Cylindrical, Data3DTexture, DataArrayTexture, DataTexture, DataTextureLoader, DataUtils, DecrementStencilOp, DecrementWrapStencilOp, DefaultLoadingManager, DepthFormat, DepthStencilFormat, DepthTexture, DetachedBindMode, DirectionalLight, DirectionalLightHelper, DiscreteInterpolant, DisplayP3ColorSpace, DodecahedronGeometry, DoubleSide, DstAlphaFactor, DstColorFactor, DynamicCopyUsage, DynamicDrawUsage, DynamicReadUsage, EdgesGeometry, EllipseCurve, EqualCompare, EqualDepth, EqualStencilFunc, EquirectangularReflectionMapping, EquirectangularRefractionMapping, Euler, EventDispatcher, ExtrudeGeometry, FileLoader, Float16BufferAttribute, Float32BufferAttribute, FloatType, Fog, FogExp2, FramebufferTexture, FrontSide, Frustum, GLBufferAttribute, GLSL1, GLSL3, GreaterCompare, GreaterDepth, GreaterEqualCompare, GreaterEqualDepth, GreaterEqualStencilFunc, GreaterStencilFunc, GridHelper, Group, HalfFloatType, HemisphereLight, HemisphereLightHelper, IcosahedronGeometry, ImageBitmapLoader, ImageLoader, ImageUtils, IncrementStencilOp, IncrementWrapStencilOp, InstancedBufferAttribute, InstancedBufferGeometry, InstancedInterleavedBuffer, InstancedMesh, Int16BufferAttribute, Int32BufferAttribute, Int8BufferAttribute, IntType, InterleavedBuffer, InterleavedBufferAttribute, Interpolant, InterpolateDiscrete, InterpolateLinear, InterpolateSmooth, InvertStencilOp, KeepStencilOp, KeyframeTrack, LOD, LatheGeometry, Layers, LessCompare, LessDepth, LessEqualCompare, LessEqualDepth, LessEqualStencilFunc, LessStencilFunc, Light, LightProbe, Line, Line3, LineBasicMaterial, LineCurve, LineCurve3, LineDashedMaterial, LineLoop, LineSegments, LinearDisplayP3ColorSpace, LinearFilter, LinearInterpolant, LinearMipMapLinearFilter, LinearMipMapNearestFilter, LinearMipmapLinearFilter, LinearMipmapNearestFilter, LinearSRGBColorSpace, LinearToneMapping, LinearTransfer, Loader, LoaderUtils, LoadingManager, LoopOnce, LoopPingPong, LoopRepeat, LuminanceAlphaFormat, LuminanceFormat, MOUSE, Material, MaterialLoader, MathUtils, Matrix3, Matrix4, MaxEquation, Mesh, MeshBasicMaterial, MeshDepthMaterial, MeshDistanceMaterial, MeshLambertMaterial, MeshMatcapMaterial, MeshNormalMaterial, MeshPhongMaterial, MeshPhysicalMaterial, MeshStandardMaterial, MeshToonMaterial, MinEquation, MirroredRepeatWrapping, MixOperation, MultiplyBlending, MultiplyOperation, NearestFilter, NearestMipMapLinearFilter, NearestMipMapNearestFilter, NearestMipmapLinearFilter, NearestMipmapNearestFilter, NeutralToneMapping, NeverCompare, NeverDepth, NeverStencilFunc, NoBlending, NoColorSpace, NoToneMapping, NormalAnimationBlendMode, NormalBlending, NotEqualCompare, NotEqualDepth, NotEqualStencilFunc, NumberKeyframeTrack, Object3D, ObjectLoader, ObjectSpaceNormalMap, OctahedronGeometry, OneFactor, OneMinusConstantAlphaFactor, OneMinusConstantColorFactor, OneMinusDstAlphaFactor, OneMinusDstColorFactor, OneMinusSrcAlphaFactor, OneMinusSrcColorFactor, OrthographicCamera, P3Primaries, PCFShadowMap, PCFSoftShadowMap, PMREMGenerator, Path, PerspectiveCamera, Plane, PlaneGeometry, PlaneHelper, PointLight, PointLightHelper, Points, PointsMaterial, PolarGridHelper, PolyhedronGeometry, PositionalAudio, PropertyBinding, PropertyMixer, QuadraticBezierCurve, QuadraticBezierCurve3, Quaternion, QuaternionKeyframeTrack, QuaternionLinearInterpolant, RED_GREEN_RGTC2_Format, RED_RGTC1_Format, REVISION, RGBADepthPacking, RGBAFormat, RGBAIntegerFormat, RGBA_ASTC_10x10_Format, RGBA_ASTC_10x5_Format, RGBA_ASTC_10x6_Format, RGBA_ASTC_10x8_Format, RGBA_ASTC_12x10_Format, RGBA_ASTC_12x12_Format, RGBA_ASTC_4x4_Format, RGBA_ASTC_5x4_Format, RGBA_ASTC_5x5_Format, RGBA_ASTC_6x5_Format, RGBA_ASTC_6x6_Format, RGBA_ASTC_8x5_Format, RGBA_ASTC_8x6_Format, RGBA_ASTC_8x8_Format, RGBA_BPTC_Format, RGBA_ETC2_EAC_Format, RGBA_PVRTC_2BPPV1_Format, RGBA_PVRTC_4BPPV1_Format, RGBA_S3TC_DXT1_Format, RGBA_S3TC_DXT3_Format, RGBA_S3TC_DXT5_Format, RGBFormat, RGBIntegerFormat, RGB_BPTC_SIGNED_Format, RGB_BPTC_UNSIGNED_Format, RGB_ETC1_Format, RGB_ETC2_Format, RGB_PVRTC_2BPPV1_Format, RGB_PVRTC_4BPPV1_Format, RGB_S3TC_DXT1_Format, RGFormat, RGIntegerFormat, RawShaderMaterial, Ray, Raycaster, Rec709Primaries, RectAreaLight, RedFormat, RedIntegerFormat, ReinhardToneMapping, RenderTarget, RepeatWrapping, ReplaceStencilOp, ReverseSubtractEquation, RingGeometry, SIGNED_RED_GREEN_RGTC2_Format, SIGNED_RED_RGTC1_Format, SRGBColorSpace, SRGBTransfer, Scene, ShaderChunk, ShaderLib, ShaderMaterial, ShadowMaterial, Shape, ShapeGeometry, ShapePath, ShapeUtils, ShortType, Skeleton, SkeletonHelper, SkinnedMesh, Source, Sphere, SphereGeometry, Spherical, SphericalHarmonics3, SplineCurve, SpotLight, SpotLightHelper, Sprite, SpriteMaterial, SrcAlphaFactor, SrcAlphaSaturateFactor, SrcColorFactor, StaticCopyUsage, StaticDrawUsage, StaticReadUsage, StereoCamera, StreamCopyUsage, StreamDrawUsage, StreamReadUsage, StringKeyframeTrack, SubtractEquation, SubtractiveBlending, TOUCH, TangentSpaceNormalMap, TetrahedronGeometry, Texture, TextureLoader, TextureUtils, TorusGeometry, TorusKnotGeometry, Triangle, TriangleFanDrawMode, TriangleStripDrawMode, TrianglesDrawMode, TubeGeometry, UVMapping, Uint16BufferAttribute, Uint32BufferAttribute, Uint8BufferAttribute, Uint8ClampedBufferAttribute, Uniform, UniformsGroup, UniformsLib, UniformsUtils, UnsignedByteType, UnsignedInt248Type, UnsignedInt5999Type, UnsignedIntType, UnsignedShort4444Type, UnsignedShort5551Type, UnsignedShortType, VSMShadowMap, Vector2, Vector3, Vector4, VectorKeyframeTrack, VideoTexture, WebGL3DRenderTarget, WebGLArrayRenderTarget, WebGLCoordinateSystem, WebGLCubeRenderTarget, WebGLMultipleRenderTargets, WebGLRenderTarget, WebGLRenderer, WebGLUtils, WebGPUCoordinateSystem, WireframeGeometry, WrapAroundEnding, ZeroCurvatureEnding, ZeroFactor, ZeroSlopeEnding, ZeroStencilOp, createCanvasElement };\n","import {\n\tEventDispatcher,\n\tMOUSE,\n\tQuaternion,\n\tSpherical,\n\tTOUCH,\n\tVector2,\n\tVector3,\n\tPlane,\n\tRay,\n\tMathUtils\n} from 'three';\n\n// OrbitControls performs orbiting, dollying (zooming), and panning.\n// Unlike TrackballControls, it maintains the \"up\" direction object.up (+Y by default).\n//\n// Orbit - left mouse / touch: one-finger move\n// Zoom - middle mouse, or mousewheel / touch: two-finger spread or squish\n// Pan - right mouse, or left mouse + ctrl/meta/shiftKey, or arrow keys / touch: two-finger move\n\nconst _changeEvent = { type: 'change' };\nconst _startEvent = { type: 'start' };\nconst _endEvent = { type: 'end' };\nconst _ray = new Ray();\nconst _plane = new Plane();\nconst TILT_LIMIT = Math.cos( 70 * MathUtils.DEG2RAD );\n\nclass OrbitControls extends EventDispatcher {\n\n\tconstructor( object, domElement ) {\n\n\t\tsuper();\n\n\t\tthis.object = object;\n\t\tthis.domElement = domElement;\n\t\tthis.domElement.style.touchAction = 'none'; // disable touch scroll\n\n\t\t// Set to false to disable this control\n\t\tthis.enabled = true;\n\n\t\t// \"target\" sets the location of focus, where the object orbits around\n\t\tthis.target = new Vector3();\n\n\t\t// Sets the 3D cursor (similar to Blender), from which the maxTargetRadius takes effect\n\t\tthis.cursor = new Vector3();\n\n\t\t// How far you can dolly in and out ( PerspectiveCamera only )\n\t\tthis.minDistance = 0;\n\t\tthis.maxDistance = Infinity;\n\n\t\t// How far you can zoom in and out ( OrthographicCamera only )\n\t\tthis.minZoom = 0;\n\t\tthis.maxZoom = Infinity;\n\n\t\t// Limit camera target within a spherical area around the cursor\n\t\tthis.minTargetRadius = 0;\n\t\tthis.maxTargetRadius = Infinity;\n\n\t\t// How far you can orbit vertically, upper and lower limits.\n\t\t// Range is 0 to Math.PI radians.\n\t\tthis.minPolarAngle = 0; // radians\n\t\tthis.maxPolarAngle = Math.PI; // radians\n\n\t\t// How far you can orbit horizontally, upper and lower limits.\n\t\t// If set, the interval [ min, max ] must be a sub-interval of [ - 2 PI, 2 PI ], with ( max - min < 2 PI )\n\t\tthis.minAzimuthAngle = - Infinity; // radians\n\t\tthis.maxAzimuthAngle = Infinity; // radians\n\n\t\t// Set to true to enable damping (inertia)\n\t\t// If damping is enabled, you must call controls.update() in your animation loop\n\t\tthis.enableDamping = false;\n\t\tthis.dampingFactor = 0.05;\n\n\t\t// This option actually enables dollying in and out; left as \"zoom\" for backwards compatibility.\n\t\t// Set to false to disable zooming\n\t\tthis.enableZoom = true;\n\t\tthis.zoomSpeed = 1.0;\n\n\t\t// Set to false to disable rotating\n\t\tthis.enableRotate = true;\n\t\tthis.rotateSpeed = 1.0;\n\n\t\t// Set to false to disable panning\n\t\tthis.enablePan = true;\n\t\tthis.panSpeed = 1.0;\n\t\tthis.screenSpacePanning = true; // if false, pan orthogonal to world-space direction camera.up\n\t\tthis.keyPanSpeed = 7.0;\t// pixels moved per arrow key push\n\t\tthis.zoomToCursor = false;\n\n\t\t// Set to true to automatically rotate around the target\n\t\t// If auto-rotate is enabled, you must call controls.update() in your animation loop\n\t\tthis.autoRotate = false;\n\t\tthis.autoRotateSpeed = 2.0; // 30 seconds per orbit when fps is 60\n\n\t\t// The four arrow keys\n\t\tthis.keys = { LEFT: 'ArrowLeft', UP: 'ArrowUp', RIGHT: 'ArrowRight', BOTTOM: 'ArrowDown' };\n\n\t\t// Mouse buttons\n\t\tthis.mouseButtons = { LEFT: MOUSE.ROTATE, MIDDLE: MOUSE.DOLLY, RIGHT: MOUSE.PAN };\n\n\t\t// Touch fingers\n\t\tthis.touches = { ONE: TOUCH.ROTATE, TWO: TOUCH.DOLLY_PAN };\n\n\t\t// for reset\n\t\tthis.target0 = this.target.clone();\n\t\tthis.position0 = this.object.position.clone();\n\t\tthis.zoom0 = this.object.zoom;\n\n\t\t// the target DOM element for key events\n\t\tthis._domElementKeyEvents = null;\n\n\t\t//\n\t\t// public methods\n\t\t//\n\n\t\tthis.getPolarAngle = function () {\n\n\t\t\treturn spherical.phi;\n\n\t\t};\n\n\t\tthis.getAzimuthalAngle = function () {\n\n\t\t\treturn spherical.theta;\n\n\t\t};\n\n\t\tthis.getDistance = function () {\n\n\t\t\treturn this.object.position.distanceTo( this.target );\n\n\t\t};\n\n\t\tthis.listenToKeyEvents = function ( domElement ) {\n\n\t\t\tdomElement.addEventListener( 'keydown', onKeyDown );\n\t\t\tthis._domElementKeyEvents = domElement;\n\n\t\t};\n\n\t\tthis.stopListenToKeyEvents = function () {\n\n\t\t\tthis._domElementKeyEvents.removeEventListener( 'keydown', onKeyDown );\n\t\t\tthis._domElementKeyEvents = null;\n\n\t\t};\n\n\t\tthis.saveState = function () {\n\n\t\t\tscope.target0.copy( scope.target );\n\t\t\tscope.position0.copy( scope.object.position );\n\t\t\tscope.zoom0 = scope.object.zoom;\n\n\t\t};\n\n\t\tthis.reset = function () {\n\n\t\t\tscope.target.copy( scope.target0 );\n\t\t\tscope.object.position.copy( scope.position0 );\n\t\t\tscope.object.zoom = scope.zoom0;\n\n\t\t\tscope.object.updateProjectionMatrix();\n\t\t\tscope.dispatchEvent( _changeEvent );\n\n\t\t\tscope.update();\n\n\t\t\tstate = STATE.NONE;\n\n\t\t};\n\n\t\t// this method is exposed, but perhaps it would be better if we can make it private...\n\t\tthis.update = function () {\n\n\t\t\tconst offset = new Vector3();\n\n\t\t\t// so camera.up is the orbit axis\n\t\t\tconst quat = new Quaternion().setFromUnitVectors( object.up, new Vector3( 0, 1, 0 ) );\n\t\t\tconst quatInverse = quat.clone().invert();\n\n\t\t\tconst lastPosition = new Vector3();\n\t\t\tconst lastQuaternion = new Quaternion();\n\t\t\tconst lastTargetPosition = new Vector3();\n\n\t\t\tconst twoPI = 2 * Math.PI;\n\n\t\t\treturn function update( deltaTime = null ) {\n\n\t\t\t\tconst position = scope.object.position;\n\n\t\t\t\toffset.copy( position ).sub( scope.target );\n\n\t\t\t\t// rotate offset to \"y-axis-is-up\" space\n\t\t\t\toffset.applyQuaternion( quat );\n\n\t\t\t\t// angle from z-axis around y-axis\n\t\t\t\tspherical.setFromVector3( offset );\n\n\t\t\t\tif ( scope.autoRotate && state === STATE.NONE ) {\n\n\t\t\t\t\trotateLeft( getAutoRotationAngle( deltaTime ) );\n\n\t\t\t\t}\n\n\t\t\t\tif ( scope.enableDamping ) {\n\n\t\t\t\t\tspherical.theta += sphericalDelta.theta * scope.dampingFactor;\n\t\t\t\t\tspherical.phi += sphericalDelta.phi * scope.dampingFactor;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tspherical.theta += sphericalDelta.theta;\n\t\t\t\t\tspherical.phi += sphericalDelta.phi;\n\n\t\t\t\t}\n\n\t\t\t\t// restrict theta to be between desired limits\n\n\t\t\t\tlet min = scope.minAzimuthAngle;\n\t\t\t\tlet max = scope.maxAzimuthAngle;\n\n\t\t\t\tif ( isFinite( min ) && isFinite( max ) ) {\n\n\t\t\t\t\tif ( min < - Math.PI ) min += twoPI; else if ( min > Math.PI ) min -= twoPI;\n\n\t\t\t\t\tif ( max < - Math.PI ) max += twoPI; else if ( max > Math.PI ) max -= twoPI;\n\n\t\t\t\t\tif ( min <= max ) {\n\n\t\t\t\t\t\tspherical.theta = Math.max( min, Math.min( max, spherical.theta ) );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tspherical.theta = ( spherical.theta > ( min + max ) / 2 ) ?\n\t\t\t\t\t\t\tMath.max( min, spherical.theta ) :\n\t\t\t\t\t\t\tMath.min( max, spherical.theta );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\t// restrict phi to be between desired limits\n\t\t\t\tspherical.phi = Math.max( scope.minPolarAngle, Math.min( scope.maxPolarAngle, spherical.phi ) );\n\n\t\t\t\tspherical.makeSafe();\n\n\n\t\t\t\t// move target to panned location\n\n\t\t\t\tif ( scope.enableDamping === true ) {\n\n\t\t\t\t\tscope.target.addScaledVector( panOffset, scope.dampingFactor );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tscope.target.add( panOffset );\n\n\t\t\t\t}\n\n\t\t\t\t// Limit the target distance from the cursor to create a sphere around the center of interest\n\t\t\t\tscope.target.sub( scope.cursor );\n\t\t\t\tscope.target.clampLength( scope.minTargetRadius, scope.maxTargetRadius );\n\t\t\t\tscope.target.add( scope.cursor );\n\n\t\t\t\tlet zoomChanged = false;\n\t\t\t\t// adjust the camera position based on zoom only if we're not zooming to the cursor or if it's an ortho camera\n\t\t\t\t// we adjust zoom later in these cases\n\t\t\t\tif ( scope.zoomToCursor && performCursorZoom || scope.object.isOrthographicCamera ) {\n\n\t\t\t\t\tspherical.radius = clampDistance( spherical.radius );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst prevRadius = spherical.radius;\n\t\t\t\t\tspherical.radius = clampDistance( spherical.radius * scale );\n\t\t\t\t\tzoomChanged = prevRadius != spherical.radius;\n\n\t\t\t\t}\n\n\t\t\t\toffset.setFromSpherical( spherical );\n\n\t\t\t\t// rotate offset back to \"camera-up-vector-is-up\" space\n\t\t\t\toffset.applyQuaternion( quatInverse );\n\n\t\t\t\tposition.copy( scope.target ).add( offset );\n\n\t\t\t\tscope.object.lookAt( scope.target );\n\n\t\t\t\tif ( scope.enableDamping === true ) {\n\n\t\t\t\t\tsphericalDelta.theta *= ( 1 - scope.dampingFactor );\n\t\t\t\t\tsphericalDelta.phi *= ( 1 - scope.dampingFactor );\n\n\t\t\t\t\tpanOffset.multiplyScalar( 1 - scope.dampingFactor );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tsphericalDelta.set( 0, 0, 0 );\n\n\t\t\t\t\tpanOffset.set( 0, 0, 0 );\n\n\t\t\t\t}\n\n\t\t\t\t// adjust camera position\n\t\t\t\tif ( scope.zoomToCursor && performCursorZoom ) {\n\n\t\t\t\t\tlet newRadius = null;\n\t\t\t\t\tif ( scope.object.isPerspectiveCamera ) {\n\n\t\t\t\t\t\t// move the camera down the pointer ray\n\t\t\t\t\t\t// this method avoids floating point error\n\t\t\t\t\t\tconst prevRadius = offset.length();\n\t\t\t\t\t\tnewRadius = clampDistance( prevRadius * scale );\n\n\t\t\t\t\t\tconst radiusDelta = prevRadius - newRadius;\n\t\t\t\t\t\tscope.object.position.addScaledVector( dollyDirection, radiusDelta );\n\t\t\t\t\t\tscope.object.updateMatrixWorld();\n\n\t\t\t\t\t\tzoomChanged = !! radiusDelta;\n\n\t\t\t\t\t} else if ( scope.object.isOrthographicCamera ) {\n\n\t\t\t\t\t\t// adjust the ortho camera position based on zoom changes\n\t\t\t\t\t\tconst mouseBefore = new Vector3( mouse.x, mouse.y, 0 );\n\t\t\t\t\t\tmouseBefore.unproject( scope.object );\n\n\t\t\t\t\t\tconst prevZoom = scope.object.zoom;\n\t\t\t\t\t\tscope.object.zoom = Math.max( scope.minZoom, Math.min( scope.maxZoom, scope.object.zoom / scale ) );\n\t\t\t\t\t\tscope.object.updateProjectionMatrix();\n\n\t\t\t\t\t\tzoomChanged = prevZoom !== scope.object.zoom;\n\n\t\t\t\t\t\tconst mouseAfter = new Vector3( mouse.x, mouse.y, 0 );\n\t\t\t\t\t\tmouseAfter.unproject( scope.object );\n\n\t\t\t\t\t\tscope.object.position.sub( mouseAfter ).add( mouseBefore );\n\t\t\t\t\t\tscope.object.updateMatrixWorld();\n\n\t\t\t\t\t\tnewRadius = offset.length();\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled.' );\n\t\t\t\t\t\tscope.zoomToCursor = false;\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// handle the placement of the target\n\t\t\t\t\tif ( newRadius !== null ) {\n\n\t\t\t\t\t\tif ( this.screenSpacePanning ) {\n\n\t\t\t\t\t\t\t// position the orbit target in front of the new camera position\n\t\t\t\t\t\t\tscope.target.set( 0, 0, - 1 )\n\t\t\t\t\t\t\t\t.transformDirection( scope.object.matrix )\n\t\t\t\t\t\t\t\t.multiplyScalar( newRadius )\n\t\t\t\t\t\t\t\t.add( scope.object.position );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// get the ray and translation plane to compute target\n\t\t\t\t\t\t\t_ray.origin.copy( scope.object.position );\n\t\t\t\t\t\t\t_ray.direction.set( 0, 0, - 1 ).transformDirection( scope.object.matrix );\n\n\t\t\t\t\t\t\t// if the camera is 20 degrees above the horizon then don't adjust the focus target to avoid\n\t\t\t\t\t\t\t// extremely large values\n\t\t\t\t\t\t\tif ( Math.abs( scope.object.up.dot( _ray.direction ) ) < TILT_LIMIT ) {\n\n\t\t\t\t\t\t\t\tobject.lookAt( scope.target );\n\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t_plane.setFromNormalAndCoplanarPoint( scope.object.up, scope.target );\n\t\t\t\t\t\t\t\t_ray.intersectPlane( _plane, scope.target );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( scope.object.isOrthographicCamera ) {\n\n\t\t\t\t\tconst prevZoom = scope.object.zoom;\n\t\t\t\t\tscope.object.zoom = Math.max( scope.minZoom, Math.min( scope.maxZoom, scope.object.zoom / scale ) );\n\n\t\t\t\t\tif ( prevZoom !== scope.object.zoom ) {\n\n\t\t\t\t\t\tscope.object.updateProjectionMatrix();\n\t\t\t\t\t\tzoomChanged = true;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tscale = 1;\n\t\t\t\tperformCursorZoom = false;\n\n\t\t\t\t// update condition is:\n\t\t\t\t// min(camera displacement, camera rotation in radians)^2 > EPS\n\t\t\t\t// using small-angle approximation cos(x/2) = 1 - x^2 / 8\n\n\t\t\t\tif ( zoomChanged ||\n\t\t\t\t\tlastPosition.distanceToSquared( scope.object.position ) > EPS ||\n\t\t\t\t\t8 * ( 1 - lastQuaternion.dot( scope.object.quaternion ) ) > EPS ||\n\t\t\t\t\tlastTargetPosition.distanceToSquared( scope.target ) > EPS ) {\n\n\t\t\t\t\tscope.dispatchEvent( _changeEvent );\n\n\t\t\t\t\tlastPosition.copy( scope.object.position );\n\t\t\t\t\tlastQuaternion.copy( scope.object.quaternion );\n\t\t\t\t\tlastTargetPosition.copy( scope.target );\n\n\t\t\t\t\treturn true;\n\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\n\t\t\t};\n\n\t\t}();\n\n\t\tthis.dispose = function () {\n\n\t\t\tscope.domElement.removeEventListener( 'contextmenu', onContextMenu );\n\n\t\t\tscope.domElement.removeEventListener( 'pointerdown', onPointerDown );\n\t\t\tscope.domElement.removeEventListener( 'pointercancel', onPointerUp );\n\t\t\tscope.domElement.removeEventListener( 'wheel', onMouseWheel );\n\n\t\t\tscope.domElement.removeEventListener( 'pointermove', onPointerMove );\n\t\t\tscope.domElement.removeEventListener( 'pointerup', onPointerUp );\n\n\t\t\tconst document = scope.domElement.getRootNode(); // offscreen canvas compatibility\n\n\t\t\tdocument.removeEventListener( 'keydown', interceptControlDown, { capture: true } );\n\n\t\t\tif ( scope._domElementKeyEvents !== null ) {\n\n\t\t\t\tscope._domElementKeyEvents.removeEventListener( 'keydown', onKeyDown );\n\t\t\t\tscope._domElementKeyEvents = null;\n\n\t\t\t}\n\n\t\t\t//scope.dispatchEvent( { type: 'dispose' } ); // should this be added here?\n\n\t\t};\n\n\t\t//\n\t\t// internals\n\t\t//\n\n\t\tconst scope = this;\n\n\t\tconst STATE = {\n\t\t\tNONE: - 1,\n\t\t\tROTATE: 0,\n\t\t\tDOLLY: 1,\n\t\t\tPAN: 2,\n\t\t\tTOUCH_ROTATE: 3,\n\t\t\tTOUCH_PAN: 4,\n\t\t\tTOUCH_DOLLY_PAN: 5,\n\t\t\tTOUCH_DOLLY_ROTATE: 6\n\t\t};\n\n\t\tlet state = STATE.NONE;\n\n\t\tconst EPS = 0.000001;\n\n\t\t// current position in spherical coordinates\n\t\tconst spherical = new Spherical();\n\t\tconst sphericalDelta = new Spherical();\n\n\t\tlet scale = 1;\n\t\tconst panOffset = new Vector3();\n\n\t\tconst rotateStart = new Vector2();\n\t\tconst rotateEnd = new Vector2();\n\t\tconst rotateDelta = new Vector2();\n\n\t\tconst panStart = new Vector2();\n\t\tconst panEnd = new Vector2();\n\t\tconst panDelta = new Vector2();\n\n\t\tconst dollyStart = new Vector2();\n\t\tconst dollyEnd = new Vector2();\n\t\tconst dollyDelta = new Vector2();\n\n\t\tconst dollyDirection = new Vector3();\n\t\tconst mouse = new Vector2();\n\t\tlet performCursorZoom = false;\n\n\t\tconst pointers = [];\n\t\tconst pointerPositions = {};\n\n\t\tlet controlActive = false;\n\n\t\tfunction getAutoRotationAngle( deltaTime ) {\n\n\t\t\tif ( deltaTime !== null ) {\n\n\t\t\t\treturn ( 2 * Math.PI / 60 * scope.autoRotateSpeed ) * deltaTime;\n\n\t\t\t} else {\n\n\t\t\t\treturn 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction getZoomScale( delta ) {\n\n\t\t\tconst normalizedDelta = Math.abs( delta * 0.01 );\n\t\t\treturn Math.pow( 0.95, scope.zoomSpeed * normalizedDelta );\n\n\t\t}\n\n\t\tfunction rotateLeft( angle ) {\n\n\t\t\tsphericalDelta.theta -= angle;\n\n\t\t}\n\n\t\tfunction rotateUp( angle ) {\n\n\t\t\tsphericalDelta.phi -= angle;\n\n\t\t}\n\n\t\tconst panLeft = function () {\n\n\t\t\tconst v = new Vector3();\n\n\t\t\treturn function panLeft( distance, objectMatrix ) {\n\n\t\t\t\tv.setFromMatrixColumn( objectMatrix, 0 ); // get X column of objectMatrix\n\t\t\t\tv.multiplyScalar( - distance );\n\n\t\t\t\tpanOffset.add( v );\n\n\t\t\t};\n\n\t\t}();\n\n\t\tconst panUp = function () {\n\n\t\t\tconst v = new Vector3();\n\n\t\t\treturn function panUp( distance, objectMatrix ) {\n\n\t\t\t\tif ( scope.screenSpacePanning === true ) {\n\n\t\t\t\t\tv.setFromMatrixColumn( objectMatrix, 1 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tv.setFromMatrixColumn( objectMatrix, 0 );\n\t\t\t\t\tv.crossVectors( scope.object.up, v );\n\n\t\t\t\t}\n\n\t\t\t\tv.multiplyScalar( distance );\n\n\t\t\t\tpanOffset.add( v );\n\n\t\t\t};\n\n\t\t}();\n\n\t\t// deltaX and deltaY are in pixels; right and down are positive\n\t\tconst pan = function () {\n\n\t\t\tconst offset = new Vector3();\n\n\t\t\treturn function pan( deltaX, deltaY ) {\n\n\t\t\t\tconst element = scope.domElement;\n\n\t\t\t\tif ( scope.object.isPerspectiveCamera ) {\n\n\t\t\t\t\t// perspective\n\t\t\t\t\tconst position = scope.object.position;\n\t\t\t\t\toffset.copy( position ).sub( scope.target );\n\t\t\t\t\tlet targetDistance = offset.length();\n\n\t\t\t\t\t// half of the fov is center to top of screen\n\t\t\t\t\ttargetDistance *= Math.tan( ( scope.object.fov / 2 ) * Math.PI / 180.0 );\n\n\t\t\t\t\t// we use only clientHeight here so aspect ratio does not distort speed\n\t\t\t\t\tpanLeft( 2 * deltaX * targetDistance / element.clientHeight, scope.object.matrix );\n\t\t\t\t\tpanUp( 2 * deltaY * targetDistance / element.clientHeight, scope.object.matrix );\n\n\t\t\t\t} else if ( scope.object.isOrthographicCamera ) {\n\n\t\t\t\t\t// orthographic\n\t\t\t\t\tpanLeft( deltaX * ( scope.object.right - scope.object.left ) / scope.object.zoom / element.clientWidth, scope.object.matrix );\n\t\t\t\t\tpanUp( deltaY * ( scope.object.top - scope.object.bottom ) / scope.object.zoom / element.clientHeight, scope.object.matrix );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// camera neither orthographic nor perspective\n\t\t\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' );\n\t\t\t\t\tscope.enablePan = false;\n\n\t\t\t\t}\n\n\t\t\t};\n\n\t\t}();\n\n\t\tfunction dollyOut( dollyScale ) {\n\n\t\t\tif ( scope.object.isPerspectiveCamera || scope.object.isOrthographicCamera ) {\n\n\t\t\t\tscale /= dollyScale;\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );\n\t\t\t\tscope.enableZoom = false;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction dollyIn( dollyScale ) {\n\n\t\t\tif ( scope.object.isPerspectiveCamera || scope.object.isOrthographicCamera ) {\n\n\t\t\t\tscale *= dollyScale;\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );\n\t\t\t\tscope.enableZoom = false;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction updateZoomParameters( x, y ) {\n\n\t\t\tif ( ! scope.zoomToCursor ) {\n\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t\tperformCursorZoom = true;\n\n\t\t\tconst rect = scope.domElement.getBoundingClientRect();\n\t\t\tconst dx = x - rect.left;\n\t\t\tconst dy = y - rect.top;\n\t\t\tconst w = rect.width;\n\t\t\tconst h = rect.height;\n\n\t\t\tmouse.x = ( dx / w ) * 2 - 1;\n\t\t\tmouse.y = - ( dy / h ) * 2 + 1;\n\n\t\t\tdollyDirection.set( mouse.x, mouse.y, 1 ).unproject( scope.object ).sub( scope.object.position ).normalize();\n\n\t\t}\n\n\t\tfunction clampDistance( dist ) {\n\n\t\t\treturn Math.max( scope.minDistance, Math.min( scope.maxDistance, dist ) );\n\n\t\t}\n\n\t\t//\n\t\t// event callbacks - update the object state\n\t\t//\n\n\t\tfunction handleMouseDownRotate( event ) {\n\n\t\t\trotateStart.set( event.clientX, event.clientY );\n\n\t\t}\n\n\t\tfunction handleMouseDownDolly( event ) {\n\n\t\t\tupdateZoomParameters( event.clientX, event.clientX );\n\t\t\tdollyStart.set( event.clientX, event.clientY );\n\n\t\t}\n\n\t\tfunction handleMouseDownPan( event ) {\n\n\t\t\tpanStart.set( event.clientX, event.clientY );\n\n\t\t}\n\n\t\tfunction handleMouseMoveRotate( event ) {\n\n\t\t\trotateEnd.set( event.clientX, event.clientY );\n\n\t\t\trotateDelta.subVectors( rotateEnd, rotateStart ).multiplyScalar( scope.rotateSpeed );\n\n\t\t\tconst element = scope.domElement;\n\n\t\t\trotateLeft( 2 * Math.PI * rotateDelta.x / element.clientHeight ); // yes, height\n\n\t\t\trotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight );\n\n\t\t\trotateStart.copy( rotateEnd );\n\n\t\t\tscope.update();\n\n\t\t}\n\n\t\tfunction handleMouseMoveDolly( event ) {\n\n\t\t\tdollyEnd.set( event.clientX, event.clientY );\n\n\t\t\tdollyDelta.subVectors( dollyEnd, dollyStart );\n\n\t\t\tif ( dollyDelta.y > 0 ) {\n\n\t\t\t\tdollyOut( getZoomScale( dollyDelta.y ) );\n\n\t\t\t} else if ( dollyDelta.y < 0 ) {\n\n\t\t\t\tdollyIn( getZoomScale( dollyDelta.y ) );\n\n\t\t\t}\n\n\t\t\tdollyStart.copy( dollyEnd );\n\n\t\t\tscope.update();\n\n\t\t}\n\n\t\tfunction handleMouseMovePan( event ) {\n\n\t\t\tpanEnd.set( event.clientX, event.clientY );\n\n\t\t\tpanDelta.subVectors( panEnd, panStart ).multiplyScalar( scope.panSpeed );\n\n\t\t\tpan( panDelta.x, panDelta.y );\n\n\t\t\tpanStart.copy( panEnd );\n\n\t\t\tscope.update();\n\n\t\t}\n\n\t\tfunction handleMouseWheel( event ) {\n\n\t\t\tupdateZoomParameters( event.clientX, event.clientY );\n\n\t\t\tif ( event.deltaY < 0 ) {\n\n\t\t\t\tdollyIn( getZoomScale( event.deltaY ) );\n\n\t\t\t} else if ( event.deltaY > 0 ) {\n\n\t\t\t\tdollyOut( getZoomScale( event.deltaY ) );\n\n\t\t\t}\n\n\t\t\tscope.update();\n\n\t\t}\n\n\t\tfunction handleKeyDown( event ) {\n\n\t\t\tlet needsUpdate = false;\n\n\t\t\tswitch ( event.code ) {\n\n\t\t\t\tcase scope.keys.UP:\n\n\t\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\t\trotateUp( 2 * Math.PI * scope.rotateSpeed / scope.domElement.clientHeight );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tpan( 0, scope.keyPanSpeed );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tneedsUpdate = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase scope.keys.BOTTOM:\n\n\t\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\t\trotateUp( - 2 * Math.PI * scope.rotateSpeed / scope.domElement.clientHeight );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tpan( 0, - scope.keyPanSpeed );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tneedsUpdate = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase scope.keys.LEFT:\n\n\t\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\t\trotateLeft( 2 * Math.PI * scope.rotateSpeed / scope.domElement.clientHeight );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tpan( scope.keyPanSpeed, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tneedsUpdate = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase scope.keys.RIGHT:\n\n\t\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\t\trotateLeft( - 2 * Math.PI * scope.rotateSpeed / scope.domElement.clientHeight );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tpan( - scope.keyPanSpeed, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tneedsUpdate = true;\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( needsUpdate ) {\n\n\t\t\t\t// prevent the browser from scrolling on cursor keys\n\t\t\t\tevent.preventDefault();\n\n\t\t\t\tscope.update();\n\n\t\t\t}\n\n\n\t\t}\n\n\t\tfunction handleTouchStartRotate( event ) {\n\n\t\t\tif ( pointers.length === 1 ) {\n\n\t\t\t\trotateStart.set( event.pageX, event.pageY );\n\n\t\t\t} else {\n\n\t\t\t\tconst position = getSecondPointerPosition( event );\n\n\t\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\t\trotateStart.set( x, y );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction handleTouchStartPan( event ) {\n\n\t\t\tif ( pointers.length === 1 ) {\n\n\t\t\t\tpanStart.set( event.pageX, event.pageY );\n\n\t\t\t} else {\n\n\t\t\t\tconst position = getSecondPointerPosition( event );\n\n\t\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\t\tpanStart.set( x, y );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction handleTouchStartDolly( event ) {\n\n\t\t\tconst position = getSecondPointerPosition( event );\n\n\t\t\tconst dx = event.pageX - position.x;\n\t\t\tconst dy = event.pageY - position.y;\n\n\t\t\tconst distance = Math.sqrt( dx * dx + dy * dy );\n\n\t\t\tdollyStart.set( 0, distance );\n\n\t\t}\n\n\t\tfunction handleTouchStartDollyPan( event ) {\n\n\t\t\tif ( scope.enableZoom ) handleTouchStartDolly( event );\n\n\t\t\tif ( scope.enablePan ) handleTouchStartPan( event );\n\n\t\t}\n\n\t\tfunction handleTouchStartDollyRotate( event ) {\n\n\t\t\tif ( scope.enableZoom ) handleTouchStartDolly( event );\n\n\t\t\tif ( scope.enableRotate ) handleTouchStartRotate( event );\n\n\t\t}\n\n\t\tfunction handleTouchMoveRotate( event ) {\n\n\t\t\tif ( pointers.length == 1 ) {\n\n\t\t\t\trotateEnd.set( event.pageX, event.pageY );\n\n\t\t\t} else {\n\n\t\t\t\tconst position = getSecondPointerPosition( event );\n\n\t\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\t\trotateEnd.set( x, y );\n\n\t\t\t}\n\n\t\t\trotateDelta.subVectors( rotateEnd, rotateStart ).multiplyScalar( scope.rotateSpeed );\n\n\t\t\tconst element = scope.domElement;\n\n\t\t\trotateLeft( 2 * Math.PI * rotateDelta.x / element.clientHeight ); // yes, height\n\n\t\t\trotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight );\n\n\t\t\trotateStart.copy( rotateEnd );\n\n\t\t}\n\n\t\tfunction handleTouchMovePan( event ) {\n\n\t\t\tif ( pointers.length === 1 ) {\n\n\t\t\t\tpanEnd.set( event.pageX, event.pageY );\n\n\t\t\t} else {\n\n\t\t\t\tconst position = getSecondPointerPosition( event );\n\n\t\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\t\tpanEnd.set( x, y );\n\n\t\t\t}\n\n\t\t\tpanDelta.subVectors( panEnd, panStart ).multiplyScalar( scope.panSpeed );\n\n\t\t\tpan( panDelta.x, panDelta.y );\n\n\t\t\tpanStart.copy( panEnd );\n\n\t\t}\n\n\t\tfunction handleTouchMoveDolly( event ) {\n\n\t\t\tconst position = getSecondPointerPosition( event );\n\n\t\t\tconst dx = event.pageX - position.x;\n\t\t\tconst dy = event.pageY - position.y;\n\n\t\t\tconst distance = Math.sqrt( dx * dx + dy * dy );\n\n\t\t\tdollyEnd.set( 0, distance );\n\n\t\t\tdollyDelta.set( 0, Math.pow( dollyEnd.y / dollyStart.y, scope.zoomSpeed ) );\n\n\t\t\tdollyOut( dollyDelta.y );\n\n\t\t\tdollyStart.copy( dollyEnd );\n\n\t\t\tconst centerX = ( event.pageX + position.x ) * 0.5;\n\t\t\tconst centerY = ( event.pageY + position.y ) * 0.5;\n\n\t\t\tupdateZoomParameters( centerX, centerY );\n\n\t\t}\n\n\t\tfunction handleTouchMoveDollyPan( event ) {\n\n\t\t\tif ( scope.enableZoom ) handleTouchMoveDolly( event );\n\n\t\t\tif ( scope.enablePan ) handleTouchMovePan( event );\n\n\t\t}\n\n\t\tfunction handleTouchMoveDollyRotate( event ) {\n\n\t\t\tif ( scope.enableZoom ) handleTouchMoveDolly( event );\n\n\t\t\tif ( scope.enableRotate ) handleTouchMoveRotate( event );\n\n\t\t}\n\n\t\t//\n\t\t// event handlers - FSM: listen for events and reset state\n\t\t//\n\n\t\tfunction onPointerDown( event ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tif ( pointers.length === 0 ) {\n\n\t\t\t\tscope.domElement.setPointerCapture( event.pointerId );\n\n\t\t\t\tscope.domElement.addEventListener( 'pointermove', onPointerMove );\n\t\t\t\tscope.domElement.addEventListener( 'pointerup', onPointerUp );\n\n\t\t\t}\n\n\t\t\t//\n\n\t\t\tif ( isTrackingPointer( event ) ) return;\n\n\t\t\t//\n\n\t\t\taddPointer( event );\n\n\t\t\tif ( event.pointerType === 'touch' ) {\n\n\t\t\t\tonTouchStart( event );\n\n\t\t\t} else {\n\n\t\t\t\tonMouseDown( event );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onPointerMove( event ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tif ( event.pointerType === 'touch' ) {\n\n\t\t\t\tonTouchMove( event );\n\n\t\t\t} else {\n\n\t\t\t\tonMouseMove( event );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onPointerUp( event ) {\n\n\t\t\tremovePointer( event );\n\n\t\t\tswitch ( pointers.length ) {\n\n\t\t\t\tcase 0:\n\n\t\t\t\t\tscope.domElement.releasePointerCapture( event.pointerId );\n\n\t\t\t\t\tscope.domElement.removeEventListener( 'pointermove', onPointerMove );\n\t\t\t\t\tscope.domElement.removeEventListener( 'pointerup', onPointerUp );\n\n\t\t\t\t\tscope.dispatchEvent( _endEvent );\n\n\t\t\t\t\tstate = STATE.NONE;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 1:\n\n\t\t\t\t\tconst pointerId = pointers[ 0 ];\n\t\t\t\t\tconst position = pointerPositions[ pointerId ];\n\n\t\t\t\t\t// minimal placeholder event - allows state correction on pointer-up\n\t\t\t\t\tonTouchStart( { pointerId: pointerId, pageX: position.x, pageY: position.y } );\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onMouseDown( event ) {\n\n\t\t\tlet mouseAction;\n\n\t\t\tswitch ( event.button ) {\n\n\t\t\t\tcase 0:\n\n\t\t\t\t\tmouseAction = scope.mouseButtons.LEFT;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 1:\n\n\t\t\t\t\tmouseAction = scope.mouseButtons.MIDDLE;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 2:\n\n\t\t\t\t\tmouseAction = scope.mouseButtons.RIGHT;\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tmouseAction = - 1;\n\n\t\t\t}\n\n\t\t\tswitch ( mouseAction ) {\n\n\t\t\t\tcase MOUSE.DOLLY:\n\n\t\t\t\t\tif ( scope.enableZoom === false ) return;\n\n\t\t\t\t\thandleMouseDownDolly( event );\n\n\t\t\t\t\tstate = STATE.DOLLY;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MOUSE.ROTATE:\n\n\t\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\t\tif ( scope.enablePan === false ) return;\n\n\t\t\t\t\t\thandleMouseDownPan( event );\n\n\t\t\t\t\t\tstate = STATE.PAN;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( scope.enableRotate === false ) return;\n\n\t\t\t\t\t\thandleMouseDownRotate( event );\n\n\t\t\t\t\t\tstate = STATE.ROTATE;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MOUSE.PAN:\n\n\t\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\t\tif ( scope.enableRotate === false ) return;\n\n\t\t\t\t\t\thandleMouseDownRotate( event );\n\n\t\t\t\t\t\tstate = STATE.ROTATE;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tif ( scope.enablePan === false ) return;\n\n\t\t\t\t\t\thandleMouseDownPan( event );\n\n\t\t\t\t\t\tstate = STATE.PAN;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tstate = STATE.NONE;\n\n\t\t\t}\n\n\t\t\tif ( state !== STATE.NONE ) {\n\n\t\t\t\tscope.dispatchEvent( _startEvent );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onMouseMove( event ) {\n\n\t\t\tswitch ( state ) {\n\n\t\t\t\tcase STATE.ROTATE:\n\n\t\t\t\t\tif ( scope.enableRotate === false ) return;\n\n\t\t\t\t\thandleMouseMoveRotate( event );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase STATE.DOLLY:\n\n\t\t\t\t\tif ( scope.enableZoom === false ) return;\n\n\t\t\t\t\thandleMouseMoveDolly( event );\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase STATE.PAN:\n\n\t\t\t\t\tif ( scope.enablePan === false ) return;\n\n\t\t\t\t\thandleMouseMovePan( event );\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onMouseWheel( event ) {\n\n\t\t\tif ( scope.enabled === false || scope.enableZoom === false || state !== STATE.NONE ) return;\n\n\t\t\tevent.preventDefault();\n\n\t\t\tscope.dispatchEvent( _startEvent );\n\n\t\t\thandleMouseWheel( customWheelEvent( event ) );\n\n\t\t\tscope.dispatchEvent( _endEvent );\n\n\t\t}\n\n\t\tfunction customWheelEvent( event ) {\n\n\t\t\tconst mode = event.deltaMode;\n\n\t\t\t// minimal wheel event altered to meet delta-zoom demand\n\t\t\tconst newEvent = {\n\t\t\t\tclientX: event.clientX,\n\t\t\t\tclientY: event.clientY,\n\t\t\t\tdeltaY: event.deltaY,\n\t\t\t};\n\n\t\t\tswitch ( mode ) {\n\n\t\t\t\tcase 1: // LINE_MODE\n\t\t\t\t\tnewEvent.deltaY *= 16;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 2: // PAGE_MODE\n\t\t\t\t\tnewEvent.deltaY *= 100;\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\t// detect if event was triggered by pinching\n\t\t\tif ( event.ctrlKey && ! controlActive ) {\n\n\t\t\t\tnewEvent.deltaY *= 10;\n\n\t\t\t}\n\n\t\t\treturn newEvent;\n\n\t\t}\n\n\t\tfunction interceptControlDown( event ) {\n\n\t\t\tif ( event.key === 'Control' ) {\n\n\t\t\t\tcontrolActive = true;\n\n\n\t\t\t\tconst document = scope.domElement.getRootNode(); // offscreen canvas compatibility\n\n\t\t\t\tdocument.addEventListener( 'keyup', interceptControlUp, { passive: true, capture: true } );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction interceptControlUp( event ) {\n\n\t\t\tif ( event.key === 'Control' ) {\n\n\t\t\t\tcontrolActive = false;\n\n\n\t\t\t\tconst document = scope.domElement.getRootNode(); // offscreen canvas compatibility\n\n\t\t\t\tdocument.removeEventListener( 'keyup', interceptControlUp, { passive: true, capture: true } );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onKeyDown( event ) {\n\n\t\t\tif ( scope.enabled === false || scope.enablePan === false ) return;\n\n\t\t\thandleKeyDown( event );\n\n\t\t}\n\n\t\tfunction onTouchStart( event ) {\n\n\t\t\ttrackPointer( event );\n\n\t\t\tswitch ( pointers.length ) {\n\n\t\t\t\tcase 1:\n\n\t\t\t\t\tswitch ( scope.touches.ONE ) {\n\n\t\t\t\t\t\tcase TOUCH.ROTATE:\n\n\t\t\t\t\t\t\tif ( scope.enableRotate === false ) return;\n\n\t\t\t\t\t\t\thandleTouchStartRotate( event );\n\n\t\t\t\t\t\t\tstate = STATE.TOUCH_ROTATE;\n\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase TOUCH.PAN:\n\n\t\t\t\t\t\t\tif ( scope.enablePan === false ) return;\n\n\t\t\t\t\t\t\thandleTouchStartPan( event );\n\n\t\t\t\t\t\t\tstate = STATE.TOUCH_PAN;\n\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\n\t\t\t\t\t\t\tstate = STATE.NONE;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 2:\n\n\t\t\t\t\tswitch ( scope.touches.TWO ) {\n\n\t\t\t\t\t\tcase TOUCH.DOLLY_PAN:\n\n\t\t\t\t\t\t\tif ( scope.enableZoom === false && scope.enablePan === false ) return;\n\n\t\t\t\t\t\t\thandleTouchStartDollyPan( event );\n\n\t\t\t\t\t\t\tstate = STATE.TOUCH_DOLLY_PAN;\n\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase TOUCH.DOLLY_ROTATE:\n\n\t\t\t\t\t\t\tif ( scope.enableZoom === false && scope.enableRotate === false ) return;\n\n\t\t\t\t\t\t\thandleTouchStartDollyRotate( event );\n\n\t\t\t\t\t\t\tstate = STATE.TOUCH_DOLLY_ROTATE;\n\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\n\t\t\t\t\t\t\tstate = STATE.NONE;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tstate = STATE.NONE;\n\n\t\t\t}\n\n\t\t\tif ( state !== STATE.NONE ) {\n\n\t\t\t\tscope.dispatchEvent( _startEvent );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onTouchMove( event ) {\n\n\t\t\ttrackPointer( event );\n\n\t\t\tswitch ( state ) {\n\n\t\t\t\tcase STATE.TOUCH_ROTATE:\n\n\t\t\t\t\tif ( scope.enableRotate === false ) return;\n\n\t\t\t\t\thandleTouchMoveRotate( event );\n\n\t\t\t\t\tscope.update();\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase STATE.TOUCH_PAN:\n\n\t\t\t\t\tif ( scope.enablePan === false ) return;\n\n\t\t\t\t\thandleTouchMovePan( event );\n\n\t\t\t\t\tscope.update();\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase STATE.TOUCH_DOLLY_PAN:\n\n\t\t\t\t\tif ( scope.enableZoom === false && scope.enablePan === false ) return;\n\n\t\t\t\t\thandleTouchMoveDollyPan( event );\n\n\t\t\t\t\tscope.update();\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase STATE.TOUCH_DOLLY_ROTATE:\n\n\t\t\t\t\tif ( scope.enableZoom === false && scope.enableRotate === false ) return;\n\n\t\t\t\t\thandleTouchMoveDollyRotate( event );\n\n\t\t\t\t\tscope.update();\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tstate = STATE.NONE;\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction onContextMenu( event ) {\n\n\t\t\tif ( scope.enabled === false ) return;\n\n\t\t\tevent.preventDefault();\n\n\t\t}\n\n\t\tfunction addPointer( event ) {\n\n\t\t\tpointers.push( event.pointerId );\n\n\t\t}\n\n\t\tfunction removePointer( event ) {\n\n\t\t\tdelete pointerPositions[ event.pointerId ];\n\n\t\t\tfor ( let i = 0; i < pointers.length; i ++ ) {\n\n\t\t\t\tif ( pointers[ i ] == event.pointerId ) {\n\n\t\t\t\t\tpointers.splice( i, 1 );\n\t\t\t\t\treturn;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tfunction isTrackingPointer( event ) {\n\n\t\t\tfor ( let i = 0; i < pointers.length; i ++ ) {\n\n\t\t\t\tif ( pointers[ i ] == event.pointerId ) return true;\n\n\t\t\t}\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\tfunction trackPointer( event ) {\n\n\t\t\tlet position = pointerPositions[ event.pointerId ];\n\n\t\t\tif ( position === undefined ) {\n\n\t\t\t\tposition = new Vector2();\n\t\t\t\tpointerPositions[ event.pointerId ] = position;\n\n\t\t\t}\n\n\t\t\tposition.set( event.pageX, event.pageY );\n\n\t\t}\n\n\t\tfunction getSecondPointerPosition( event ) {\n\n\t\t\tconst pointerId = ( event.pointerId === pointers[ 0 ] ) ? pointers[ 1 ] : pointers[ 0 ];\n\n\t\t\treturn pointerPositions[ pointerId ];\n\n\t\t}\n\n\t\t//\n\n\t\tscope.domElement.addEventListener( 'contextmenu', onContextMenu );\n\n\t\tscope.domElement.addEventListener( 'pointerdown', onPointerDown );\n\t\tscope.domElement.addEventListener( 'pointercancel', onPointerUp );\n\t\tscope.domElement.addEventListener( 'wheel', onMouseWheel, { passive: false } );\n\n\t\tconst document = scope.domElement.getRootNode(); // offscreen canvas compatibility\n\n\t\tdocument.addEventListener( 'keydown', interceptControlDown, { passive: true, capture: true } );\n\n\t\t// force an update at start\n\n\t\tthis.update();\n\n\t}\n\n}\n\nexport { OrbitControls };\n","/**\n * lil-gui\n * https://lil-gui.georgealways.com\n * @version 0.19.2\n * @author George Michael Brower\n * @license MIT\n */\n\n/**\n * Base class for all controllers.\n */\nclass Controller {\n\n\tconstructor( parent, object, property, className, elementType = 'div' ) {\n\n\t\t/**\n\t\t * The GUI that contains this controller.\n\t\t * @type {GUI}\n\t\t */\n\t\tthis.parent = parent;\n\n\t\t/**\n\t\t * The object this controller will modify.\n\t\t * @type {object}\n\t\t */\n\t\tthis.object = object;\n\n\t\t/**\n\t\t * The name of the property to control.\n\t\t * @type {string}\n\t\t */\n\t\tthis.property = property;\n\n\t\t/**\n\t\t * Used to determine if the controller is disabled.\n\t\t * Use `controller.disable( true|false )` to modify this value.\n\t\t * @type {boolean}\n\t\t */\n\t\tthis._disabled = false;\n\n\t\t/**\n\t\t * Used to determine if the Controller is hidden.\n\t\t * Use `controller.show()` or `controller.hide()` to change this.\n\t\t * @type {boolean}\n\t\t */\n\t\tthis._hidden = false;\n\n\t\t/**\n\t\t * The value of `object[ property ]` when the controller was created.\n\t\t * @type {any}\n\t\t */\n\t\tthis.initialValue = this.getValue();\n\n\t\t/**\n\t\t * The outermost container DOM element for this controller.\n\t\t * @type {HTMLElement}\n\t\t */\n\t\tthis.domElement = document.createElement( elementType );\n\t\tthis.domElement.classList.add( 'controller' );\n\t\tthis.domElement.classList.add( className );\n\n\t\t/**\n\t\t * The DOM element that contains the controller's name.\n\t\t * @type {HTMLElement}\n\t\t */\n\t\tthis.$name = document.createElement( 'div' );\n\t\tthis.$name.classList.add( 'name' );\n\n\t\tController.nextNameID = Controller.nextNameID || 0;\n\t\tthis.$name.id = `lil-gui-name-${++Controller.nextNameID}`;\n\n\t\t/**\n\t\t * The DOM element that contains the controller's \"widget\" (which differs by controller type).\n\t\t * @type {HTMLElement}\n\t\t */\n\t\tthis.$widget = document.createElement( 'div' );\n\t\tthis.$widget.classList.add( 'widget' );\n\n\t\t/**\n\t\t * The DOM element that receives the disabled attribute when using disable().\n\t\t * @type {HTMLElement}\n\t\t */\n\t\tthis.$disable = this.$widget;\n\n\t\tthis.domElement.appendChild( this.$name );\n\t\tthis.domElement.appendChild( this.$widget );\n\n\t\t// Don't fire global key events while typing in a controller\n\t\tthis.domElement.addEventListener( 'keydown', e => e.stopPropagation() );\n\t\tthis.domElement.addEventListener( 'keyup', e => e.stopPropagation() );\n\n\t\tthis.parent.children.push( this );\n\t\tthis.parent.controllers.push( this );\n\n\t\tthis.parent.$children.appendChild( this.domElement );\n\n\t\tthis._listenCallback = this._listenCallback.bind( this );\n\n\t\tthis.name( property );\n\n\t}\n\n\t/**\n\t * Sets the name of the controller and its label in the GUI.\n\t * @param {string} name\n\t * @returns {this}\n\t */\n\tname( name ) {\n\t\t/**\n\t\t * The controller's name. Use `controller.name( 'Name' )` to modify this value.\n\t\t * @type {string}\n\t\t */\n\t\tthis._name = name;\n\t\tthis.$name.textContent = name;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Pass a function to be called whenever the value is modified by this controller.\n\t * The function receives the new value as its first parameter. The value of `this` will be the\n\t * controller.\n\t *\n\t * For function controllers, the `onChange` callback will be fired on click, after the function\n\t * executes.\n\t * @param {Function} callback\n\t * @returns {this}\n\t * @example\n\t * const controller = gui.add( object, 'property' );\n\t *\n\t * controller.onChange( function( v ) {\n\t * \tconsole.log( 'The value is now ' + v );\n\t * \tconsole.assert( this === controller );\n\t * } );\n\t */\n\tonChange( callback ) {\n\t\t/**\n\t\t * Used to access the function bound to `onChange` events. Don't modify this value directly.\n\t\t * Use the `controller.onChange( callback )` method instead.\n\t\t * @type {Function}\n\t\t */\n\t\tthis._onChange = callback;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Calls the onChange methods of this controller and its parent GUI.\n\t * @protected\n\t */\n\t_callOnChange() {\n\n\t\tthis.parent._callOnChange( this );\n\n\t\tif ( this._onChange !== undefined ) {\n\t\t\tthis._onChange.call( this, this.getValue() );\n\t\t}\n\n\t\tthis._changed = true;\n\n\t}\n\n\t/**\n\t * Pass a function to be called after this controller has been modified and loses focus.\n\t * @param {Function} callback\n\t * @returns {this}\n\t * @example\n\t * const controller = gui.add( object, 'property' );\n\t *\n\t * controller.onFinishChange( function( v ) {\n\t * \tconsole.log( 'Changes complete: ' + v );\n\t * \tconsole.assert( this === controller );\n\t * } );\n\t */\n\tonFinishChange( callback ) {\n\t\t/**\n\t\t * Used to access the function bound to `onFinishChange` events. Don't modify this value\n\t\t * directly. Use the `controller.onFinishChange( callback )` method instead.\n\t\t * @type {Function}\n\t\t */\n\t\tthis._onFinishChange = callback;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Should be called by Controller when its widgets lose focus.\n\t * @protected\n\t */\n\t_callOnFinishChange() {\n\n\t\tif ( this._changed ) {\n\n\t\t\tthis.parent._callOnFinishChange( this );\n\n\t\t\tif ( this._onFinishChange !== undefined ) {\n\t\t\t\tthis._onFinishChange.call( this, this.getValue() );\n\t\t\t}\n\n\t\t}\n\n\t\tthis._changed = false;\n\n\t}\n\n\t/**\n\t * Sets the controller back to its initial value.\n\t * @returns {this}\n\t */\n\treset() {\n\t\tthis.setValue( this.initialValue );\n\t\tthis._callOnFinishChange();\n\t\treturn this;\n\t}\n\n\t/**\n\t * Enables this controller.\n\t * @param {boolean} enabled\n\t * @returns {this}\n\t * @example\n\t * controller.enable();\n\t * controller.enable( false ); // disable\n\t * controller.enable( controller._disabled ); // toggle\n\t */\n\tenable( enabled = true ) {\n\t\treturn this.disable( !enabled );\n\t}\n\n\t/**\n\t * Disables this controller.\n\t * @param {boolean} disabled\n\t * @returns {this}\n\t * @example\n\t * controller.disable();\n\t * controller.disable( false ); // enable\n\t * controller.disable( !controller._disabled ); // toggle\n\t */\n\tdisable( disabled = true ) {\n\n\t\tif ( disabled === this._disabled ) return this;\n\n\t\tthis._disabled = disabled;\n\n\t\tthis.domElement.classList.toggle( 'disabled', disabled );\n\t\tthis.$disable.toggleAttribute( 'disabled', disabled );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Shows the Controller after it's been hidden.\n\t * @param {boolean} show\n\t * @returns {this}\n\t * @example\n\t * controller.show();\n\t * controller.show( false ); // hide\n\t * controller.show( controller._hidden ); // toggle\n\t */\n\tshow( show = true ) {\n\n\t\tthis._hidden = !show;\n\n\t\tthis.domElement.style.display = this._hidden ? 'none' : '';\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Hides the Controller.\n\t * @returns {this}\n\t */\n\thide() {\n\t\treturn this.show( false );\n\t}\n\n\t/**\n\t * Changes this controller into a dropdown of options.\n\t *\n\t * Calling this method on an option controller will simply update the options. However, if this\n\t * controller was not already an option controller, old references to this controller are\n\t * destroyed, and a new controller is added to the end of the GUI.\n\t * @example\n\t * // safe usage\n\t *\n\t * gui.add( obj, 'prop1' ).options( [ 'a', 'b', 'c' ] );\n\t * gui.add( obj, 'prop2' ).options( { Big: 10, Small: 1 } );\n\t * gui.add( obj, 'prop3' );\n\t *\n\t * // danger\n\t *\n\t * const ctrl1 = gui.add( obj, 'prop1' );\n\t * gui.add( obj, 'prop2' );\n\t *\n\t * // calling options out of order adds a new controller to the end...\n\t * const ctrl2 = ctrl1.options( [ 'a', 'b', 'c' ] );\n\t *\n\t * // ...and ctrl1 now references a controller that doesn't exist\n\t * assert( ctrl2 !== ctrl1 )\n\t * @param {object|Array} options\n\t * @returns {Controller}\n\t */\n\toptions( options ) {\n\t\tconst controller = this.parent.add( this.object, this.property, options );\n\t\tcontroller.name( this._name );\n\t\tthis.destroy();\n\t\treturn controller;\n\t}\n\n\t/**\n\t * Sets the minimum value. Only works on number controllers.\n\t * @param {number} min\n\t * @returns {this}\n\t */\n\tmin( min ) {\n\t\treturn this;\n\t}\n\n\t/**\n\t * Sets the maximum value. Only works on number controllers.\n\t * @param {number} max\n\t * @returns {this}\n\t */\n\tmax( max ) {\n\t\treturn this;\n\t}\n\n\t/**\n\t * Values set by this controller will be rounded to multiples of `step`. Only works on number\n\t * controllers.\n\t * @param {number} step\n\t * @returns {this}\n\t */\n\tstep( step ) {\n\t\treturn this;\n\t}\n\n\t/**\n\t * Rounds the displayed value to a fixed number of decimals, without affecting the actual value\n\t * like `step()`. Only works on number controllers.\n\t * @example\n\t * gui.add( object, 'property' ).listen().decimals( 4 );\n\t * @param {number} decimals\n\t * @returns {this}\n\t */\n\tdecimals( decimals ) {\n\t\treturn this;\n\t}\n\n\t/**\n\t * Calls `updateDisplay()` every animation frame. Pass `false` to stop listening.\n\t * @param {boolean} listen\n\t * @returns {this}\n\t */\n\tlisten( listen = true ) {\n\n\t\t/**\n\t\t * Used to determine if the controller is currently listening. Don't modify this value\n\t\t * directly. Use the `controller.listen( true|false )` method instead.\n\t\t * @type {boolean}\n\t\t */\n\t\tthis._listening = listen;\n\n\t\tif ( this._listenCallbackID !== undefined ) {\n\t\t\tcancelAnimationFrame( this._listenCallbackID );\n\t\t\tthis._listenCallbackID = undefined;\n\t\t}\n\n\t\tif ( this._listening ) {\n\t\t\tthis._listenCallback();\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t_listenCallback() {\n\n\t\tthis._listenCallbackID = requestAnimationFrame( this._listenCallback );\n\n\t\t// To prevent framerate loss, make sure the value has changed before updating the display.\n\t\t// Note: save() is used here instead of getValue() only because of ColorController. The !== operator\n\t\t// won't work for color objects or arrays, but ColorController.save() always returns a string.\n\n\t\tconst curValue = this.save();\n\n\t\tif ( curValue !== this._listenPrevValue ) {\n\t\t\tthis.updateDisplay();\n\t\t}\n\n\t\tthis._listenPrevValue = curValue;\n\n\t}\n\n\t/**\n\t * Returns `object[ property ]`.\n\t * @returns {any}\n\t */\n\tgetValue() {\n\t\treturn this.object[ this.property ];\n\t}\n\n\t/**\n\t * Sets the value of `object[ property ]`, invokes any `onChange` handlers and updates the display.\n\t * @param {any} value\n\t * @returns {this}\n\t */\n\tsetValue( value ) {\n\n\t\tif ( this.getValue() !== value ) {\n\n\t\t\tthis.object[ this.property ] = value;\n\t\t\tthis._callOnChange();\n\t\t\tthis.updateDisplay();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Updates the display to keep it in sync with the current value. Useful for updating your\n\t * controllers when their values have been modified outside of the GUI.\n\t * @returns {this}\n\t */\n\tupdateDisplay() {\n\t\treturn this;\n\t}\n\n\tload( value ) {\n\t\tthis.setValue( value );\n\t\tthis._callOnFinishChange();\n\t\treturn this;\n\t}\n\n\tsave() {\n\t\treturn this.getValue();\n\t}\n\n\t/**\n\t * Destroys this controller and removes it from the parent GUI.\n\t */\n\tdestroy() {\n\t\tthis.listen( false );\n\t\tthis.parent.children.splice( this.parent.children.indexOf( this ), 1 );\n\t\tthis.parent.controllers.splice( this.parent.controllers.indexOf( this ), 1 );\n\t\tthis.parent.$children.removeChild( this.domElement );\n\t}\n\n}\n\nclass BooleanController extends Controller {\n\n\tconstructor( parent, object, property ) {\n\n\t\tsuper( parent, object, property, 'boolean', 'label' );\n\n\t\tthis.$input = document.createElement( 'input' );\n\t\tthis.$input.setAttribute( 'type', 'checkbox' );\n\t\tthis.$input.setAttribute( 'aria-labelledby', this.$name.id );\n\n\t\tthis.$widget.appendChild( this.$input );\n\n\t\tthis.$input.addEventListener( 'change', () => {\n\t\t\tthis.setValue( this.$input.checked );\n\t\t\tthis._callOnFinishChange();\n\t\t} );\n\n\t\tthis.$disable = this.$input;\n\n\t\tthis.updateDisplay();\n\n\t}\n\n\tupdateDisplay() {\n\t\tthis.$input.checked = this.getValue();\n\t\treturn this;\n\t}\n\n}\n\nfunction normalizeColorString( string ) {\n\n\tlet match, result;\n\n\tif ( match = string.match( /(#|0x)?([a-f0-9]{6})/i ) ) {\n\n\t\tresult = match[ 2 ];\n\n\t} else if ( match = string.match( /rgb\\(\\s*(\\d*)\\s*,\\s*(\\d*)\\s*,\\s*(\\d*)\\s*\\)/ ) ) {\n\n\t\tresult = parseInt( match[ 1 ] ).toString( 16 ).padStart( 2, 0 )\n\t\t\t+ parseInt( match[ 2 ] ).toString( 16 ).padStart( 2, 0 )\n\t\t\t+ parseInt( match[ 3 ] ).toString( 16 ).padStart( 2, 0 );\n\n\t} else if ( match = string.match( /^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i ) ) {\n\n\t\tresult = match[ 1 ] + match[ 1 ] + match[ 2 ] + match[ 2 ] + match[ 3 ] + match[ 3 ];\n\n\t}\n\n\tif ( result ) {\n\t\treturn '#' + result;\n\t}\n\n\treturn false;\n\n}\n\nconst STRING = {\n\tisPrimitive: true,\n\tmatch: v => typeof v === 'string',\n\tfromHexString: normalizeColorString,\n\ttoHexString: normalizeColorString\n};\n\nconst INT = {\n\tisPrimitive: true,\n\tmatch: v => typeof v === 'number',\n\tfromHexString: string => parseInt( string.substring( 1 ), 16 ),\n\ttoHexString: value => '#' + value.toString( 16 ).padStart( 6, 0 )\n};\n\nconst ARRAY = {\n\tisPrimitive: false,\n\n\t// The arrow function is here to appease tree shakers like esbuild or webpack.\n\t// See https://esbuild.github.io/api/#tree-shaking\n\tmatch: v => Array.isArray( v ),\n\n\tfromHexString( string, target, rgbScale = 1 ) {\n\n\t\tconst int = INT.fromHexString( string );\n\n\t\ttarget[ 0 ] = ( int >> 16 & 255 ) / 255 * rgbScale;\n\t\ttarget[ 1 ] = ( int >> 8 & 255 ) / 255 * rgbScale;\n\t\ttarget[ 2 ] = ( int & 255 ) / 255 * rgbScale;\n\n\t},\n\ttoHexString( [ r, g, b ], rgbScale = 1 ) {\n\n\t\trgbScale = 255 / rgbScale;\n\n\t\tconst int = ( r * rgbScale ) << 16 ^\n\t\t\t( g * rgbScale ) << 8 ^\n\t\t\t( b * rgbScale ) << 0;\n\n\t\treturn INT.toHexString( int );\n\n\t}\n};\n\nconst OBJECT = {\n\tisPrimitive: false,\n\tmatch: v => Object( v ) === v,\n\tfromHexString( string, target, rgbScale = 1 ) {\n\n\t\tconst int = INT.fromHexString( string );\n\n\t\ttarget.r = ( int >> 16 & 255 ) / 255 * rgbScale;\n\t\ttarget.g = ( int >> 8 & 255 ) / 255 * rgbScale;\n\t\ttarget.b = ( int & 255 ) / 255 * rgbScale;\n\n\t},\n\ttoHexString( { r, g, b }, rgbScale = 1 ) {\n\n\t\trgbScale = 255 / rgbScale;\n\n\t\tconst int = ( r * rgbScale ) << 16 ^\n\t\t\t( g * rgbScale ) << 8 ^\n\t\t\t( b * rgbScale ) << 0;\n\n\t\treturn INT.toHexString( int );\n\n\t}\n};\n\nconst FORMATS = [ STRING, INT, ARRAY, OBJECT ];\n\nfunction getColorFormat( value ) {\n\treturn FORMATS.find( format => format.match( value ) );\n}\n\nclass ColorController extends Controller {\n\n\tconstructor( parent, object, property, rgbScale ) {\n\n\t\tsuper( parent, object, property, 'color' );\n\n\t\tthis.$input = document.createElement( 'input' );\n\t\tthis.$input.setAttribute( 'type', 'color' );\n\t\tthis.$input.setAttribute( 'tabindex', -1 );\n\t\tthis.$input.setAttribute( 'aria-labelledby', this.$name.id );\n\n\t\tthis.$text = document.createElement( 'input' );\n\t\tthis.$text.setAttribute( 'type', 'text' );\n\t\tthis.$text.setAttribute( 'spellcheck', 'false' );\n\t\tthis.$text.setAttribute( 'aria-labelledby', this.$name.id );\n\n\t\tthis.$display = document.createElement( 'div' );\n\t\tthis.$display.classList.add( 'display' );\n\n\t\tthis.$display.appendChild( this.$input );\n\t\tthis.$widget.appendChild( this.$display );\n\t\tthis.$widget.appendChild( this.$text );\n\n\t\tthis._format = getColorFormat( this.initialValue );\n\t\tthis._rgbScale = rgbScale;\n\n\t\tthis._initialValueHexString = this.save();\n\t\tthis._textFocused = false;\n\n\t\tthis.$input.addEventListener( 'input', () => {\n\t\t\tthis._setValueFromHexString( this.$input.value );\n\t\t} );\n\n\t\tthis.$input.addEventListener( 'blur', () => {\n\t\t\tthis._callOnFinishChange();\n\t\t} );\n\n\t\tthis.$text.addEventListener( 'input', () => {\n\t\t\tconst tryParse = normalizeColorString( this.$text.value );\n\t\t\tif ( tryParse ) {\n\t\t\t\tthis._setValueFromHexString( tryParse );\n\t\t\t}\n\t\t} );\n\n\t\tthis.$text.addEventListener( 'focus', () => {\n\t\t\tthis._textFocused = true;\n\t\t\tthis.$text.select();\n\t\t} );\n\n\t\tthis.$text.addEventListener( 'blur', () => {\n\t\t\tthis._textFocused = false;\n\t\t\tthis.updateDisplay();\n\t\t\tthis._callOnFinishChange();\n\t\t} );\n\n\t\tthis.$disable = this.$text;\n\n\t\tthis.updateDisplay();\n\n\t}\n\n\treset() {\n\t\tthis._setValueFromHexString( this._initialValueHexString );\n\t\treturn this;\n\t}\n\n\t_setValueFromHexString( value ) {\n\n\t\tif ( this._format.isPrimitive ) {\n\n\t\t\tconst newValue = this._format.fromHexString( value );\n\t\t\tthis.setValue( newValue );\n\n\t\t} else {\n\n\t\t\tthis._format.fromHexString( value, this.getValue(), this._rgbScale );\n\t\t\tthis._callOnChange();\n\t\t\tthis.updateDisplay();\n\n\t\t}\n\n\t}\n\n\tsave() {\n\t\treturn this._format.toHexString( this.getValue(), this._rgbScale );\n\t}\n\n\tload( value ) {\n\t\tthis._setValueFromHexString( value );\n\t\tthis._callOnFinishChange();\n\t\treturn this;\n\t}\n\n\tupdateDisplay() {\n\t\tthis.$input.value = this._format.toHexString( this.getValue(), this._rgbScale );\n\t\tif ( !this._textFocused ) {\n\t\t\tthis.$text.value = this.$input.value.substring( 1 );\n\t\t}\n\t\tthis.$display.style.backgroundColor = this.$input.value;\n\t\treturn this;\n\t}\n\n}\n\nclass FunctionController extends Controller {\n\n\tconstructor( parent, object, property ) {\n\n\t\tsuper( parent, object, property, 'function' );\n\n\t\t// Buttons are the only case where widget contains name\n\t\tthis.$button = document.createElement( 'button' );\n\t\tthis.$button.appendChild( this.$name );\n\t\tthis.$widget.appendChild( this.$button );\n\n\t\tthis.$button.addEventListener( 'click', e => {\n\t\t\te.preventDefault();\n\t\t\tthis.getValue().call( this.object );\n\t\t\tthis._callOnChange();\n\t\t} );\n\n\t\t// enables :active pseudo class on mobile\n\t\tthis.$button.addEventListener( 'touchstart', () => {}, { passive: true } );\n\n\t\tthis.$disable = this.$button;\n\n\t}\n\n}\n\nclass NumberController extends Controller {\n\n\tconstructor( parent, object, property, min, max, step ) {\n\n\t\tsuper( parent, object, property, 'number' );\n\n\t\tthis._initInput();\n\n\t\tthis.min( min );\n\t\tthis.max( max );\n\n\t\tconst stepExplicit = step !== undefined;\n\t\tthis.step( stepExplicit ? step : this._getImplicitStep(), stepExplicit );\n\n\t\tthis.updateDisplay();\n\n\t}\n\n\tdecimals( decimals ) {\n\t\tthis._decimals = decimals;\n\t\tthis.updateDisplay();\n\t\treturn this;\n\t}\n\n\tmin( min ) {\n\t\tthis._min = min;\n\t\tthis._onUpdateMinMax();\n\t\treturn this;\n\t}\n\n\tmax( max ) {\n\t\tthis._max = max;\n\t\tthis._onUpdateMinMax();\n\t\treturn this;\n\t}\n\n\tstep( step, explicit = true ) {\n\t\tthis._step = step;\n\t\tthis._stepExplicit = explicit;\n\t\treturn this;\n\t}\n\n\tupdateDisplay() {\n\n\t\tconst value = this.getValue();\n\n\t\tif ( this._hasSlider ) {\n\n\t\t\tlet percent = ( value - this._min ) / ( this._max - this._min );\n\t\t\tpercent = Math.max( 0, Math.min( percent, 1 ) );\n\n\t\t\tthis.$fill.style.width = percent * 100 + '%';\n\n\t\t}\n\n\t\tif ( !this._inputFocused ) {\n\t\t\tthis.$input.value = this._decimals === undefined ? value : value.toFixed( this._decimals );\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t_initInput() {\n\n\t\tthis.$input = document.createElement( 'input' );\n\t\tthis.$input.setAttribute( 'type', 'text' );\n\t\tthis.$input.setAttribute( 'aria-labelledby', this.$name.id );\n\n\t\t// On touch devices only, use input[type=number] to force a numeric keyboard.\n\t\t// Ideally we could use one input type everywhere, but [type=number] has quirks\n\t\t// on desktop, and [inputmode=decimal] has quirks on iOS.\n\t\t// See https://github.com/georgealways/lil-gui/pull/16\n\n\t\tconst isTouch = window.matchMedia( '(pointer: coarse)' ).matches;\n\n\t\tif ( isTouch ) {\n\t\t\tthis.$input.setAttribute( 'type', 'number' );\n\t\t\tthis.$input.setAttribute( 'step', 'any' );\n\t\t}\n\n\t\tthis.$widget.appendChild( this.$input );\n\n\t\tthis.$disable = this.$input;\n\n\t\tconst onInput = () => {\n\n\t\t\tlet value = parseFloat( this.$input.value );\n\n\t\t\tif ( isNaN( value ) ) return;\n\n\t\t\tif ( this._stepExplicit ) {\n\t\t\t\tvalue = this._snap( value );\n\t\t\t}\n\n\t\t\tthis.setValue( this._clamp( value ) );\n\n\t\t};\n\n\t\t// Keys & mouse wheel\n\t\t// ---------------------------------------------------------------------\n\n\t\tconst increment = delta => {\n\n\t\t\tconst value = parseFloat( this.$input.value );\n\n\t\t\tif ( isNaN( value ) ) return;\n\n\t\t\tthis._snapClampSetValue( value + delta );\n\n\t\t\t// Force the input to updateDisplay when it's focused\n\t\t\tthis.$input.value = this.getValue();\n\n\t\t};\n\n\t\tconst onKeyDown = e => {\n\t\t\t// Using `e.key` instead of `e.code` also catches NumpadEnter\n\t\t\tif ( e.key === 'Enter' ) {\n\t\t\t\tthis.$input.blur();\n\t\t\t}\n\t\t\tif ( e.code === 'ArrowUp' ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tincrement( this._step * this._arrowKeyMultiplier( e ) );\n\t\t\t}\n\t\t\tif ( e.code === 'ArrowDown' ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tincrement( this._step * this._arrowKeyMultiplier( e ) * -1 );\n\t\t\t}\n\t\t};\n\n\t\tconst onWheel = e => {\n\t\t\tif ( this._inputFocused ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tincrement( this._step * this._normalizeMouseWheel( e ) );\n\t\t\t}\n\t\t};\n\n\t\t// Vertical drag\n\t\t// ---------------------------------------------------------------------\n\n\t\tlet testingForVerticalDrag = false,\n\t\t\tinitClientX,\n\t\t\tinitClientY,\n\t\t\tprevClientY,\n\t\t\tinitValue,\n\t\t\tdragDelta;\n\n\t\t// Once the mouse is dragged more than DRAG_THRESH px on any axis, we decide\n\t\t// on the user's intent: horizontal means highlight, vertical means drag.\n\t\tconst DRAG_THRESH = 5;\n\n\t\tconst onMouseDown = e => {\n\n\t\t\tinitClientX = e.clientX;\n\t\t\tinitClientY = prevClientY = e.clientY;\n\t\t\ttestingForVerticalDrag = true;\n\n\t\t\tinitValue = this.getValue();\n\t\t\tdragDelta = 0;\n\n\t\t\twindow.addEventListener( 'mousemove', onMouseMove );\n\t\t\twindow.addEventListener( 'mouseup', onMouseUp );\n\n\t\t};\n\n\t\tconst onMouseMove = e => {\n\n\t\t\tif ( testingForVerticalDrag ) {\n\n\t\t\t\tconst dx = e.clientX - initClientX;\n\t\t\t\tconst dy = e.clientY - initClientY;\n\n\t\t\t\tif ( Math.abs( dy ) > DRAG_THRESH ) {\n\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.$input.blur();\n\t\t\t\t\ttestingForVerticalDrag = false;\n\t\t\t\t\tthis._setDraggingStyle( true, 'vertical' );\n\n\t\t\t\t} else if ( Math.abs( dx ) > DRAG_THRESH ) {\n\n\t\t\t\t\tonMouseUp();\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// This isn't an else so that the first move counts towards dragDelta\n\t\t\tif ( !testingForVerticalDrag ) {\n\n\t\t\t\tconst dy = e.clientY - prevClientY;\n\n\t\t\t\tdragDelta -= dy * this._step * this._arrowKeyMultiplier( e );\n\n\t\t\t\t// Clamp dragDelta so we don't have 'dead space' after dragging past bounds.\n\t\t\t\t// We're okay with the fact that bounds can be undefined here.\n\t\t\t\tif ( initValue + dragDelta > this._max ) {\n\t\t\t\t\tdragDelta = this._max - initValue;\n\t\t\t\t} else if ( initValue + dragDelta < this._min ) {\n\t\t\t\t\tdragDelta = this._min - initValue;\n\t\t\t\t}\n\n\t\t\t\tthis._snapClampSetValue( initValue + dragDelta );\n\n\t\t\t}\n\n\t\t\tprevClientY = e.clientY;\n\n\t\t};\n\n\t\tconst onMouseUp = () => {\n\t\t\tthis._setDraggingStyle( false, 'vertical' );\n\t\t\tthis._callOnFinishChange();\n\t\t\twindow.removeEventListener( 'mousemove', onMouseMove );\n\t\t\twindow.removeEventListener( 'mouseup', onMouseUp );\n\t\t};\n\n\t\t// Focus state & onFinishChange\n\t\t// ---------------------------------------------------------------------\n\n\t\tconst onFocus = () => {\n\t\t\tthis._inputFocused = true;\n\t\t};\n\n\t\tconst onBlur = () => {\n\t\t\tthis._inputFocused = false;\n\t\t\tthis.updateDisplay();\n\t\t\tthis._callOnFinishChange();\n\t\t};\n\n\t\tthis.$input.addEventListener( 'input', onInput );\n\t\tthis.$input.addEventListener( 'keydown', onKeyDown );\n\t\tthis.$input.addEventListener( 'wheel', onWheel, { passive: false } );\n\t\tthis.$input.addEventListener( 'mousedown', onMouseDown );\n\t\tthis.$input.addEventListener( 'focus', onFocus );\n\t\tthis.$input.addEventListener( 'blur', onBlur );\n\n\t}\n\n\t_initSlider() {\n\n\t\tthis._hasSlider = true;\n\n\t\t// Build DOM\n\t\t// ---------------------------------------------------------------------\n\n\t\tthis.$slider = document.createElement( 'div' );\n\t\tthis.$slider.classList.add( 'slider' );\n\n\t\tthis.$fill = document.createElement( 'div' );\n\t\tthis.$fill.classList.add( 'fill' );\n\n\t\tthis.$slider.appendChild( this.$fill );\n\t\tthis.$widget.insertBefore( this.$slider, this.$input );\n\n\t\tthis.domElement.classList.add( 'hasSlider' );\n\n\t\t// Map clientX to value\n\t\t// ---------------------------------------------------------------------\n\n\t\tconst map = ( v, a, b, c, d ) => {\n\t\t\treturn ( v - a ) / ( b - a ) * ( d - c ) + c;\n\t\t};\n\n\t\tconst setValueFromX = clientX => {\n\t\t\tconst rect = this.$slider.getBoundingClientRect();\n\t\t\tlet value = map( clientX, rect.left, rect.right, this._min, this._max );\n\t\t\tthis._snapClampSetValue( value );\n\t\t};\n\n\t\t// Mouse drag\n\t\t// ---------------------------------------------------------------------\n\n\t\tconst mouseDown = e => {\n\t\t\tthis._setDraggingStyle( true );\n\t\t\tsetValueFromX( e.clientX );\n\t\t\twindow.addEventListener( 'mousemove', mouseMove );\n\t\t\twindow.addEventListener( 'mouseup', mouseUp );\n\t\t};\n\n\t\tconst mouseMove = e => {\n\t\t\tsetValueFromX( e.clientX );\n\t\t};\n\n\t\tconst mouseUp = () => {\n\t\t\tthis._callOnFinishChange();\n\t\t\tthis._setDraggingStyle( false );\n\t\t\twindow.removeEventListener( 'mousemove', mouseMove );\n\t\t\twindow.removeEventListener( 'mouseup', mouseUp );\n\t\t};\n\n\t\t// Touch drag\n\t\t// ---------------------------------------------------------------------\n\n\t\tlet testingForScroll = false, prevClientX, prevClientY;\n\n\t\tconst beginTouchDrag = e => {\n\t\t\te.preventDefault();\n\t\t\tthis._setDraggingStyle( true );\n\t\t\tsetValueFromX( e.touches[ 0 ].clientX );\n\t\t\ttestingForScroll = false;\n\t\t};\n\n\t\tconst onTouchStart = e => {\n\n\t\t\tif ( e.touches.length > 1 ) return;\n\n\t\t\t// If we're in a scrollable container, we should wait for the first\n\t\t\t// touchmove to see if the user is trying to slide or scroll.\n\t\t\tif ( this._hasScrollBar ) {\n\n\t\t\t\tprevClientX = e.touches[ 0 ].clientX;\n\t\t\t\tprevClientY = e.touches[ 0 ].clientY;\n\t\t\t\ttestingForScroll = true;\n\n\t\t\t} else {\n\n\t\t\t\t// Otherwise, we can set the value straight away on touchstart.\n\t\t\t\tbeginTouchDrag( e );\n\n\t\t\t}\n\n\t\t\twindow.addEventListener( 'touchmove', onTouchMove, { passive: false } );\n\t\t\twindow.addEventListener( 'touchend', onTouchEnd );\n\n\t\t};\n\n\t\tconst onTouchMove = e => {\n\n\t\t\tif ( testingForScroll ) {\n\n\t\t\t\tconst dx = e.touches[ 0 ].clientX - prevClientX;\n\t\t\t\tconst dy = e.touches[ 0 ].clientY - prevClientY;\n\n\t\t\t\tif ( Math.abs( dx ) > Math.abs( dy ) ) {\n\n\t\t\t\t\t// We moved horizontally, set the value and stop checking.\n\t\t\t\t\tbeginTouchDrag( e );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// This was, in fact, an attempt to scroll. Abort.\n\t\t\t\t\twindow.removeEventListener( 'touchmove', onTouchMove );\n\t\t\t\t\twindow.removeEventListener( 'touchend', onTouchEnd );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\te.preventDefault();\n\t\t\t\tsetValueFromX( e.touches[ 0 ].clientX );\n\n\t\t\t}\n\n\t\t};\n\n\t\tconst onTouchEnd = () => {\n\t\t\tthis._callOnFinishChange();\n\t\t\tthis._setDraggingStyle( false );\n\t\t\twindow.removeEventListener( 'touchmove', onTouchMove );\n\t\t\twindow.removeEventListener( 'touchend', onTouchEnd );\n\t\t};\n\n\t\t// Mouse wheel\n\t\t// ---------------------------------------------------------------------\n\n\t\t// We have to use a debounced function to call onFinishChange because\n\t\t// there's no way to tell when the user is \"done\" mouse-wheeling.\n\t\tconst callOnFinishChange = this._callOnFinishChange.bind( this );\n\t\tconst WHEEL_DEBOUNCE_TIME = 400;\n\t\tlet wheelFinishChangeTimeout;\n\n\t\tconst onWheel = e => {\n\n\t\t\t// ignore vertical wheels if there's a scrollbar\n\t\t\tconst isVertical = Math.abs( e.deltaX ) < Math.abs( e.deltaY );\n\t\t\tif ( isVertical && this._hasScrollBar ) return;\n\n\t\t\te.preventDefault();\n\n\t\t\t// set value\n\t\t\tconst delta = this._normalizeMouseWheel( e ) * this._step;\n\t\t\tthis._snapClampSetValue( this.getValue() + delta );\n\n\t\t\t// force the input to updateDisplay when it's focused\n\t\t\tthis.$input.value = this.getValue();\n\n\t\t\t// debounce onFinishChange\n\t\t\tclearTimeout( wheelFinishChangeTimeout );\n\t\t\twheelFinishChangeTimeout = setTimeout( callOnFinishChange, WHEEL_DEBOUNCE_TIME );\n\n\t\t};\n\n\t\tthis.$slider.addEventListener( 'mousedown', mouseDown );\n\t\tthis.$slider.addEventListener( 'touchstart', onTouchStart, { passive: false } );\n\t\tthis.$slider.addEventListener( 'wheel', onWheel, { passive: false } );\n\n\t}\n\n\t_setDraggingStyle( active, axis = 'horizontal' ) {\n\t\tif ( this.$slider ) {\n\t\t\tthis.$slider.classList.toggle( 'active', active );\n\t\t}\n\t\tdocument.body.classList.toggle( 'lil-gui-dragging', active );\n\t\tdocument.body.classList.toggle( `lil-gui-${axis}`, active );\n\t}\n\n\t_getImplicitStep() {\n\n\t\tif ( this._hasMin && this._hasMax ) {\n\t\t\treturn ( this._max - this._min ) / 1000;\n\t\t}\n\n\t\treturn 0.1;\n\n\t}\n\n\t_onUpdateMinMax() {\n\n\t\tif ( !this._hasSlider && this._hasMin && this._hasMax ) {\n\n\t\t\t// If this is the first time we're hearing about min and max\n\t\t\t// and we haven't explicitly stated what our step is, let's\n\t\t\t// update that too.\n\t\t\tif ( !this._stepExplicit ) {\n\t\t\t\tthis.step( this._getImplicitStep(), false );\n\t\t\t}\n\n\t\t\tthis._initSlider();\n\t\t\tthis.updateDisplay();\n\n\t\t}\n\n\t}\n\n\t_normalizeMouseWheel( e ) {\n\n\t\tlet { deltaX, deltaY } = e;\n\n\t\t// Safari and Chrome report weird non-integral values for a notched wheel,\n\t\t// but still expose actual lines scrolled via wheelDelta. Notched wheels\n\t\t// should behave the same way as arrow keys.\n\t\tif ( Math.floor( e.deltaY ) !== e.deltaY && e.wheelDelta ) {\n\t\t\tdeltaX = 0;\n\t\t\tdeltaY = -e.wheelDelta / 120;\n\t\t\tdeltaY *= this._stepExplicit ? 1 : 10;\n\t\t}\n\n\t\tconst wheel = deltaX + -deltaY;\n\n\t\treturn wheel;\n\n\t}\n\n\t_arrowKeyMultiplier( e ) {\n\n\t\tlet mult = this._stepExplicit ? 1 : 10;\n\n\t\tif ( e.shiftKey ) {\n\t\t\tmult *= 10;\n\t\t} else if ( e.altKey ) {\n\t\t\tmult /= 10;\n\t\t}\n\n\t\treturn mult;\n\n\t}\n\n\t_snap( value ) {\n\n\t\t// This would be the logical way to do things, but floating point errors.\n\t\t// return Math.round( value / this._step ) * this._step;\n\n\t\t// Using inverse step solves a lot of them, but not all\n\t\t// const inverseStep = 1 / this._step;\n\t\t// return Math.round( value * inverseStep ) / inverseStep;\n\n\t\t// Not happy about this, but haven't seen it break.\n\t\tconst r = Math.round( value / this._step ) * this._step;\n\t\treturn parseFloat( r.toPrecision( 15 ) );\n\n\t}\n\n\t_clamp( value ) {\n\t\t// either condition is false if min or max is undefined\n\t\tif ( value < this._min ) value = this._min;\n\t\tif ( value > this._max ) value = this._max;\n\t\treturn value;\n\t}\n\n\t_snapClampSetValue( value ) {\n\t\tthis.setValue( this._clamp( this._snap( value ) ) );\n\t}\n\n\tget _hasScrollBar() {\n\t\tconst root = this.parent.root.$children;\n\t\treturn root.scrollHeight > root.clientHeight;\n\t}\n\n\tget _hasMin() {\n\t\treturn this._min !== undefined;\n\t}\n\n\tget _hasMax() {\n\t\treturn this._max !== undefined;\n\t}\n\n}\n\nclass OptionController extends Controller {\n\n\tconstructor( parent, object, property, options ) {\n\n\t\tsuper( parent, object, property, 'option' );\n\n\t\tthis.$select = document.createElement( 'select' );\n\t\tthis.$select.setAttribute( 'aria-labelledby', this.$name.id );\n\n\t\tthis.$display = document.createElement( 'div' );\n\t\tthis.$display.classList.add( 'display' );\n\n\t\tthis.$select.addEventListener( 'change', () => {\n\t\t\tthis.setValue( this._values[ this.$select.selectedIndex ] );\n\t\t\tthis._callOnFinishChange();\n\t\t} );\n\n\t\tthis.$select.addEventListener( 'focus', () => {\n\t\t\tthis.$display.classList.add( 'focus' );\n\t\t} );\n\n\t\tthis.$select.addEventListener( 'blur', () => {\n\t\t\tthis.$display.classList.remove( 'focus' );\n\t\t} );\n\n\t\tthis.$widget.appendChild( this.$select );\n\t\tthis.$widget.appendChild( this.$display );\n\n\t\tthis.$disable = this.$select;\n\n\t\tthis.options( options );\n\n\t}\n\n\toptions( options ) {\n\n\t\tthis._values = Array.isArray( options ) ? options : Object.values( options );\n\t\tthis._names = Array.isArray( options ) ? options : Object.keys( options );\n\n\t\tthis.$select.replaceChildren();\n\n\t\tthis._names.forEach( name => {\n\t\t\tconst $option = document.createElement( 'option' );\n\t\t\t$option.textContent = name;\n\t\t\tthis.$select.appendChild( $option );\n\t\t} );\n\n\t\tthis.updateDisplay();\n\n\t\treturn this;\n\n\t}\n\n\tupdateDisplay() {\n\t\tconst value = this.getValue();\n\t\tconst index = this._values.indexOf( value );\n\t\tthis.$select.selectedIndex = index;\n\t\tthis.$display.textContent = index === -1 ? value : this._names[ index ];\n\t\treturn this;\n\t}\n\n}\n\nclass StringController extends Controller {\n\n\tconstructor( parent, object, property ) {\n\n\t\tsuper( parent, object, property, 'string' );\n\n\t\tthis.$input = document.createElement( 'input' );\n\t\tthis.$input.setAttribute( 'type', 'text' );\n\t\tthis.$input.setAttribute( 'spellcheck', 'false' );\n\t\tthis.$input.setAttribute( 'aria-labelledby', this.$name.id );\n\n\t\tthis.$input.addEventListener( 'input', () => {\n\t\t\tthis.setValue( this.$input.value );\n\t\t} );\n\n\t\tthis.$input.addEventListener( 'keydown', e => {\n\t\t\tif ( e.code === 'Enter' ) {\n\t\t\t\tthis.$input.blur();\n\t\t\t}\n\t\t} );\n\n\t\tthis.$input.addEventListener( 'blur', () => {\n\t\t\tthis._callOnFinishChange();\n\t\t} );\n\n\t\tthis.$widget.appendChild( this.$input );\n\n\t\tthis.$disable = this.$input;\n\n\t\tthis.updateDisplay();\n\n\t}\n\n\tupdateDisplay() {\n\t\tthis.$input.value = this.getValue();\n\t\treturn this;\n\t}\n\n}\n\nconst stylesheet = `.lil-gui {\n font-family: var(--font-family);\n font-size: var(--font-size);\n line-height: 1;\n font-weight: normal;\n font-style: normal;\n text-align: left;\n color: var(--text-color);\n user-select: none;\n -webkit-user-select: none;\n touch-action: manipulation;\n --background-color: #1f1f1f;\n --text-color: #ebebeb;\n --title-background-color: #111111;\n --title-text-color: #ebebeb;\n --widget-color: #424242;\n --hover-color: #4f4f4f;\n --focus-color: #595959;\n --number-color: #2cc9ff;\n --string-color: #a2db3c;\n --font-size: 11px;\n --input-font-size: 11px;\n --font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Arial, sans-serif;\n --font-family-mono: Menlo, Monaco, Consolas, \"Droid Sans Mono\", monospace;\n --padding: 4px;\n --spacing: 4px;\n --widget-height: 20px;\n --title-height: calc(var(--widget-height) + var(--spacing) * 1.25);\n --name-width: 45%;\n --slider-knob-width: 2px;\n --slider-input-width: 27%;\n --color-input-width: 27%;\n --slider-input-min-width: 45px;\n --color-input-min-width: 45px;\n --folder-indent: 7px;\n --widget-padding: 0 0 0 3px;\n --widget-border-radius: 2px;\n --checkbox-size: calc(0.75 * var(--widget-height));\n --scrollbar-width: 5px;\n}\n.lil-gui, .lil-gui * {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n}\n.lil-gui.root {\n width: var(--width, 245px);\n display: flex;\n flex-direction: column;\n background: var(--background-color);\n}\n.lil-gui.root > .title {\n background: var(--title-background-color);\n color: var(--title-text-color);\n}\n.lil-gui.root > .children {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.lil-gui.root > .children::-webkit-scrollbar {\n width: var(--scrollbar-width);\n height: var(--scrollbar-width);\n background: var(--background-color);\n}\n.lil-gui.root > .children::-webkit-scrollbar-thumb {\n border-radius: var(--scrollbar-width);\n background: var(--focus-color);\n}\n@media (pointer: coarse) {\n .lil-gui.allow-touch-styles, .lil-gui.allow-touch-styles .lil-gui {\n --widget-height: 28px;\n --padding: 6px;\n --spacing: 6px;\n --font-size: 13px;\n --input-font-size: 16px;\n --folder-indent: 10px;\n --scrollbar-width: 7px;\n --slider-input-min-width: 50px;\n --color-input-min-width: 65px;\n }\n}\n.lil-gui.force-touch-styles, .lil-gui.force-touch-styles .lil-gui {\n --widget-height: 28px;\n --padding: 6px;\n --spacing: 6px;\n --font-size: 13px;\n --input-font-size: 16px;\n --folder-indent: 10px;\n --scrollbar-width: 7px;\n --slider-input-min-width: 50px;\n --color-input-min-width: 65px;\n}\n.lil-gui.autoPlace {\n max-height: 100%;\n position: fixed;\n top: 0;\n right: 15px;\n z-index: 1001;\n}\n\n.lil-gui .controller {\n display: flex;\n align-items: center;\n padding: 0 var(--padding);\n margin: var(--spacing) 0;\n}\n.lil-gui .controller.disabled {\n opacity: 0.5;\n}\n.lil-gui .controller.disabled, .lil-gui .controller.disabled * {\n pointer-events: none !important;\n}\n.lil-gui .controller > .name {\n min-width: var(--name-width);\n flex-shrink: 0;\n white-space: pre;\n padding-right: var(--spacing);\n line-height: var(--widget-height);\n}\n.lil-gui .controller .widget {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n min-height: var(--widget-height);\n}\n.lil-gui .controller.string input {\n color: var(--string-color);\n}\n.lil-gui .controller.boolean {\n cursor: pointer;\n}\n.lil-gui .controller.color .display {\n width: 100%;\n height: var(--widget-height);\n border-radius: var(--widget-border-radius);\n position: relative;\n}\n@media (hover: hover) {\n .lil-gui .controller.color .display:hover:before {\n content: \" \";\n display: block;\n position: absolute;\n border-radius: var(--widget-border-radius);\n border: 1px solid #fff9;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n.lil-gui .controller.color input[type=color] {\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n.lil-gui .controller.color input[type=text] {\n margin-left: var(--spacing);\n font-family: var(--font-family-mono);\n min-width: var(--color-input-min-width);\n width: var(--color-input-width);\n flex-shrink: 0;\n}\n.lil-gui .controller.option select {\n opacity: 0;\n position: absolute;\n width: 100%;\n max-width: 100%;\n}\n.lil-gui .controller.option .display {\n position: relative;\n pointer-events: none;\n border-radius: var(--widget-border-radius);\n height: var(--widget-height);\n line-height: var(--widget-height);\n max-width: 100%;\n overflow: hidden;\n word-break: break-all;\n padding-left: 0.55em;\n padding-right: 1.75em;\n background: var(--widget-color);\n}\n@media (hover: hover) {\n .lil-gui .controller.option .display.focus {\n background: var(--focus-color);\n }\n}\n.lil-gui .controller.option .display.active {\n background: var(--focus-color);\n}\n.lil-gui .controller.option .display:after {\n font-family: \"lil-gui\";\n content: \"↕\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n padding-right: 0.375em;\n}\n.lil-gui .controller.option .widget,\n.lil-gui .controller.option select {\n cursor: pointer;\n}\n@media (hover: hover) {\n .lil-gui .controller.option .widget:hover .display {\n background: var(--hover-color);\n }\n}\n.lil-gui .controller.number input {\n color: var(--number-color);\n}\n.lil-gui .controller.number.hasSlider input {\n margin-left: var(--spacing);\n width: var(--slider-input-width);\n min-width: var(--slider-input-min-width);\n flex-shrink: 0;\n}\n.lil-gui .controller.number .slider {\n width: 100%;\n height: var(--widget-height);\n background: var(--widget-color);\n border-radius: var(--widget-border-radius);\n padding-right: var(--slider-knob-width);\n overflow: hidden;\n cursor: ew-resize;\n touch-action: pan-y;\n}\n@media (hover: hover) {\n .lil-gui .controller.number .slider:hover {\n background: var(--hover-color);\n }\n}\n.lil-gui .controller.number .slider.active {\n background: var(--focus-color);\n}\n.lil-gui .controller.number .slider.active .fill {\n opacity: 0.95;\n}\n.lil-gui .controller.number .fill {\n height: 100%;\n border-right: var(--slider-knob-width) solid var(--number-color);\n box-sizing: content-box;\n}\n\n.lil-gui-dragging .lil-gui {\n --hover-color: var(--widget-color);\n}\n.lil-gui-dragging * {\n cursor: ew-resize !important;\n}\n\n.lil-gui-dragging.lil-gui-vertical * {\n cursor: ns-resize !important;\n}\n\n.lil-gui .title {\n height: var(--title-height);\n line-height: calc(var(--title-height) - 4px);\n font-weight: 600;\n padding: 0 var(--padding);\n -webkit-tap-highlight-color: transparent;\n cursor: pointer;\n outline: none;\n text-decoration-skip: objects;\n}\n.lil-gui .title:before {\n font-family: \"lil-gui\";\n content: \"▾\";\n padding-right: 2px;\n display: inline-block;\n}\n.lil-gui .title:active {\n background: var(--title-background-color);\n opacity: 0.75;\n}\n@media (hover: hover) {\n body:not(.lil-gui-dragging) .lil-gui .title:hover {\n background: var(--title-background-color);\n opacity: 0.85;\n }\n .lil-gui .title:focus {\n text-decoration: underline var(--focus-color);\n }\n}\n.lil-gui.root > .title:focus {\n text-decoration: none !important;\n}\n.lil-gui.closed > .title:before {\n content: \"▸\";\n}\n.lil-gui.closed > .children {\n transform: translateY(-7px);\n opacity: 0;\n}\n.lil-gui.closed:not(.transition) > .children {\n display: none;\n}\n.lil-gui.transition > .children {\n transition-duration: 300ms;\n transition-property: height, opacity, transform;\n transition-timing-function: cubic-bezier(0.2, 0.6, 0.35, 1);\n overflow: hidden;\n pointer-events: none;\n}\n.lil-gui .children:empty:before {\n content: \"Empty\";\n padding: 0 var(--padding);\n margin: var(--spacing) 0;\n display: block;\n height: var(--widget-height);\n font-style: italic;\n line-height: var(--widget-height);\n opacity: 0.5;\n}\n.lil-gui.root > .children > .lil-gui > .title {\n border: 0 solid var(--widget-color);\n border-width: 1px 0;\n transition: border-color 300ms;\n}\n.lil-gui.root > .children > .lil-gui.closed > .title {\n border-bottom-color: transparent;\n}\n.lil-gui + .controller {\n border-top: 1px solid var(--widget-color);\n margin-top: 0;\n padding-top: var(--spacing);\n}\n.lil-gui .lil-gui .lil-gui > .title {\n border: none;\n}\n.lil-gui .lil-gui .lil-gui > .children {\n border: none;\n margin-left: var(--folder-indent);\n border-left: 2px solid var(--widget-color);\n}\n.lil-gui .lil-gui .controller {\n border: none;\n}\n\n.lil-gui label, .lil-gui input, .lil-gui button {\n -webkit-tap-highlight-color: transparent;\n}\n.lil-gui input {\n border: 0;\n outline: none;\n font-family: var(--font-family);\n font-size: var(--input-font-size);\n border-radius: var(--widget-border-radius);\n height: var(--widget-height);\n background: var(--widget-color);\n color: var(--text-color);\n width: 100%;\n}\n@media (hover: hover) {\n .lil-gui input:hover {\n background: var(--hover-color);\n }\n .lil-gui input:active {\n background: var(--focus-color);\n }\n}\n.lil-gui input:disabled {\n opacity: 1;\n}\n.lil-gui input[type=text],\n.lil-gui input[type=number] {\n padding: var(--widget-padding);\n -moz-appearance: textfield;\n}\n.lil-gui input[type=text]:focus,\n.lil-gui input[type=number]:focus {\n background: var(--focus-color);\n}\n.lil-gui input[type=checkbox] {\n appearance: none;\n width: var(--checkbox-size);\n height: var(--checkbox-size);\n border-radius: var(--widget-border-radius);\n text-align: center;\n cursor: pointer;\n}\n.lil-gui input[type=checkbox]:checked:before {\n font-family: \"lil-gui\";\n content: \"✓\";\n font-size: var(--checkbox-size);\n line-height: var(--checkbox-size);\n}\n@media (hover: hover) {\n .lil-gui input[type=checkbox]:focus {\n box-shadow: inset 0 0 0 1px var(--focus-color);\n }\n}\n.lil-gui button {\n outline: none;\n cursor: pointer;\n font-family: var(--font-family);\n font-size: var(--font-size);\n color: var(--text-color);\n width: 100%;\n height: var(--widget-height);\n text-transform: none;\n background: var(--widget-color);\n border-radius: var(--widget-border-radius);\n border: none;\n}\n@media (hover: hover) {\n .lil-gui button:hover {\n background: var(--hover-color);\n }\n .lil-gui button:focus {\n box-shadow: inset 0 0 0 1px var(--focus-color);\n }\n}\n.lil-gui button:active {\n background: var(--focus-color);\n}\n\n@font-face {\n font-family: \"lil-gui\";\n src: url(\"data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAUsAAsAAAAACJwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAH4AAADAImwmYE9TLzIAAAGIAAAAPwAAAGBKqH5SY21hcAAAAcgAAAD0AAACrukyyJBnbHlmAAACvAAAAF8AAACEIZpWH2hlYWQAAAMcAAAAJwAAADZfcj2zaGhlYQAAA0QAAAAYAAAAJAC5AHhobXR4AAADXAAAABAAAABMAZAAAGxvY2EAAANsAAAAFAAAACgCEgIybWF4cAAAA4AAAAAeAAAAIAEfABJuYW1lAAADoAAAASIAAAIK9SUU/XBvc3QAAATEAAAAZgAAAJCTcMc2eJxVjbEOgjAURU+hFRBK1dGRL+ALnAiToyMLEzFpnPz/eAshwSa97517c/MwwJmeB9kwPl+0cf5+uGPZXsqPu4nvZabcSZldZ6kfyWnomFY/eScKqZNWupKJO6kXN3K9uCVoL7iInPr1X5baXs3tjuMqCtzEuagm/AAlzQgPAAB4nGNgYRBlnMDAysDAYM/gBiT5oLQBAwuDJAMDEwMrMwNWEJDmmsJwgCFeXZghBcjlZMgFCzOiKOIFAB71Bb8AeJy1kjFuwkAQRZ+DwRAwBtNQRUGKQ8OdKCAWUhAgKLhIuAsVSpWz5Bbkj3dEgYiUIszqWdpZe+Z7/wB1oCYmIoboiwiLT2WjKl/jscrHfGg/pKdMkyklC5Zs2LEfHYpjcRoPzme9MWWmk3dWbK9ObkWkikOetJ554fWyoEsmdSlt+uR0pCJR34b6t/TVg1SY3sYvdf8vuiKrpyaDXDISiegp17p7579Gp3p++y7HPAiY9pmTibljrr85qSidtlg4+l25GLCaS8e6rRxNBmsnERunKbaOObRz7N72ju5vdAjYpBXHgJylOAVsMseDAPEP8LYoUHicY2BiAAEfhiAGJgZWBgZ7RnFRdnVJELCQlBSRlATJMoLV2DK4glSYs6ubq5vbKrJLSbGrgEmovDuDJVhe3VzcXFwNLCOILB/C4IuQ1xTn5FPilBTj5FPmBAB4WwoqAHicY2BkYGAA4sk1sR/j+W2+MnAzpDBgAyEMQUCSg4EJxAEAwUgFHgB4nGNgZGBgSGFggJMhDIwMqEAYAByHATJ4nGNgAIIUNEwmAABl3AGReJxjYAACIQYlBiMGJ3wQAEcQBEV4nGNgZGBgEGZgY2BiAAEQyQWEDAz/wXwGAAsPATIAAHicXdBNSsNAHAXwl35iA0UQXYnMShfS9GPZA7T7LgIu03SSpkwzYTIt1BN4Ak/gKTyAeCxfw39jZkjymzcvAwmAW/wgwHUEGDb36+jQQ3GXGot79L24jxCP4gHzF/EIr4jEIe7wxhOC3g2TMYy4Q7+Lu/SHuEd/ivt4wJd4wPxbPEKMX3GI5+DJFGaSn4qNzk8mcbKSR6xdXdhSzaOZJGtdapd4vVPbi6rP+cL7TGXOHtXKll4bY1Xl7EGnPtp7Xy2n00zyKLVHfkHBa4IcJ2oD3cgggWvt/V/FbDrUlEUJhTn/0azVWbNTNr0Ens8de1tceK9xZmfB1CPjOmPH4kitmvOubcNpmVTN3oFJyjzCvnmrwhJTzqzVj9jiSX911FjeAAB4nG3HMRKCMBBA0f0giiKi4DU8k0V2GWbIZDOh4PoWWvq6J5V8If9NVNQcaDhyouXMhY4rPTcG7jwYmXhKq8Wz+p762aNaeYXom2n3m2dLTVgsrCgFJ7OTmIkYbwIbC6vIB7WmFfAAAA==\") format(\"woff\");\n}`;\n\nfunction _injectStyles( cssContent ) {\n\tconst injected = document.createElement( 'style' );\n\tinjected.innerHTML = cssContent;\n\tconst before = document.querySelector( 'head link[rel=stylesheet], head style' );\n\tif ( before ) {\n\t\tdocument.head.insertBefore( injected, before );\n\t} else {\n\t\tdocument.head.appendChild( injected );\n\t}\n}\n\nlet stylesInjected = false;\n\nclass GUI {\n\n\t/**\n\t * Creates a panel that holds controllers.\n\t * @example\n\t * new GUI();\n\t * new GUI( { container: document.getElementById( 'custom' ) } );\n\t *\n\t * @param {object} [options]\n\t * @param {boolean} [options.autoPlace=true]\n\t * Adds the GUI to `document.body` and fixes it to the top right of the page.\n\t *\n\t * @param {HTMLElement} [options.container]\n\t * Adds the GUI to this DOM element. Overrides `autoPlace`.\n\t *\n\t * @param {number} [options.width=245]\n\t * Width of the GUI in pixels, usually set when name labels become too long. Note that you can make\n\t * name labels wider in CSS with `.lil‑gui { ‑‑name‑width: 55% }`.\n\t *\n\t * @param {string} [options.title=Controls]\n\t * Name to display in the title bar.\n\t *\n\t * @param {boolean} [options.closeFolders=false]\n\t * Pass `true` to close all folders in this GUI by default.\n\t *\n\t * @param {boolean} [options.injectStyles=true]\n\t * Injects the default stylesheet into the page if this is the first GUI.\n\t * Pass `false` to use your own stylesheet.\n\t *\n\t * @param {number} [options.touchStyles=true]\n\t * Makes controllers larger on touch devices. Pass `false` to disable touch styles.\n\t *\n\t * @param {GUI} [options.parent]\n\t * Adds this GUI as a child in another GUI. Usually this is done for you by `addFolder()`.\n\t *\n\t */\n\tconstructor( {\n\t\tparent,\n\t\tautoPlace = parent === undefined,\n\t\tcontainer,\n\t\twidth,\n\t\ttitle = 'Controls',\n\t\tcloseFolders = false,\n\t\tinjectStyles = true,\n\t\ttouchStyles = true\n\t} = {} ) {\n\n\t\t/**\n\t\t * The GUI containing this folder, or `undefined` if this is the root GUI.\n\t\t * @type {GUI}\n\t\t */\n\t\tthis.parent = parent;\n\n\t\t/**\n\t\t * The top level GUI containing this folder, or `this` if this is the root GUI.\n\t\t * @type {GUI}\n\t\t */\n\t\tthis.root = parent ? parent.root : this;\n\n\t\t/**\n\t\t * The list of controllers and folders contained by this GUI.\n\t\t * @type {Array}\n\t\t */\n\t\tthis.children = [];\n\n\t\t/**\n\t\t * The list of controllers contained by this GUI.\n\t\t * @type {Array}\n\t\t */\n\t\tthis.controllers = [];\n\n\t\t/**\n\t\t * The list of folders contained by this GUI.\n\t\t * @type {Array}\n\t\t */\n\t\tthis.folders = [];\n\n\t\t/**\n\t\t * Used to determine if the GUI is closed. Use `gui.open()` or `gui.close()` to change this.\n\t\t * @type {boolean}\n\t\t */\n\t\tthis._closed = false;\n\n\t\t/**\n\t\t * Used to determine if the GUI is hidden. Use `gui.show()` or `gui.hide()` to change this.\n\t\t * @type {boolean}\n\t\t */\n\t\tthis._hidden = false;\n\n\t\t/**\n\t\t * The outermost container element.\n\t\t * @type {HTMLElement}\n\t\t */\n\t\tthis.domElement = document.createElement( 'div' );\n\t\tthis.domElement.classList.add( 'lil-gui' );\n\n\t\t/**\n\t\t * The DOM element that contains the title.\n\t\t * @type {HTMLElement}\n\t\t */\n\t\tthis.$title = document.createElement( 'div' );\n\t\tthis.$title.classList.add( 'title' );\n\t\tthis.$title.setAttribute( 'role', 'button' );\n\t\tthis.$title.setAttribute( 'aria-expanded', true );\n\t\tthis.$title.setAttribute( 'tabindex', 0 );\n\n\t\tthis.$title.addEventListener( 'click', () => this.openAnimated( this._closed ) );\n\t\tthis.$title.addEventListener( 'keydown', e => {\n\t\t\tif ( e.code === 'Enter' || e.code === 'Space' ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tthis.$title.click();\n\t\t\t}\n\t\t} );\n\n\t\t// enables :active pseudo class on mobile\n\t\tthis.$title.addEventListener( 'touchstart', () => {}, { passive: true } );\n\n\t\t/**\n\t\t * The DOM element that contains children.\n\t\t * @type {HTMLElement}\n\t\t */\n\t\tthis.$children = document.createElement( 'div' );\n\t\tthis.$children.classList.add( 'children' );\n\n\t\tthis.domElement.appendChild( this.$title );\n\t\tthis.domElement.appendChild( this.$children );\n\n\t\tthis.title( title );\n\n\t\tif ( this.parent ) {\n\n\t\t\tthis.parent.children.push( this );\n\t\t\tthis.parent.folders.push( this );\n\n\t\t\tthis.parent.$children.appendChild( this.domElement );\n\n\t\t\t// Stop the constructor early, everything onward only applies to root GUI's\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis.domElement.classList.add( 'root' );\n\n\t\tif ( touchStyles ) {\n\t\t\tthis.domElement.classList.add( 'allow-touch-styles' );\n\t\t}\n\n\t\t// Inject stylesheet if we haven't done that yet\n\t\tif ( !stylesInjected && injectStyles ) {\n\t\t\t_injectStyles( stylesheet );\n\t\t\tstylesInjected = true;\n\t\t}\n\n\t\tif ( container ) {\n\n\t\t\tcontainer.appendChild( this.domElement );\n\n\t\t} else if ( autoPlace ) {\n\n\t\t\tthis.domElement.classList.add( 'autoPlace' );\n\t\t\tdocument.body.appendChild( this.domElement );\n\n\t\t}\n\n\t\tif ( width ) {\n\t\t\tthis.domElement.style.setProperty( '--width', width + 'px' );\n\t\t}\n\n\t\tthis._closeFolders = closeFolders;\n\n\t}\n\n\t/**\n\t * Adds a controller to the GUI, inferring controller type using the `typeof` operator.\n\t * @example\n\t * gui.add( object, 'property' );\n\t * gui.add( object, 'number', 0, 100, 1 );\n\t * gui.add( object, 'options', [ 1, 2, 3 ] );\n\t *\n\t * @param {object} object The object the controller will modify.\n\t * @param {string} property Name of the property to control.\n\t * @param {number|object|Array} [$1] Minimum value for number controllers, or the set of\n\t * selectable values for a dropdown.\n\t * @param {number} [max] Maximum value for number controllers.\n\t * @param {number} [step] Step value for number controllers.\n\t * @returns {Controller}\n\t */\n\tadd( object, property, $1, max, step ) {\n\n\t\tif ( Object( $1 ) === $1 ) {\n\n\t\t\treturn new OptionController( this, object, property, $1 );\n\n\t\t}\n\n\t\tconst initialValue = object[ property ];\n\n\t\tswitch ( typeof initialValue ) {\n\n\t\t\tcase 'number':\n\n\t\t\t\treturn new NumberController( this, object, property, $1, max, step );\n\n\t\t\tcase 'boolean':\n\n\t\t\t\treturn new BooleanController( this, object, property );\n\n\t\t\tcase 'string':\n\n\t\t\t\treturn new StringController( this, object, property );\n\n\t\t\tcase 'function':\n\n\t\t\t\treturn new FunctionController( this, object, property );\n\n\t\t}\n\n\t\tconsole.error( `gui.add failed\n\tproperty:`, property, `\n\tobject:`, object, `\n\tvalue:`, initialValue );\n\n\t}\n\n\t/**\n\t * Adds a color controller to the GUI.\n\t * @example\n\t * params = {\n\t * \tcssColor: '#ff00ff',\n\t * \trgbColor: { r: 0, g: 0.2, b: 0.4 },\n\t * \tcustomRange: [ 0, 127, 255 ],\n\t * };\n\t *\n\t * gui.addColor( params, 'cssColor' );\n\t * gui.addColor( params, 'rgbColor' );\n\t * gui.addColor( params, 'customRange', 255 );\n\t *\n\t * @param {object} object The object the controller will modify.\n\t * @param {string} property Name of the property to control.\n\t * @param {number} rgbScale Maximum value for a color channel when using an RGB color. You may\n\t * need to set this to 255 if your colors are too bright.\n\t * @returns {Controller}\n\t */\n\taddColor( object, property, rgbScale = 1 ) {\n\t\treturn new ColorController( this, object, property, rgbScale );\n\t}\n\n\t/**\n\t * Adds a folder to the GUI, which is just another GUI. This method returns\n\t * the nested GUI so you can add controllers to it.\n\t * @example\n\t * const folder = gui.addFolder( 'Position' );\n\t * folder.add( position, 'x' );\n\t * folder.add( position, 'y' );\n\t * folder.add( position, 'z' );\n\t *\n\t * @param {string} title Name to display in the folder's title bar.\n\t * @returns {GUI}\n\t */\n\taddFolder( title ) {\n\t\tconst folder = new GUI( { parent: this, title } );\n\t\tif ( this.root._closeFolders ) folder.close();\n\t\treturn folder;\n\t}\n\n\t/**\n\t * Recalls values that were saved with `gui.save()`.\n\t * @param {object} obj\n\t * @param {boolean} recursive Pass false to exclude folders descending from this GUI.\n\t * @returns {this}\n\t */\n\tload( obj, recursive = true ) {\n\n\t\tif ( obj.controllers ) {\n\n\t\t\tthis.controllers.forEach( c => {\n\n\t\t\t\tif ( c instanceof FunctionController ) return;\n\n\t\t\t\tif ( c._name in obj.controllers ) {\n\t\t\t\t\tc.load( obj.controllers[ c._name ] );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t}\n\n\t\tif ( recursive && obj.folders ) {\n\n\t\t\tthis.folders.forEach( f => {\n\n\t\t\t\tif ( f._title in obj.folders ) {\n\t\t\t\t\tf.load( obj.folders[ f._title ] );\n\t\t\t\t}\n\n\t\t\t} );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Returns an object mapping controller names to values. The object can be passed to `gui.load()` to\n\t * recall these values.\n\t * @example\n\t * {\n\t * \tcontrollers: {\n\t * \t\tprop1: 1,\n\t * \t\tprop2: 'value',\n\t * \t\t...\n\t * \t},\n\t * \tfolders: {\n\t * \t\tfolderName1: { controllers, folders },\n\t * \t\tfolderName2: { controllers, folders }\n\t * \t\t...\n\t * \t}\n\t * }\n\t *\n\t * @param {boolean} recursive Pass false to exclude folders descending from this GUI.\n\t * @returns {object}\n\t */\n\tsave( recursive = true ) {\n\n\t\tconst obj = {\n\t\t\tcontrollers: {},\n\t\t\tfolders: {}\n\t\t};\n\n\t\tthis.controllers.forEach( c => {\n\n\t\t\tif ( c instanceof FunctionController ) return;\n\n\t\t\tif ( c._name in obj.controllers ) {\n\t\t\t\tthrow new Error( `Cannot save GUI with duplicate property \"${c._name}\"` );\n\t\t\t}\n\n\t\t\tobj.controllers[ c._name ] = c.save();\n\n\t\t} );\n\n\t\tif ( recursive ) {\n\n\t\t\tthis.folders.forEach( f => {\n\n\t\t\t\tif ( f._title in obj.folders ) {\n\t\t\t\t\tthrow new Error( `Cannot save GUI with duplicate folder \"${f._title}\"` );\n\t\t\t\t}\n\n\t\t\t\tobj.folders[ f._title ] = f.save();\n\n\t\t\t} );\n\n\t\t}\n\n\t\treturn obj;\n\n\t}\n\n\t/**\n\t * Opens a GUI or folder. GUI and folders are open by default.\n\t * @param {boolean} open Pass false to close.\n\t * @returns {this}\n\t * @example\n\t * gui.open(); // open\n\t * gui.open( false ); // close\n\t * gui.open( gui._closed ); // toggle\n\t */\n\topen( open = true ) {\n\n\t\tthis._setClosed( !open );\n\n\t\tthis.$title.setAttribute( 'aria-expanded', !this._closed );\n\t\tthis.domElement.classList.toggle( 'closed', this._closed );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Closes the GUI.\n\t * @returns {this}\n\t */\n\tclose() {\n\t\treturn this.open( false );\n\t}\n\n\t_setClosed( closed ) {\n\t\tif ( this._closed === closed ) return;\n\t\tthis._closed = closed;\n\t\tthis._callOnOpenClose( this );\n\t}\n\n\t/**\n\t * Shows the GUI after it's been hidden.\n\t * @param {boolean} show\n\t * @returns {this}\n\t * @example\n\t * gui.show();\n\t * gui.show( false ); // hide\n\t * gui.show( gui._hidden ); // toggle\n\t */\n\tshow( show = true ) {\n\n\t\tthis._hidden = !show;\n\n\t\tthis.domElement.style.display = this._hidden ? 'none' : '';\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Hides the GUI.\n\t * @returns {this}\n\t */\n\thide() {\n\t\treturn this.show( false );\n\t}\n\n\topenAnimated( open = true ) {\n\n\t\t// set state immediately\n\t\tthis._setClosed( !open );\n\n\t\tthis.$title.setAttribute( 'aria-expanded', !this._closed );\n\n\t\t// wait for next frame to measure $children\n\t\trequestAnimationFrame( () => {\n\n\t\t\t// explicitly set initial height for transition\n\t\t\tconst initialHeight = this.$children.clientHeight;\n\t\t\tthis.$children.style.height = initialHeight + 'px';\n\n\t\t\tthis.domElement.classList.add( 'transition' );\n\n\t\t\tconst onTransitionEnd = e => {\n\t\t\t\tif ( e.target !== this.$children ) return;\n\t\t\t\tthis.$children.style.height = '';\n\t\t\t\tthis.domElement.classList.remove( 'transition' );\n\t\t\t\tthis.$children.removeEventListener( 'transitionend', onTransitionEnd );\n\t\t\t};\n\n\t\t\tthis.$children.addEventListener( 'transitionend', onTransitionEnd );\n\n\t\t\t// todo: this is wrong if children's scrollHeight makes for a gui taller than maxHeight\n\t\t\tconst targetHeight = !open ? 0 : this.$children.scrollHeight;\n\n\t\t\tthis.domElement.classList.toggle( 'closed', !open );\n\n\t\t\trequestAnimationFrame( () => {\n\t\t\t\tthis.$children.style.height = targetHeight + 'px';\n\t\t\t} );\n\n\t\t} );\n\n\t\treturn this;\n\n\t}\n\n\t/**\n\t * Change the title of this GUI.\n\t * @param {string} title\n\t * @returns {this}\n\t */\n\ttitle( title ) {\n\t\t/**\n\t\t * Current title of the GUI. Use `gui.title( 'Title' )` to modify this value.\n\t\t * @type {string}\n\t\t */\n\t\tthis._title = title;\n\t\tthis.$title.textContent = title;\n\t\treturn this;\n\t}\n\n\t/**\n\t * Resets all controllers to their initial values.\n\t * @param {boolean} recursive Pass false to exclude folders descending from this GUI.\n\t * @returns {this}\n\t */\n\treset( recursive = true ) {\n\t\tconst controllers = recursive ? this.controllersRecursive() : this.controllers;\n\t\tcontrollers.forEach( c => c.reset() );\n\t\treturn this;\n\t}\n\n\t/**\n\t * Pass a function to be called whenever a controller in this GUI changes.\n\t * @param {function({object:object, property:string, value:any, controller:Controller})} callback\n\t * @returns {this}\n\t * @example\n\t * gui.onChange( event => {\n\t * \tevent.object // object that was modified\n\t * \tevent.property // string, name of property\n\t * \tevent.value // new value of controller\n\t * \tevent.controller // controller that was modified\n\t * } );\n\t */\n\tonChange( callback ) {\n\t\t/**\n\t\t * Used to access the function bound to `onChange` events. Don't modify this value\n\t\t * directly. Use the `gui.onChange( callback )` method instead.\n\t\t * @type {Function}\n\t\t */\n\t\tthis._onChange = callback;\n\t\treturn this;\n\t}\n\n\t_callOnChange( controller ) {\n\n\t\tif ( this.parent ) {\n\t\t\tthis.parent._callOnChange( controller );\n\t\t}\n\n\t\tif ( this._onChange !== undefined ) {\n\t\t\tthis._onChange.call( this, {\n\t\t\t\tobject: controller.object,\n\t\t\t\tproperty: controller.property,\n\t\t\t\tvalue: controller.getValue(),\n\t\t\t\tcontroller\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Pass a function to be called whenever a controller in this GUI has finished changing.\n\t * @param {function({object:object, property:string, value:any, controller:Controller})} callback\n\t * @returns {this}\n\t * @example\n\t * gui.onFinishChange( event => {\n\t * \tevent.object // object that was modified\n\t * \tevent.property // string, name of property\n\t * \tevent.value // new value of controller\n\t * \tevent.controller // controller that was modified\n\t * } );\n\t */\n\tonFinishChange( callback ) {\n\t\t/**\n\t\t * Used to access the function bound to `onFinishChange` events. Don't modify this value\n\t\t * directly. Use the `gui.onFinishChange( callback )` method instead.\n\t\t * @type {Function}\n\t\t */\n\t\tthis._onFinishChange = callback;\n\t\treturn this;\n\t}\n\n\t_callOnFinishChange( controller ) {\n\n\t\tif ( this.parent ) {\n\t\t\tthis.parent._callOnFinishChange( controller );\n\t\t}\n\n\t\tif ( this._onFinishChange !== undefined ) {\n\t\t\tthis._onFinishChange.call( this, {\n\t\t\t\tobject: controller.object,\n\t\t\t\tproperty: controller.property,\n\t\t\t\tvalue: controller.getValue(),\n\t\t\t\tcontroller\n\t\t\t} );\n\t\t}\n\t}\n\n\t/**\n\t * Pass a function to be called when this GUI or its descendants are opened or closed.\n\t * @param {function(GUI)} callback\n\t * @returns {this}\n\t * @example\n\t * gui.onOpenClose( changedGUI => {\n\t * \tconsole.log( changedGUI._closed );\n\t * } );\n\t */\n\tonOpenClose( callback ) {\n\t\tthis._onOpenClose = callback;\n\t\treturn this;\n\t}\n\n\t_callOnOpenClose( changedGUI ) {\n\t\tif ( this.parent ) {\n\t\t\tthis.parent._callOnOpenClose( changedGUI );\n\t\t}\n\n\t\tif ( this._onOpenClose !== undefined ) {\n\t\t\tthis._onOpenClose.call( this, changedGUI );\n\t\t}\n\t}\n\n\t/**\n\t * Destroys all DOM elements and event listeners associated with this GUI.\n\t */\n\tdestroy() {\n\n\t\tif ( this.parent ) {\n\t\t\tthis.parent.children.splice( this.parent.children.indexOf( this ), 1 );\n\t\t\tthis.parent.folders.splice( this.parent.folders.indexOf( this ), 1 );\n\t\t}\n\n\t\tif ( this.domElement.parentElement ) {\n\t\t\tthis.domElement.parentElement.removeChild( this.domElement );\n\t\t}\n\n\t\tArray.from( this.children ).forEach( c => c.destroy() );\n\n\t}\n\n\t/**\n\t * Returns an array of controllers contained by this GUI and its descendents.\n\t * @returns {Controller[]}\n\t */\n\tcontrollersRecursive() {\n\t\tlet controllers = Array.from( this.controllers );\n\t\tthis.folders.forEach( f => {\n\t\t\tcontrollers = controllers.concat( f.controllersRecursive() );\n\t\t} );\n\t\treturn controllers;\n\t}\n\n\t/**\n\t * Returns an array of folders contained by this GUI and its descendents.\n\t * @returns {GUI[]}\n\t */\n\tfoldersRecursive() {\n\t\tlet folders = Array.from( this.folders );\n\t\tthis.folders.forEach( f => {\n\t\t\tfolders = folders.concat( f.foldersRecursive() );\n\t\t} );\n\t\treturn folders;\n\t}\n\n}\n\nexport default GUI;\nexport { BooleanController, ColorController, Controller, FunctionController, GUI, NumberController, OptionController, StringController };\n","#include \"perlin_noise.glsl\"\r\n\r\nuniform float uBigWavesElevation;\r\nuniform vec2 uBigWavesFrequency;\r\nuniform float uTime;\r\nuniform float uBigWavesSpeed;\r\nuniform float uSmallWavesSpeed;\r\nuniform float uSmallWavesFrequency;\r\nuniform float uSmallWavesElevation;\r\nuniform float uSmallWavesIterations;\r\n\r\n// data to be passed to fragment shader\r\nvarying float vElevation;\r\n\r\nvoid main() {\r\n // matrices are provided by shadowMapMaterial\r\n // modelMatrix\r\n // viewMatrix\r\n // projectionMatrix\r\n\r\n vec4 modelPosition = modelMatrix * vec4(position, 1.0);\r\n\r\n // Elevation\r\n float elevation = sin(modelPosition.x * uBigWavesFrequency.x + uTime * uBigWavesSpeed) *\r\n sin(modelPosition.z * uBigWavesFrequency.y + uTime * uBigWavesSpeed) *\r\n uBigWavesElevation;\r\n\r\n for(float i = 1.0; i <= uSmallWavesIterations; i++) {\r\n // use of negative abs to make a peak effect in the perlin noise\r\n // i could be used as a frequency modifier and as elevation of the wave\r\n // uTime reduced to make the effect slower\r\n elevation -= abs(cnoise(vec3(modelPosition.xz * uSmallWavesFrequency * i, uTime * uSmallWavesSpeed)) * uSmallWavesElevation / i);\r\n }\r\n\r\n modelPosition.y += elevation;\r\n\r\n vec4 viewPosition = viewMatrix * modelPosition;\r\n vec4 projectedPosition = projectionMatrix * viewPosition;\r\n\r\n gl_Position = projectedPosition;\r\n\r\n // Varying\r\n vElevation = elevation;\r\n\r\n}\r\n","uniform vec3 uDepthColor;\r\nuniform vec3 uSurfaceColor;\r\nuniform float uColorOffset;\r\nuniform float uColorMultiplier;\r\n\r\nvarying float vElevation;\r\n\r\nvoid main(){\r\n\r\n float mixStrength = (vElevation + uColorOffset) * uColorMultiplier;\r\n vec3 finalColor = mix(uDepthColor, uSurfaceColor, mixStrength);\r\n\r\n gl_FragColor = vec4(finalColor, 1.0);\r\n #include \r\n}","import {\n\tDataTextureLoader,\n\tDataUtils,\n\tFloatType,\n\tHalfFloatType,\n\tLinearFilter,\n\tLinearSRGBColorSpace\n} from 'three';\n\n// https://github.com/mrdoob/three.js/issues/5552\n// http://en.wikipedia.org/wiki/RGBE_image_format\n\nclass RGBELoader extends DataTextureLoader {\n\n\tconstructor( manager ) {\n\n\t\tsuper( manager );\n\n\t\tthis.type = HalfFloatType;\n\n\t}\n\n\t// adapted from http://www.graphics.cornell.edu/~bjw/rgbe.html\n\n\tparse( buffer ) {\n\n\t\tconst\n\t\t\t/* default error routine. change this to change error handling */\n\t\t\trgbe_read_error = 1,\n\t\t\trgbe_write_error = 2,\n\t\t\trgbe_format_error = 3,\n\t\t\trgbe_memory_error = 4,\n\t\t\trgbe_error = function ( rgbe_error_code, msg ) {\n\n\t\t\t\tswitch ( rgbe_error_code ) {\n\n\t\t\t\t\tcase rgbe_read_error: throw new Error( 'THREE.RGBELoader: Read Error: ' + ( msg || '' ) );\n\t\t\t\t\tcase rgbe_write_error: throw new Error( 'THREE.RGBELoader: Write Error: ' + ( msg || '' ) );\n\t\t\t\t\tcase rgbe_format_error: throw new Error( 'THREE.RGBELoader: Bad File Format: ' + ( msg || '' ) );\n\t\t\t\t\tdefault:\n\t\t\t\t\tcase rgbe_memory_error: throw new Error( 'THREE.RGBELoader: Memory Error: ' + ( msg || '' ) );\n\n\t\t\t\t}\n\n\t\t\t},\n\n\t\t\t/* offsets to red, green, and blue components in a data (float) pixel */\n\t\t\t//RGBE_DATA_RED = 0,\n\t\t\t//RGBE_DATA_GREEN = 1,\n\t\t\t//RGBE_DATA_BLUE = 2,\n\n\t\t\t/* number of floats per pixel, use 4 since stored in rgba image format */\n\t\t\t//RGBE_DATA_SIZE = 4,\n\n\t\t\t/* flags indicating which fields in an rgbe_header_info are valid */\n\t\t\tRGBE_VALID_PROGRAMTYPE = 1,\n\t\t\tRGBE_VALID_FORMAT = 2,\n\t\t\tRGBE_VALID_DIMENSIONS = 4,\n\n\t\t\tNEWLINE = '\\n',\n\n\t\t\tfgets = function ( buffer, lineLimit, consume ) {\n\n\t\t\t\tconst chunkSize = 128;\n\n\t\t\t\tlineLimit = ! lineLimit ? 1024 : lineLimit;\n\t\t\t\tlet p = buffer.pos,\n\t\t\t\t\ti = - 1, len = 0, s = '',\n\t\t\t\t\tchunk = String.fromCharCode.apply( null, new Uint16Array( buffer.subarray( p, p + chunkSize ) ) );\n\n\t\t\t\twhile ( ( 0 > ( i = chunk.indexOf( NEWLINE ) ) ) && ( len < lineLimit ) && ( p < buffer.byteLength ) ) {\n\n\t\t\t\t\ts += chunk; len += chunk.length;\n\t\t\t\t\tp += chunkSize;\n\t\t\t\t\tchunk += String.fromCharCode.apply( null, new Uint16Array( buffer.subarray( p, p + chunkSize ) ) );\n\n\t\t\t\t}\n\n\t\t\t\tif ( - 1 < i ) {\n\n\t\t\t\t\t/*for (i=l-1; i>=0; i--) {\n\t\t\t\t\t\tbyteCode = m.charCodeAt(i);\n\t\t\t\t\t\tif (byteCode > 0x7f && byteCode <= 0x7ff) byteLen++;\n\t\t\t\t\t\telse if (byteCode > 0x7ff && byteCode <= 0xffff) byteLen += 2;\n\t\t\t\t\t\tif (byteCode >= 0xDC00 && byteCode <= 0xDFFF) i--; //trail surrogate\n\t\t\t\t\t}*/\n\t\t\t\t\tif ( false !== consume ) buffer.pos += len + i + 1;\n\t\t\t\t\treturn s + chunk.slice( 0, i );\n\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\n\t\t\t},\n\n\t\t\t/* minimal header reading. modify if you want to parse more information */\n\t\t\tRGBE_ReadHeader = function ( buffer ) {\n\n\n\t\t\t\t// regexes to parse header info fields\n\t\t\t\tconst magic_token_re = /^#\\?(\\S+)/,\n\t\t\t\t\tgamma_re = /^\\s*GAMMA\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/,\n\t\t\t\t\texposure_re = /^\\s*EXPOSURE\\s*=\\s*(\\d+(\\.\\d+)?)\\s*$/,\n\t\t\t\t\tformat_re = /^\\s*FORMAT=(\\S+)\\s*$/,\n\t\t\t\t\tdimensions_re = /^\\s*\\-Y\\s+(\\d+)\\s+\\+X\\s+(\\d+)\\s*$/,\n\n\t\t\t\t\t// RGBE format header struct\n\t\t\t\t\theader = {\n\n\t\t\t\t\t\tvalid: 0, /* indicate which fields are valid */\n\n\t\t\t\t\t\tstring: '', /* the actual header string */\n\n\t\t\t\t\t\tcomments: '', /* comments found in header */\n\n\t\t\t\t\t\tprogramtype: 'RGBE', /* listed at beginning of file to identify it after \"#?\". defaults to \"RGBE\" */\n\n\t\t\t\t\t\tformat: '', /* RGBE format, default 32-bit_rle_rgbe */\n\n\t\t\t\t\t\tgamma: 1.0, /* image has already been gamma corrected with given gamma. defaults to 1.0 (no correction) */\n\n\t\t\t\t\t\texposure: 1.0, /* a value of 1.0 in an image corresponds to watts/steradian/m^2. defaults to 1.0 */\n\n\t\t\t\t\t\twidth: 0, height: 0 /* image dimensions, width/height */\n\n\t\t\t\t\t};\n\n\t\t\t\tlet line, match;\n\n\t\t\t\tif ( buffer.pos >= buffer.byteLength || ! ( line = fgets( buffer ) ) ) {\n\n\t\t\t\t\trgbe_error( rgbe_read_error, 'no header found' );\n\n\t\t\t\t}\n\n\t\t\t\t/* if you want to require the magic token then uncomment the next line */\n\t\t\t\tif ( ! ( match = line.match( magic_token_re ) ) ) {\n\n\t\t\t\t\trgbe_error( rgbe_format_error, 'bad initial token' );\n\n\t\t\t\t}\n\n\t\t\t\theader.valid |= RGBE_VALID_PROGRAMTYPE;\n\t\t\t\theader.programtype = match[ 1 ];\n\t\t\t\theader.string += line + '\\n';\n\n\t\t\t\twhile ( true ) {\n\n\t\t\t\t\tline = fgets( buffer );\n\t\t\t\t\tif ( false === line ) break;\n\t\t\t\t\theader.string += line + '\\n';\n\n\t\t\t\t\tif ( '#' === line.charAt( 0 ) ) {\n\n\t\t\t\t\t\theader.comments += line + '\\n';\n\t\t\t\t\t\tcontinue; // comment line\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( match = line.match( gamma_re ) ) {\n\n\t\t\t\t\t\theader.gamma = parseFloat( match[ 1 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( match = line.match( exposure_re ) ) {\n\n\t\t\t\t\t\theader.exposure = parseFloat( match[ 1 ] );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( match = line.match( format_re ) ) {\n\n\t\t\t\t\t\theader.valid |= RGBE_VALID_FORMAT;\n\t\t\t\t\t\theader.format = match[ 1 ];//'32-bit_rle_rgbe';\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( match = line.match( dimensions_re ) ) {\n\n\t\t\t\t\t\theader.valid |= RGBE_VALID_DIMENSIONS;\n\t\t\t\t\t\theader.height = parseInt( match[ 1 ], 10 );\n\t\t\t\t\t\theader.width = parseInt( match[ 2 ], 10 );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ( header.valid & RGBE_VALID_FORMAT ) && ( header.valid & RGBE_VALID_DIMENSIONS ) ) break;\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! ( header.valid & RGBE_VALID_FORMAT ) ) {\n\n\t\t\t\t\trgbe_error( rgbe_format_error, 'missing format specifier' );\n\n\t\t\t\t}\n\n\t\t\t\tif ( ! ( header.valid & RGBE_VALID_DIMENSIONS ) ) {\n\n\t\t\t\t\trgbe_error( rgbe_format_error, 'missing image size specifier' );\n\n\t\t\t\t}\n\n\t\t\t\treturn header;\n\n\t\t\t},\n\n\t\t\tRGBE_ReadPixels_RLE = function ( buffer, w, h ) {\n\n\t\t\t\tconst scanline_width = w;\n\n\t\t\t\tif (\n\t\t\t\t\t// run length encoding is not allowed so read flat\n\t\t\t\t\t( ( scanline_width < 8 ) || ( scanline_width > 0x7fff ) ) ||\n\t\t\t\t\t// this file is not run length encoded\n\t\t\t\t\t( ( 2 !== buffer[ 0 ] ) || ( 2 !== buffer[ 1 ] ) || ( buffer[ 2 ] & 0x80 ) )\n\t\t\t\t) {\n\n\t\t\t\t\t// return the flat buffer\n\t\t\t\t\treturn new Uint8Array( buffer );\n\n\t\t\t\t}\n\n\t\t\t\tif ( scanline_width !== ( ( buffer[ 2 ] << 8 ) | buffer[ 3 ] ) ) {\n\n\t\t\t\t\trgbe_error( rgbe_format_error, 'wrong scanline width' );\n\n\t\t\t\t}\n\n\t\t\t\tconst data_rgba = new Uint8Array( 4 * w * h );\n\n\t\t\t\tif ( ! data_rgba.length ) {\n\n\t\t\t\t\trgbe_error( rgbe_memory_error, 'unable to allocate buffer space' );\n\n\t\t\t\t}\n\n\t\t\t\tlet offset = 0, pos = 0;\n\n\t\t\t\tconst ptr_end = 4 * scanline_width;\n\t\t\t\tconst rgbeStart = new Uint8Array( 4 );\n\t\t\t\tconst scanline_buffer = new Uint8Array( ptr_end );\n\t\t\t\tlet num_scanlines = h;\n\n\t\t\t\t// read in each successive scanline\n\t\t\t\twhile ( ( num_scanlines > 0 ) && ( pos < buffer.byteLength ) ) {\n\n\t\t\t\t\tif ( pos + 4 > buffer.byteLength ) {\n\n\t\t\t\t\t\trgbe_error( rgbe_read_error );\n\n\t\t\t\t\t}\n\n\t\t\t\t\trgbeStart[ 0 ] = buffer[ pos ++ ];\n\t\t\t\t\trgbeStart[ 1 ] = buffer[ pos ++ ];\n\t\t\t\t\trgbeStart[ 2 ] = buffer[ pos ++ ];\n\t\t\t\t\trgbeStart[ 3 ] = buffer[ pos ++ ];\n\n\t\t\t\t\tif ( ( 2 != rgbeStart[ 0 ] ) || ( 2 != rgbeStart[ 1 ] ) || ( ( ( rgbeStart[ 2 ] << 8 ) | rgbeStart[ 3 ] ) != scanline_width ) ) {\n\n\t\t\t\t\t\trgbe_error( rgbe_format_error, 'bad rgbe scanline format' );\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// read each of the four channels for the scanline into the buffer\n\t\t\t\t\t// first red, then green, then blue, then exponent\n\t\t\t\t\tlet ptr = 0, count;\n\n\t\t\t\t\twhile ( ( ptr < ptr_end ) && ( pos < buffer.byteLength ) ) {\n\n\t\t\t\t\t\tcount = buffer[ pos ++ ];\n\t\t\t\t\t\tconst isEncodedRun = count > 128;\n\t\t\t\t\t\tif ( isEncodedRun ) count -= 128;\n\n\t\t\t\t\t\tif ( ( 0 === count ) || ( ptr + count > ptr_end ) ) {\n\n\t\t\t\t\t\t\trgbe_error( rgbe_format_error, 'bad scanline data' );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ( isEncodedRun ) {\n\n\t\t\t\t\t\t\t// a (encoded) run of the same value\n\t\t\t\t\t\t\tconst byteValue = buffer[ pos ++ ];\n\t\t\t\t\t\t\tfor ( let i = 0; i < count; i ++ ) {\n\n\t\t\t\t\t\t\t\tscanline_buffer[ ptr ++ ] = byteValue;\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t//ptr += count;\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// a literal-run\n\t\t\t\t\t\t\tscanline_buffer.set( buffer.subarray( pos, pos + count ), ptr );\n\t\t\t\t\t\t\tptr += count; pos += count;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\n\t\t\t\t\t// now convert data from buffer into rgba\n\t\t\t\t\t// first red, then green, then blue, then exponent (alpha)\n\t\t\t\t\tconst l = scanline_width; //scanline_buffer.byteLength;\n\t\t\t\t\tfor ( let i = 0; i < l; i ++ ) {\n\n\t\t\t\t\t\tlet off = 0;\n\t\t\t\t\t\tdata_rgba[ offset ] = scanline_buffer[ i + off ];\n\t\t\t\t\t\toff += scanline_width; //1;\n\t\t\t\t\t\tdata_rgba[ offset + 1 ] = scanline_buffer[ i + off ];\n\t\t\t\t\t\toff += scanline_width; //1;\n\t\t\t\t\t\tdata_rgba[ offset + 2 ] = scanline_buffer[ i + off ];\n\t\t\t\t\t\toff += scanline_width; //1;\n\t\t\t\t\t\tdata_rgba[ offset + 3 ] = scanline_buffer[ i + off ];\n\t\t\t\t\t\toffset += 4;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tnum_scanlines --;\n\n\t\t\t\t}\n\n\t\t\t\treturn data_rgba;\n\n\t\t\t};\n\n\t\tconst RGBEByteToRGBFloat = function ( sourceArray, sourceOffset, destArray, destOffset ) {\n\n\t\t\tconst e = sourceArray[ sourceOffset + 3 ];\n\t\t\tconst scale = Math.pow( 2.0, e - 128.0 ) / 255.0;\n\n\t\t\tdestArray[ destOffset + 0 ] = sourceArray[ sourceOffset + 0 ] * scale;\n\t\t\tdestArray[ destOffset + 1 ] = sourceArray[ sourceOffset + 1 ] * scale;\n\t\t\tdestArray[ destOffset + 2 ] = sourceArray[ sourceOffset + 2 ] * scale;\n\t\t\tdestArray[ destOffset + 3 ] = 1;\n\n\t\t};\n\n\t\tconst RGBEByteToRGBHalf = function ( sourceArray, sourceOffset, destArray, destOffset ) {\n\n\t\t\tconst e = sourceArray[ sourceOffset + 3 ];\n\t\t\tconst scale = Math.pow( 2.0, e - 128.0 ) / 255.0;\n\n\t\t\t// clamping to 65504, the maximum representable value in float16\n\t\t\tdestArray[ destOffset + 0 ] = DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 0 ] * scale, 65504 ) );\n\t\t\tdestArray[ destOffset + 1 ] = DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 1 ] * scale, 65504 ) );\n\t\t\tdestArray[ destOffset + 2 ] = DataUtils.toHalfFloat( Math.min( sourceArray[ sourceOffset + 2 ] * scale, 65504 ) );\n\t\t\tdestArray[ destOffset + 3 ] = DataUtils.toHalfFloat( 1 );\n\n\t\t};\n\n\t\tconst byteArray = new Uint8Array( buffer );\n\t\tbyteArray.pos = 0;\n\t\tconst rgbe_header_info = RGBE_ReadHeader( byteArray );\n\n\t\tconst w = rgbe_header_info.width,\n\t\t\th = rgbe_header_info.height,\n\t\t\timage_rgba_data = RGBE_ReadPixels_RLE( byteArray.subarray( byteArray.pos ), w, h );\n\n\n\t\tlet data, type;\n\t\tlet numElements;\n\n\t\tswitch ( this.type ) {\n\n\t\t\tcase FloatType:\n\n\t\t\t\tnumElements = image_rgba_data.length / 4;\n\t\t\t\tconst floatArray = new Float32Array( numElements * 4 );\n\n\t\t\t\tfor ( let j = 0; j < numElements; j ++ ) {\n\n\t\t\t\t\tRGBEByteToRGBFloat( image_rgba_data, j * 4, floatArray, j * 4 );\n\n\t\t\t\t}\n\n\t\t\t\tdata = floatArray;\n\t\t\t\ttype = FloatType;\n\t\t\t\tbreak;\n\n\t\t\tcase HalfFloatType:\n\n\t\t\t\tnumElements = image_rgba_data.length / 4;\n\t\t\t\tconst halfArray = new Uint16Array( numElements * 4 );\n\n\t\t\t\tfor ( let j = 0; j < numElements; j ++ ) {\n\n\t\t\t\t\tRGBEByteToRGBHalf( image_rgba_data, j * 4, halfArray, j * 4 );\n\n\t\t\t\t}\n\n\t\t\t\tdata = halfArray;\n\t\t\t\ttype = HalfFloatType;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tthrow new Error( 'THREE.RGBELoader: Unsupported type: ' + this.type );\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\treturn {\n\t\t\twidth: w, height: h,\n\t\t\tdata: data,\n\t\t\theader: rgbe_header_info.string,\n\t\t\tgamma: rgbe_header_info.gamma,\n\t\t\texposure: rgbe_header_info.exposure,\n\t\t\ttype: type\n\t\t};\n\n\t}\n\n\tsetDataType( value ) {\n\n\t\tthis.type = value;\n\t\treturn this;\n\n\t}\n\n\tload( url, onLoad, onProgress, onError ) {\n\n\t\tfunction onLoadCallback( texture, texData ) {\n\n\t\t\tswitch ( texture.type ) {\n\n\t\t\t\tcase FloatType:\n\t\t\t\tcase HalfFloatType:\n\n\t\t\t\t\ttexture.colorSpace = LinearSRGBColorSpace;\n\t\t\t\t\ttexture.minFilter = LinearFilter;\n\t\t\t\t\ttexture.magFilter = LinearFilter;\n\t\t\t\t\ttexture.generateMipmaps = false;\n\t\t\t\t\ttexture.flipY = true;\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t\tif ( onLoad ) onLoad( texture, texData );\n\n\t\t}\n\n\t\treturn super.load( url, onLoadCallback, onProgress, onError );\n\n\t}\n\n}\n\nexport { RGBELoader };\n","import * as THREE from 'three';\nimport { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';\nimport GUI from 'lil-gui';\n// shaders\nimport waterVertexShader from './shaders/water/vertex.glsl';\nimport waterFragmentShader from './shaders/water/fragment.glsl';\n// loaders\nimport { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader.js';\nimport { GroundedSkybox } from 'three/examples/jsm/objects/GroundedSkybox.js';\n\n/**\n * Base\n */\n// Debug\nconst gui = new GUI({ width: 340 });\nconst debugParams = {\n depthColor: '#067fc1',\n surfaceColor: '#9bd8ff',\n};\n\n/**\n * Loaders\n */\nconst rgbeLoader = new RGBELoader();\n\n// Canvas\nconst canvas = document.querySelector('canvas.webgl');\n\n// Scene\nconst scene = new THREE.Scene();\n\n// Environment map\nlet skybox = null;\nrgbeLoader.load('envMaps/autumn_field_puresky_2k.hdr', (envMap) => {\n envMap.colorSpace = THREE.SRGBColorSpace;\n scene.environment = envMap;\n scene.background = envMap;\n scene.environmentIntensity = 2;\n scene.backgroundBlurriness = 0;\n scene.position.y = -0.5;\n});\n\n/**\n * Water\n */\n// Geometry\nconst waterGeometry = new THREE.PlaneGeometry(20, 10, 512, 512);\n\n// Material\n// With a default shader material you have a red color, because has a vertex and fragment shader by default\nconst waterMaterial = new THREE.ShaderMaterial();\nwaterMaterial.vertexShader = waterVertexShader;\nwaterMaterial.fragmentShader = waterFragmentShader;\nwaterMaterial.uniforms = {\n uTime: { value: 0 },\n\n uBigWavesElevation: { value: 0.2 },\n uBigWavesFrequency: { value: new THREE.Vector2(4, 1.5) },\n uBigWavesSpeed: { value: 0.75 },\n\n uSmallWavesElevation: { value: 0.15 },\n uSmallWavesFrequency: { value: 3.0 },\n uSmallWavesSpeed: { value: 0.2 },\n uSmallWavesIterations: { value: 5 },\n\n uDepthColor: { value: new THREE.Color(debugParams.depthColor) },\n uSurfaceColor: { value: new THREE.Color(debugParams.surfaceColor) },\n uColorOffset: { value: 0.02 },\n uColorMultiplier: { value: 2.0 },\n};\nwaterMaterial.transparent = true;\n\n// Debug\nconst wavesFolder = gui.addFolder('Waves');\nwavesFolder\n .add(waterMaterial.uniforms.uBigWavesElevation, 'value')\n .min(0)\n .max(1)\n .step(0.001)\n .name('wavesElevation');\nwavesFolder\n .add(waterMaterial.uniforms.uBigWavesFrequency.value, 'x')\n .min(0)\n .max(10)\n .step(0.001)\n .name('wavesFrequencyX');\nwavesFolder\n .add(waterMaterial.uniforms.uBigWavesFrequency.value, 'y')\n .min(0)\n .max(10)\n .step(0.001)\n .name('wavesFrequencyY');\nwavesFolder\n .add(waterMaterial.uniforms.uBigWavesSpeed, 'value')\n .min(0)\n .max(10)\n .step(0.001)\n .name('wavesSpeed');\n\nconst colorFolder = gui.addFolder('Color');\ncolorFolder.addColor(debugParams, 'depthColor').onChange(() => {\n waterMaterial.uniforms.uDepthColor.value.set(debugParams.depthColor);\n});\ncolorFolder.addColor(debugParams, 'surfaceColor').onChange(() => {\n waterMaterial.uniforms.uSurfaceColor.value.set(debugParams.surfaceColor);\n});\ncolorFolder\n .add(waterMaterial.uniforms.uColorOffset, 'value')\n .min(0)\n .max(0.1)\n .step(0.001)\n .name('colorOffset');\ncolorFolder\n .add(waterMaterial.uniforms.uColorMultiplier, 'value')\n .min(0)\n .max(5)\n .step(0.001)\n .name('colorMultiplier');\n\nconst perlinNoiseFolder = gui.addFolder('Perlin Noise');\nperlinNoiseFolder\n .add(waterMaterial.uniforms.uSmallWavesElevation, 'value')\n .min(0)\n .max(1)\n .step(0.001)\n .name('smallWavesElevation');\nperlinNoiseFolder\n .add(waterMaterial.uniforms.uSmallWavesFrequency, 'value')\n .min(0)\n .max(30)\n .step(0.001)\n .name('smallWavesFrequency');\nperlinNoiseFolder\n .add(waterMaterial.uniforms.uSmallWavesSpeed, 'value')\n .min(0)\n .max(4)\n .step(0.001)\n .name('smallWavesSpeed');\nperlinNoiseFolder\n .add(waterMaterial.uniforms.uSmallWavesIterations, 'value')\n .min(0)\n .max(5)\n .step(1)\n .name('smallWavesIterations');\n\n// Mesh\nconst water = new THREE.Mesh(waterGeometry, waterMaterial);\nwater.rotation.x = -Math.PI * 0.5;\nwater.receiveShadow = true;\nwater.castShadow = true;\nscene.add(water);\n\n/**\n * Sizes\n */\nconst sizes = {\n width: window.innerWidth,\n height: window.innerHeight,\n};\n\nwindow.addEventListener('resize', () => {\n // Update sizes\n sizes.width = window.innerWidth;\n sizes.height = window.innerHeight;\n\n // Update camera\n camera.aspect = sizes.width / sizes.height;\n camera.updateProjectionMatrix();\n\n // Update renderer\n renderer.setSize(sizes.width, sizes.height);\n renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));\n});\n\n/**\n * Camera\n */\n// Base camera\nconst camera = new THREE.PerspectiveCamera(75, sizes.width / sizes.height, 0.1, 100);\ncamera.position.set(0, 0.75, 5);\nscene.add(camera);\n\n// Controls\nconst controls = new OrbitControls(camera, canvas);\ncontrols.enableDamping = true;\n\n/**\n * Renderer\n */\nconst renderer = new THREE.WebGLRenderer({\n canvas: canvas,\n antialias: true,\n});\nrenderer.setSize(sizes.width, sizes.height);\nrenderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));\n// Shadows\nrenderer.shadowMap.enabled = true;\nrenderer.shadowMap.type = THREE.PCFSoftShadowMap;\n\n/**\n * Animate\n */\nconst clock = new THREE.Clock();\n\nconst tick = () => {\n const elapsedTime = clock.getElapsedTime();\n\n // Update material\n waterMaterial.uniforms.uTime.value = elapsedTime;\n\n // Update controls\n controls.update();\n\n // Render\n renderer.render(scene, camera);\n\n // Call tick again on the next frame\n window.requestAnimationFrame(tick);\n};\n\ntick();\n"],"names":["REVISION","MOUSE","TOUCH","CullFaceNone","CullFaceBack","CullFaceFront","PCFShadowMap","PCFSoftShadowMap","VSMShadowMap","FrontSide","BackSide","DoubleSide","NoBlending","NormalBlending","AdditiveBlending","SubtractiveBlending","MultiplyBlending","CustomBlending","AddEquation","SubtractEquation","ReverseSubtractEquation","MinEquation","MaxEquation","ZeroFactor","OneFactor","SrcColorFactor","OneMinusSrcColorFactor","SrcAlphaFactor","OneMinusSrcAlphaFactor","DstAlphaFactor","OneMinusDstAlphaFactor","DstColorFactor","OneMinusDstColorFactor","SrcAlphaSaturateFactor","ConstantColorFactor","OneMinusConstantColorFactor","ConstantAlphaFactor","OneMinusConstantAlphaFactor","NeverDepth","AlwaysDepth","LessDepth","LessEqualDepth","EqualDepth","GreaterEqualDepth","GreaterDepth","NotEqualDepth","MultiplyOperation","MixOperation","AddOperation","NoToneMapping","LinearToneMapping","ReinhardToneMapping","CineonToneMapping","ACESFilmicToneMapping","CustomToneMapping","AgXToneMapping","NeutralToneMapping","UVMapping","CubeReflectionMapping","CubeRefractionMapping","EquirectangularReflectionMapping","EquirectangularRefractionMapping","CubeUVReflectionMapping","RepeatWrapping","ClampToEdgeWrapping","MirroredRepeatWrapping","NearestFilter","NearestMipmapNearestFilter","NearestMipmapLinearFilter","LinearFilter","LinearMipmapNearestFilter","LinearMipmapLinearFilter","UnsignedByteType","ByteType","ShortType","UnsignedShortType","IntType","UnsignedIntType","FloatType","HalfFloatType","UnsignedShort4444Type","UnsignedShort5551Type","UnsignedInt248Type","UnsignedInt5999Type","AlphaFormat","RGBFormat","RGBAFormat","LuminanceFormat","LuminanceAlphaFormat","DepthFormat","DepthStencilFormat","RedFormat","RedIntegerFormat","RGFormat","RGIntegerFormat","RGBAIntegerFormat","RGB_S3TC_DXT1_Format","RGBA_S3TC_DXT1_Format","RGBA_S3TC_DXT3_Format","RGBA_S3TC_DXT5_Format","RGB_PVRTC_4BPPV1_Format","RGB_PVRTC_2BPPV1_Format","RGBA_PVRTC_4BPPV1_Format","RGBA_PVRTC_2BPPV1_Format","RGB_ETC1_Format","RGB_ETC2_Format","RGBA_ETC2_EAC_Format","RGBA_ASTC_4x4_Format","RGBA_ASTC_5x4_Format","RGBA_ASTC_5x5_Format","RGBA_ASTC_6x5_Format","RGBA_ASTC_6x6_Format","RGBA_ASTC_8x5_Format","RGBA_ASTC_8x6_Format","RGBA_ASTC_8x8_Format","RGBA_ASTC_10x5_Format","RGBA_ASTC_10x6_Format","RGBA_ASTC_10x8_Format","RGBA_ASTC_10x10_Format","RGBA_ASTC_12x10_Format","RGBA_ASTC_12x12_Format","RGBA_BPTC_Format","RGB_BPTC_SIGNED_Format","RGB_BPTC_UNSIGNED_Format","RED_RGTC1_Format","SIGNED_RED_RGTC1_Format","RED_GREEN_RGTC2_Format","SIGNED_RED_GREEN_RGTC2_Format","BasicDepthPacking","RGBADepthPacking","TangentSpaceNormalMap","ObjectSpaceNormalMap","NoColorSpace","SRGBColorSpace","LinearSRGBColorSpace","DisplayP3ColorSpace","LinearDisplayP3ColorSpace","LinearTransfer","SRGBTransfer","Rec709Primaries","P3Primaries","KeepStencilOp","AlwaysStencilFunc","NeverCompare","LessCompare","EqualCompare","LessEqualCompare","GreaterCompare","NotEqualCompare","GreaterEqualCompare","AlwaysCompare","StaticDrawUsage","GLSL3","WebGLCoordinateSystem","WebGPUCoordinateSystem","EventDispatcher","type","listener","listeners","listenerArray","index","event","array","i","l","_lut","_seed","DEG2RAD","RAD2DEG","generateUUID","d0","d1","d2","d3","clamp","value","min","max","euclideanModulo","n","m","mapLinear","x","a1","a2","b1","b2","inverseLerp","y","lerp","damp","lambda","dt","pingpong","length","smoothstep","smootherstep","randInt","low","high","randFloat","randFloatSpread","range","seededRandom","s","t","degToRad","degrees","radToDeg","radians","isPowerOfTwo","ceilPowerOfTwo","floorPowerOfTwo","setQuaternionFromProperEuler","q","a","b","c","order","cos","sin","c2","s2","c13","s13","c1_3","s1_3","c3_1","s3_1","denormalize","normalize","MathUtils","Vector2","scalar","v","e","minVal","maxVal","denominator","theta","dx","dy","alpha","v1","v2","offset","attribute","center","angle","Matrix3","n11","n12","n13","n21","n22","n23","n31","n32","n33","te","me","xAxis","yAxis","zAxis","ae","be","a11","a12","a13","a21","a22","a23","a31","a32","a33","b11","b12","b13","b21","b22","b23","b31","b32","b33","d","f","g","h","t11","t12","t13","det","detInv","tmp","matrix4","r","tx","ty","sx","sy","rotation","cx","cy","_m3","matrix","arrayNeedsUint32","createElementNS","name","createCanvasElement","canvas","_cache","warnOnce","message","probeAsync","gl","sync","interval","resolve","reject","probe","LINEAR_SRGB_TO_LINEAR_DISPLAY_P3","LINEAR_DISPLAY_P3_TO_LINEAR_SRGB","COLOR_SPACES","color","SUPPORTED_WORKING_COLOR_SPACES","ColorManagement","colorSpace","sourceColorSpace","targetColorSpace","sourceToReference","targetFromReference","SRGBToLinear","LinearToSRGB","_canvas","ImageUtils","image","context","imageData","data","_sourceId","Source","meta","isRootObject","output","url","serializeImage","_textureId","Texture","mapping","wrapS","wrapT","magFilter","minFilter","format","anisotropy","source","uv","Vector4","z","w","m11","m12","m13","m21","m22","m23","m31","m32","m33","xx","yy","zz","xy","xz","yz","RenderTarget","width","height","options","texture","count","depth","il","WebGLRenderTarget","DataArrayTexture","layerIndex","Data3DTexture","Quaternion","dst","dstOffset","src0","srcOffset0","src1","srcOffset1","x0","y0","z0","w0","x1","y1","z1","w1","dir","sqrSin","len","tDir","quaternion","euler","update","c1","c3","s1","s3","axis","halfAngle","trace","vFrom","vTo","step","qax","qay","qaz","qaw","qbx","qby","qbz","qbw","qb","cosHalfTheta","sqrSinHalfTheta","sinHalfTheta","halfTheta","ratioA","ratioB","qa","theta1","theta2","r1","r2","callback","Vector3","_quaternion$4","vx","vy","vz","qx","qy","qz","qw","tz","camera","ax","ay","az","bx","by","bz","planeNormal","_vector$c","normal","dz","radius","phi","sinPhiRadius","sz","u","Box3","_vector$b","points","size","halfSize","object","precise","box","target","point","vector","geometry","positionAttribute","_box$4","children","sphere","plane","triangle","_center","_extents","_v0$2","_v1$7","_v2$4","_f0","_f1","_f2","axes","satForAxes","_triangleNormal","_points","_testAxis","v0","extents","j","p0","p1","p2","_box$3","_v1$6","_v2$3","Sphere","optionalCenter","maxRadiusSq","radiusSum","deltaLengthSq","lengthSq","delta","_vector$a","_segCenter","_segDir","_diff","_edge1","_edge2","_normal$1","Ray","origin","direction","ray","directionDistance","optionalPointOnRay","optionalPointOnSegment","segExtent","a01","b0","s0","sqrDist","extDet","invDet","tca","radius2","thc","t0","t1","distToPoint","tmin","tmax","tymin","tymax","tzmin","tzmax","invdirx","invdiry","invdirz","backfaceCulling","DdN","sign","DdQxE2","DdE1xQ","QdN","Matrix4","n14","n24","n34","n41","n42","n43","n44","scaleX","_v1$5","scaleY","scaleZ","af","bf","ce","cf","de","df","ac","ad","bc","bd","_zero","_one","eye","up","_z","_x","_y","a14","a24","a34","a41","a42","a43","a44","b14","b24","b34","b41","b42","b43","b44","t14","scaleXSq","scaleYSq","scaleZSq","yx","zx","zy","position","scale","x2","y2","z2","wx","wy","wz","_m1$4","invSX","invSY","invSZ","left","right","top","bottom","near","far","coordinateSystem","p","zInv","_matrix$2","_quaternion$3","Euler","newOrder","Layers","channel","layers","_object3DId","_v1$4","_q1","_m1$3","_target","_position$3","_scale$2","_quaternion$2","_xAxis","_yAxis","_zAxis","_addedEvent","_removedEvent","_childaddedEvent","_childremovedEvent","Object3D","onRotationChange","onQuaternionChange","distance","parent","id","result","force","updateParents","updateChildren","bound","serialize","library","element","parameters","shapes","shape","uuids","animation","geometries","extractFromCache","materials","textures","images","skeletons","animations","nodes","cache","values","key","recursive","child","_v0$1","_v1$3","_v2$2","_v3$2","_vab","_vac","_vbc","_vap","_vbp","_vcp","Triangle","targetLengthSq","dot00","dot01","dot02","dot11","dot12","denom","invDenom","p3","v3","i0","i1","i2","d4","vc","d5","d6","vb","va","_colorKeywords","_hslA","_hslB","hue2rgb","Color","hex","style","handleAlpha","string","components","_color","hue","saturation","lightness","color1","color2","_materialId","Material","newValue","currentValue","srcPlanes","dstPlanes","MeshBasicMaterial","_tables","_generateTables","buffer","floatView","uint32View","baseTable","shiftTable","mantissaTable","exponentTable","offsetTable","toHalfFloat","val","fromHalfFloat","DataUtils","_vector$9","_vector2$1","BufferAttribute","itemSize","normalized","start","index1","index2","component","Uint16BufferAttribute","Uint32BufferAttribute","Float32BufferAttribute","_id$2","_m1$2","_obj","_offset","_box$2","_boxMorphTargets","_vector$8","BufferGeometry","materialIndex","normalMatrix","tangent","morphAttributesPosition","morphAttribute","morphTargetsRelative","jl","attributes","normalAttribute","uvAttribute","tangentAttribute","tan1","tan2","vA","vB","vC","uvA","uvB","uvC","sdir","tdir","handleTriangle","groups","group","tmp2","n2","handleVertex","pA","pB","pC","nA","nB","nC","cb","ab","normals","convertBufferAttribute","indices","array2","geometry2","newAttribute","morphAttributes","morphArray","hasMorphAttributes","attributeArray","boundingSphere","boundingBox","_inverseMatrix$3","_ray$3","_sphere$6","_sphereHitAt","_vA$1","_vB$1","_vC$1","_tempA","_morphA","_uvA$1","_uvB$1","_uvC$1","_normalA","_normalB","_normalC","_intersectionPoint","_intersectionPointWorld","Mesh","material","keys","ml","morphPosition","morphInfluences","influence","raycaster","intersects","matrixWorld","rayLocalSpace","intersection","uv1","drawRange","groupMaterial","end","checkGeometryIntersection","checkIntersection$1","intersect","face","BoxGeometry","widthSegments","heightSegments","depthSegments","scope","vertices","uvs","numberOfVertices","groupStart","buildPlane","udir","vdir","gridX","gridY","segmentWidth","segmentHeight","widthHalf","heightHalf","depthHalf","gridX1","gridY1","vertexCounter","groupCount","iy","ix","cloneUniforms","src","property","mergeUniforms","uniforms","merged","cloneUniformsGroups","getUnlitUniformColorSpace","renderer","currentRenderTarget","UniformsUtils","default_vertex","default_fragment","ShaderMaterial","extensions","Camera","_v3$1","_minTarget","_maxTarget","PerspectiveCamera","fov","aspect","focalLength","vExtentSlope","minTarget","maxTarget","fullWidth","fullHeight","view","skew","CubeCamera","renderTarget","cameraPX","cameraNX","cameraPY","cameraNY","cameraPZ","cameraNZ","cameras","scene","activeMipmapLevel","currentActiveCubeFace","currentActiveMipmapLevel","currentXrEnabled","generateMipmaps","CubeTexture","WebGLCubeRenderTarget","shader","mesh","currentMinFilter","stencil","_vector1","_vector2","_normalMatrix","Plane","constant","inverseNormalLength","line","startSign","endSign","optionalNormalMatrix","referencePoint","_sphere$5","_vector$7","Frustum","p4","p5","planes","frustum","me0","me1","me2","me3","me4","me5","me6","me7","me8","me9","me10","me11","me12","me13","me14","me15","sprite","negRadius","WebGLAnimation","isAnimating","animationLoop","requestId","onAnimationFrame","time","frame","WebGLAttributes","buffers","createBuffer","bufferType","usage","updateBuffer","updateRange","updateRanges","get","remove","cached","PlaneGeometry","width_half","height_half","segment_width","segment_height","alphahash_fragment","alphahash_pars_fragment","alphamap_fragment","alphamap_pars_fragment","alphatest_fragment","alphatest_pars_fragment","aomap_fragment","aomap_pars_fragment","batching_pars_vertex","batching_vertex","begin_vertex","beginnormal_vertex","bsdfs","iridescence_fragment","bumpmap_pars_fragment","clipping_planes_fragment","clipping_planes_pars_fragment","clipping_planes_pars_vertex","clipping_planes_vertex","color_fragment","color_pars_fragment","color_pars_vertex","color_vertex","common","cube_uv_reflection_fragment","defaultnormal_vertex","displacementmap_pars_vertex","displacementmap_vertex","emissivemap_fragment","emissivemap_pars_fragment","colorspace_fragment","colorspace_pars_fragment","envmap_fragment","envmap_common_pars_fragment","envmap_pars_fragment","envmap_pars_vertex","envmap_vertex","fog_vertex","fog_pars_vertex","fog_fragment","fog_pars_fragment","gradientmap_pars_fragment","lightmap_pars_fragment","lights_lambert_fragment","lights_lambert_pars_fragment","lights_pars_begin","envmap_physical_pars_fragment","lights_toon_fragment","lights_toon_pars_fragment","lights_phong_fragment","lights_phong_pars_fragment","lights_physical_fragment","lights_physical_pars_fragment","lights_fragment_begin","lights_fragment_maps","lights_fragment_end","logdepthbuf_fragment","logdepthbuf_pars_fragment","logdepthbuf_pars_vertex","logdepthbuf_vertex","map_fragment","map_pars_fragment","map_particle_fragment","map_particle_pars_fragment","metalnessmap_fragment","metalnessmap_pars_fragment","morphinstance_vertex","morphcolor_vertex","morphnormal_vertex","morphtarget_pars_vertex","morphtarget_vertex","normal_fragment_begin","normal_fragment_maps","normal_pars_fragment","normal_pars_vertex","normal_vertex","normalmap_pars_fragment","clearcoat_normal_fragment_begin","clearcoat_normal_fragment_maps","clearcoat_pars_fragment","iridescence_pars_fragment","opaque_fragment","packing","premultiplied_alpha_fragment","project_vertex","dithering_fragment","dithering_pars_fragment","roughnessmap_fragment","roughnessmap_pars_fragment","shadowmap_pars_fragment","shadowmap_pars_vertex","shadowmap_vertex","shadowmask_pars_fragment","skinbase_vertex","skinning_pars_vertex","skinning_vertex","skinnormal_vertex","specularmap_fragment","specularmap_pars_fragment","tonemapping_fragment","tonemapping_pars_fragment","transmission_fragment","transmission_pars_fragment","uv_pars_fragment","uv_pars_vertex","uv_vertex","worldpos_vertex","vertex$h","fragment$h","vertex$g","fragment$g","vertex$f","fragment$f","vertex$e","fragment$e","vertex$d","fragment$d","vertex$c","fragment$c","vertex$b","fragment$b","vertex$a","fragment$a","vertex$9","fragment$9","vertex$8","fragment$8","vertex$7","fragment$7","vertex$6","fragment$6","vertex$5","fragment$5","vertex$4","fragment$4","vertex$3","fragment$3","vertex$2","fragment$2","vertex$1","fragment$1","ShaderChunk","UniformsLib","ShaderLib","_rgb","_e1$1","_m1$1","WebGLBackground","cubemaps","cubeuvmaps","state","objects","premultipliedAlpha","clearColor","clearAlpha","planeMesh","boxMesh","currentBackground","currentBackgroundVersion","currentTonemapping","getBackground","background","render","forceClear","setClear","environmentBlendMode","addToRenderList","renderList","WebGLBindingStates","maxVertexAttributes","bindingStates","defaultState","createBindingState","currentState","forceUpdate","setup","program","updateBuffers","getBindingState","bindVertexArrayObject","needsUpdate","saveCache","setupVertexAttributes","createVertexArrayObject","vao","deleteVertexArrayObject","wireframe","programMap","stateMap","newAttributes","enabledAttributes","attributeDivisors","cachedAttributes","geometryAttributes","attributesNum","programAttributes","cachedAttribute","geometryAttribute","initAttributes","enableAttribute","enableAttributeAndDivisor","meshPerAttribute","disableUnusedAttributes","vertexAttribPointer","stride","integer","materialDefaultAttributeValues","programAttribute","bytesPerElement","dispose","reset","geometryId","programId","releaseStatesOfGeometry","releaseStatesOfProgram","resetDefaultState","WebGLBufferRenderer","info","mode","setMode","renderInstances","primcount","renderMultiDraw","starts","counts","drawCount","elementCount","renderMultiDrawInstances","extension","WebGLCapabilities","utils","maxAnisotropy","getMaxAnisotropy","textureFormatReadable","textureFormat","textureTypeReadable","textureType","halfFloatSupportedByExt","getMaxPrecision","precision","maxPrecision","logarithmicDepthBuffer","maxTextures","maxVertexTextures","maxTextureSize","maxCubemapSize","maxAttributes","maxVertexUniforms","maxVaryings","maxFragmentUniforms","vertexTextures","maxSamples","WebGLClipping","properties","globalState","numGlobalPlanes","localClippingEnabled","renderingShadows","viewNormalMatrix","uniform","enableLocalClipping","enabled","projectPlanes","useCache","clipIntersection","clipShadows","materialProperties","resetGlobalState","nGlobal","lGlobal","dstArray","skipTransform","nPlanes","flatSize","viewMatrix","i4","WebGLCubeMaps","mapTextureMapping","cubemap","onTextureDispose","OrthographicCamera","scaleW","scaleH","LOD_MIN","EXTRA_LOD_SIGMA","MAX_SAMPLES","_flatCamera","_clearColor","_oldTarget","_oldActiveCubeFace","_oldActiveMipmapLevel","_oldXrEnabled","PHI","INV_PHI","_axisDirections","PMREMGenerator","sigma","cubeUVRenderTarget","equirectangular","_getCubemapMaterial","_getEquirectMaterial","cubeSize","outputTarget","_setViewport","params","_createRenderTarget","_lodMax","_createPlanes","_getBlurShader","tmpMesh","cubeCamera","upSign","forwardSign","originalAutoClear","toneMapping","backgroundMaterial","backgroundBox","useSolidColor","col","isCubeTexture","autoClear","poleAxis","lodIn","lodOut","pingPongRenderTarget","targetIn","targetOut","sigmaRadians","blurMaterial","STANDARD_DEVIATIONS","blurMesh","blurUniforms","pixels","radiansPerPixel","sigmaPixels","samples","weights","sum","weight","outputSize","lodMax","lodPlanes","sizeLods","sigmas","lod","totalLods","sizeLod","texelSize","cubeFaces","positionSize","uvSize","faceIndexSize","faceIndex","coordinates","fill","_getCommonVertexShader","WebGLCubeUVMaps","cubeUVmaps","pmremGenerator","isEquirectMap","isCubeMap","currentPMREMVersion","isCubeTextureComplete","cubemapUV","WebGLExtensions","getExtension","WebGLGeometries","wireframeAttributes","onGeometryDispose","updateWireframeAttribute","geometryIndex","geometryPosition","version","previousAttribute","getWireframeAttribute","currentAttribute","WebGLIndexedBufferRenderer","setIndex","WebGLInfo","memory","instanceCount","WebGLMorphtargets","capabilities","morphTextures","morph","objectInfluences","morphTargetsCount","entry","disposeTexture","hasMorphPosition","hasMorphNormals","hasMorphColors","morphTargets","morphNormals","morphColors","vertexDataCount","vertexDataStride","morphTarget","morphNormal","morphColor","morphInfluencesSum","morphBaseInfluence","WebGLObjects","updateMap","buffergeometry","onInstancedMeshDispose","skeleton","instancedMesh","DepthTexture","emptyTexture","emptyShadowTexture","emptyArrayTexture","empty3dTexture","emptyCubeTexture","arrayCacheF32","arrayCacheI32","mat4array","mat3array","mat2array","flatten","nBlocks","blockSize","firstElem","arraysEqual","copyArray","allocTexUnits","setValueV1f","setValueV2f","setValueV3f","setValueV4f","setValueM2","elements","setValueM3","setValueM4","setValueV1i","setValueV2i","setValueV3i","setValueV4i","setValueV1ui","setValueV2ui","setValueV3ui","setValueV4ui","setValueT1","unit","emptyTexture2D","setValueT3D1","setValueT6","setValueT2DArray1","getSingularSetter","setValueV1fArray","setValueV2fArray","setValueV3fArray","setValueV4fArray","setValueM2Array","setValueM3Array","setValueM4Array","setValueV1iArray","setValueV2iArray","setValueV3iArray","setValueV4iArray","setValueV1uiArray","setValueV2uiArray","setValueV3uiArray","setValueV4uiArray","setValueT1Array","units","setValueT3DArray","setValueT6Array","setValueT2DArrayArray","getPureArraySetter","SingleUniform","activeInfo","addr","PureArrayUniform","StructuredUniform","seq","RePathPart","addUniform","container","uniformObject","parseUniform","path","pathLength","match","matchEnd","idIsIndex","subscript","next","WebGLUniforms","WebGLShader","COMPLETION_STATUS_KHR","programIdCount","handleSource","errorLine","lines","lines2","from","to","getEncodingComponents","workingPrimaries","encodingPrimaries","gamutMapping","getShaderErrors","status","errors","errorMatches","getTexelEncodingFunction","functionName","getToneMappingFunction","toneMappingName","generateVertexExtensions","filterEmptyLine","generateDefines","defines","chunks","fetchAttributeLocations","locationSize","replaceLightNums","numSpotLightCoords","replaceClippingPlaneNums","includePattern","resolveIncludes","includeReplacer","shaderChunkMap","include","newInclude","unrollLoopPattern","unrollLoops","loopReplacer","snippet","generatePrecision","precisionstring","generateShadowMapTypeDefine","shadowMapTypeDefine","generateEnvMapTypeDefine","envMapTypeDefine","generateEnvMapModeDefine","envMapModeDefine","generateEnvMapBlendingDefine","envMapBlendingDefine","generateCubeUVSize","imageHeight","maxMip","texelHeight","WebGLProgram","cacheKey","vertexShader","fragmentShader","envMapCubeUVSize","customVertexExtensions","customDefines","prefixVertex","prefixFragment","versionString","vertexGlsl","fragmentGlsl","glVertexShader","glFragmentShader","onFirstUse","self","programLog","vertexLog","fragmentLog","runnable","haveDiagnostics","vertexErrors","fragmentErrors","cachedUniforms","programReady","_id$1","WebGLShaderCache","vertexShaderStage","fragmentShaderStage","materialShaders","shaderStage","set","code","stage","WebGLShaderStage","WebGLPrograms","clipping","_programLayers","_customShaders","_activeChannels","programs","SUPPORTS_VERTEX_TEXTURES","shaderIDs","getChannel","getParameters","lights","shadows","fog","environment","envMap","envMapCubeUVHeight","shaderID","morphTextureStride","customVertexShaderID","customFragmentShaderID","IS_INSTANCEDMESH","IS_BATCHEDMESH","HAS_MAP","HAS_MATCAP","HAS_ENVMAP","HAS_AOMAP","HAS_LIGHTMAP","HAS_BUMPMAP","HAS_NORMALMAP","HAS_DISPLACEMENTMAP","HAS_EMISSIVEMAP","HAS_METALNESSMAP","HAS_ROUGHNESSMAP","HAS_ANISOTROPY","HAS_CLEARCOAT","HAS_DISPERSION","HAS_IRIDESCENCE","HAS_SHEEN","HAS_TRANSMISSION","HAS_ANISOTROPYMAP","HAS_CLEARCOATMAP","HAS_CLEARCOAT_NORMALMAP","HAS_CLEARCOAT_ROUGHNESSMAP","HAS_IRIDESCENCEMAP","HAS_IRIDESCENCE_THICKNESSMAP","HAS_SHEEN_COLORMAP","HAS_SHEEN_ROUGHNESSMAP","HAS_SPECULARMAP","HAS_SPECULAR_COLORMAP","HAS_SPECULAR_INTENSITYMAP","HAS_TRANSMISSIONMAP","HAS_THICKNESSMAP","HAS_GRADIENTMAP","HAS_ALPHAMAP","HAS_ALPHATEST","HAS_ALPHAHASH","HAS_EXTENSIONS","getProgramCacheKey","getProgramCacheKeyParameters","getProgramCacheKeyBooleans","getUniforms","acquireProgram","pl","preexistingProgram","releaseProgram","releaseShaderCache","WebGLProperties","map","painterSortStable","reversePainterSortStable","WebGLRenderList","renderItems","renderItemsIndex","opaque","transmissive","transparent","init","getNextRenderItem","groupOrder","renderItem","push","unshift","sort","customOpaqueSort","customTransparentSort","finish","WebGLRenderLists","lists","renderCallDepth","listArray","list","UniformsCache","light","ShadowUniformsCache","nextVersion","shadowCastingAndTexturingLightsFirst","lightA","lightB","WebGLLights","shadowCache","vector3","matrix42","directionalLength","pointLength","spotLength","rectAreaLength","hemiLength","numDirectionalShadows","numPointShadows","numSpotShadows","numSpotMaps","numSpotShadowsWithMaps","numLightProbes","intensity","shadowMap","shadow","shadowUniforms","hash","setupView","WebGLRenderState","lightsArray","shadowsArray","pushLight","pushShadow","shadowLight","setupLights","setupLightsView","WebGLRenderStates","renderStates","renderStateArray","renderState","MeshDepthMaterial","MeshDistanceMaterial","vertex","fragment","WebGLShadowMap","_frustum","_shadowMapSize","_viewportSize","_viewport","_depthMaterial","_distanceMaterial","_materialCache","_maxTextureSize","shadowSide","shadowMaterialVertical","shadowMaterialHorizontal","fullScreenTri","fullScreenMesh","_previousType","activeCubeFace","_state","toVSM","fromVSM","shadowFrameExtents","pars","viewportCount","vp","viewport","renderObject","VSMPass","getDepthMaterial","customMaterial","keyA","keyB","materialsForVariant","cachedMaterial","onMaterialDispose","shadowCamera","k","kl","depthMaterial","uuid","WebGLState","ColorBuffer","locked","currentColorMask","currentColorClear","colorMask","lock","DepthBuffer","currentDepthMask","currentDepthFunc","currentDepthClear","depthTest","enable","disable","depthMask","depthFunc","StencilBuffer","currentStencilMask","currentStencilFunc","currentStencilRef","currentStencilFuncMask","currentStencilFail","currentStencilZFail","currentStencilZPass","currentStencilClear","stencilTest","stencilMask","stencilFunc","stencilRef","stencilFail","stencilZFail","stencilZPass","colorBuffer","depthBuffer","stencilBuffer","uboBindings","uboProgramMap","enabledCapabilities","currentBoundFramebuffers","currentDrawbuffers","defaultDrawbuffers","currentProgram","currentBlendingEnabled","currentBlending","currentBlendEquation","currentBlendSrc","currentBlendDst","currentBlendEquationAlpha","currentBlendSrcAlpha","currentBlendDstAlpha","currentBlendColor","currentBlendAlpha","currentPremultipledAlpha","currentFlipSided","currentCullFace","currentLineWidth","currentPolygonOffsetFactor","currentPolygonOffsetUnits","lineWidthAvailable","glVersion","currentTextureSlot","currentBoundTextures","scissorParam","viewportParam","currentScissor","currentViewport","createTexture","dimensions","emptyTextures","setFlipSided","setCullFace","setBlending","bindFramebuffer","framebuffer","drawBuffers","useProgram","equationToGL","factorToGL","blending","blendEquation","blendSrc","blendDst","blendEquationAlpha","blendSrcAlpha","blendDstAlpha","blendColor","blendAlpha","setMaterial","frontFaceCW","flipSided","stencilWrite","setPolygonOffset","cullFace","setLineWidth","polygonOffset","factor","setScissorTest","scissorTest","activeTexture","webglSlot","bindTexture","webglType","webglTexture","boundTexture","unbindTexture","compressedTexImage2D","error","compressedTexImage3D","texSubImage2D","texSubImage3D","compressedTexSubImage2D","compressedTexSubImage3D","texStorage2D","texStorage3D","texImage2D","texImage3D","scissor","updateUBOMapping","uniformsGroup","blockIndex","uniformBlockBinding","getByteLength","typeByteLength","getTextureTypeByteLength","WebGLTextures","_gl","multisampledRTTExt","supportsInvalidateFramebuffer","_imageDimensions","_videoTextures","_sources","useOffscreenCanvas","createCanvas","resizeImage","needsNewCanvas","maxSize","getDimensions","textureNeedsGenerateMipmaps","generateMipmap","getInternalFormat","internalFormatName","glFormat","glType","forceLinearTransfer","internalFormat","transfer","getInternalDepthFormat","useStencil","depthType","glInternalFormat","getMipLevels","deallocateTexture","onRenderTargetDispose","deallocateRenderTarget","textureProperties","webglTextures","deleteTexture","renderTargetProperties","level","attachmentProperties","textureUnits","resetTextureUnits","allocateTextureUnit","textureUnit","getTextureCacheKey","setTexture2D","slot","updateVideoTexture","uploadTexture","setTexture2DArray","setTexture3D","setTextureCube","uploadCubeTexture","wrappingToGL","filterToGL","compareToGL","setTextureParameters","initTexture","forceUpload","textureCacheKey","sourceProperties","texturePrimaries","unpackConversion","verifyColorSpace","mipmap","mipmaps","useTexStorage","allocateMemory","dataReady","levels","layerByteLength","layerData","isCompressed","isDataTexture","cubeImage","mipmapImage","setupFrameBufferTexture","attachment","textureTarget","useMultisampledRTT","getRenderTargetSamples","setupRenderBufferStorage","renderbuffer","isMultisample","depthTexture","glAttachmentType","setupDepthTexture","webglDepthTexture","setupDepthRenderbuffer","isCube","rebindTextures","colorTexture","setupRenderTarget","isMultipleRenderTargets","glTextureType","updateRenderTargetMipmap","invalidationArrayRead","invalidationArrayDraw","updateMultisampleRenderTarget","mask","depthStyle","WebGLUtils","convert","ArrayCamera","Group","_moveEvent","WebXRController","inputSource","hand","inputjoint","referenceSpace","inputPose","gripPose","handPose","targetRay","grip","jointPose","joint","indexTip","thumbTip","distanceToPinch","threshold","_occlusion_vertex","_occlusion_fragment","WebXRDepthSensing","depthData","texProps","cameraXR","WebXRManager","session","framebufferScaleFactor","referenceSpaceType","foveation","customReferenceSpace","pose","glBinding","glProjLayer","glBaseLayer","xrFrame","depthSensing","initialRenderTarget","newRenderTarget","controllers","controllerInputSources","currentSize","currentPixelRatio","cameraL","cameraR","_currentDepthNear","_currentDepthFar","controller","onSessionEvent","controllerIndex","onSessionEnd","onInputSourcesChange","space","layerInit","depthFormat","glDepthFormat","projectionlayerInit","cameraLPos","cameraRPos","setProjectionFromUnion","ipd","projL","projR","topFov","bottomFov","leftFov","rightFov","zOffset","xOffset","near2","far2","left2","right2","top2","bottom2","updateCamera","updateUserCamera","onAnimationFrameCallback","views","cameraXRNeedsUpdate","glSubImage","enabledFeatures","_e1","_m1","WebGLMaterials","refreshTransformUniform","refreshFogUniforms","refreshMaterialUniforms","pixelRatio","transmissionRenderTarget","refreshUniformsCommon","refreshUniformsToon","refreshUniformsPhong","refreshUniformsStandard","refreshUniformsPhysical","refreshUniformsMatcap","refreshUniformsDistance","refreshUniformsLine","refreshUniformsDash","refreshUniformsPoints","refreshUniformsSprites","envMapRotation","WebGLUniformsGroups","updateList","allocatedBindingPoints","maxBindingPoints","bind","webglProgram","prepareUniformsGroup","onUniformsGroupsDispose","updateBufferData","bindingPointIndex","allocateBindingPointIndex","uniformArray","hasUniformChanged","arrayOffset","getUniformSize","indexArray","indexString","cachedObject","chunkSize","chunkOffsetUniform","chunkOffset","WebGLRenderer","antialias","preserveDrawingBuffer","powerPreference","failIfMajorPerformanceCaveat","_alpha","uintClearColor","intClearColor","currentRenderList","currentRenderState","renderListStack","renderStateStack","_this","_isContextLost","_currentActiveCubeFace","_currentActiveMipmapLevel","_currentRenderTarget","_currentMaterialId","_currentCamera","_currentViewport","_currentScissor","_currentScissorTest","_currentClearColor","_currentClearAlpha","_width","_height","_pixelRatio","_opaqueSort","_transparentSort","_scissor","_scissorTest","_clippingEnabled","_localClippingEnabled","_projScreenMatrix","_vector3","_vector4","_emptyScene","_renderBackground","getTargetPixelRatio","getContext","contextName","contextAttributes","onContextLost","onContextRestore","onContextCreationError","programCache","renderLists","morphtargets","bufferRenderer","indexedBufferRenderer","uniformsGroups","initGLContext","xr","updateStyle","boolean","method","bits","isIntegerFormat","targetFormat","targetType","isUnsignedType","onXRSessionStart","onXRSessionEnd","infoAutoReset","shadowMapEnabled","shadowMapAutoUpdate","shadowMapNeedsUpdate","shadowMapType","deallocateMaterial","releaseMaterialProgramReferences","setProgram","rangeFactor","drawStart","drawEnd","lineWidth","maxInstanceCount","prepareMaterial","getProgram","targetScene","material2","checkMaterialsReady","depthSensingMesh","projectObject","opaqueObjects","transmissiveObjects","camera2","renderTransmissionPass","renderScene","sortObjects","transparentObjects","renderObjects","activeViewport","currentToneMapping","currentCameraViewport","renderTargetNeedsUpdate","currentSide","overrideMaterial","lightsStateVersion","programCacheKey","updateCommonMaterialProperties","materialNeedsLights","getUniformList","progUniforms","vertexAlphas","vertexTangents","needsProgramChange","refreshProgram","refreshMaterial","refreshLights","p_uniforms","m_uniforms","uCamPos","markUniformsLightsNeedsUpdate","defaultFramebuffer","useDefaultFramebuffer","isRenderTarget3D","__webglFramebuffer","layer","activeCubeFaceIndex","glBuffer","levelScale","srcTexture","dstTexture","srcRegion","dstPosition","minX","minY","dstX","dstY","currentUnpackRowLen","currentUnpackImageHeight","currentUnpackSkipPixels","currentUnpackSkipRows","currentUnpackSkipImages","minZ","dstZ","glTarget","Scene","DataTexture","Cache","file","LoadingManager","onLoad","onProgress","onError","isLoading","itemsLoaded","itemsTotal","urlModifier","handlers","transform","regex","loader","DefaultLoadingManager","Loader","manager","crossOrigin","resourcePath","requestHeader","loading","HttpError","response","FileLoader","req","mimeType","responseType","callbacks","reader","contentLength","total","lengthComputable","loaded","stream","readData","done","text","exec","label","decoder","err","DataTextureLoader","texData","Clock","autoStart","now","diff","newTime","Spherical","other","_changeEvent","_startEvent","_endEvent","_ray","_plane","TILT_LIMIT","OrbitControls","domElement","spherical","onKeyDown","STATE","quat","quatInverse","lastPosition","lastQuaternion","lastTargetPosition","twoPI","deltaTime","rotateLeft","getAutoRotationAngle","sphericalDelta","panOffset","zoomChanged","performCursorZoom","clampDistance","prevRadius","newRadius","radiusDelta","dollyDirection","mouseBefore","mouse","prevZoom","mouseAfter","EPS","onContextMenu","onPointerDown","onPointerUp","onMouseWheel","onPointerMove","interceptControlDown","rotateStart","rotateEnd","rotateDelta","panStart","panEnd","panDelta","dollyStart","dollyEnd","dollyDelta","pointers","pointerPositions","controlActive","getZoomScale","normalizedDelta","rotateUp","panLeft","objectMatrix","panUp","pan","deltaX","deltaY","targetDistance","dollyOut","dollyScale","dollyIn","updateZoomParameters","rect","dist","handleMouseDownRotate","handleMouseDownDolly","handleMouseDownPan","handleMouseMoveRotate","handleMouseMoveDolly","handleMouseMovePan","handleMouseWheel","handleKeyDown","handleTouchStartRotate","getSecondPointerPosition","handleTouchStartPan","handleTouchStartDolly","handleTouchStartDollyPan","handleTouchStartDollyRotate","handleTouchMoveRotate","handleTouchMovePan","handleTouchMoveDolly","centerX","centerY","handleTouchMoveDollyPan","handleTouchMoveDollyRotate","isTrackingPointer","addPointer","onTouchStart","onMouseDown","onTouchMove","onMouseMove","removePointer","pointerId","mouseAction","customWheelEvent","newEvent","interceptControlUp","trackPointer","Controller","className","elementType","disabled","show","decimals","listen","curValue","BooleanController","normalizeColorString","STRING","INT","ARRAY","rgbScale","int","OBJECT","FORMATS","getColorFormat","ColorController","tryParse","FunctionController","NumberController","stepExplicit","explicit","percent","onInput","increment","onWheel","testingForVerticalDrag","initClientX","initClientY","prevClientY","initValue","dragDelta","DRAG_THRESH","onMouseUp","onFocus","onBlur","setValueFromX","clientX","mouseDown","mouseMove","mouseUp","testingForScroll","prevClientX","beginTouchDrag","onTouchEnd","callOnFinishChange","WHEEL_DEBOUNCE_TIME","wheelFinishChangeTimeout","active","mult","root","OptionController","$option","StringController","stylesheet","_injectStyles","cssContent","injected","before","stylesInjected","GUI","autoPlace","title","closeFolders","injectStyles","touchStyles","$1","initialValue","folder","obj","open","closed","initialHeight","onTransitionEnd","targetHeight","changedGUI","folders","vertex_default","fragment_default","RGBELoader","rgbe_error","rgbe_error_code","msg","NEWLINE","fgets","lineLimit","consume","chunk","RGBE_ReadHeader","magic_token_re","gamma_re","exposure_re","format_re","dimensions_re","header","RGBE_ReadPixels_RLE","scanline_width","data_rgba","pos","ptr_end","rgbeStart","scanline_buffer","num_scanlines","ptr","isEncodedRun","byteValue","off","RGBEByteToRGBFloat","sourceArray","sourceOffset","destArray","destOffset","RGBEByteToRGBHalf","byteArray","rgbe_header_info","image_rgba_data","numElements","floatArray","halfArray","onLoadCallback","gui","debugParams","rgbeLoader","THREE.Scene","THREE.SRGBColorSpace","waterGeometry","THREE.PlaneGeometry","waterMaterial","THREE.ShaderMaterial","waterVertexShader","waterFragmentShader","THREE.Vector2","THREE.Color","wavesFolder","colorFolder","perlinNoiseFolder","water","THREE.Mesh","sizes","THREE.PerspectiveCamera","controls","THREE.WebGLRenderer","THREE.PCFSoftShadowMap","clock","THREE.Clock","tick","elapsedTime"],"mappings":"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AA;AAAA;AAAA;AAAA;AAAA,2DAE7BC,GAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE3BC,GAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEhCC,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE1BC,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAExBC,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEnBC,GAA2B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAE3BC,GAAkB;AAAA;AAAA;AAAA;AAAA;AAAA,QAElBC,GAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEvBC,GAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAElBC,GAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEpBC,GAAuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEvBC,GAA4B;AAAA;AAAA,QAE5BC,GAAuB;AAAA;AAAA,QAEvBC,GAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wDAE5BC,GAAwB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAExBC,GAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAE7BC,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEnBC,GAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEjBC,GAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEZC,GAAkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAEtB,MAAMC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEXC,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEbC,GAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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","x_google_ignoreList":[0,1,2,5]} \ No newline at end of file diff --git a/22-raging-sea/dist/assets/index-Fi76PK1B.css b/22-raging-sea/dist/assets/index-Fi76PK1B.css new file mode 100644 index 0000000..33254fe --- /dev/null +++ b/22-raging-sea/dist/assets/index-Fi76PK1B.css @@ -0,0 +1 @@ +*{margin:0;padding:0}html,body{overflow:hidden}.webgl{position:fixed;top:0;left:0;outline:none} diff --git a/22-raging-sea/dist/envMaps/autumn_field_puresky_2k.hdr b/22-raging-sea/dist/envMaps/autumn_field_puresky_2k.hdr new file mode 100644 index 0000000000000000000000000000000000000000..5a3e80bda83c6feec7ad76387de2c24d41959a88 GIT binary patch literal 4434394 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%0DvM$NCv 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

vLAeqbG!Dm|8y)~T95|_%ok+;%qRI*E{DF_; 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±K$!Mu|X?l>t(FYlG*CC`86QuP4i1hap4w| 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

Kn#cHW>vU{hw~<;t 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

rKLrRw=ic!++Yl|xJ6?Q0$rNZ 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
7bWU?bhAB#{0xa68V_t`uHc)%(Izw07l>ho3EHN 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%0D~ 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

wI=ca;%HI@Q@0!5joOqe`H`&mUBJavj?s$rUG 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 %t<+M+FWh>uKG#croW1pLHRUlgLOld?ZLiiP%UP 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

A0f+f_4BMNxVoWZI8^yo@fu%PYpp@ z@IXO=&z~7DylArV($Gi{90&sY#duXuYJNp__}cjGpMHeVk$<3^*$En;urd~fAs3#` zXQ7dH)^G-bpI_sZFihcs zF2j?S*OV>u=L7=M+FLe9eJrv{0f6jow$v$onPT`e%JeV@CSk#BaCLmWf>CoqrV(zWMFV8*pH25^)x}B_EeZkRVw(J3$`UB?vNsrF5-ekI9bH zRPYHpI`!y}Vz}_O;+YIpKEPz)j63A(>b5UJDG?w#Zg>e8RM$U7gQzR^NPp|NsLvkC%Pb2E9}p#vDBJ1UIOq8Dv#x<#tUyc3PNrCz`JDmu###?t>v4@5WRqe z=oLk_=&pmlc)>x{w0ZG&LJLXCNz5fT7huRwQci7DzfW#ngSg0z4PXcICVofFqlhE* zTjPQEDiwz6nuYscNYZKXEwzRB9zK8e=n341jTZ95Hp6mA)zw`O@$~d^LqhYBA2>s9 zkIkRF*nvn7>#;*oxW0OUgJ(U_xC)W|)uhXdFv1>$4&zND=N3`s5)}~ z((&UbP95F7$5Cd9^KZJ3=a3kK;lw$N4gddk4*C02{Hfy%^Yv5>)|a@{6I zuU)$j9628>ZO6`BsGB{HmM_`mQ>IOuFs85|D|1QKvhvlbbyVS=y;yVY_Rsc|RcrFn z3QAG;&zv_iu%vQJ5$|uYHJ5UK7pqC4BG9Ev@IQn9h&@PV9&*Egv6RD+smz=?ZCWsC znHVF9NWl;TTfA>$X_aQR#zoUjb9VTA6-8H&i0G8eEZ2h2)5rI2->{Y@&1E!sS+SgP zpj`T1FIy^j3rZ-r0*}H%Rqz>~(!n%es-2Oc>vbVkCf%zi>CQA?=325>jMRoQAz@IE z@JOq^MwIC4r7_|A;K5J0n7Q_eK3svC55D=0!ztdZ@4a{~MY-Y)0Lp?HqtX3HlPvmP z-xArOTn)gWD~`*JIo}{da-wl=-9|drgnD^sI|bo4uk%BfA%k-2at@z6N0sdv(H-Kv zDD};tL3JpI0%rs$d!)K~=guA5Hm%nfu%e=}vT_|G;rjI(w1EiX{=~}?mt>{;@E-ho7Pp7tysN*jyb3`r2;^#LfB<$ z$?x;%k%MfLr8SnlifNkcK)Lgfjbq1>?3{u^)-`oEp*X~coZ#$4 z;+e!i*@1SZjuNvZEZKf_yl#lyf@s5KIpV4M$>Rx%-rvdIgt>~`5audeo_%`9yk*{e zU-l{36_f_h*8)A`YD0D~aRxyr_|2qqv<@A$HI7<)jf;Zf+FEfqs8N?1*IvJS`|iy; zjRwJZ#@P?gAU8zZ$pl+HUR`N31JlRi>^ zj!5yepZ*K{5q0MGXcxh{96UEBltU@O=n}=vz7oQSL#pP#B?cjg)H+FAUg3naeUVLJ zn`F~&-v03}C{*3F+;ZHkFQp17Fp&2tCx(#f(Ns7d2-Uf@Zb@? zTEaxeq@vk)iw7O{rM9hL!32#3FT4eb$r=mV`#T3%uyhvVJj35LupyEh2%x5c=+C^! zxiQmw2NjrGLf8Zxh%V1)@;e$qf7z_n*WZ5A_S>#qzHQ$gxYwdZGxdeidNdzot!{O}xOCO`<=K zYT_-QYe=Y?%6Ivcel60m1?dg)$B`My^A1Cz9dAjf%}zw1`qTYG}s)Z z{H3)GU2Z)3(W!-!H5@1VHqwc$h+>4yDQQG4)J|X?ZiXNO0fWL0dPM!x3QW;=1&$@C z#ndItb~08w#d}ig94)<9`p^JI(>}@B4gyjm_l`WdK_K~PUsoR=om=Z#KR3#8 z^smqRB()WKDI!8o4FD}1N5^0vNC}ug4fhg!qUgQtD^;wh302^GP(N;gtm6X!<*vpW zf$xC-&{FWBd4*$ww=DOQE;XLaJeCic?1OA@s`H#aYnGZ>A2KCWZqf_kJ=nvZ9s!@tN}vYHLnxtteSeIdFQSJ(RU7 z5TKMi(^PrN=zbU?n%x=*0emY6QawLJn>0{2))~s?iDG2%&|#(^Kp@IU6<{4b1~sAd zpT^G$1{h8qnd!vvH#sFMZ`tY%K*0TbckJ4>WB18Nw@&ZhvFGsB*Kt|J%gRq>tXSsQ zUA8nM*|9MD)b+(1(pV~9mYcVtGOXnKiluK{m)9M8uI}zHOWR?+wxN8>ZHM*NnW|E> z80krrjL7IpOY2o@My**}b-4PmO3Yrm8so>^yLRv1wy|vU{?nIl-MI78ZfDV(!WR|! z>!W+;i?SKqZNFW+SRI+W?bL;B>x+{TOLm<;P#XJW*Wy?^U0LQ^=Y&z+BWglS5D}@& zR-sL(oRd90E0|s_Sa4ymA053Qj9Oo5)uK!7CJGN6r?nZznELDz4y)8JJ4X6o1W2v7 z>0gg?r5`{BBGdO>Ui6j9OVOF3zrxe*v##GUd0>&6X)A~`67htjNaBP@)?}bL@`VbL z9nM#C+cTqQ(Qhua61!xbB~zs=5Kvbt%A6xT4J)#^SV?bf;KT)PkQh#P7jv#}7!6g( z9#zm^87gn zD=Q9Oy!q(mo0oTwEsLESvD%f!P-K5~x8}soO{?>ZcAu}>Ta<~fP~_a8v12%Spk#x% z3(fH#s5N0+V!e^^`pJIa;zJOuFJ(v1|K_AaB_?Mw_>Wt+u88NlK>$I3kg|VhFT`)! zJ9VjYy*6z)7BGaF#`MPMj_5fM#7sfj+Y^zjqNo8#(nU5%A%ZnP2LF=}MY2yf9c zBVvvoYJvT|FIVi4A)`l3q-2(}e6X0;HsY1$AkeYc(x3%N4sLAwALqeQ3MX)VE}=Xu@TtEzfGj#TB?q*lW^la4|$)? z?n&rS-=)%+y}~>bt3w{C(r8TeaYoM``ZFXYa6KPE;-V021n83$e+NtA{9xKY~=U!2? z;#}e_2|QL=7FHDL9%r?xg}xvr0UpU{0G-St46BFu9GW&CCJ|(t4*rQlvQ=_d2fYnQ zgeAw7Cg3m>1Cz>60sQb<;e3*p2xifn!wW~Ug$)JurJ89T>8JtC3{Nr?mFb;Dja0Uo zGd_1wuI}|K7CZS;FC+{7JVX1I$p}V|ok2rKkDEM&hR3+|PMQ@K8ELv=a+a;xa-{b9 zJV#W-oHww_<>DpR*@Gh&0CaWzz9&+iARDgHq4!(#`!XQu_Q9yoZum>@6W)O zDbvAvsIh0v6xyeUEUs1&2Zo3aP{Auys8zJlnETOJMFYS1ByxxByk)B@H*Vd&W5>4b zRXcVcy;^(n;GR8)s-KvNIobK!RebF1wMC0k;vJD`TMlL&UQ@iHY$rv_$0C*;FD$qj ze!O(Y<**A|i__Q5JX%&+Mcb^(QE8ONv%vdBM z$pSQ%iztWPwq@G^!n-WNv2J&4-|h{m@hNF(*4KBgU$Z6`Z`e{?nB|JfUA3uVvE%WP ziXyTyM2yMF0-3XNvyeof2XxoBtJwd7dn6`P@SI<~EH?+4M-)15p$zaaBE85rL|HoD zjyli_s|57p?5R=yb+2qWSqz(@dM_O*G zNCYDmI8v5XZri?b&4#_l&(~hRbEEp;>P1Ou>lYde<}C=jQGImJmUU%CORJ7<-BDby zC@Uo~+8!}K3@9w>Q5E7d3(_Y5^qpyX84KFStSE@lENY4|`EPQ@1Z=iuTLN|-_R2r+I`g#k={R{KelJ^!brodXR9Ws5%XfvYHeI$oP zRxCYMAbfH0w6`Lvl7SIIJW0J>*rqlV?O%LMs$c+j3y`-!i%YqY4l8`FgNriW1rYKH zS+9E+5ie-Kq-`&0JWrJ|<|H!6JLdSnePO?@*_JTJYzA+xrr9)mRoED;U1Ff+X z9iO~Meu-sMKZ7^Tuew_7DqEJl0 zpVQ_^BwkF+HW1k8l^hXuNFx0P;ok?pQO74Q@ePABY0BqhOR-{;rYgTcJwMf1_A`Wk zPa%BTnhj(n3Y>?=0~_GN4|$U$+jos08ll;HuV9(*SfQ;7uM>jgKz3tck02VKr!@+p?dS56WGe8eZh- zeW|y+BssI(gz8<0CVBo7e}??|63%e)$9N#uzd{;)<+A?A6cCG5As?CuXf~jAijq#> z0_92VD^07l%0^)k2EcmBK%=LNp=;-97lV?mDU6hp;8{@Di z6qP03xNz#sx$AY;?>sUWt=7_;;_^CLN%qvF2rh8xW{q-AMINwEuNQ(zo? zv*yypkonG}lqe%Ie4affImsDzw=BeB7a(;7SBie#n3mi7;>H}rqcz15! z0loa&{fBrNKDdYa?*?c6Wr0d^PD(xL*)zz){tQYwA*>Eqcj(ZegF@@}?%lI%C$w(+ z7Tr-yRr+#1tVhD9Hg?&-aJYVL<@&ALw+hi*Q@(D?uKk=ed-flJ0@L#I?BN}o)^FS& z7REy4)Kf?I?%1+@NVP1U%huUgn3&`qwwa6ygf&B(hfW3wl}B z2qcP#vx6266MFIYeE+SE&)ub276*_Fn>U>|jO+DfJwRWTR0ms7NqSzpa>K0k(>gxF zf`ee7s3jtPrOghM_u?(Vu^$q4j2qhmK16z`27p(5pcu0%ft<+ zEQeaJT?l}K{}TXjQRjTCfh=!G7~~{SAh-_*7ZNXEy-@u;v1a`9|o1&2AjzT52Cwsic&U3@J8N|(sb9@M|#`2UeQ zFXqE|AA16Iq9~`6gq37OXdPh3OJ1vil#dSd)?YFP`7oIn46AEuhu6WxKww{f*}Qp+ zHh=HkzxVeY+IIN1OOGCHTQ+Oisl!*zTetkG1?9i|5I<&o@hOVFFPeYV?(cXBg6Ued zY2Uhq25`-qDGl#b3mb*MMoV89UJE`H^v)Z2*Sv*lW^3+f)=<=F zG^f^=3gdPN`dYO@4A`pKmrnj&qF4(yjcMZXc@qahKAJD{KAJR%N8qQLen@j=yb`&C z8{ld4oNpXI<hRafpG}4Q2dNS z!^YyTwAQ7W?wJ1^Ed`)LvNR$XgC1`zulS07fp7>7gBtHKVZ3vq$E1nIWJ{1a<&Qx@ zxH(LhdFYIpFf>-8gG0n&DHvUnYVXzI+rGop;BN!QN*&5%+Dp!eaHJJ1-*DnyWODg| zsEgLbyG17|APzd7~bZImkoHC6RD~z0KA@;YiQee4BE{XDp(kCV%bHm<6+&Q#*x`@6;($6Ev9w zNh>MgTEgSTyk&A6dl9t>m*ZqnfH}yVpgCkyf8)hlIsulG{xCqNE~wb`fCo#9WVB<* z!#!+412Q&}dXjg9I}7}1oh*(~OuEO4T|a^nrI8$y3=B|`lBpG-89^FbFX}wp-(~2R zvLC$M(MHI0f6i>`%tgMyo7dG%TF^0e+(b1kSS$p!IFG7JDehGPL*TC?C#KFA8=8_7 zJ~n^`lH*+2E7z}DUcCOu%@_74=_zQve)i#MXL4eEdNOrZuOFN{d|?0ai`RdAa^c{f z)d?{M&T$k=O&Ec+Y5)vi0CMUDCnXjcI4U@Thb>=H(XOAwOlea3qR6ZW_!Xk<%EfmqaPKi?d!|;#ETp zHU)11?Nr|n`UwE$2BG7m(`TL;8Lg9cP9O9yTIi+_=I0`t%z)Ov-Ef_vH`~Sf#_$e@IO2-EZI!WW4f^ z{RfMgpI|r*-Lx|T+^v5U?~sCH2cb2Z_iiA4cJ%S)&G+sd+v^XqAK4C6dj0sd0fYVF z#CrXscdvM@$Ez>@t%v@vW{+5@oyH%wNB8s|&h8(kf#}?KIwz+wk!42iNPFikr(>=u z(@itQTXQX_Bz*3Dom|Jnh|W!PM64A@YhyqU5V;6E$RMMs-IW?H5(Y`(M2W|c?k!I+ z2W9mV=;o0ABd|IQhT(K1q}*|qg1yMkMdC`V3w7Oq?*C!xJ>a6svc2se+1z2KyC=MJ zd+xn+XYRdUx1n?Ho|#tLZgb8Fa{vR12x?KaF>bCirAA|j}$m@wyrIe~&XYqxf5 z`#o!y^L?*WQAJS}bxxhL_Fm8aum6gSjI+F{XBPryWR{^%d3mN2O6M=BGJjYyOfpkn zi43NbX+@NB(>z5S9>H`f&Yx4Bi%R@$0tx~#`xcFmY@H+Z1ODh$I}^1plD%>5dpa3vx`dC z>^V2zNG~r;O^Y*|PaW8>dPP|YDy^lNDX}h*##l+Jc;Dchs9W3ndd^)hk_$|~1v*touWKHixUZ+m$E^5Fv)RANe2+1A4=I6=L=Wt~1I4mZQ6r($wOSP`V;?c;Gq8bJ5||tXWr!pl`#bE!(yM=+=|> zqQ>JxE|H_7NRV!Rem*u(g69}#*g{>CMe#VpEhiA_ko>qrSqsA1HUL2ghc(CXV9DU@ z#cmZ_RFGhk1777UTfM%zva)vfsVnmrqA?E-IkErJfp8oylr?<8yvt|z(ZPA=f#aty z9jM<@g$~9Y?RMELkzowijLM8*b7tFT`IA$zKU_h6Lg&z#|B1;G@RG$$77FLh(in3x zoxGWFv5QQ>m<(v*C!m%ZZ5)?^UPM8IxC;ACsCDFZdTy6yRY?1QRcWWUb&zlB1!| z^X60`qyXgjyd_CD7IlzuTD};kxvDVd0&(`Edk8j~^P@u{aNN$HZ-jc!4^4v9srfEk z|9qJdpuF<~<$a^arbN?!T=*)tSrl4t@~B<7Jm zDa$*OwOfJhQaq5roGhAF?(vBUQhiGUV>>A;Xi~#D-W|K;Eh#e46CsDw1;Zo%*H_#E zHJeMcw-PSLb{MgyuiS9*7=M)=%JykO$L_^A0G7uKp{gcw!oaESS2nkbCu2+G4PpCE zJa$+D1hsKhFW6OJIOB!abK_Uzxs{sR*V!i7O!zNUXv_a|EM2@ml+p2@C>a#5e>?Pi{^z_c!JP1joA3+q)gX~%G!TBLl!P2 zx!icZ>F@HGe5teEVig#`|D?{Bbh@o}^7F7jXQR>NFC^tMl0emrs;>F>Eu__?(QKTc zI54Ap2fooAqBSH=SlpdENZdk8%Q5uy=V#)s zIGWEv4j+ja96MH9j4UlnlT|1Oz%2vcgcbCL-F+-*p4IKJED4`~>d3y$8`joPAh{YB z)G{2`@{q`7ORmtdk(Qd*8v`+qUgIdO5pp?5|T=%`&(gIlWz6?+@n%=&QT#5tg z26m8g0EvI^gS$XF&LP||FRAkuIl9kcEvIP``&C0at*8@5w--I#_U+rY)o(wrZM!f! zvBs^IBHMNA7|+(zl55@C^}A|o)^D%hKpF1p)iqn{ckkO(U%&fc!x>D07*}T;-hcWa z_ku%cu{ibcJ~-XRt-JOgY}mQAzOM4kii$F5CvF!g>p*pkf~<1V0b1pl*#R<4a4|B> zbd~nMuuT?51r&QYolsycRF|b3CYn(a_Zah8+GLNZ$hV2p`rv=gj{BLuJchEoq;#6{ ztA{?c<5Bmm_taf~0uH!S!i?-4QSOS!%xHdx@bVJs|BLK%8ta&H`R-458(Xel*1V52};pq(GbzM>(B6y?6#(d_hlfo~wU_di7?_sNIS zY50A}8xN{3#(Te^+wcc)yAMAC?qTaE1kdq-7n(fdeSe+->eA5oNR zboTDlS#|QE3y9I#tCQLJH(k2O%i;IOb2@kV;Il72X%X8BExGVbWZ@8G-~!D zl@@Ef!E{wI21Fy{pp9lfNf-NI@g#jaRG&9=Vok8q={2dLsONe)v=D_K?7chaT#$TF zCxty@q;6LdNUc>7m>`9y%lVP79iq z=EJR|hMEhQ&)`j~VI73=K`n6w6Lp#~#yZwM?)C8ket-+y2GVMtDY-GhYmza+d*TFh zVp{-&lqO000yU+L6pKi`$n@!k%vNX2m^ovngdkmWJ2&L>&(TAEPD6wcWR`RX`A7Gz zUHcCjI1H!2$x~;{L_9Hha#(Cu(TWwd`RXrOW|>QiSFB+Te>pmK0^QQe9d+eZ2kttT@4I2Wykqatr-`d7cOR_XvHOZ6 z&T?*Fd18D*#_Ge(QAK;}vsa}|oH%o8SzclJk_cb)@mBDmdK;w2G_!m06@ z6B@Q?3F?^G?EhW5qPS#P{?g>A#S7<2DKt*xz$Nr+C^S&wX+?wp+raT^Tzhtr90hPb z4iQBQ9E~dm*!%nIqX{X}mvAB7T%iZWrCqzS>@4dv6t0O_9%Y8E$P$8J6$KD-d$1n) z5IG;~@|4qbmI^h-1ZM86S5x*Z5F<4M;egCt#0ttCW!j*GI&CC@P!WHTMSbWc`a2Kh zlO&N`JTP#=^o46TnX{%&9SM`1G#IKo3PQ~%Em_g%h*jCqd4(nRkePHwv=o%nda|_Q z@cm!y=|wARs>%zpv-0u^^Rn{uveU3`f7(R-Me}p(!)rHhG;OaePEXHBFl-UCsLSNM z9x|M!#GFt4Xzz_Q3#}IS`@?=d^_20x9=6tY&Y?_Aw|x^<%(*AME~t-GU}yQ>e(&-~Ww zp9(deuOL75t+lKAHlQnyf7_KOM0Zo&{}Wg!%~XW+f#CGnDK)C>Aa>4x!NWnOjy|m< zxUtLnnf-m(xejd;pe_1jY7xUX7Eq1YRxk*F1B=b^t>jiHkt3l4U`XRViI>t(R84p+B1(I*nh-?DdUHZL_`VTgSMHv$&%{x3WCW21E{ZNfWKbNyyF#Al#i|Kztcsv(C;nnJsF`m+)hC`-O>gqavt|0z=Ql%!4Irxb z?w#OiJufOev!@?B;fJ1XY5b8bl04%F%1enepve^R=krcUj!x+yMGJafFKmx8)K{48 zGe;GwiH1#jezf+?Q(=3itCh}lb$aP-XV!`o#Bfr9>nmJO*72M`J<<Yn6#3(uYZ|sh#{tt(}o}OBnxS5 z)fWmtH_r}|oa*!&>PY=>RC}h>NPW192bev!ouDKVAWip-gf|53iK&a|5C!o`+{KvB z#F&qXC(G*=X6^t!Ch{yI<2#*8B2;WeGC&%o4;e9b)TpU5rUelQ zac7O7{{qVjsktTPE7$Hge$|#-x~6W=nv{r(yQ^2Qa)i4~dP;nhA(MPIj+~uN?xC}% zGB`{kvaoJN;q8>kuOJwcaSl1#w3#7dAQmuJk82P=HOm(fxJQSliwaTWEhM;Er2COm zoAc4}q=>#yYicTr$>EBN%h&GMRJC^BmB`H1dxCbXTD$dP;?7;C&mTB>`nDs+dhP6X z9LsC>HQtZP-B6pkB7OGk(0P06x9>BRGkJ+4ry|s0u`ax@tG2d!)p9z^W>Mt=P%K?x zsoA*u%={&WJ25RQCl4tH-9J{YtDibMG<4pq*`eW>8HCOaKC)-;?rp0w(_$lkX})f0 zy7DtbAu_FE*Dm7P>$_^;V1kBmiIu>z{PiB(gldSgBd47ilDbQ@%V`vDaD!OR!^(V9e+wx6mzy zAwrzyt5lat!>WxNH*VMs3`%)vH#PFE2;3u^eaeq9Rr7Rbmvs zOJ-OG_oM8HG^w_(u5RPT&09&KwrsAG461rH_D$mK$NwoVQicB|2a>o9d1QHE%PptFErFul#*&?;ahLV?rL5L4z-NjYPQ!bbGBnv zYnd>ybAp1@4ExOXi~=)*=ggA6A=9U;X#pIEljxXYAJ>7wjajH5Kbe~=v4YW2{B?5S zlHx)-M(5=%8;%|S5L!e2i42%5819#qm7kl5mlEe0=NkcrjaEcd&P{~QVul(WV~=jb zIm=!ktwTYpqF!U4q*v5#4w@5KH+@2N7FJvI!6MnihLb%4rIJSHf~!dQMHj{%0+rcl zZSKb*AjP<5xOJgP;|~?;wZI4s0RGCw4E36y92zy>J9NHNO!yoN{6x98z!BD3aG^eI zoZ)7~>spB?K}*Lip>fLgiUI&C@B%WmSoHsfVdWk8i4c!^|270hz49SJ$k)X>NNW%v z5-KR5dfe(qFrYvilLFk=fBu=&UMoqS;npwcPd$56v}!N$-wT4FCV90fz&Theu zLcVj-lM{$I zt;Kp|&{FNp1~_Gh%AQs70@+iqJ)>`cixbA4HAAgAVTf`K6wYXPiHOQ4>MQ@zLT4 z+!MZsSWo-(;k9@6e?>^+QPb#qXY@~=?^0^Z^R>Q*KWkom6(v<8??ZqkUrpEs1_&6W z+Rf4I2ZE5duCD&~HOQwF*J?H>^|rS#n7a$IfRG9&rK5vjAWa6TePhqikNH76InY3Z z`Y=;ZUe!H?g}*`wpa1&eS7jN+Ndj4tV~dd$=o^;+8jMd!rbM1azSOkb(hAH)H|{ui zW}d}OU#A4ioRj-DuA?k+1q(-&%S#IL^2H(zgvV$oOI98<2p<$*4zDD8atB^0jrvGA z_nBU+bc>YVQ*cXQ=X{TozotiCxFjcglnmB%s24jNn*O5U%PU&8qDo-o>YBA1aRuB} zzhUFEMj6(5_MT-{By>jx*+*7Ap7*^&*(%&)4RACDv=QnI#TV7gRR6|wtpo)s}VaBB#Uvp*>fjHk76F7@BCHz;}C}+zfP7@IT^L6jRT_B+x zLf7TMYUa{>#Q;M42_{6o6>wXQs(TzcUqj$Ik0|tRzT7BBJYv++jX_;)rLXqp@eJKZaK1N+ur^Aw~0D^P2KK2 z`}XXr-+uV?`Pt%OziJpZ!wifVeZvAOBewTDlhIb4=sOzY3LE?;6NQnyd_t&Sf6!nU61aZZSxq1&6Q z(`|Ke?1>X6Pc{Gw9mjo+9XoCu^QH9msOyNY)Zju5k9i$;VT-6x{k3X1eq1gMt`ojU z0Z*xuen3GQ51no+syccH{+xHHL)Vv!Y#QEO+`&%^?ET>pF{rn!Q2| z`C@Ra^&$muAPROxMzO0MR>PKRO|Zp61_OxylB&l72NOYvcAixknZlUhWqpP|(1>h! z`Qn-r7HLXIg%WcN=%CoQ`GC39;J3*pfh-Mx z!Sw;?8C`6h%`P2;8h-fkC!a!=KK|$<^`ZL%^#kTbP`1FfU zD9G(hmk+PbW+zwY0G=d2t1bbZJHL;9uyYL5Pw1bp!OVB<$oou4VW*C&lhKjRALhHQ zhSLoBU9^9yqZc}x-=Kx)<3s~%M7$&f`fV)SV*m{3TeR^yHW~*9Ow(i#w;2^QVV2;**%UT?Cc>xBzW^401{~!6KfdqX>$`!&M~+2RI4x-Q zjB%vkgUp)UTeoi6ag^RiC@M!jFyVtDYE)w_RH5?DDP5vV-`sf&M^H36 zy0M0pl}E?))vH&P6{KNV5tCY4v8-(SFB$7jK8yMJ$jSo8=G@G5@~)!Q8}{uxf9uqq zEg3n>>%$VVE9%k~)>c$hGsNWNl!^9Z=88wpRdlq=ZQQ-lc!k#Id)AaM!|P(*);&ip z=Wkl#a*9fEO{%RfuUS=Id$9S5ib^5MrX(VVOHGP#S}CUZ`Rc{G>WqSty5(unx6Yrr z`S89~B~_g{z1|UhH%N%pK~CHP~*Yj9Npv|l<4|MFM|O# zfHx(MT0Zqd4ai z#JM+?1$IVXtc2+Xnw3Fj6(64$W=ln=9QlcM`-?!9L7G4-YZQQzCF#0i(s$w3Q#0eY zT&}ikblC$bx#VLXP8*l8YTOW^XCudiIwP5CgiN0}nFDPR9W*P})NO9I*^|~BYid5V zYg_%c?e!b0Dsb^A$%!|uzdn8Z<8zn&S)|K;qv7DjRU0;Ks9c^BI%({LQA3AFJuA%L zih*g@e+kq)tWZNiFrkJ^efkcN@WV=uh%y-VT04BPoF(^c91ATK<{Ej$cJM92!Ep$Aw(o$`f`DY z8;An`TeN^<#*;M)BOf~_wO@*B$hZkJ7lwzQ5~J^H{h136kfyxEFaEMv zks9=`rcKfSqF8_gSl*nCw!!uoUnwJSpb3mic%50bo*L_!vBr@mFZ^FUd-m?%zwf}& z69UJK9zSWyj0uAV_8T~2_(%?vae?E83`Ww56cHUZq0>jJ66uzNfZCz|uIkrHpc9c& zS2DZ%w_?8t5ypL0H&?R57Uiu9L>w|mdIFohz4|zMJMc=7uq;b8ePmY1AQ5{cPm;ToyVD@@pR=B|_X1k!h_F3J^iG=G`H3l~&QKdFOd zk}3(Ms7SmepY)ZS*;AeykL<6VWP;E^y{2eVU2C_HA`1C?nIjsJX;vw;l?;XHMhA@r z^{?ewb`~7{Wb(^0qr9*$S+OD2WhT--nIfYe(r?HO|6>X$35O%jE8e7YbK3-_^NE0e z%!3ro1ANF-REqdJi_=~!=HD42QZh2VvzTPQ2Kmd))wVBu7xUtF$MSyq%5K$?~oR<2%Ix&4kiueM?SvD&;e`_c7lYc_7) zwrS7dbLX!=YB_VPcH@o{i{jFYtJ18;_a8X2b=&4GTlO?C^u@?Qx6?Ev~6Qa zeoS(DX-=H;PE*s}$3M~^G>Ny8wT+Yt@=pYDm&3%#~(@sQIc?b$dyEsjmh5l?e8G zM<;t^cx6;=t*Wl6S-Wn1-KNc(xNhCP1Ecb-bsG>$Y+YnsSFv1`eFFI-4=gIw3>ou1 zNmPg0ha1CADtpz8ThcWhRH=1fQalU zyY)m{!Zr>$1K!cIOjLhGB?F6!1`eM%eh8f{1)UcZ6-bXufC2ff*8QOy?jUbe3pypY zh5z}kQmIR*#`5*yfS`im2c6}`nvqO34s4hk8%&2VF3YZ>{ugoUXEUZHNTYC$_D1ey>^ zNv;b@7!&FPFtji5fexy$_M8RG6<%H(;eHX!0>T{;ZFpVk!37eUL@i}|RmVG#>d8mT zTjtG~*a~vIDm?n^QGTLbabwU&X{GhCfrP6A`R7y5Rg_!?b-7+19{Bv3@IWpvkOU&@ z5^y7uivO{)$V$wMlYN;lpb;q?=bOX~Co$t1^ zG`Fbc0FlISab6BU64gjrtQt|w0Oc+Furp_2}!(LorC!a3)G!`U#bGn(c;5?&Wq&Si|XGt7c>|EI9{|1vDW54SoeDt0a z?mjRd{^b#}(;uZj$J3vl3gqA*)2x}D`t12jiK$|k{S9JH%6A>{#9c0_8Ce-gD)!@& z^^^l`-n{G3>5vGOkd~hx6S9BH+SQenGyz_*Vg;)poZeZuRpb}u=jSq6#_SBSAkDmJ z)bYNosv+T$6#!UGn#NlKYowwVFFtoPYduNS`s(F(LI7vIinSnY#kYYz3s~_HKgwu% zw2H4PY4osu{hGDg&xbowN`{wY#JcU*&YU`N_WY%bEjJ!K`uX{zySL6Yw%oNu#b*?x zxPE$g?-5|*)~!cRAnZormM!B5WaG!ISWzlyE)!v~Q%Z`{vhzx4oi>%8T6kZ~3;TQ6 z0*Zy>e(2p_^htap$cc$EV^DmoVGD~u7`Q0>(z&yjTdvLzS?EYfi&?OsWpnlFnhMw- z-HH(izF&qmT#E*mfdWfPOJRgy!O~K!9hO&A)zq%5UAu{nRDeKnm&2-o#zr}jVx(ZKkSbNCTsEd$Z8Xx7@W>iTFejv}#R9kFG}V!hiIPA;Hdz9S)TdIQ z3Opy;aDi%pvnWj!;v;7TOwc0|<4~iv7g`8l7T&`}x|Tnrf3QHr+g8=mWL(0q5=Cq$ zU*i~-M0ONJ$qTY?fQWOb!#d1mNhY;VBmU91=p(_3Ok##kTkR^~o2Go4$U>^HWy!q79SHw0&dSJ01Wxz2rJBuv@haQcmxn+N9@GOgN zGST1=+D*6GT(d_`O71lX}S={x?R?XE#N`C`K;*n;?K2#+sTD* z=9vzsk@vk+XL6%X1T>tufW>4(G$p@I)PXeiJ$4jKcpN0?)!;mCG z{XcKO2f0WyAfce5DAjIz(g6m>3}Sw;MPtF05J1;Uao6X0!z)qbUo!dg`JdbzoZ13_0Pkx`q8(;qY8yW(OSnz`nKKRh_K^rP} z`B7wr1`zN~gn)Se@zaMNqb2+hW+)&KK_DE^PlSljK$`%@E}iY2ygItLIx+5}waB|2 z6W%qX`WGVTf&$Xp7Yx{;qX%RPD(pBCLwqj~VY`kUN6C-O%B21mgTCSNMb3>Gz7^pl zLL0JclS!JtxVh8f1pH>cRNWYT14uSW29Z~haJqD3UVniEef!4rarSQCOH)2DpWIQs z1Gph8?(ORH2f=yze{#cJvT}W;Ww5>PEBXZ_R~G6gT{;5fukaM3UmVQFQ?IRPutF+D z`fnfNHPk-LI^5LAZ}=aO(uwF%;O1yi&y9ntXa(JPV?z5tp+OTSkS}TY=Yv>6O=-nU zUh5_7lj-Oynm{$Zl~x7<|I|$1Am+1H2%W+HsB~vBkl~q+0rD<+5T2~V0PnD+8}g2J4fy!@=JoHB}jBUe@LHuB4IC*;RkO-H0NJ@MJ$P3x-H zZrpk7!j-#EZSmQqE2=kc-?wXR{<1aO4&Jfy$7!g=NR!}vdiC7-6Sp4!V!hXL;^3Kv z`g5suHo?I+9*VJ7N)~t3oZ1$o98PlIV$91a$x*vUC8E1hMCxj zkbdRvLp!z~K5?uvVG++-fMO6pD6%sW3@$=W)s#O-qhB-zT0l3(lVAY)gyl;WKX}DN zEB3B1Y)A*NPlSL%umtN6xEc8f-Fnuqm+K>KQt)RHpLP;$P@Sy%Gu*k(6lc*zrdB zGsER-$Z;I63PK7bpEj@$lsj$WxY45qL3qbcnKXWUV4(IbA3J@4N-nByeE!7pYjoW& zwqNfxUTA7Odu$I%k?QJomHEjDF|^mqAQg^x+h07s*>nMS+zUtduPe!p3!gY-$AP}KZPH}!Wc#!NVY2Ynr^at5l-Bj1N;9mc-!(Aa`2$NAx6~ z(qpM#d--4ZVriz!dGT9ezgllCAHC*>eeq%Vb6@zcL|x#e1pa}V2Fj*-uE@S=%MMkH z@158y7SB~TeuWMi3Hif5x!8Ng{O})o|Io;nd3|N113-$Pp8DMrhdV)>bmyOPENGOd>BtG^i7ICBA() z`0^{eHOWTHa1u~o5>k|Y+UE-EF5Oj`_CU(>5yZrq@$JC$6e=ZxDWy!Q6^xIGb1IfE zM!KJ*A>4Y=NW(t^#V;i$S+B72{!-+ZD>b~%{5J{AH&sjn&BA17KR~dtPP%-OW&Va+!djpxQ2z! z7t=6LU9T)vh=ZsYh$f_@!}^e)ty)P7UBFUC?y}PIn&W12`HqHT#YwSG_S9iSzM*DS z^_GK&9xu6fXV-@Hn~vYNI1_S={X6P+Y~5PFebeS``{&LLb*z|EwKX&<&Kb36&b;}v zLT!uBZCJUic-e~Tx*hwDo|zMF#3ZC4`zy|lNm^Q5xntU#c?%ZFWPQQ>S%-FPtgGFz z@9?zU+t#h#ux@{Sw))BPQ}Z2W^Ow$_RIYQUTJ{u>2TI>vs*$r3<3x_hml5}_NU<}q zj*A0bQX5LzSF~o=fn7WHA3n6M0G$&GR5-3@o(@@ln^Z^WfmJ-2mSE%{OEJ6$0exKN z*k}9ep1i?|HNTJ+3cn@7s#U;kF%^?RWwC0^RFN7l~MD`BQc#gDqerJx{*O(8|hxU)VK^%eH5vN&c>pnx4-vo}1 zH^#n#>`!!mo(5TB!r@PtAqpA;-ySfasA$+^nno257&>BbG0;!aS zS6I}7)|&H$GAl4beVH6U0L?Hj3WfcV0Fr#Fg|2XSgrD$2y!fmnBX1C^_;Um!E|RM9 zNs4673oT}A&D8{-DOUhsnvFri_}asVk|}ce@kgn8ee%S3YXA8S5&h{>Ul0sv55fiA zQ_qpXLB8ykx0z?ju`Rqz;v+K|{#;aywAFBtsw#Us$eo*cz-Qwv3Ap2z z%I+sX4zTxog0S07n#;3An8;g%ne$6Pq*fDw?R<%@#8!D#`OoZh*(@t{!BNy%JB-#E z019k%lN^JIfO!6%8bv2T9G1s}Hp%G#d0JXyTKqj2&u)1YV5v*;;CO=aXnv`l8b7s> zESd{qHCmKNCV5X(CPH4@}OkK6{>?T zdpBKn!SeitR{?qaY`@?G#52$PkeWNrzX8JY zG|CXNCs#py{FW@*I8Qds&&CBmd6kRCB|rI-jjGA3(G;wBrHQ;>U1`#xYRh@ww=TLLN7E#KP+`P5zWp4WW?p^Z?Nd-u(IT?DZ& zkMLh!fr7iZSn7Wn2P)TX+PY=a)@}8*E1;gL;J5h&dWLOjpAK?H&_n|**R5N30W*U7?n~Pr{v(!j(y-;%r9+Hsbg1^eh{2rYEV$|P$&(Gz zPDA=>V9>W`m!@|I<0^)a8kOscyme*!nlyCLLTyN&A6dLll=36`BRU`50lia(~cuz_Rl|bxagwa>nQ>lQm$p_KaXU$HD2@i-PWC2lDr% z2w2b^qX2}ei>(dSXa<73W(Q+*dwbF1UIA6tI53l z@1A%l#{&lk5mN^n0uEazmzy`$jn}mCCvgXwC*n{1PVYsvJ^;S~;68jGy&b>h(ite%<^7Lo zxbdFZ*;kmJ(b*3~*9ASE*Lw;dKiX_S^B{SjeDu+WAI9M2_aRhJkX~y6gYQXSUiIFq zA4#JP;eb>Z!}2--4C(P9)y18_dR|@3&dHtH@b0+C)#%s?@Tl=))Vq$3HVyWu3hqc% zum*k#e?NIfr%vvUzxDjLQJVA7i31Wg5+RKm-VRGGD$8US45j*_HTr`=vcE{3op3!d zws-dP70#ymz2V__ zZYF3#7p*X9RkJ&Iq!CPSQS)JF_NDbJ`vV_eF9yb!EGGy3@;X^^E{d@L^`pySf zpa6VkuRpUN`?7^_7<64iJm4N9WmSB%aG&wx)i?{dM_2knP-f6+cTNa7VT)yjm%Ic#{x9T(8_6KLm;**nD{!YwWbN<}%g$1dJ$)(5U z$HZs28m874XJ=E)m0wW4X>w?UtK^`C`DR8gtjL9UBJIVgo!fToZ@6^Z^5Y95I=y&R z?Uvn#PM$ilqyF%fpBxF~?`fIzp>n%_Ia;}VX>!)ubJrd}x_0hh{lQxI-KVD0^3$D* zyEmg|jdQYKu3n7b`OSYSu5Vd#_X(*?-;m$qz@aCN# zEsgu?bL@*EBO|&jp(U^6Vv=Hrs32%oF!=-@sxF?D983t3Zn!&4T;kAsLh;Ef{!?e% zf`mD&AsHNqy*;E)DtJ{NeX7&AQfzHBb#zDR5&X{0`UQXmaA$BbLN zGPO8A)oH!BB0OyZr{B=wwAvW=O5mihvcoy6$DxUU>yA;QwG&ahR4L@7=z6vScE~iagTGFV^Fp5K4}oe-~YMcDVvH;9|R z{6bit`qci3`RVV!?D2hf)-7hu{`6Ct$ndFfn9dA>X{yO@fc$V^2dqz==qbXNk4cSs zRiCqb&A3-eo>&Q|3DllZuBhA07Ay=43oJNKPL5mJAy`XjF7^$k5?|1AtK=^j^IUsRYJ7PkQqDQPA7t zyOi$U!uhB(~nt&wEb*Lzg=m*Ay zJ?!8A{Rf~Jf20?pK6&Sa*?vPuj2I+6l(AKnsH;(IzrJ+(mY*baawF2rfs||aBM>|2 zogO0=j=UFH-y-}Z4Df;93YWp+l^Ng2QlNjODRlc0E zUd+tAxOG{5m@2rmGDOrNev;TD<1vuQNaiYCHw}!mTv09~>JKb+duoKx2#LP(WmAnL z`h_IE3GG8bAmv2>KSG>7&%u1slC8bar1W%|L~^4t-V-H)%qz7t2~3g8x;rf-^79J{ za3SXk`ztQSyN?fn=>{jdF{BrR?XdBaCeH{4iqUb%Mq(WiGI{*?MP-*Gu3b1(zom9x z^AdMqU2S>HVVcx}|5#*BaGSOTA;C0&noSrC3Ys;8R`L@j1R4|kH2pKsryEl(5*5Xi z77R0M4)9Mq=*(e>#M60$U@ImI@CoprmQia91DJr_2@k`DJS{uFprnk7)MZQ4GLx}r zC|$m4_f^NzwOe*Ck1--2Hf~+9Y8Ag;wSMo_tBs3T1ghEI6cHVt8htI~+>Xr_n&a-= zLGQbHHZyM7ju2W7nXbr)h)|1Rv0m6-Q?z-q$F3t^$j7rR)rns_dMM-f*-QFPa zds}223c8OdaLL5LKI=;vgwV6;g&QcK$ERWR22Uy@ zc}-1qH6W0_8tc}r->{)p+VEDaAVZcqF15_^5&pS)!D5H8Xl`(QUc@SsP4E=@ z+MTIOYm;^;&LW!))&d(BeH6C2o#T^p@>d)@bLHCE$fAi;r%c$sxelB3m1QNE!snz( zW8x?ZLn&sDcT3xj2(|DP-2bjLHl5zRA`T9{fFjtoAY=~=l;ZKWa%AZ-TH2HSJDeGz zsX%82znNkLF&z--;ieNs{-?&Y2LclR^$c7nAk%e;<6yx58Za1b;IKghi;D*IrzlVt zwjpXk`6nBX{0|KVdRtqvN(zw1%0yK=YbSq=rBExWkj~C1c9VxroHl8~#L1j#!Lw$L zACWEnhzUmmp1cM85h2jlN!-zqN1_k^Y`;+;EvIKI7TF+x_Juyo z1yoqT0x9tgTi_0hU0@51Uf_c8`RkcNm}8+4?!zGz6#+C{Oj8etRV01`?L4pVp<~L? zPUapWisSEa715kQaB{fYL$Mxn{fWxnCqLPr`u>c-%Kl4RAfFJg=lJ=>{2FEXoqUkQ zLf*PWP#B`ddeKe=K;*?mgCYbD_KPadqyY&(I9;07@mq%%f0FV<-Q`yt2Kh}}A&#Ca z|H)J9qIsWmpNdR=A#)O~w<3W28Ac(nT*2pFwYp zNNc=qoFuO8UXp8JFFfKbNIzGT!-)K4~i$-EyvG9LQD@T6I#mt3jM^+6e< zZvRm@1zG3K>z@3R8MPj7Xtp8B>mZsuL~obrIe;QXHMK^W(%6VPrODpd z>XJ71Yix2h`a#)*?Fnxa?&k05cwt=hCmR7no zS(&Vwq@pO6bw@6&JTfj44M0!!RLXB<7zFIm_8>7%#MRv6>DUesR%7E5ll2+}MNRNL zeiC3Mt7m+Z6|^kWeZ?5xm9K#0Eh{Nqv8sCAj#FVqVtTfFNqEHlTW9H_aqJikRhysu z_{h?9@%+W+AFWYQ@zK9pp4_^A<8F|Emd7ttbZkmd%>)$1bkLnJaqOh26DL*Wr_(xW zDJs8J!$*&wLN^VDSiE~8A{}u(S-HgKn)z-2ei_k`k&72DG7^*1(~{z1TygdVmoCi< zn|JMUo?0v;hW1VC~ztv4wsa(#poySb#;iy z@5J~K_$%m6#}!#N0OH-fC(kzWQ=eRK;-rwHAGs+S(=(?|qQX0d3{N=TzP-D4?POTm zpCqz_QNxSkBhS{Ub-xpc2gTbOn-g^rVLEPpQlYzMt+D2BYuD54ao7F}O_!T5g*mC~ z>%kVWP~|XeqQqkmVNeYXQ{f*|(nUJQxIkJvb4J6lhJ!n6D@#k5G8GmUauozBj()QE z!`*!HEEx!l?2kl{$KGTpke$gwGIC|+NF1*qQT^wb;OPJ;v6cO&1H8#(@hdCw4KpV> zVSatieiVp@vhgP%-lIndTSeF?_0F<*AVNG&)0+}xbfqph&yNsu^{Q(5f3EW2%_l$J zy+)L|X0f~U?3Uz_6&1_fE9_LFfyVsOn};O;FllQs*3)}go%7M~O(-8mpT?O#$a=t; z3m48`Jag{xvpeU`Up{?8`apyF%oDbTsN(?*$B!T9YBcx?*mIrm1Mr})J1<;PC$>`)LvpBArS`I+)SWsFOp6AaSPhJal?Mo%C)Ts zo;hxaNVnD94lE(CLx{$*gz#vc#(KvzZSxSlLd$Z^@$A~f&uNY2CljjY9chhX+>626 zRlr`N&5z;AX4}j}{)+V|<#Q$SM2_qj?&mO=DO-v439OJ%cEA$*e{no3!j#rh)x{)w z=n#|ks-&_ah_Z3j9XN))W6+)P9UgYzg4YfUzs{Y(cJF`n30&?ET|WB!n}eRp&mrf*_q;7UOTBXMYo-E@ahBDxjQrZGS?E|C9S6{Sq+D{J&oscztB{?b=(!e&Pd!k1n?^C_8dFR$e z2V7C>ky1u$8pm^8{pg9y|3p3_d8U-y;;_X-2F`pw{PB3SRK6M-!scG(W8oqYMlQpL zIffe}-a@g)W8ucoWG*;py4Yq5l=Iy3L)26?tsOB! zM+q!sX#M6td)BO3v%z$4k<~EAocrmgpMCZ@GQ6+8`s(Yy|NZY@n_qSP=DY8E^cjp? zX!@K`Y|_If_3rU~-)TuF9{u#_+`dD{&)p+EsjFW0B9A_7Om7S%7{ODAA#M7;N3WiU zvwQXG+q;M3yVs-$@MZoli8%#)z5kD7+fslFYmg1&I+_*jF{9CMjaPw|34tVLLLEi( zG-C$28jU!@!WV(;3`cZKVrm+VGU&jUpTvTwJ29(Z#oFDC&dU1ZXXBncdA=(>KAz@h z(MfTstCwxMSDKcbSQ4@*Dk0Wp&al~X=^)6mQT3R~!I689to!Bh{)&~yPTarcuspHY zZ8uLII@EB^a_ya)oN{lq_o;i5<#Lf*X^OGqGvN2_q0u+WEIM^a;d=Roz!xBm=6vDKA&fJC0=-A{$ zWm&=`51oHp@sTSn*G}!LuUow|DIw`IH>zv=`!xF!1&XAhWTUf@yUdw26{#D@j-Dtl ziJcH2fkDEdrFpU%@-{~~N~ONNVNd^3<$e3DOp_&^n@ro^HS8>lbD@`pfo6f?EUCH; zr-v_TT`$6hR z^2k<5?PgG=B!awgi!QfhEz3%XR`z4(rjMRA6(k3$o04qi#Ko>ZFo7(EQZLdN5*dC2 zvYkA2=FF&+n(L1(gA=Ez_BC1kOKz|9clf}9z15mK*3n{ z-fg9t80ZLQ`oa7jRo!=-h3#m9D~)h<;|*7L%5kZ~b;0XgT}84-F>be*uI_H_Dbkgv z$TPp|uD82kX)q*q?8T0k=s0vhU%m2y9B-%x*-3;IqrkrX z2My~_pe2aP-%))#5Tt>6^0(!Gs(x*B;DyFXtVL2yfb}PwW5O6OJ$-rH(~U!xP+IpN z2pttpD@f0)ZyHy7ABQG)ep+0udU;``(1smJD3kAIPbqGOC^~vsd&c(4>KOpPll`oE zzRnW7>~KVRGEbLpW>OnAPNq{_RGf_kW(CLe6M}{q&rfno%5tSGqhyK>de@RL8yz@1 znQn==gN&55yaH=`26&>x%WsCwi(%elz9;QEm?#7gW`y{e;>M?JZS-V~Z_4IWe)2lJ zm_M(}nNMo#@F7EWxV(Y%QQpk8-1uEbBir+$x$%E9jh6W|ra!FfO0JQXzBEGs5Hm#< zN|-bz$pAJ5D#xY23sZ| z0_$aLRzttz2p<-SH zG@*zxEORGMVep$WS&wnk7zv#d{58YFWWtXTZ`yQY+V2IT2L(&uoIQIMgB{noM5noP zjS$Pc5EOix;0eN$bqPdXkN^MxWHTl{AvGftI!2OGoK4+zT6W>`s`b0hF3BpZsdGHI z|KwPe0HxCMRTb5{w;X<451rb+Fwz|#Yr5t+om;nT-M)MOp_8-bFLrO+S97(gzM^8! z-m@nb%sw}J-s~e=H`a~VyyM{6IrA1;9Pyb2%PVVY*H^9CvS-?y1?UnNhRqAwxp~*- zn$ko&V(HkdfOv%Zrv~qxc}j%#fTYTO1)sf2cA{Ojhxo zbqbV}om)^`NM$P@7pjlK)rU@|f|s+Tn@TB!%g!l{5e(WvWYx>B<%0|G;mjMuCs;i_Q6FygNR2aTC977;PPjx&e6 zjS6@4E6CupkgsInP@9{>sh8%HngVBUC9y@gor=|>=V;*6$?@E`3k9XiZ)LUSYu&SSj>VB>=lR}^9TJsW}y$yb%gsyaDJ%> z=b`{{fn29c^9`K9@8)jdmh{w)^RK?Qr-zSrozTfdA)D zu+`xfrUyJUXzn3f#)HxSf5%+jnj|Z~2m_ zB0G8g`VClzX!$f&ldRlqY0LeVtIbIGnw#xcyf0sIT&5CM2q5&&-qeBQ7c@s>U2YpM zIU9Y*ij7MhxUaz-6ofq46zWIXjB%gWMHhZoZ(R^M9}m2|NRch+`b7uO&$xs_kZhk< zG%nk(`0%HVmXDe#vXyrva1yQIHJGI&)5xhvs_))=bRW7PTlEmaOX=Tz%HQtadtkrc z3j8Oz_I>j~8)_@r0kSXDPySDyz$qx>wmmbS`}`{Vu&*$Ej(0iYWXR=Wvd)NnjtGN! zD*TCp*66sbRfo|X9^AES&w&$j<|AQJH#g&W3h-OGk_JLWSxNZO5PDNoQX7$#G3awO zWmz)WA8>~{&z@#sxJ>0a$nrd^m=deSP(l0PGVE%I70d5fgaHnw@&Dw-5b3f4lSw^l z0jlRR`d$Ff$||r7-+3&=9-WjPapT7QCfv!6acMYyx~1{vuXIDW)IybHOsvaoaYsWU z?mT#8`RTdUbSG7>E#I@fW?5P7+ASLDOD)t6TF)LTCUQMiD zxq{B;%a$XnkYTbE)n0M&UrK3{UR}*FfNcZHZ8}~N?{{q5N~e>`ik0Oo=#-SIVjp6k z%KMY{`4HK%D7Iy!(~t^)Dpqo4;%h?w;x+QqF))@W_y?FD2@Ru|23ErRJit#d`5$$& z8<^iy?r4Hrj9@na6FANBG9|AP}sm$cu%anp1x zdGX*1aOz4Ea?XqZ`-&7$G!C%Hf*Rv zA2McK<{hJUD6|jd-WsmjqHjaprrie`u3VjGamDu%NA=`HHU+Owf+R~v3q`J?%?0Q` z70%eh;u_^oEI`hib#yz{M4Kv?6&K@wTVxdWC}7G3Ic4g?N>?uE6x7G03|9{=eiwSm zEL9FmN~<^s;e7)9n41dl^8`fCk}~TKU$75x2xYDa@)OxG@m7{metG&cS9T0olxX}! zy6sZl&RHqQPZ!@xxvF{1xca|19TH`3-@b9<(Jzl~p})O)`&YbSP}O6?V35<70roV#@8@@AYM zcIVEWVNHT}z`GG2QtwMt=gJaCQ=_w~tt^X(u8#nvTGZ86*RCTX1{|xKugcO2@K5NU zL@G@C-aytT)!X1d*+n!amc^-ZTy{(gZFxb`wBE!X_782)D`A&8FDWYC(;qQ7A)vp$SGii~e3f8&Maf)?_5VdnIz z$WuHBP!xN^P=Wbr+TpoJ{~Z-`0}TCQ9nVBof13y!uC2Z74T<&DcwV!XTIB76nb4~ z64J%&WbK#$6;z!90EY6gP(dGV?H&C_NkOiGNxq^%M}UTb;#g+IHpqvp#2AQclcd!H zsNVAJPnPZK|2v_8B)2-Vl{{0f@@4eXsi*w5KUt-erqQF<5LZ4CfM^id$Lt-zeR;&B z1*H66J2|Q9>+IK7UPNE|BK-5>ac_A|qkjSg!2%=^6DbszYKXr_SZNMxGaSUDFT+tC zjtmfn0yI;j{|6})<*UH5NmJ41F~t;%B8bFHsT&dPf=tt=&^Z7G2o|Kz18k5fsp5eE zQ5pf*)J(siV2VvJpJv_JKIaYA>_4Lv5fi>Izx?v+Z@%r;_1k}bV|@MXH{W*s=l6Yw zf>Nf>Uu;=8d+hh$b?-gHUUlK#-KI0=n{V9&o24h(Hipd%v8qL|uHY$S2O-K4sL-uD zAh3In9!|7-G!O0Z$L|FxkXCDeIvf>_AVCdiMwz4A0y-&i(X>;5AR0uC1DQ(8n+}48 zg@i6xq(qqFaMBbvEsHuAI$OA$C@FHwDyug&m^rI<7T>;d=Tdc9Qk*+>^S{X;X#{L;*o>H?#Qt-lb-K>7@Ksbp!CFv+P&LuO8?o&8yC);X}n?i z$rhEET~@pOFtYgDcbXqOQ?7Vy`rXlnrDa2bbbX6__|vW9m-DOB6PLw5Ikt1}-pw1% z9;LHyc06Nc*!=lnOnz~@q4G?i9(B1)lcfzW_;q&h?2tvcR!6z)KtIXuX-T=VuKv*3 z3#ZrRB&Af=6b_D!icd{#p8up^};*f<4f(4OpS>RmEN+s-L&__04kORA1QEo1bK-gkQrLB;`MSAM5 zQ)NnZqhshWiKjhgR(OqYBQ-`v<=bY39NxWY`=z@oKCTeTfB`mO0+1ONI&Utr8`4Ip zUqvnv7&u|d*|W(df60wgwm5g={Dl*PgT_pnICf01^XTno?ngD(=d(p@5^vlX@i)-m zm~j)Q%nWsHv|hQjH1qJ2XD^hpJigv^`s9h@C(m8Hc)H=}!9(ispO2k8d;V<0(IW?s zpFDPO-`*{&t2ftGX1t)0Tim(XG)Oc@_87%WO`13kWguDW$Pr{?P(hBpp~K*Gqlb$= z40bAqW*_zyNbq}@AV`o}-GBW3>#x50QUrWlknnkNRiC{18IFD5ef`aspMLT&1<4$x zVC&$S_GxYCts=I3WXi@wf9k0b+3Fs>;K0`64=T)aj2ih@W?vJg1y3H$X+Cn)xar}M z5w^(i*LrQdA-}%7yRCizDdq#IpI}eQjyLN>F8r?c@0}JdfKLG^|dixsP+G=XZ z;Q|wMeHXy#3sdA2Zo|uR0t+8gy^zyA#}f;9snd;JITxeOjLte@)rHXn<` zWuk^eT-YrrQUIU+L9eXzeG96qpG1u2^W;Cs8xU}4^b63TocsO#29BUq&S3G!hF058 zzju!s8@)FFK?-&C76@b%0bybvD`LM)k@v-;>uaacAncOO15Uc|UKRY>JBp4U>=#E* zU!Kq_zGquug?t{VKcwMrr;`0d3_up&hUu)H$Hp^*?ZCn{b1|8W$pthAkD(sLN=b#? zL1PcoPT8)53O75lJQ7MWS&GdB@p;=+l&!5K)jF@XG7<1&%3vj$cv-VOW=~ei27H;% zi3_k!G08HW(k)X6A(AHJRe4EChseK0szM5GqNwS>%#hh3??~PnADfD8PufD7gCs$k z2dcEUC`HNy4q`+nOUybfAn{8xGg`r@08p5YXZpbkGc(Psw?ytI@q*bsi_-Z81+3*T zYc-2}ic3n=zz!m=6;h9)b<8N1@BTTQ^E7Zu5PH8w$TD2E5CmhB7AIC8Z)`kq^!Vuu zmu@Uv6y*rt#A<1LQmiPHmMjRKIAOwgmda#!3=Ev;n&2&depV3S?_`vm#!x~js!&2= z(kuzXv(=mq41FO22e~l4Hs)I>NQ7z-{)7=~lt6fnc1NMokcPK{ii!$z*bP~E%K&*> zjxLVNS&@3Z@y6x)x|QTV$F}UPSXH^|^zqFbYj$e%@i9^FJ__$z){BTF?7F_xpQ(Px;AJ zxU{Z3+OThb8yDrDDKbepG@MWF}!!Bp(uj#~<3h^fZ_n z-yh9;OLo=OH=Q|qvbH2QuWaY$jP$I$Ir*uH{AIZO3HxevY+C)bGY6~lOOnJgQ9vPD zHbyexU+ZLzOC)Ww8M%@RE+y_Ov7eYUD6Jn1Z2EL+bjgY;C|}ZcPUm)2RaJFGm2~+n zFQqpx^2<@ozv6yTqB@P=YWaj%uPmiXZ8AeRzo(-3;h1!eu9cWyzVBUVDEiiyBJ9d_B-2$L2D%nIr zTfVbw8->c7w{1r3l9`yCl@V{ddEw#)bF;(O=JQuL7|%#`wv42b#4#u;y1Gu=;I($8 zjEqa^?(t_PWlYo-%x6%S9$ZrD%NU6D@=tESLJV1%qy7=C_T(9pB>0cbqFPIiC9bV$ zy;GS9iJ(?}YEQ(S5D5*fw4g$RRftdd9$6seSQdF=^2S6+DqjCl$+#F77v`j8ZJst` z3vEeAK&yjZVgQ=zDZEhNlvMbd|E3@nyeuM`&Kt7Xh(g)v=}F-hA$_(07g~Rq z!G>xus&EJ*Y&=mK&m<-h_n#|L%^dLAv zX}~lB(nyKvpFw2O?HT6cFf!+fa$ZQl3my5K zO+XrCPz!oZ7!a?Z>x4a766N#KU&CgVB3tLYNVADkAZs&fu|~}JH2Z5Tc`JDgC{<<6 zP(S6@C*90@1&6bz@d*Cg-I$;1H1<$aEQ#2Bfl6SMBNleyM!|jll>-xC1LAJ0(NCOAb#N-aTBU$mMU*@7B2K1ux{(O?Oid zCF9XLJp~$ebXYsxI@&vo_CD7{EvWQ@WX9I3E;RXgMd@TX%B6(}QObJgHyv zY)2y4eobrt9BznE5K#`-*F}1y@^e!1+aMpQF1&m9zQ~mBJCU;BQiOse>E!1c<^jp46X3rpA-C%c+-bk_WDH$M`tOPl@ z(u?a(o@+jFW9yphdkV43V=Oxe%Jz z*jO#ji={=dU|OP{&?}x*9<*Bgi56wzCcgmXuvjM%o_hr%Mn%UY;IPK>55M9Eo`q*f zOil$PX5)I7hx=VYF#}fh?jvghaR6v<>+EPgbNs~dQ`ZZxoo;SEcl!py&u&LBZXZvc zJvU6hpy;~)_}AY}7W>9yW&0K{uFKA^+>t-FxS*6gZN`-1+??$EqODW0P-c|!3BbGC zW(|oPhSj=EqDGAb8ln(bxB7D1mFDv%tN#YGZ|C`wr_LU4YB_sg|DHXS+X^+FYt7mGJP;NsRD{B+6(2 zdtp3)e!X~kFg>FdnBcIcAyjI|Qt2%Q`kn&vLCN;m)SATx0d2{}Ab z0Yzf;GeR_R2`($t^$B5IWQ0@%_xrzH$l+>iRK3gfIz_>5Y+&vBf9vYHb^F2N`(3P8 zbX>o2|MwTaK70E3{^Q?+EYG{UJKL`jVO}mlL}2vk+5%1dH^GaS+B@4XUlNRX;lh;% z_io>~dR|~49erQtQf>(^R0Y6JfuK7=!Di!Z5BU{md$Wgh{^h#26CEmgh;Wb>_;gZ^fM(W!2|0*T~vdgf_;Y5c{e0YlhEb$8E z_T9ehORRVN3m_J#dR<|MS7m9)DI`oW?Ls#AA}E^6VAx=9z3xgqSLN!gt>dd*{u!c}MC^z5D(b z-_vU3BcNs&O+iB6?WwS)fKD6m&_HJB!nqIizhF0XN)Q%6qC46mCS|IBrda1qgsw~g zD29x;jeCuxldMx^o{~b29c!qpQ*vQl46UU6&7G`xEGj@HF&rH_>Qyq?m-vv(6)}(U zx#BOhF+Ekf%U|($O+iCy=On=vCqHL0tdD(@msBi3P^Kb@B-=XL!U^K#?<&SguPDp` z=@1!)G3gIN6`5RuAw-)5{gAUZU7PV1Lc=+8>41R_4{nJ4*wSUpP%)#SC*87M;v>MF zq;j zZd1pOK+E*KKB)J10xQI2?1vw$USe)E;}P8EG#NeCk}+ zwU)}NU!wH#jWOZjF}0f$Q}d366>LgfUgy0by8L+lqQcx=OIRqgh8+pg;|liQu@%`8 zBhAb!!|mFG>us0XP_@~kQcHH9Y45%(^A0i$Gzt3ew;$YTK3tY=I&pA6RZ9nU?`qKF zg44EG_LtVySC!Ws?|j&@DK6OT&l>xB+%$|pDY5d|fZ~9>Yl9>bYgS4Y`|~OvrqY;| z2T{Q!OPh|Uw6x-V$IrL6mZjt#wTIrSsyG&Jjb|ar53EOV@DCfz!KVdysR=U zFmTT7nIbQo3^$*Pf_CQYc?%aWTd^+pK;_9NNk`6{x&7klt&Y}K&yu;bW=xwlo9cMkTyy8JgHo5w zzBW~x{672MPgAB$p9)B1ryMy_)ML<~;XqeFI9myhNGUKNQ7VB&T==QulYT_SZ-);4 z_N&i7`{Yx+P?u{+}#~kv6%9e1pWNU_AZohwBg+V$|SXN<}EveYErNl0#8W*6(|8G|D0AkcwdA z2N%vggfenA28RrB9XdoC>ILstTLRxwp=rb|jXoN&V~CanE{Ry<300!WG{QZlB#m|5 zNJ~^$w5znhHSqKlAtG0QWKtu~CFE}mK6(;i+1MH;d++h)38LUYo=0?we3sE;C;lkd zTM$1W|r#<5xCuW{4i+I+|O-1Y|e<+A*pZ zFYq!_$AJM|FdBVjx?=%-g6&Cm-!l*un~qO6wNm^H!{Ic zhHK$`Da!dHf!nTRv|4WwHE>p!l1?%YBafy72rCo-EokUbY(`E^kt z2rUp%Lkx4|cnWv>f`?c}R^To*B}GehN!F5jfb*FD(ellXyN)GQPwT1H?WNX4%hI#8 zoL;%2`(rbU`Gl7+y{WKl>*SB8u!qiFIDhd9?;t&B-Kr%E7A;@CN>AB$?sDtJme$Ue zKhlD_TDk&I;uPiLtebm5eYxJuEKvG13mw<496ItWVtv|1WDeU;9H2MH)$q*R(K_H)sK>IC=E?)u)d(9%wvvcEx&sJtD2RtfF?`zWw`A2`~M5>G1=N4Va8Z z2eh0%*>vRi>EnmaXc4y94D+dmV`q*WJaX~IFIV?$%1ukeE-5B1F@0kag-=W3V)%BV zaAZddA@GK|b|~o|4@eYs9FoA4jd`0lmGd0un`?@;9opb~v8JX;^UcTBUCerTaCBl? zX`60eb7=R`^+yvl)Z0SxWOR`&wjNcR++3?smii}tmLFKY`B_#IaRpI9Pn+c_3iQfK zeR>}*!FI?PYHF&hv}#jT)vmIwLct1)$Z-n`U*>X@sZ~@|)zt0Td*I-~#zyd6gPf0C z3oP6gWx95z=}61fE_>|R(o(v8Y@whoKQ}9jdfilK@)j2pU9e~KmbwF3mrk2azH1vR zT25?RpO~I^`p~|Ehayj}Sa)D&PJT>a3P!Vt()orZMVI+6vMNTR$e6N2`%d4q7jD{A zhw86Vbcs9b_BI^G(Bx44-kQqFs`ARcO^X+ich%LPqBXN4I;^WW!Vr}^ z?XrX&fd^GXdw)NgC(^k}HXO@(G_G97+N=9AEDrTWe{;rcNHim=kUTXM5s96`KPyWi z?~j`>bryQ{A8BbsloFQ5;e-4youiFI4W6fjk1Bgb`Y0KzhE;$b;lY7QkB;yU{>j7iC4B$Z@L6h5w;Ik{M@njN9pUzvw6Xxl`S zp;BH;NOJzhC>u+XVF9|o-Otq*hUezv<7>d}xQamlCLM65N@f_aO8gqvlH7fsue*|Oc_PmhvW?*3CZ9Cq;5$2z*pKG*V}iD+pkK_NYR~$ zP~<}E{FS&3?^zixq2!2Ywyr;#qR~XYp0qGf~Q||mmAvEKMGWH763!_+MFm4 zsb8BLNwu}L2ls&PsEg|(#(l{CICG(0`S;70oVhOPE)NjEC%=Hzaowg}ag}1a|H@A) zA(r2h5Vv7_kElk@(2#3@JZr~)D)Ap2Pu_f2H*cE!n9n8cb_G#_>rm2Y5C4psMkF-= zJ+_1@dL~l__FR1l0OT$pljQBBGQc9#Y&Mo?c_HADZ$inaRc zj4yCBaNtZA8IzQb!*^l~0XH@wd;6g?=Pw|8yL9&W=~JiA9NCqhRj^q)x@V;)#xaJA z@|vSki|}MHXGph2d&n3H9_b|jPkAXg+wX#)IFJeCisj+hmy{?9cWnG#Qao8*V~ITp zmJi00Czmc+&^}qJNuk+qZoagzC@9{%y}Sakz$IVJ>T~f*TSxoFwiou1rv}C%&N+%-#2b5uQ7k-EOlkZ-8X8QH%BdU01hl1L1peSUAyCGQk0m$x& zT0oE;hKTg&$qOwpE!1+4;|4|(6!KIEGkfZ_*2@=LT3XISj82^r@4lml&$OL6eev4S zTLrTyI4aKAz9qwa=*Wq#_SV*p-5pb=<)+0YgqRzus@yB^y3oq~1>Q+Vj>;-&R(0y~ z`L^4E%*di;KM1EMi&S645yT;Ejn}R93GlmIyG<6& zK&Ue6@-4tk*@{B(ah>g;7A2bD0p$B*c~p@PvJoCbOkfH+d2SzTJUYge}wapnK$ zzWw0AZTg$AT)=^R_ul>Izuvy{;MeERZm47aDj64i|FWSvvO6k^Y@8!r`n;Mgd!W;XxsJcGGR6wVllmYB-7&%;RItw_d)SRl&R0!BymbEGTkG4#<>5$Mb6vU0!umfG(WP5Iom+-nOHnqwnpz zpg1$NxwOe0FyI4m;M4lQ@?QS|AAj))AP>^!c&|_Y0ciJ>IUm2)`@7JyqYsKd9u406 z>YFbHY9G3O@S*mB>-*IIS_jw={JHn<&kqAUc>&T zUy=X4|K;~Xei%CRyKmk{?Dt;OyRYIOIN+lJAAS18_uq)x&`@$ek^Q}N@5X+AGnUSdqlMg&V%qW3<9AZb zt5U&!l2i(!6ZyN(q=Gz|-u8f#Wxz)5$6!(s1L#~QQDA{x3#NpE|`ztmjQco(zo*U*1-4w60AHKH^ z@^oT48hA=MA)KzSQ;Q^7`#8zfX@7~S-z0sC2^kiXV=$eR#t2CP)QRM8!M{F}s^wa_ zas{$K>?i_o;$h~;%uNJ+DYPq$j*d&-n1d{SSHq=e;fdB$jhF5`c$RWDWphYgc~N@m zu8pai+SWy!`t`-0{F=R29~h;ZPZ#;E$tljX#_!B5@!xlBYxKQ`tZbQsp6ekt=@#DB ze*M-{vm>r>_oZJs;7q0mw;um?{YrDg{)PivVuL#B%gbw|rm3j7y75rMZ%NND?W)_? zakJsN<6c=@m=)DF`BZ>KBe7DXZv7g_6-8%j(ZQ`GPhCm*m&&;UHPc5y%p${+Q!|Sj z_f%F@6zw=40>yJ*V;Wk3UMMR2Y=BoIv~a9{`&{gE({f?YBbg7~={3ln!AY9O^*v z=c{=G2c^VE=J|mnPju#pibcJXBF&u0#!`}!Gk5Iu!D`UadAg~-{>bI4&)08^AjcrZ zFjP6Qs2c>g3O(lJ1;ggUg+vNyJu^`woHd3YuC=K;G3o4-b)tK%@am9d*-Y;3+90l=5m|b zT(!Zd$K@q)mPGM43Q~i^-M>r4v`{)Q-8cXI=RaRs_I)Ot?vqc0Kl$@#Uw`|}m!E#} z$tRzG@%cbW^cHh8aj7r*D?CC~C8FNoW#-SPDUIyZq<;D|Pd*w)u|}T`V5BzXEoda3 zAX2$a8T|C=iylH6S9k_I=HmMI0fFK166EdcQ?F_ITt-3*XeE?Jwr_gVhTCwrt zwXvR)7cH5_G6B%eODa@Ffo6=b!0kLZ=!VdrBWiHy4+fA<5Zw>oYfAcOeE*7c;ZQ7( zW7PUXA7_2AQ{Ok(I>ZIy=Ppm64fPl{6l|r9=p{=O=$bju^)bCwY*ev~h-r+GB3o$; zLpKzN&qPbOJ;FVb+89mEf}^8@V;n;r!`#rpY1GmR3dF#Z-WEgz-aAViPB9;f=^kUo zLgS?OhZoFl!ene4j4|)<0CfWS$vOvtSt2P>RmE6t$jkF*X!@p19A_PG2I0M2cHt59 z5g82?#EwDzp+TgUwHJ%{F{o%BCsv1}Mum@bhuOjKT#)l=BYTaNF2Hk{9FGa*H*8(& zh<Q6tBU8;u#xjHwVmZA7pXM-T5KRFYC);2sq`Hhleh{2#Jsgu919G_5q`uu=!i z6qO1xSG&WCw$HG7O71A`P`%U*$z!pha$^!}rA&;}M8nrz)}mRu>&vY6rSgMo=4fiJ#;wyfd8q!i4;Z9FuHA z5)>saK)uJ2FYqr#F16&>Qs6P-+b2uv{5A;|=twq01$)B?m9UR_rjcpR(zAQ9aGaYb z27W9-c`@vY$`;$%0T95Mb2&tQCJe4#L~Y{26)RR)64N)=9crvUa&lkwj%*gMlWAWV z8o*e!Wd2-jwr!>-OE`1p%(2b=KLx)gmU2Mdh^H9)mM+EKb(MfB@k>~>dNswEL?Ng9 z0_zV#wfGMP1X7^L#<5g2xI_J@B+tyYp=0q$>Dk$|tJ|2BUyQ`7`oP({dRWleW0$*b zJ&muo#`$M9?W@{#w5IalUEhe^rps;RSzAk+&aNvdKA5isZ?~@UbA7{stYHZ4mBM+)k0&vu+%LOzy+m8_D@+jky5uy4=qvZ{mY!tB1+I{d>9=WR?*PKb?9N{Hi`3Qq<2tv_2? zR&#p8?z~v+Dj2b(eaCw7H{76m|AWOPwH=k;p;NWa7FKly66IvHp2Z>yF>b~T+w`|o zB2!maQ(IRLMc zjw2qmtYo3KHT{)atWc?4Y@IjqzO}2Vz+j&gAJ@0$%XpwXJJd`^W^e?3=G;HBdTucJ ze0}2NX;U!P5(YSNT$WUBX&G;Al!HzfAQzMXbF?YrFkygNv};tPfoRxE>`>*{)x!RU z3@$PPO=OF{Ovc{kWw=a6*8fv`H3A~4W_J;sl7?AD4pXbvu2Z*A-R)fAFjRh^TRnYE>KR#wjT z^bmVies286ZFwcT%Dk7=*36#6?7M2_>>1O_Ra&#Tlm)sas{^bQeGDEP#@Y#jae<;i zKC8|hIq+@$q5XUJ?Ay2hC`N;wfgLR{u1i->Uh%m~li3}jzb-D`v>k)LO(>($L<9fC zuTaF?0IED3{tD^C{uwepBz>FcLW0d}T&Sp1)%G!h?+qSJu>Udod@e} z`8Jco)b5xvB{$09FyE=Ks*>g%J9lck=5r|wu)3P2^?RF+TsYMpWVS^_g$9R(T7$z` z%MlkG3~xqCQ%JilGof_qJRt|bb{)mwwdbTLD+%?TK=RlN!2+*s6w^` zvBii%T+lh_&EMEEvSdRHg2Ri)=6zZQd9ehcRv?USH$soK>mMA$SSjAS)dd4=2cLCa zzkU1B^M?rh9zMM-B$XH-aYP`X^^)as$R$^4j;mkzH^u&F?sMsK8=D!KB&d%2TDxzw zo!6VKH05{`#0TJ0^bdWWNb}B~HJl>7m(JjX~k4`D{Es&V2L#0e_Z>22CKe zA9cifR^XBu-sk!@xUZL#0E=Mn9~b~SP`qjHxL~=bp@tI~oha$F{%)x7Z2ezHlK1}m z9}fKNt8cy@2)5(5cBq}Ac>}2R?InNFzrPp->K}LxMA7oGvivg!xb_DditAs0eSlYg z8u5NabCB=>j{YIA!Z=ary+_{;(crnE7PRp$th|Fh?*R!v_<&}j!eAhL?n~1 zKPVKagp7#y5XdMNr@;bAB~=p-4@pEN@g5UA)=cv4LRJYKd|5?CdTNaBDfy#9fmS8Q zlblpX*<$DHP})5w1hh$t%rEKq%M)tj`tV}v1tno7KXN1Amky#LBy`YUz(d|E-;oQv zz(cXWkm;V{0XP$1u{WIH4@@>6iQbYW!v3@+|3MBUKmytaJmD7bPvk?20xAf&7^R+> zjvf7$iI$JViAgVPZRHAMWzSVB2d-L$7vQJ*XBL`ve1k&itFONL`s=U1`S!aXz9016 zu(4yN&Yd}7xG=sU!zU~W(pLC|<>coUZAlLgS}8HtH9~0O|lxJMcng^m>G8axWk4BG*UrK(r zOubd;*=n*8A7-LT<>sKtR$QuhnJ1-YWal#)RyAF^7j*MT)2Z8LEure}`6TVEfB2;> zXIBhcRth#%)Y)9?E^N+M(^PQIF z%U3&ZKMkUzZ{?|nOk@8*c4xK-H zwC!<3f#cz$E5!++!Ey{Up@xW&RZ%LXYJVv&!zoW;Kr&SHdt{@&%JDB~xz!#Vk(8R4 zUzl4^URz$#oK%siMQ3f+x|n-_)Q%Hiv+rSBDH?;xafQEZ7K= zKE3(|6L~WVoFM6W$3Q`)HD!Ky5+%{xGA?f0frgf@_D4Z4Y_@wrciZnCrC2O1ytuXm zF%z!As3Vja(kk1D8<$VkT#L@k&f9U|+@Ca) z`*Oqc_nkaVS>4f$@Z1Auj#MO=Z=64C%iL0u7-DJN5{^aX0-)R+q^%1UQ;f#*%4s&K zD}8hOhz3La=VSv7(FRlZDy;O|e*yxvZ+dYQeC4eC)l}WD^^?DR`UN$>p9~xb3LN;c z_+iN*hfr^!eUW*gHoqV58UzThc&Yx-sQR_gqxbJG<+dV8RVbet;Au1FZ@_7D#WEyO zrkRta!;&mgP@C$Z7@#)ZT_Tb;&SkuHoT~~*RII)txQi$OzZ6>5YwQHnd~~@Oi2;Ga zSO#RuhJ4RmT5vdqxDOsOgpVdnUJ8L-pnjME@?EiO{Uf4r#l9th(irQd=$ryR9t5(96MBl6O!Q>Zla_`ZT8sy? zwwRdUp<%71T#Cl@k}psmJjFr%ahBzI`r`J6Wnx zGHL@-s2;=0%Q!Ef>5o$FE^%A}xs7mb9vw{h#XWJHF~&MJY)t5A{%|y!L2Z;9!8>Y{ zhf?+Fn7F!u`7|zt0_r3Ch?tN+Lj0x zg=j=NJ^92+Nf)k1^blnL$%HM`9^yrs$+Xl#dk>pE)b^(2nWT-PJP`ON7qCC}YQ#C3 z=3(K&lF8&%-EdJ|IwbG)-~r@}hKn_Xf;DlPGBEcOrHbZw6~2fp3?SfqSq)9Xe|wpf z@UBFiAb^kDLgge;=)|=j7y&BwMnF!Vh|y8(dG%FlXvnui}`Hot=}D zI}ULlU$Z{p8(Fwg>s2DWW~4;1%!ULqqQOfz=ruHcy+o_cvexpSm*`9XxI!f5N>{!L zw)c|mZO{T~e$IbCG{VC6XyPheT$u_nXJyi=AU+!ANsNexSD&VzH(* zt|=`$->`Lad3D42RqIwYH=61X9XWpL{K|Fy_Jo2u-h9Ksy<015ONufR=;7{oeD(Cn zqq}P>cEYr_ZmZnic)Iyo+lA|o9m)EmhaI(>^RhFAoTjIzGA$Q@17bIlNxmkQ=ixa5 zMX2k7$i~G=0-2~fITmj&E+ZqVtFNs)F-cDf_6~GJtv}ybkd>a9mBmW`#*DNrJC9#E zd!nhV_|UnU&B-A_Y#HJ@9MoCaEH`8@f|1e;o;4qD5tE~^hNmjMF@R5-?ZSM+?DR4v zR#sITGflH*)z$5uS%->lt7ti#IYxd#enF9J)Cw3Tm09~~FW3Ov+q1j2_E<|x`>h)f z{2l}b-tg;cy>+R&VpmyN!|8*iWvEV2De!jFu`HeDEt!pHw=__M(@TDA0xN(GrbaRZ&oOa#`uoruSkU?j_yRDcAjX4v`70 zIE$=UMREa|BE%4!nPyG>1IJx55S_1Gx>HK#N=cd)*;}xlaCxGq7H)*~4=44fSpauR zPtow$9QbrSCCxV%&)1iC2t1$B{7Oc2wWH)ZoFqL*po;|l+wf8<+JvE{1l{x_D|5(ug|pK zUqx=Bvh?T9T-}PTk*FeGm-P-lkF0|5%#z)+K5A30s(`uIh^;(rSg=G^1?-5kEVT6H zewHXDGE(FhVhgr#rx@Dz1@6g1?Yt@ezz`@28`SKS9NS%`f>&HqRf`csfCvFmFuE(= zN8Ht|QO2Lu$9wq^)e}J#g(K;@J7;VZK!935Hh|3$7R^T$GR^lP`C1T3oQK+Kn#qeo zF7;WB-`%BN*ZB2M!X89ugUW^+8xe_Q+O+At-xIwX5R9{S*9)x)q7!NH@i(!_qrs?C zf}?azus>uf0?@jUeG>>AE2#6Z-0$z;cnMN0oX48ZK49add=#z{!`_();4#N zbFBLQ%avBAt`Df!c7?)4?iRw=ii8iv;8m^FlRs#^dR1@JTKn-Jexop<{FwhwGsDf|?5Y7x2tMFpzJ7-H$KL&i5be2#bo0Pf3oY5?*3! zOj+8X2d-4^+4$CZu;&&~0h%V*7AK!5H9wPm?= zl`+B7<8ni6k+Bg`8RfH!OX^Co)GOSwYx>OTWt*hu@3yk(GiEPd>7z5%3yTcHB9MtQ zS;_i!S56-}+_-nITC{;b9c(&v_Tq)J7p`uwcwcS5c%XVGP;c9IZCl^1n>TOXv{~>{ z0YP6Yaz|vAXXLv|ACJNE3+c$TjS--%x*A2>?%J9?%hvw9VBxY=i}u%T-@+rP(ZxNn zct`o}1ABK@Z`)F{uY6lU1}+VZYVc7}J?iloCrXj77V|&V3`KrosS6W|5DrkMv`=O~ zGQM--%o2?2bJhhoj$nGG7tfwPqA{;vDB<3+=ig8T-W)_veiH}4-w^ga7Twz8#}A)A zd;Da>tqnf6{BB-<_=H`s>-yb?cRM@Us5-xNu?4h*!{6CE_q#hUb_BB85Eh-1nq63u zlb980(*iHYH;rBbgNUs)yFV*l|Y$C}&B zA=oPMA^h%|H6uEaNh|Ci1?`09tA|EMLwqBGd@Z3-;r77w9haNeVg$5d_0OmFRhRA9 zzNwh87P|>RYLQ;xCH;_dSQ*nZ|D??Q)VzTKM9n`%)<-$V8=*4UBpMOWWPFfVX(cE9 zqeLKLv`{_M3vB%ahd-l{&|54j5QW(|D%?E$1+-3-A;8?arQg(U*t-9t3mh*%?-W-dkX}3m3Rk zG{d5#6f6hdqi*+naI^b4gnLfW9ygntlh3)HKW95{KBu35^_(iXMG=T!AAew6c<1Zrwn?sNa4? zA}Sg_Q5xU1-Fp=rtau(P364Xb_g;VC+Xo+hNUsg<(cbF|gd6zz zx8Dt-d*XK=_79^6FYM0N-;92*pFCK=8=Afk>A(B2wC!+}h8-9POy9exuGtmyiEc)nX?r2A?VY7qOeGK-jB4;2%h+gwBQ{t zE2(6D+W3fZePB#uNg_$%xF$K2EK>g4$MzsKm5A6?KbBJh>c0 zw&;Sa&yKmh8?!hKtsbauLL?}aHmQKRzX+$Btlkvl1p*`RLRQ45TW5GNEo5pqYoZXj0H}u-XiouuM01L*9qT}EC+C>E%xLJT<2J9fzoNq+y&Cy1%A3=;pYK|_9Awg#uQ#p~Al1ls);OdmUnk2(?+ z*!K~GdVB|!8$voi!fW_&0 zIBO}3+SdFiBqiqN$%9QT-S;2;u7}3w>}=||ceAtQMC0DZvj?^oBt?fC!B3CX?5`@x z$jnVoPl`)U%iNffR#sJ7TK6LOw~ET`Ir+(9ju7U`Oz{!vF@N^eC$KRCxh7_fMkElLFhRNC18uPl+O3Vuh^?F*)Ij zT#6QJ@LLy(-`bm&nQcSm0o(KD(?(XeAKzP4^f)a&B_Sn$$J-Tq zj~(2)YZn?YypaPQ&9uwI}zzE3_4M9vs&##PS?^8#A5ak)8di{&XjU8hf+w)~? z6Vtukvd*AZHzrOrQ&Ou%xxp5!(Y@6?HfHG1n4z)8(BNS%!|edMh!Ouw6n>*I(32Ag zj%cc?XNAj+9!tv+0vw{Bnd8Se@GjuK5T_PU<}!SEE7XlwgTA>7e6u6Mb3r++k9FnE zz}{X$J6S_<YkhkaBJn4F01th7as7)dLpQT)~-KaP@S z9l_YH{$<>RAE!(kkEU222}@KsQHWyba5uP|9@m38w@^8q9=n!ETZA6&p|F@1>Lux? zob`~tk{F5-gtLQxq<+EVeRw}HYr^^pBIia15sVU#8aC|}&g$e$v)#C|iN}eiS(SdK z4;iYYr;_Dqq#x9ON%CO?(<#*~k`b)+Ug5>$#nqe9!>tk4NF&NEI*Ms;4=MCPBA_Sr z6PdtE9+#ZNEZG3b37)eiyQh#<=qY`Ouk;B39&OyXF+*xPibwY}wZ%k=;~A~iX@?O;R0 z@uRzspSyJ1Y)UJuGxBnZ6V_bKj`4|2u$U8e#00MQ)3wO5qS(0lHKmE0>d&n=`<>oj zUE6Tt?72&8d`$M(?9!U5s?yB`IfdH_l43&X2ChB2aO6Z|O<8G0DcXf?r4_qM%Nve1 z9z6bB|LyRh`ikn(0(2JG$w8BxNs1^vq9UiE+K81NvXVmzlSk(L=GQSf=V* z%ByxBGl!T0jJUY4aDDxm+CBAWuk0wmNhiA?e+z;K`g`P8WFV0szkR z8mX)!#ogax< z3{lC390e-%M%!eJvW5Vhb9Z&ygZq`-Fr=fp5$Km$t`;u%pmmi#$&qh^D{bbP<3>x@?_wYgto+%dy-^ zl-K6ZMCkAObSiRGNdx7tKE0-}cU&P%PmG7r?p^^#tRs!S?fOY5UVcN}0G zdr3*Ot`@;%tYULu*wsE9f zuM!vt5zd(5yn*me{B{hBhkyxC&?}OSNjA$q0FZlyOO6(GxCChaE&<{G?gHivL2bc) zDZZ|LSfik}^VgMsp2Odb2WtWDNcIrlc~ag^GVBQQ0x*$rs8{0k1;UvrPQ~^R1}E*j zUnf75FeE!M0$>4-E>EU8zT)S_!x!mO^ektsKp? zFrpy0H;9h_Cy|tl^9?&Oj^`CsF+mkHCYN@{ADp39wh)h?mP4S7v>^(iX)qPHY&)G0 z?6CKM%JDa_IK$D8Tk;nYp4GKx_mEJ^hk1pE$s^?_+2#W2_{oiTVz;{Sj%1xAh6M-B z=poyiT~gC~OES!Du9W?$-GOM5^%wfa2wQL_ake1(m52fluz+4jd;a$C(shHfTs9A& z@(KAe384@=5@!BO+AQ^6s9~U2`n~_aPY<~o9Ya-0c}ErKDt(L+<|$5Rbi2dB=sc=j z??G}cl05CYr8Bt04KQc4n>%dno*+2@opufXc|e=hit3s@dv@<>I?>d0qRYGc*s-Sl z^>w?-X&75px{YQVNbGRQD=aK3Dx{>ggc?xX+hipspZf|6(bsJ%h8u0#T8cp_rKWs@ zs(nisN0zT%^Yikh^Y>O%SJv(;-+@|h%hqjW6%|!G%ZvMMEh{O=$znMwS#1f7C%l}h zbLnmNZ)|Z9*%1##Wfv-|nH+k6Ir%QNUVN{_95YKN!9o2vbe=ucB3|63-v+xBCFv_~ z-nswFlgCe={rVeLKo z<^1{cXHT6V|LeGN;o@T*je*$~8X3*vNo<5gv&W=nO`WtcgTk^!OXp3Qm=gT#&~7X# zs`N^&%B5PXS_hV^sI084*|&e+;Zt{l0ykW}<>P<#?BT-~Hw1;phDIhPM050e-|X!0 zWr(p^x;oaIERJCR_Vbt5_y?H$aoJvVu72l^ty`7LY@s+5%J7=cDUVewk=Du5PO8|> zvWmwZ35^p2Rst&$eJ!M)3XIOJrDz<1$l^}8K@P^YdaiV-BJ!2^t3M?aKYl|(iX2ly z#D&BWLaa9}F!TS_CDEb_6bHHL>b})|>(<>H^m}^?L z<3cXkE_#S$QJU&rROsyDr3==UUZSjPX#uvKvo`DJT$+t@UfezhZ95lx-lfHU-b22D z7UR6V#d1Nv_$Kg9xSLZv2gMW6N0EQ)WeumhE3HPGhYDKyHIMd=_V!MDht~Ob$RTgJ zyBpIxiGu2Ui`XI`OwqQx+CA;QD=OXxedJS1L`7ow_-T^KY1=BUcfbB$@)iblYa^Tl zBZD*0ySXryTF}fTSQ5E?z#MG3XLdT+6~o(X5Ve?~7^l=u2H-3j=*dWi@GdA6&}Q%h zws(wd-9hI~E(*F8shZh0CHaFh33HP=J5gsr-g+z1+}nuf-u_3-+n(=m>z#M>x9LKm zc$NKKDU%)W(Z`>B_Mz0ezHc62fA7@+?|=LSB<9<%k&t{KJ#SIEp|9&J&};xy?LBTl z+CC7p_Q40V%doz0&}73H;L_iLgw752roFF(bk+gVfj5+DTSxzRkeU;x2|9cCJ%n}e0lvW?_MZD|sj!wa^Cm#dOrca^y z1UZ8Mu1U6^dhpTZWS{7XVvVd)3e%)}hR7_)G#t`t5vJxC=LT-m#=b`4$bW7Nl9L~- zC@y-7m_x8P38S#Lh%v81=;XwIl|5@xLkp9mfur1yS02D_tbLrTvpa?)GZT!7o-C{K zb|L_v{lIUcJRpH5Ifc1s(`_@{Wl7dL(?fjUX6tkM2v(R6eIt!oxIkazLM5zqvBwgU z7o-Jm$kmdiBr;0?aq8wW>+;@WDx^dQbPj~Pnenpg`8kDupMUw)mtX2%z5k^kI8n$A zLJ>E1%AC1V5XTMv{+~bm@ZEQa<|vn)I1X{!kCW%l|B2#Qa{TYL@2rE&-&zOtl4?A9 zs*e#u;68E`tt9cX>p|*D)=L6xl6p1j{6xV83K7u|v)Gx7;DM`FKqS_Mg!->SJr=N* zY3~Y}C{lF7Qa%Q0Yt~^zRYmc5ff2zJDIXyM6@p#>)n5Vbz+`rhcuco5r=&k6J+p{)qOk&Y2 zI&RYrR@h3nXXh5~EZ>|KO7}FTRTeWH>w$1n5OnC!VIyEoL$%>b0wmwV z#A)k~Y>QnK8syKr@qwNBnb@#V)MAZRdpG-j_C~}DMcc|6j~=LPeBy|TPfbery*`b_ z-mvgwzoVDVoyx9^up%n(^IgB*-#6o6bM@wp4YwmxlVao2a|*Xt@2}moDgXE#jGM8r zU}?@&Ql206_~7>N4ZYPzP#k%dG225`Txm0xN`>s=^to~Nu^le&>Jyq2+)mg5uSLyefRA@^>2DQp&Qgq``lfsVzp1)0dAid z1KmIVc;GfOc4V_;v-Ay}TTTBF;l_s?x;)SM5Whfo%q|I5|E;2D=Q2K>OAgJ|~P$a}cEl@5{!lKhbbO6o|zTP^ri-ifUC ztF?UQt%f3QJ!G+7EjD{Pshg4b8t6?#a4P#30)Q?~OZ8CIczEBXX{kMBQD1ew(K24y zhyhS`wzwnb=4m-Sa@ipn9H9#nU4LYPAU&tvRjWhOXU(3wXvI4372vnoGp9kgq3N?1 zEME2VGNRv#)qegf7cWrMLYoyn^L2(T0Q6E0Qao5`B(r3ZzCc^(0d!l!(vV3;tEE7? zl?2XJFgJ<)in*=FUsD1r^4++&U>0I1HAcV`q@!=KtK64FT{2@OhY1N2Q<;sZ4rq+d z0I{R2qORe{X(oi1Z}Uyy*OrtOVQrTet3C zJA39xV^j0Z;PZR&z}Y5A%%Pb-!Hts7e$j`}0lhWg48WM}`ozh@H*|5gZ zL#KwJj8o~Kd~KK~B~uPXsz%mRw5jZx9(eSkLHpuxv$Qie($gZZR&L)^gv>01NSz?A z=y6e42q5fYbn*37Rj+ueO5y9eb=rE}TU*}`X`CwK6y`|{=RAGxALsD>uyQb$Z$?Cl z+{pzv^mFP*gQ_wk*6b*u`C%b~IGmJ9D{5-%8xOu@r;8Rg9Xzmi@8P4zTP`-Ay!gay zqmM|)ujlG^Y2~JxfbA7KOXH7iD+V=Y)A=pB1GQx*yNocfab$cFZnXI+sR`Tn zFI>D#`YEkhwm3M-w&CRV3`e|pcsp^1I+8?1%FhB=(ZvM^$7bj5JKNB3u(>WPDL$v- ztiMm=nZUc(eXVy7S8XfUbM08yHvu=VT|9khePBpfz_pu!@L8M9f5V+4xe@q#NRJHW z$V`%{>EwzwyRa!5TdiHgzDHZ9<%<_B(B^CN-Xy#;J}Jush1{g{Lc>|+ryp$-#lrv< z^LPT%Ygt*$NCddiFNTw3-CFWn+j}!SnK&+yElf6K0MDXjl zxD+JiTc+ftV2zZP8W|rZs0gJNw9%%!ODqWk$xEL+I(Z-!G=kjBG~2_}&J)EO6|Gjd znLpgDhy2J{P@Co-FHI}pYnrc{pY*SFXCFf4<`Q7{cLW%icJvfYpllIZ^w}+*3S>hv zaMPn^^kuwpBiiBN8QN38ntIo6sFbX~^;9fGN?G+6Zh|sNlc8y5at?>(6$x}A-Q$8U z^fh1_LChgcjT;WhvtQ+!&ZKMv39>{s{toJ;iuxT8Jx>8-4)OG)L56EEaaU-WnUYsk zYztY_9X$bX@+b!ecdzh#>Z#?@u)FYNZwN;tcB&AnUYTg2+TzOYWecT22K$#fg|V#R z;&d4hxX4>KUgO$o4+#$^+FNBO#DmC_orle(1zAmW;duTAI0%X+AdO7-DID#|6a8^N zQauq^{2~dj@FnejZ<1bQZlZI$quqV&rOxd((i2hlAQ!u7yJ78q^<^I1)$P=#=-2qgE-S}qs7QGsXD5kLSM z@-|SJvt*SIiN;0}T|Tq+i`PT0xkcfa`LX`Qoh|dL_FE5uBnX?d=emgv$#z7}>7jNM ztHQbeDdOhHxWwdmHR$54EaNU++EAnsL6cImvQy$?v?v#hBmX4F4m%IWkQ_-cG~8WS zve4t)S#zR4l^*ZT0LbFg7jP9A8si^c0a%C9j8=_`{49#L)U@QdxU{0eOxj9p%n;#n zN=8neER-Ox&PdbJO=+w~i)(?xYdLhVmGPytd{;%y?s_z4XIt9V;OAox?ry)1j_`7O zXV;zI9Wk5ct@St7FIt>TKW|fLT5dMosBu^fj!jO;o4H_9M*gPhv**poqmjk-a#>5C zvtZdOZ$DE|pf^_D-e!xx&uWOp#pYv2KWl0@c>IFTvHH5Y-8EI!fS-d+4Tm9V^#>Y{ z96h|ZvT|41wyj&YgVDB7#*4O!T1f?UiVO6-KZ$LDw4q=Xr=+B~2u)sTS!rpxw)5{5 zRY!hacHr>OYrI$g%+Ro4(c(30RyJ0Zm*IOS^0?vxEw3l`rLr8)njI~Gy_B>q4ty5( z?}`esj39zG4iSzsCC%d4F_4L36$wX|5TKS4d+B;eZcL~KJkz^+vs2x9fZXwS>0#`G z>}|%2-zma`kAR2n{_-0+AAfGtmr>@-SZoSZQ{Z3#I z>R)CAVNr20p<%YTl(FN+Gu8fa(uDB~7SEqvm=f(cP=|+uUgcelv1>JYzN#wFnaJ8; zgh0v0BbR7Nf4Q^y;QqahXRiACT&JPb*D=!JF^ymT9h>>m|%QU|6S zsIVwe#{wqb;&8ov`~EMFp8Ov42$(&t*r-AGAU`dUUt1ii)$COZ0;gn zb0B83LDH-(?kLhO=;!q29*UX$ORnbHg58`8XZ^evcuf$S+;PFy;^_o#+68yfu^B)) zL~J}a9(0g2tTKDH@}e9XSK9Q}SCxWI0X2y`#4&rP>-A3U`d^4T*M+E2m3oViD6WPQ zZtmXE@4hL~2F)x1N8%}no?xRr@={g1h^-TpknKf~@lsu8+;Xhy3r9%$zr6BLO@oo3z=)Kdj{iBD3Qssr0ZgH@WxYPd@+hi_bp(_~Va0{(!pD0sXB&E)B?Kb}HK5cNZr*?E~X|3(X>8 zsbsZ4(S)fP0}}eX@mvlVS;%{4s!K7T=brMq_y3Hz5X#CVm8PAbePn_tW%2Q-&v_eEq*29U<$lP2I zsF}&)Jg68zmp0B5>P0r8k0-wqdS;C2B@zqC`lNKpOJJE~g8JCra+4n(%g9H5CM8+6jPeL4Pvef|%RyE@uh3U|kfwb4 zsZ~+59$3tM@#Pm^YG1j0X?*n#%^~0lQfNBpyCD;2`~*My_S=7c|HGhfzx{U5_k)Lx zpd%+q^N7(SaOe77|1NBh_FeDqf8ZC$+D3!UP}c~v5q?I3I&!2!X!!{XU>A3 zfzLS2T(H)6!>XT`B7IolW8Sb5xW^QhvZ6KKep+;lnaa|&6lHn?&`6_#%)0cKO-!S2 z65|c(=I!M*^+!&fyV!dD>D{hpL61&XRu(6xmy~R(K8`bJ`r)U^d(WM2+ikgUHp;Xr zB-(ELywV$mliwQe)J{uqdr|r3J$sIqr6d=g4>Fh`MI`6%I@nabH6w)D09#~9X}*5r z=YS{2bi}L=(~*qwQePhy zj`$d4fY|k{LMpfdE2N%em5hi0E6sO2%4IrH*r|PR7@viW&OReLyL{YGBqy7(9#NGwd>U}dFvL;Q+7qjBiM~a zJ@Hb|hNMkuP3O;Brboo31#eihYWa!{L7K&1k4ed^zFHM)$C5QQH7RR*(YF0<7n@E$ zvK~2DwsG4H+k-uMu~zTp3+BwjpJF~w&(Se^?&1~8e+~#21^sE z7ZmvW?*kG#be&=_OWvqBt`~ zy~X~=XPfZjq$zv{@}w$=z6_or|Ee98n%WSxa50X)-?lNXW94nBII2_fA3Qc1K`^eK zY!QPs3A@PCG$l`S9XU!@eKMrp)~f1Aqer`c*-MvQtZtW>ZEYN$WXmSlm#G zMP(V)h9FIg?1eT0k|7zb5!OpY7&3L2{;!_FXd*&TM7Wa7;gxR1naF`wLNP7P)>Gwd z%pK_)s2hKfxuZ%MInLEB`N@ITl3HPBHt8W#O5Nda4%$XFVUHp`tg4CNPCorfHPcIXxa+_jPHf&iM)Z#AyG@RCc8>CDMFfb z5vPI5=k=5TZ)k@Y6$Y7SR2kWQ5jKC_q7 zCJ2SobQqcpN;5cE7jj%Il)~^u^W-?tXE|oRfj0tP)(V_0!Z&mYM~k*llPXe<7>=PO zOYBQc3{T5f5Gy5ELe0>r(Nx>duv;lvrvfqnlRlDr<~@>W8PvU}r$>?XvX!lDk^hgX z_kfS;%<{B%sX%E~$Ch=g*^ z2?e6TL=g=lg8^d<#^!s@Tex=@)h$&Or3yEk`=00hpZ{Uou#G~(Be5IE$ij!auvki7 z>RY-fJwJZx+>OiUZwKBzvuA&2bzMh$$KF%7%#QemlSWo$X+y@k-Mz7arm*M`_trqO zeft*XBQp-K-SlliMNwUCdwF_VLGP+{8<}IUIAhbZ;-g$a+o)!>L?=dWyL9B(u`?%+ z9NM%0__@nhubti7+0kBK*U-||Ra4#A*VEkCv-|MghPo2cFYE}&z$mATi&gf{(qx%Y zG&`Bl*pScw^1g7goFHIK7`aexG_Zx-1YE|>tB zatG0%LYHectX;X@s>R3GX1Gk>mXHXLd=(THmsU5nwsv%b%^r7ZTD*ud(p?AkA3AyA z#JBy|f(%^!owh^ubyZc>Ehk)2ahdTybe0zv6yy~ZW*;^G@Ll(wj=IA?1-s&+q^GAl z3@HX;zoLI?Ub=B3XT(h#mn{#nZdtV}-&G&u5{Dpm{{S)yE+k);uQ^b7#GR5`SdtwZ z6%iUv_l?xV^um&wUEg=_$jqX4xTLtUxu&t_Ag zfk@QE9Zmz7nJFBN+U_d^&48Dg14Fkx12e+`LS6GqZqne@E6}yw9;D;C?=7i;zlF(q z-UJB*SDH3h!kBCaKpOR&kSv)sAWOEoeAst2YDMW%6ZRB2p1>n&mL7^g4QUbiu%AFV z9G-m9ypfjpAgZuJ56|L^g_oa z5(*TP&!N^5S9})kY2Y>0I>+UJu3;-D&vUwAaYR_Bm&3}l{3MJj+J^Jq@6lAf4K#!N zRT{o}F=K&3ki}{p1O||8;6$tD6xU9*F4!bb@G#+-|KeL%Eq<(j3tPfh_#-)%>7O1U z98vl2ubvfxd_)8!_aEHXfBtvLg28I{{!g=4vO&?32#u0Oh?J6*+|+OQU%!6+#xrOQ_?dl(xvV1mB563(U%_`un$1NsH80YlK5!fUqk0U}mA z4@a|t&7M-Zv?$pwAZ+6b3itH)Ff`<6+?OkPSUYb9uldP?WV!ylI+_vf@_$^pa)lgM zE#&K>OOwo9K9&M)p6(FB*>2ptVf*14>8etjCU+}O+%YvOBl|~k{r6!jG|tP*Ah)q6iUB|RL-E$5s|Se zsMO$Z9M|#m>86CHygWZ6U7Dq(risc(>PO?^Y3eFxAwg^9g4P;aJA1JrIQIS7GuJlV zx^nK~x#K60>6{w4z1`x@s93z!YO!ybUsVxpW#AowD?+%-5fvJd**tIl;;QUICThy^ zQ&Y3bBx{;C|LY~IH*7|COu$}_H_6tGD-Z47xBt+0G=SK1@EF>k!+kwHJzZ^Gv~Xzc z*tLIOcjul1hYof#aZ!azs=T5aCPp)#BEVW+KH*&vALv*Bck`Gd*`XJ`MZ_;HtEi|T znpYrG+e7lxvjREq+I388t=_P0``Q{BnrkbI@^ctAWM@im?_^>h>raa}(}VuM zvi8+HkZcAuEh%zcF-Dcql%i~&R?gzG`HXHUzHwx8~5rBt@5 zQET$$SCiHl0BgebI%?W>g}zq((tw$6Y@R#zde5C#GdY5y?uLj@80*_ z{(}q+4)+?M>Af=&2?gVg?7>WT3L6aA&1VFlA?Fz}ZCO4B7>> znHk1C#eT~^`*{2*;ZF6+A?g?m9f>?dQTV-1l{zf?x8INjKMVl1Ntn5>{ro3E_i}js zMEBNP1Q(%g@HXSRan1Yc731nZajag!yOHDb9!~3;@$ko+m#*Eo%t0=VXU+lO&wA7J z`HbVV{Z!aVcmEJ!W&Qo9P9Hz+I5zY+Ojj)@PS|MO;NLIRqO@G~6`tl2qd2)Q<)orY z^DLg4(^C|KN{4BGA!%r0&v;Rs?tPBd4go3@5qOLX-UEc1r&T;7*s%F!xlGU5t3yNr zD{~Fks0$sWq`bFi6zxxNf#YjGdO;V56Ivw7{;XojL+R-tKhlXiSdq0~c;p9=m>VQ! zwL}tKTqxA8(2ezmIU?A_<5s0jlfJDssz5_HckSV}!Ez&bFQ+z{ZbF1?@*p&{Psk#s z+GT!O4BVogHN&2se%#R%XokuQawftrAz%R`>6JQqv>-82fPuDn@R^Y>je7OXx8EQ0 z=4-FL{@SS5UU~K9kyeCcb{73b?~yNRBYj?aX{6&Nub1_g%pf!Wkt1K^LTgpnm)sN| zH-GVYdkK(cADP6<4+Y36JjO34C{24I`g!jc(3_cG%y{9c7lqkD@bHo2@3|fIy!Ug@ zJJ8EHv7)0-p%T?iqpEYLBm;_=O{U;#xXK9ynN22RU>?zHqMf-!(rTU2(TGV?=dK(* zXDTVJWPlTGlZFa6o1lhFh#>~c4Su9BiV`guN3l@%sY#wk?mI-WF+pwQpxUJ2>WvRTLkt(bf(U54O>-kJeuIAC1`T&9~ie z`Jys=*ZR(r@4h!?%=;gF^zqogeTX&Hdt+&zw1P?)(+DEQh{j z6&!EL60)V0j9F2ct=q7EQ=l`gdT+h4Wg{h%;u*6wkU0lwvBq3N0%s#y_MnT!IlHa1 z_rS5^13&-p{h5>d+m4mwV02wt-*xEh&yn3fIpfOrUBBe)Y29UNNKLR~ie`z5*tpf{ zY;q=BzpqM9O^dNdx}EXW7c^=s* zO`AS*-lCOjS8v*`<@UDqU_ueAU2RHb%wP!$+!mzSLt;OTOJIX(l2OEh!;(dr?wTP4~AE840@@zunp5N-N%( z6q6himXmtNQB#)|p3!$&cN*c*N#RyUT#WsfQzd7UlU9S37HA8HaV@k=q;mq8EOWGZ zYv(Umv{IaOmQWrBW?UES%q_``(YKo|Ax?4~H)6cVya<~uEmL0~oZZ(H6Ud&vY}q0* zbhsEV_tl~$E4BoMMi?QM#dy|zNlhh(tgM#LJq4cdG2qw-0)9PkOn=M#rv8R8+WYmt zYOi~b{;T$y4?;5yK4w`?h4fPU5+pI?_u8W2^1)OIslsB~95bzqg<_Li&75h>`qS)L z3J=U(_R&XR(M_wqnKheq3rauKBkZLUs+0v;i7Dc<<^#O3DTUXQ5>v7br-rOpyP)*rDK;xYWwgn-#UHgj}x^KV$MxjyznTjoVW6y>dEeBuMu zGAO(B;$^%)gJ}I1&=`9N0FJ#wJkJPAg0e7H?LZ@W^!`f`dmvd&%m^x+J)X7u8 zwM0zE1Pk_Zq3|$&^{tWMN;?G$zYQung^oF-==1L@M3iOh*@pTx-Z{?og_+_^RIQ&Q zDzkmzFJFjOs$eq*;Lp=>L25pERJvA3oh;Da`I+rg@3E}Kp=t<6BFoTNXKdn4Rb&KR z)xZ|aU{n4P;-|D_n#+rJ3ciBLY%1#-;viECiAtLo0VeZy;DsiWg)++X(rv%j{xGVS zVoqUTR$T-aGPvPNazq`SnioO>j?D1*d#NL!!aE>vv(e9k)yDSrE!;&YB&4Jc;J zdkO*cg0B`YUxB=N3FLvZ&^N|nKWNzUq64*BfM-@bcTekyvHgBf% zfoe3FS|$y$hsNdC_BF?<&Wa?qB+bZjkr6~jqroB%>3Bw?$Qn@x#)T4F3^h}^-dbnk4;Q7N<#pyAj=x@YR-y%>1e7IHH zGJNYc(UENegh>+}9V+$*RlCWVhENF6mkQ3s-)Ia4o?p70ZWXNk)hM|GO~|es8TF;* z1-a?2ZReWldqBEWxTCnNszsf&RhA)8yosCp$^0$CB}k;*<9Xk z1Z8@N4{4ef>MP-J5ZvNdu#Z8NrkT<@p+Y7bvNWsZ8BbW_TY&l1SK&(Gek5XO4@rBy z;B30%Pi$0#jjWK2{aM)>j_3sotrGYo$>&MVF2c z9_J~dMUyaTmkzHIfkpBwj8P=NQMOR4VvQo=kQl1~Sbz`~);t%G9a`Q1TBH)9H7%6& zZBrSz$xqTw)MI`~J$@zqe99vpL+Ww=zGz_X-P3-08i50fj~~&GNkO7yY4ifUW&B{= z9E5BPICMk5J_r@f1Je)JtyljdBnf~-3&_h?`MFHahnhliKpOmA^aXES)CV*%O%pmb zaA9CTzwie^RjPBLB#_+T{&~j*`}u!_b%C?coLzWKwbWnmi0y(8f302cIHS+qbnlUO(!0p62_hx+s-$ zDzS@kZ#a4vIF_`|l|4fH%?l)|2M;E1RE(9~%173xwBJztL;7P#{B}b1-5l6X%{5Hj zfo5^UL~#1@f@BR+YB7PwKAeEH@DZ3&O1Ehydqgi5r^j03{5ho|6VriOi9jqmObUvQ zOVEK@$tmfDwfR}eF`Na%nRUR~fHpSqG%-!j%qyyH+ugep#Vb4_O(daI(4m=1;(s&A zBV=Z!vbqjIFuBB@{fGPekDnxqzjq1=&GC~bPhGfr&qywrvuK?;By34(aYcSyOeiDw zu=x0pu(B_+2~rj5S(`kUpeY1F)S#W%aUI(rT*JM?W&M^jTv zdru#3m0jJveFu-7II^D^hps(6O?9=+yY}whcktAPll$6R>T%&JtEj23tEsB2s@S=s zpaA(&enC-@!dlX@RBA7o!YD@0Oz(qIt$b8PWjPwNirUt$uD);AtXZ{s6Ok~Onto0Y zYnFYpxSM*yovO&5Kqgd6n0}%b@9$|9VZ>Tk#lr+^MMJb`7$Jp({=_SeD2k+o(r^yu zST#v#mNRi!cyfMPa%^Ns(1w$J%}p))2XN?OkH0TP%qEj4d70iKbUmW-5)LZ6635Hk z`@iYB)iB-0Lhv>QYPT(phgU9~J#+RF((ao#O}cU6?6tEOO$K`k;mYK4|7wYdWOx-B zKXD4iyfcSSoji5c?CAw*SYsdWYSml*)Qk~mb8}N8`mu(3L0TdntF1NaeCr!pnzV*R zNXwdAT3S1M4jnzTr<0Zv-JMjscJJ!m)w8b?t#nUwT~p7|gIx_36|DIZS*y@2<$+dI zT3TIGSzA$%o0TO}Vq$+1Jd6EKR+Nmoi1%t{)y-t8<{YFDyv&wb2rL0oa%qv742YKg zDBxF_M1TMrznFpMPjO%=iPSx5Z7MKJ8Z6^Y=mpJ^o(9_0KMN4Qp=79c%)vkX{PRz@ zZ(h25@q!8u0=>_jQ)Sp^&WdjA%$bnW0f@Uq;C0G*(&&F$fvSF*87OFV;`oW<`Z3pW zGsTrpuyZS##Z|v?LhttzrbWG_hD6MZMLYGU(UZTDAy2#d1fk|}n7KiWu@EVT-MM{BYPqS#Wsfj^dP0iZ ze->9xNMGb*t`!!1;<2DBMLmLzrJ3`MbQ^V>Lpe8kS#nsq%#k3jP)=^aAg*vuaCV+( z#gl;DNB%^Y#s|y-x!4wuf;-_{?2|CADkT%srVf+yzLZ(2`oqVdOM7k*6_#A^HXACn zj4Xn>Y|s0=F!CkiMgNg6z4D5Xu91Sdgfwx1f4%nZo3FqA#;bq*@Vz(Q97W>+5sbYe zzwj>eKr4vV$N-UbNgq=U>}8``Q^WAg3lug8r58SDFNKUW#0AYd5*M^k9=G9SroR{< z&`Z!(xO6di{)O=8<6amdDlvKR1qv^HM)2D8ACa9zigMn=l$y zsryoaV^1?e299C*EQ3SjWXqQuD|}W-tI`p08fFF7y*_$0U~Keg?Tx_#$Pkac{kHy= z*PGf~{=&)Leb0Dz_09O3;-jm z*I|5Pjn1#>ZpsecvH>qKvM5Z^EKDjh?h+k!Vp>K{L2h<#u}qOPcJ4lO`ueRiN4lF^ z+S?B9FDtF6Ycutp3Qj%|>WV3@>F!G}GD2(fO4Bwjce*2O>!NFZsi?SjHYX_$J2U#& zIji?wd1%C>WEGTGxAb<^7AHAwbX7F8be831QNJG*osf~AQ&`j1Sl`*Tzpte_J4L*= zLhbgL#F&K4lKQd)>MBF+QYjSbau5}RnAjgi=0^d{+I5>~Td+o7^|3IrjZ%EwLp_2kA}Te%;(l04Y+-3p4?jyvD)!#F#q2s<-z0f@rL?sGvJT(k-6X<43_m{VL*-Q3yR*IrXmR?{171hr+S z=F~RjMn^<9?CaQ>9Capqe}8ZK@xD9B$(D25$`0KOOV7%XO!VVznh-3*23}5KbnaUGNyGINVR4ql19w&HoCq!*m!K+1@H6 zBR4I{W!}DdYeX>cl&xjju35IOTe)%ls@1{SS=*M0fSmk?d|gbW7c6(@#$pRl!`6tR5IqrC0fSD4K@%C8d`0zc9*~ToNnX_nB`iuuM%$f7m z%GJvkE?l>0)|cp7ahjBbY^pJ35b=j_Fwsd)=AQ6hB$!APkuW0LL9tE|2Ev-8C8__X zA`kpDcC48aOfzm{{;=pzKKVqTn4RL=kdJ+EBGhSE>h+0L@oerIpIFA)KJ^7xf2t$- zvg4|z2${}S)+Y{n9Fu4}N_gV4=#zaVNcu{aZ+qN)%l3)xDYxX!b&-t0U+Lxf`Db?A z{PAiN2`!%)I!hbpFa9^TCE^Krn>2;KeA8!4nL2Owj2V-WIYP^XR}v1Tyi)tS&)S3u zk<25QSqqwK5~EYCE`46~34XFV(AN3NTESa#T*P>qNbBQ#AYu-bVs;kW7p`&UFMjVt zYNrJ%CTZjR1TgYZ&3sOJ63}YE0UEQ!Xv`zal${Z2jW8qa@M38Ggm@82aTFO`h=J>f z7b=D!3=1V&<4UR@-4Wx`6T%raiY@`2f`Lnp4+$peJqiSG1OG7!E{zZ}Px4FOh*}neVd?}U_)BD{ z?5!v+Cd8O% ztu6U?X)nE;BUL73z+gV`wNW;<)!1aB-kynH;&@DYNkdO_ zaU?e51a(%jJ5-FHA$@V4Nf0_q?kKKcM!unS*Y5qt&R;xr{6OEHZ@)cxva_>i_kkl9 zgX224Y&JzC$cOqO`Sb^>9z(SDkvFd<*kN0bYh&em;#{A}Y6 zTny}k1`6uKT9@-Ymu1%FCK%ZIZ9$vYuiv=M8tQUICg<&5zHUuhW{Bx>|L&&pqLK#M z!4-oQ+o@ESib_$!vJnYh-Ceu-m>~b|X#dG02lnkfcskf(I)*0U+wZ#SYwHf3KHODT zam8Lc(EjS1$M47Ub=W$2~6l3xuy|SjfEITD3CblpsGBP?| zQn=)#m~eMwnA;s+UK;H{&h!6Kjmt@Zvz9ffIHRStIzKkV7Q78}8P2w>897<9gVLhr zD{bMEG6$o^8v?|>{PIhEhGn{SnwjV;)*CtU!E_l zd0RB6We`JsHntk-Yvw`RCZ{ynf}Aif@9jvzq^W>8$hJKs&`-)N1C8y2DH-L$Vx@r6 z4EC}Hdy7uX8}A#Kk4Ef4b!I&E7`zLGlmknou!ftkgm0rn87|;>ZI>J3h2G08Z5!GD0awf=IOT@b z2(pBNs*=1K7>7m zP$9(2W*e-OULxs|)}aEyXdTLL(3mhVD~?$5*=2_#QI);TKqAL2By(g=Wbm5F`e?{+ zvKEAe0mGgqL3=<+&wcb5s_^OFJ^d%`?vNizy4`SOHt#pErxj$^a0Ig&T77!UgNV(BE%!S0DJx1(A)>?2~4Iih_x>O9WlK`!)UQ{}f4= zq}Y!i5hA9T82s+BQ;5+Qh`pbX+^`Y8X zIPfI%REzAtva&1a76 z>1=84`0m0bQF-0_6#{R8My!!2h6UFHrI)<_^IeXcdk;AVA3$I4-MhsBa__;dOXtr$ z(BqO~9Cxn#sOy2ZOqXun2||O<3z&i*-n~r$rs0T;NlXsMk|0fHp3*a;?|y$|Uwd0? z8+5Cs6()wxtFfW6p~0y4XUze{j5@91%f~H18=H6SKlCl|>SDV#bg0N1=Bf9CLs-{|c4mDKlEM)3TU#-cVVWor~*?dG!+TleYku0V?Y-1cR-e;9znjvnzhjkz)T0v5X)_I zl;y01A9EPBli}=qLdS*@)@1`oc(q}nTwz8NkK#*6Td1)2uc)|NcpcyR$)LS@T@ZqWYf)Pw|u7bV~T-|DjS;xg*q! ztEp3G&6&Y{l`bm57|EP2LJu-HF{f6`#Lx*te$Ql)d+?xv3mHivRhc5hn2ZQbOwf2m zomoljuBQ%$h{=0PNu{34f8?8gblwJ%ZroH9$ zj_oZU3d^*2{tM*mz4zXKUj$?Cfy79v|Mrp413(!M>mNLU@e$tY9^sAsecv%--XCLp zVEIt{$n>|5$BInsi;0ubj(s*((szE7mWpyige9yJ*7>x_Q)hfh*SGl#=FMNYbe$Gm z*3i(K7vt8ptWuzX;X3CR^kbVWk?93(O@(3GJkDO*0uja6lc6L$Mj{LBknjMGxlk8c=Y3KX< z9_1ftE(t!<)zXv{Vh?Y;<#u8{k(8aATTxrxP+y!D8hmFTsQB}Qc2@KX9p&^(tFlu%3O7SUGd+#}n@Gz@6IwdY^M|NIXnB)G%15H_BPHoEu z`mB-tER`ZA_|M!q>>z+7P#8A_jV)wXcnTqhJTwcf6s49^#91gn2(avE`g9J0+4Gkt z=f`bdw`xP6D<-w(raRJg_fc_%-=F;Q(j8?Lc{>;F+F6iaRJt=Yik@@fDf!9idphr2tBiSgr1_j9_TkO;+T_gQ zit@VZruwkF^r9WRkNlGG-G0n;%6ISIUs;q>efUUk!S_wMamy%C6hJ0;%+nZ+FJK3b zt!6J@un;L2J!?UwD>o;G7d6(@r?{C-(#e3f8II8HWQ}W=k)JPKx)J@MIPXwDv`|z5 zl!5KEMLaxI)_Y_}VBng$l=V%XI!)*ply>sUz)ka~fAUy8#;&g9W7=ERHyv+iqy50e z;#Fo)S?N0pBxYd#_m4{vjHyJD70n0YZR8{KR>mC5?66sX;;1F-n#l%PD(p*mydVf| zdH_sbVzDRC5CyENl-nuL2WpP3Ake%V$dr&Xl1N1&i_jA{z6S&MOX8vm_XeRU$>6=~T0W z&n8X`k-I3%lE&M{MM)JXeOJ7`u#S6*Z$Q1KtSm(g$9>@#hx*LJz`Q;a(|;=v(JBft zZLCj>RDuqPrJj->WMW#BKU03#=j#!Jlu#@TrI;2Pz~~Q2yFf9E%gS*%lm*z~j);=J zdE|nsvm2Bvgkl`c!115-%P@R(5(BF)B|~;YigiF_nvF^v$=M`_lTMqY36i8rT1VdK zWZ3D$Yuk9Ar^qWM$rfFd{6s`XMT`Kgz=xuwK1*s9^f(_T(KU=#Y>C7FFD?cV)6$2g zAqmSQt!FW^{Ijz;PIKu3D`zo{Q;ruW86TuEw(0)D#J+^qJ|!3$(dnGI^i5tkpT4%* ztUnV^WPe5{CO%c_n3Vg-!gO@XPje{pIQ#z6SY2#+>CWAG5L~>q9duw@mxZ5L?qckQe zMvxNzTuEqya|;TkUvvq+_*L~yEnNruj~zL0w-+rLUE4Nn2LNS7 z<;Ucd<#+cbhh^``IJmdvazsUD?1n>aO%0jxQSsHsw`^LwZj0`4IiuoYrzRvu&@qcC zftsrNB3MWUYc8j-yuPljqm`-suCCtp`kK1ZorOD#b2Bo~7GS_!oSU7GSr;h^9{Dn4 z#_kyH0zKR!DH~_{SZ3OvLhKYRI~MA;lngp<A8sxOR!;&Oi0~%aQ&9`-yN$=aSR+kva5mSnR{y~u&JqUWx7F7nAC+! zY4}%PA!9%-(bwJG-Mep3@4j#Q_O3oj{Pp09^^N_7J?&|(pHA!0jjQT3U8f=od+-1vPM-8&TR!ktXQ3_2%6Dv(&6y5k=thN$2~jwWfV@UD;$ zt4Dehq5t}XET9zgeXv#Vi~YJUR|^On`nJJ z)lh=fq|PSRLP~`ByK9+^+#b{>J#!Q)kl@PVNwUl z_O=oGoG!c5iE?(AfB{?%&Lv04AOJXfvVzMS=Pck$Mt60@* zYIufe!M^Ys8V>v;s+C8k-y}5`(=d<4&jb4SQFr7+$&GQ(>nHs#9U)O`=+YSy&4zL7 z&*J!lYD%gbRR=rn{CM})4I~_c1u~J%BjmXDjO2YnnYg-4BRfe4wM$Q3CNUI&mXNQD zlE_*CTqw7=_8*W8@`7{VkBV@4?s;&R)Iut07k7njX&0YX|Do>4v*khKqSqz;@_*tz zspIB{4O3aKi}48nEly+cdfXsEGN3L!@xLb}0c_I52wgD< zT=e;!lAc#o+tk=j?~~N{2p9x{C0f43#wMhs=kBa(?CEWl_-IJn@{g@H?`i%*_Bb2%_9d;Xk-%a*U%zCJxREi+|j zX?#>_W^#FDN#{Dw3|}`_R+QzWCL|SBGoGG1e+g%}RVGer0=yRO>1eF0ZLGq)3#L+5 zUftN<(z&a_%_o6Ykyy7 zOEuig!@N*5F-68|gW#}Qjre~OUqopTN(d9G57voQT%XPwkZ}nZn)_Lq!->euOp1xb z8^+2CGPG7lp;nRVh&W`R5tz~dW=dKnIS#70O@qT3;%DXbQ4a|!b3{xy9YFn}9*uK{8zWSmf z_7wIth!@d4k!soW?93#z8F+Y3-dhmU!wftZB$(&v_s8} zAdotR_X<>9RJcoMs*RJRPUp)A%N?p5&jGu11-l}sXpG>Lr7-}~M5au&<7IB2ehj+I z3UrC`OLX6ugK>7({=)}zu()TvpL^DL&ii?!Ual7c6lVfAVa>%dN)&?Huj3(l}Pq7MnS=iM}e*DQRXuZ5( zTSNInMaH#4@u4&JE(dsfx z@Rt3>!6RRL^`%ir(LB7%!KWOeY{mGakt2;4%+I?heDr$G`fLEYujig4ztm>@XU}{$ zBO1vrCCij5$Z3L>Ncf$M{k`ZaJ{*!I>}e9_HvGSi7d~J>vQQDo>l2@pM2kgbT#|LU zC-|v59>Z!4hZ|$!a1Z>FG?5=(nYMP|EZY>@)DZ#~l8*!2>|^Z{|FNHv z{*qYwN)3`R&NN{%mQ52UGrpWQc?y+zsM*Mw7OmQ5iO8#N>CTPCyb7mg8EZ4-#+Z5e znyrR2JSx2)F>*5%H1tE<8W@NLGpAfBuqT^{jKM;aGJh;oBIA=&vI@%^tE-EPYr75} z{jQf;lj`OZM)NQI1)awZT@Ep2XZ+CCQeEC1o0MPFTV1V{oHPA&DL*Rad|#}q>Vz{V z7f1b2cWQZ2RZ(_MNq$<`ug4mT$rMw=)mfcdC94C2nz;C+e5Q@kQl#o7ggHjDIdS)q z6B*2pFm5F3Q2_74EuTRc@h^xWEa}K5rstZns$NR>Ov|sLLiE zVkvEnhws?6i?^`DSrJ*b&X_y5QwGCp|X_u z`>*Nms9b_s$G_KiC~=3{ufSkD>FcjoM<1~NR-2ZUno^LGQnvT_!=rUON;BM#uASY} z-rm~Qd1G~~(-j&u_ERAhf(^7UHh%uuXRK+`YtEXnu~|Ed^D;AXkvwGPFzQI46_6Xf zT2y5I*@IUqBY*wjVCT_?y7_!_S7yhNGbax3?%AJPWQ~tZD?So;MvR)#2Wp z8NO|sMK`e?x35`3vW8et_V`t6a8F*ckd$V@lEA*mxWt?F`;K=QTNclnfe>!mw8PZ1Q+~CRzii`s4g+8UoZok5!-6$+k&e z1RFaTXV7>NHjSs|50e`35jr(&xjq%M{A3nY*Esf5D^_H}wY)gqykK1ZV?Tjp$sJ6@ zw6XsR-QuDa^*>|Bio@7v{HUwX0A0RpTD-oV5mPduQfzX0V~KP+iqxk?`3fBoKq3nf zOu2^zM14Z>9WO53HDY-k$LIbEYO%NArYL2Qz(Y8cdAxO8fMVKG6D~M!!vC5yL$-s$ z+cW2XGk@+kiM8Rp?gbEasBNm)b;c zX*ryPg&6i>VP8a!vyLA;Zrp?^QzlHF1S+(Hz_fAxd@HpZ8=q@mNJC6~#k9{Hp88Tu z)KGG0(H1&c`pKXi^Dtk2;kZ9c<%y#Hl8f#(huGXhRU+wPge?>U4;?Cpq-saR2sS0= z@_|o?Cx+q_s#lsM^n)Zt;NmofNOC6s$)vcA=4+C|aV2>rBPbUNh@oT)qziJ5HIFZE zL3NTA;>X7cBTsNiqft!G*baK655qAn>M2Ma2PgRg$7j5hLD~|u#Q%zkQ8MFNCV6Gh zD?>S^z0*NBS=m|YlC9_X=H})~xj)U9r{Jw`27uYvJ29)|d^F2C`yT)Tz%J>Ah#HK2 zS=1~n zksoZJ%AK&d&Flf_L|P?#r<9B)tw!Owud;6)l`+1 zG$p3y6}BcOY)EMMrmrPRGY)sA#8&ogb~-F3)3&YF=!n=brz?_9@mCJE!h*1g*^!gq*A*0Gqq>8TF)>mI_{z@8MmV$@_@xTw zRE3Fx0-QoXcTtf_55}uzpw2@SmYtnj+ShyHhH3lx%LAwSkDNGj;`q0FdiK^8=cXmb z#YTgORPDTlnM^Y#VHiEqzeO}*%=8&^&6-`RiKe) zn&Vs6p4ge1k&=>|mRi)f>tuIjJ~f3mPJY*^H4p8)vZ;w0({_yb^>4gr>bv=?g$s63 zGt$=1Gjs=B(O{c1%^n*Hwe+)YkWrJ2g{AUBw=ds4SDl-Qq9d;|H!dzIB{4QGIX;Xtsp!V!Fmkb?omNXQ z#kG1=7d_xk)^_Y}jCKc$w>~RG%`f3ey2Y#otzOJGd@Ki36G9BbbcT#(W*7rxuq;DG zZHh&;Nl}hr+ZORT`;dX);7m13$0_T=EftB~az)WzvGoCRflO z(S8Mq{);cmjUe?4Ean#+#Pc1&c;HK&2y!spGDLU* zju6JKJ}A-|KD<-~KKf02G#EIh=m)up9c`NWOuVLSt^i`23UDs#Aijr0G|l$3ifjU? zJRy!4skvTudq4=WjMSQil>ro{KA6!3rNaUWU16dwkrl%t$jssL=g;^<9f5@u9oevU z(OrK~Pmw36XUX(~OcOjIaZ{ovzvWNm4+W%&eVB^WR)@c&*l;_$6Te6KxblguC~~ne zvX78EFj^oRgF74Z4$|tETt_>1$ z#YMmBf91+$GEC$0ARrn^F!hs9c<7f0kr~uH4qQ+Oj0D+No}pbtH^$-yi8(I%3|!>i zUr3<2A>55znmh7am1I)Dq*E)YUG=_p)pqTFKqeG56L7`{5MFi-(T37(!1};{81xvo zefiY4Z9fj<%X$32L=~ppAM}6~0QJxwS}2wjv}#g`EIXmW-lA!;8rfUe&HdGRP|O6_ z|Nm8FMf|wcxlcAB`-j>U*$LSVMP$PnkfX;4dy>OP9aqFrCPBmlfbNutmTd78Ir#x{ z=XTW3>xH*NDbuFEhg;^Q*Sx$7NcqeC|=U)^4lky==}kk;o6*1ul1b`^8gs~FcW+1=S# zr&W$E&ZoYyqzoWaMqA9Lrnc@~m|eE-QX-|As)~xH?~b0{1-_}m)eGi@I;<6aSbalv zbrnUF<#>XL;eG+AOv^VH8ao2udzGliDz)ktE4WdE%IU!Il`9W@cWD2?{re9d*tfg8 zb5~PsWl0f&r`((z5r+NF$c%)c#4;IB2!b?{pG4p+vU9A}IDfHKjBrx~0zTrJ+8$w% z$wjlOGG)*KIm#?5ZKx>BOm=NOe`J3b8m*4qSIoEW{B-{}lUc~AhP+icJ5lNpHG&WB z14TGcRLvyD`**0HynFj5dn3&F;=uW<_hXYnw0l3^xbnjR zlA>IYVj2T0IRnTJla`g0k%(iRVq{GC%Y=Zgq^&dyLHp|~p;Fg;i07Jk4Vpx9`kT+M z!p8pd1L=T^&J;K%jEpG48bKYUkh^x%jLp6mb=H1Dwuuabu3TmHT)U!Q^5>}M(8kv9 z!UYkAIleca)6eQ>yjTWN$Vg!$T+DtdK-Eej0@IW${z=^Sy-qs&2YEDNCv5%Vz2EPI zp7~J(dFqtyv=6^rr=OubSYftvst%Gu$aCkk?*}3M5)qnl;eQc;1}+GN7f$DiEQA-h zm_lQM@)Q@-DE9Qe?!jU=eV9eiZU_8GVWcR(tUvvM?=5Ihad%l0M3P_aCSSFSDC@5* zg|h|}4wKW6^gz*R`pjvFs>r+SSLdjZj5IsIVLBSH91P}+$MZP?#T@K$24Ku$KK1{A zu>b{ynC~+F19tQuc8>r|SN30i3L}L)?+=lJOG%GMO)Zw^tuI(mRQU?EGDiLniXmTr z{jaaT`TD5QA5Hmu!i=di=Fgozb<*End+pU%-x|N*>t&0^{`F=1NN-VldFYs3`R4l| zD09%3((4uNWyecH#7yrJZz+iFTa7CVR^(4(3(lg{Dq(Or@0(wV3+!e^D?D7WO+6Qxz#>AW$)>dYogG zYy)){)9j-6!WRr0CdF>RFm0i~N9d(}Lmx_y%A1AX}*>@vnYDN>g)ACCR#{rAU=5!DM!?7e_7u&)mQ zUHXTW0!8AckBv%JZt3m|yPIk%OY({u_uel)(`m}dscN(4mG0W9f8T5) zy^OE_x$9W>sfT9GRTmp}?ogH`wCcodYiu%oXVS8hOHz|U6Vl?W*J_gq`piTDxp+6b z6&D|>EMqgWGBUD@av6QcMY-)3OITX=j=bdPFat}iAUVMsu5h>bz%rJS=pMLCT3V@Y z0H_|w0!jSHSGENPSyT>;;f;*FZ1$*}o!!5MSRdXy-digtvcjxXy5mGRnC7Qsay_ml zD_2m}hkg%-c36>Qq%vbIs1y<^GK>ZDwYg*GASq%u!seO;cJ|z_mM&fRmEfagRKnP@ z%lpHfrhED${c7LIGskG=(MDDnJqSbCT9NNAEeZ9M@cbW&ZxcK0K zzLKO%*$I)3@cI+sy}$nSU0Xqh?L=gX?Z~P6?9O6Cu`l(}JvoR@u^{$lbJr_93H$W| zzM7D&W$U*^)t29ivtAr%O$l*EBV*|cr_rj<*u zV_3Jz`J)zmdtY70zM9~5OBO7cLnY|cDKq9Rng8YVDdWdY9FO50d$H``vbVqUj`p_q zTW>qw8bbXemp9*h1M_@2L|*^vYdC~iUe!l=y<%T7MA0vD`^Af`i$;i~Ov+Hd2HNK2>|bPH=R0F*CxAyK-z@u_31g^Io*asY~~QmPaE zWShdMoFFO-+>(#MMTA#!txfS_@gWYH@#-++kuOGM*onpPLN3vT0h0i7 zktnQmq*?#QN1q~fbYQC)^Ot|Kc;)hy>(^llwUFF#%FM;Ep_m5-`Q3mIqI zLcHA}PWO}S{m-X(7oGi_N3*!tkAk zanR7kDU6C8vP&OH@EOx%HXULIWtlOX9wFm;-VSY9B!eXcW)>I4!UTJ%K4-X^bn%=`IQ)#c{>p%It_Iv1%5g{>VRmBC zH}=IZv-8WTUx~6AE^uL`OxqZNZz?Yimtw6ph)q zCD?E{!!hD=1R>Bd6ImUS{-A1$1Pd|5M&pXIhi@Mj2YgB=FDWjqsI2Qae)H(=?ymO6 zmfoYkWb7(WN-3<`7#f=wwc$W5Npoak#krjFyxP4>maR?KX?LF&8duhLd_%CVQAOso zMcPc(AOh6ZlTA$Z7UmV~D9GiM!FZqd$jZ*&SyNwE)6mvLH+yW~bJEiDt7@AYYDQkilhq48L>y-_@e~0c7O)f5(V?zC+@f3kn?p0g+R zAJ-ixdbF?nMbt%w>Nne%a@d90KcA+hk%@A0t*(w1kwJ9z?%v(iiUxrhq>8GtofRF| zYxB&Akb{r+A3JtpcbBPo@%r_P>hogVm+H%ka&~l{vhLW^Rgs?%8GN?5%4lfGk3ZO+ z?P;z>hAD>%r#g=uM?@lEDr2o2F&s#2cvf6YVsUr-O?U9X#eJ1|xjV`ly6e&svNEZ3 z%+D5K7k|Y$-yIei9~~OzG#CN6!jjHzSli!G)zDEHZZ`*R+rnCfJL2&bM1A8Rg|N0mx9mXyWQ4-5`2Rsdv$$yl4Fzuf{{>Fc3f8pO=-IEFb?^`t>m zW0Minyrp#0hYjhl4U;V@0Z_$3jrit-O1&;yQjkSxNLXY-Y#bV%xR~*U?x$#Den}VS90jBXtQUuRZVH|nkpCJXNhC=>HH?x? zUL?WgCTXR1@kM#ab4Q-TEsVu3sftQ&c@j?2O^*sg{W4%_yg50u?b;utrb>xS5P$t3 zB}ja9?T&u?zuggahAKi*X4}*{sxl;H{pBHA5A|O~$nr=j1$EQovLdzb$x38gP7?%H zFnfrc9W`9qG{-QuQW()uwwG9eJw>3D^DVoC2b!qLVLC{74kS4d0<};xbN)k$6c^{9 z?TdFZO<%@S+0PjdZEa2#$7p(nc=N%V)95i=SXo_^lbMzrAL-G@J`OD5aY?CZ**Qgd zDKe0bX3hjEh6PwAXUwe3EG^r_xiSx9$>L(^)mVmhxUH*i|FMg=&mR5m=#fM8UHLIA zJKh}{pE7Uxx}bIQD+{CIsQAlj+M;bUB0v3XV$iCk4K=y(DFx;A^N~9<0$sjz_44IQ zR;*mHxTm3%*%KV-!BV9%pa-5+R@K(Eb#=6LVz=Je+19+Vo)VGTj;`L`?)K(d{6s2h zs%vZUIBsohCMY*ZD-s|KeGSDF41rR9p19o?72^W7vjl7V%1TAI_)S?$d*|N%)hmx5 zJFu6@A6~ze){&JJrA3AOSx!!FHpYem1BqmM(q9-&Frx4bD_AX@&XOg-K@nq_4t!lU zfounc`mip6jBE_fYejQr%_yBw_GM{dNogsn=bZeQtt*cl*x$YDy90ZVYze;qs}}4p zJB1upPe8aH{r20h52*6{N&9gIGO)YU)QTSL-p_Y$%Q1os?9#yb3zzT3g$LthW9Hzw z{p0nErnqsFCVn1a)3l#X9yxsQ(Ag`d@YLk!aJ$3w!{KA*l=Rr}AI=}z)y3BYZ?&~) ztzIo!vsaVe=!+Oksll{{#W;jDwRP@4bNsFrci z+>xac{YMZQMf*UQA@)nWM-B()(@hpSt$P3ZoA%HLK&(CZlN?*Zy6!)C_z?I~em9N%)VUm^}@0|AP3L7oF9aG~ug2zfribwlnNR=7=WWtE5{6}kWoa<2VSKicBmer=8*hwy^HnM&yV5ZOri(mN9RxV;<)B3T{EU{!wPv6$V&{3(3BdISxB$`HT1kLCIb@BhQOo{@y(br!Bka!A3)8kD2-8(*yib-NRIutjSP?y_I(i@7%J~}hMXlG@0SxpNn zGzUt0OH^87G^tyNhIw|8;APRZl3?rKlaFQu|npt)*cS zPj!YTm(;d>*WZ7zF<<6d5@HgY3c{Uwkg_;dJ-$}0QoTNvFiKFD&@T3jxw0oL{7PH+ z(E^Ak_{*cnAWfxH;&Mc0=qlE&+Zbph_U!rgDhjE@k{z*E_guMkpsw!1-3vAGp>_>Z zWt;Wh?d0ZoV1zbtqxAO^=JLhopT$L!en*6dDBI@5%w)PN$Hph8XJw{{GCBrFg%G-r zN2J}%&-mrnnmtuldh!x-Q!^9oNj15)GxaHVnoCNe;_~JVFosQl#h5hO z>coa`Sh0NRk|irPtX;D{(47_HG6LzuXN#=fedg+=qjg2idpom3O)D18n+a?EI(YlW zH4CPXqd6ocxPOOS@4ox4{hdF+w%!qsFRtEw=k2%N0&`Kzh{YEMU$4EUzp9P$edU!` zmfDv5HFtO1%{}UY~%DV1|z`&SMg)_RO5Ml8aCD!j0O2JJ`15dZy2`~ z`r?2aOUKBe{8Bfe&C)|s7@0`JhWsw_k|vW+^P->e(o&5mSKPFJF$jXiHb+5aM*HIr z;)i_MrUa+}h$hyLap=cU#wRXZ!n`1Gj?cWs*h}D-eB=o*DDcwfVaThzXv*j>KuSs_ zpZ5?oI_*xGGJC$1+RmBt&5}jRZ*9t~g-cefSvqS9EKG18)Qtv}^v#`!|Gs6Sl{@KT zI3_QVG%$vPZ!6?a- zc_ISQ!UH_yOSR!-MPsQ($yB5zN{b#Q_=KF1aVRs{MxqzXKPSPxkQSw(C!$9cKO_Pk z@RgO7mCZQbFNbmbBt2Kvi0aTwnY7_-LmQhJ!_+yC(+uEi)@(byRfchvLB}Ov7W_po zhq+$!^!XN!NGrcbELgZuLNfb0q~sf>Qc!U*iNfT`N(ekxYweLvXH=NBNlq)sY1ZQB zMI#V8H)dreM8zafzqoyixGt?(vt}*-y?)~sEZAu@?+n@&NQoY?k_mTU5%howd?*6j z0GBUGeV|{`);_zSsI+$X!EYJdw$#^{0NAJOI~x+Ss*YN7@{`=grW!puIWg@>bY*>g z-}24D8)FY$I$U3y7@1zzvS;mfBZ6tz)C9Jn)7WsNw~{%3JYVq8&&$q$NkOL4v#6SB zX{VsCyYE1I71-4+tZ1z3))prrd3*6*>o!|^2htxWf|9xwp6#&HH9tTY~Q}5D#>}dr?s`Xq~Y*) z=j=s!Nv$pAY4;1uk4MGno3dgbmxGYxaw~ix1bfZ^JHN{Wj|Av@PqFGyfq&iN6Cch?i|v$V?w5HnnNPh(;3FCQHQOlxI<_ zOP6Y3fn1QT)D%7WA0;0o6BOh{lB1lVi6dm=R^YTRs2XW#fXaC|lm&NbE>W)dOMDQ) zlg{KmY$cSu$Ex{|```emjCk=Wfp+O8C#8!aK>?!CVq2r%vg0J~FQm)F|NenZFPk5< zCD-aV6WQKU+vv-|G)WSQ_>s1bvbL?zAmLns*qvcSJ&$&VhLwN| z6UB`_ytL#NgBeUQlCtoUOrL8O1ZSjbc4M%LZ4&at#n5IAu{|MQPvV?trbH;_Luk|7 z|MLG+^&a3+omsl>EoBg3yWQQ>eeRq)GiT<^bMDh_yNv-y+-+?4blc<%223(ZM3E7p zRQ2y&Njc}7a~48EAP^FgNG2E?+vJ>W3^-xmcl{;zJoi!Mq+PrAUi)9~|E+IH;unwh zJ{2QWB36P<1>+J^(=t*i(-r0FQ^Y*t-!CVwDf8rP;UNqA5OFxtUtYt>h8dYfKc^z& zB7)gU;9SH};cAGsKqpKjIG9E7XDQt7Sl3`#Mydd!qa!d^HC&NwZ~<&=`~Yq#Gbd2v zyyKw-*g*6p0&U2{jUNX-`K8YBd*izRQ5t-UN-OZuBQ#8psCN86U@b{Rp;)M#&?S8P z9YjlOwcthMb$4}MdIudtfFyjo4+C36iJqbS(0(W zw1lcXEpST^mz)H+sk?&(ZfPdRx4_%}-=qLZ@D^WF#3hnrDnI2F4I0V@E*v0eiw(lzP+GC2*b;)UXN>e(+^a||0lY^zF~jqPZ*i#QK*s@C zb|IBGKn`sB*k+`T_y=~$Vu#DhuBfZ5YOE_O$mJj>6FcmKSveFKl-AZEq%F$NOo@$R zp4fC)*%GNupd(6gWfo-zq8>~}sFjmjOsTod1m!WIK{PHZz?G31T8ag$ky7p6*K_vb z`BNwH^E!Rv_$TMA37MX_jG84|wrvbuzNkDhg?+zq4SiVR#!Q(xWlPu5eGT>5X*uOp z4IeIAx{4X=4eO|uUcGYh(_MRZR#w;6h)PSsWu2;>Q4cU_JJ8eHckKAlqbGVh_Xt*L z+^&@My=kvUOK;3r6?&*H>4TSFnhbHB$IqQB?(dp{5Zf7XmXr zp-DCVGd^M6hYo*y;?(iOGI6qp0?B=C)a(h}?*lzrRn^JmY0^2z7dZrllviFRh^B**-G;kmazJA(U6x=ABuak zO!Z65_a3PUX(|dRFEPv{C=rr46NHF0N`eflgINc1R7FDwk+BILR!=NHI(`@^i03=m z&nO@clJ=IO{xqRm<~`@#AsR^Q;%N5qo92zdLY6cShiYAMUbbCwT=cnc(RIP^JS@rt zYz3S}ktJ9wz^mbMoDKBe_`;2f%kiZzpi7;#f9X2wI5)7re3ADW=Y21n$FR%i;sq1Q zmgBOY;4I^c-&HiE>T2+{s}hhT1l@AoG;R&nnok|sXe#Nr=eYkADpjzYs8$J$4{7hJ z9uJVH0mS<5JL7wQ4Y7p65fO-32+Ps-pKYJ> zNCHEkMEF%8*Q`e_c4s`3Xz7cNHqG3j|XEf8sy2r3$C zz={$@q$T$6hSop8O*%bTyhI`W;jQ8Uo$?B$nVCl4GsLY|fvs$l^L zui#S#hFn6UAW>X9hN+i;SHp%ohWUB#2YQ|CHM?>S9V~B_x9N{DhX%7KvOI#XV!W!Y zgg*rel!BL;FWNXiBj`%F*=v7ck=}gurJ+%ncJUx@F`!$%yi~myEW$2%6W_=2LI8eU zw4YSZ2SBnosTY3jWm?aFfNPgm@PdNNIb#6Dogzk{ymNZ=v>_V4F!-4w3BgojI*6-( z+E4mlNqM4M21J}ua|yk2Vkjdx04;*}EYq%y#}Ro+j!5wjL<=*BY0v7<{Rh|LBY)}M z2-i}xd`U0Vtf1L?YF$!{0MTyEoomjs%s1x+BizxP3$Uf;+2$Jyeoex`Nm33n4k@id zTjE?cNYaj#l5${KZ+fwoW6eNGD|BM9&V0>@TfJkX`Q}r9mUNyI8NNtaB1Z*6wf_2F z?~HQ253Jn1=QxYjVnW#XkF<1$htUWeVB>}-?k2! z6CE8lZVr>FX_>ud%tc|w7MZGMYMZ9D%CKQ(7)P#?Sz1No*!*m2%B$Ot-Oj41-u+!p z+l5an&z*g!+R|d1cR$QK@!6-Yw7eW^L}`6fSVD19QfA}F_ao9PJC1yUi+XKsPV|qT zwUnlRm{#1B9z$s2AWgHjr1&&?kTU>;lO^X=m&HdwsFWi*uQWR@Dk9cn+fG(yQdHw& zf3qXiVxpA=wT0uVvT1XF`X*v6Dse=423&s4Fqw&$v8>$@fyF>ZAx9xnzW79$7A`JM zVBLgm-exzgVH?&{?1<$qk}Zt5K3d?KAE0#=3)DhmkuO3aW3Clbv&GAnuU@m!kzCT= zQI(RA_3@R5>gTVnxRSD}_EtxIvZwRpt)G6d-ut3CFFh`jksZ^xKg3-=vjjRTTO6KA zB7MO_EfsJT$2=QUFflnZH$&2AMg`;!jN}o7r^Lq)x+7B#yBxRN7d^(s8pqj~|8wA0 z+s|dK+1BGbOJXBZWA5L&LN3yEu6OUTu7<>iEu~Ez=MLLfFGDOaV6h|@l3l2I$eVz) zYW{X0mcT1c)Lv5eB%AJvb(^>Da7M?a#3!W1Noj@9L1lO67eq(JXZED8qx5P0CYl$x zGO8L2QsdI-F}?q@FHRmhbZ~ch;jW$4)wTK7g|lZ&{a~FtVZ(yC)5edXpifNX*k0f1 z2eogZ)OySPmteik3&9#WQoUh&-Fz)j_!ZUJ3WVh&0P88x6|_pulFd`kGlaziWbt+Q zGV|s+KvzC=B%LpKr+*zHCkF4K!h;S(rAH_%PUTzjo}1Lq=Y7oqt77T?cqc{Tc>_niE13XVsQjvnJ2>oblw4Tel% znLlwNd}`u^cnSb1PBg~*OhCLfU?L!DGD#tU@Bg0q0ZwtVXV5ZquJ|8{a%d*dbIoCn_5O1fJnz&%alCACUxHeu5|S`*WNyti4%P$O!Q0$5;!J=%ov}5 z>}(J(oDP1OHEY@={O&E|BY7fboG>hKAF5Gt5o3)B$_soSGpxnY~c*YGO0ulB&amnD{`MA4O88sJ}p|#fTCsdX@1M zBT#Z`rl=W~GPZK&`s%p^!mD|9Oy}*Q`kgOLfCW&=M2J3IsHFpB3S{LvYAK9W&#ex%=6wETTV-*q zgt5)**xxp8b)vvZNQ_HOC0}IGJ+`pT>(_>^afDjeuHS5P#->C^D42_|DXA?7PI)V} z$YTXqM8Wfb;t7e&qNnAs%T~2^?Ap1DepO8^?FUcYPRz@%IqS-3sZIR&;|m*`GLq^V z&PPxvxH`;k4GFKP-|5aM#jT}k-)Ecb(V2x6^;J1ZNfF_9Pw#24mX$Z|rNJ)IDl;pu zfP|pB1ZS4Aiptu?x?Np+t4azP-xrka+S5{1URG7YBtI`htR;m9xq0MD8errwG0Oly zK}yWnCJ?G72}+}g1#(Dwl&MQ%FpDWHt*WlaFJ{k9=EWmSKR_Ug%}i9SSfN%f3<)7R0n)nxQ*f!4 zUAt*o)!DtjW8ePH1Km_(knoTIbhPhkuCJ@DYyMn?-!}KIS+OTuU5h+*FaMC$y>Ve# zTC6?XW8S`gDLo;fw52S+wmdiDo4!50A7B40KZ#V7U4#L=Y}Udsw09GA7`nsPYPbSF zFQfa&*d(xH5!4YWLaSfsi>%=y0=1?xS*nl&#GwNU0a-6L<{)#zC#E1 zcXqT?lr%MvyA{W5XQSF+#-}>AY+kzp=%&N$FGxzX%8ogX*};eqVXw2;=J8jh-j>-# zCJmVr@beZH`lId;ulWIzy&>?(#QNuH5U|)ZqX#5|BOI9Ysh}H2905V`B~20)s1H0! z6hV~rfuh*2qd-wkv6eT4L~(X79Pigu?J%vuUU8MySh>Yg%Z2%s#g-KwX?sS1lOQ7R znOQ5w?S@PFYw#qZC{PQcD0(|mw(0U^?P5)(*QSaL)+m5I2-;~#HFaF9BhHs2v>n$e zGkl=v0r+&T48RjL9Lh&N7Qq1F2uYmb^5YUwxJ9EUhkKAtz51EDiX0Lhn+R2ijfqdB z_Z?wykWl`3(XAqqGbqy*!$32_pWQbSzwuzvvqG7;i1b9!+cwG$lQ$`?=7|)k;zpzs zLBmCpO&^>mp)$(-d%4y@QwL8x5%eTN6nz<)3-A*tCQ+0z5ofe+q{c8g<)wazseUK< z3}YomR-}dkp-2y({P^T2^T!}v+w#Nrq=vuJIil7Y37HWJ<#?zb{7UjII239T5m#>J$e!O>%ZXMU8xwnd-tyU_CHIFjpUN@$EjZuMP7$mN?kLr4;Jpki6?oL^G1NS zhle};jvMljekUKnpC(zi)J>BTBW>eFX6Q?1sBZrXzT|~W{9lq-{cMj3^6B3N>cZ#z@Q=Af2V8zNk3Apt!ucac5h{(Gy1weSGqh6UUAmI{N8Vla7gX zi`S{}*VgW)+iXdCa#8-S74#+;H}!)L#;vNTtxwJ^1c4P)?wr4P<@zmjci6ms!50mG_64txy zK-4*FzVyTQVx08|%@o(N^~lB}%0u>u`*&^uOD{#==$dO-vAC)!Z zgGuk3)*YKSTf@J)cZ)+HJrU$D@NihmPPI|MAIVy*-C`b9YzwfrH0Crki5VsjimhrkyRVEjxF$ zclI3a?!ZQE&+g8HJzbsqJ6ap*d;)tCX&wiY;>xPx+}tcWc=j`GBJ?ol=m?N~K!OUY0UM%MLJ46+{p{y$PN9DAmj;4V8b9p~Bk0RmKNJjpZ9tj~ zY~(HXj61($mzCgfQ+9OD5*sv`Hm^7?t4o6}Qq8B&7cO2jFCd1xAlxYOT;$mSUc`ie z%1uS!IfPZNv(yuEtA55sj0C5|F!b{{AaD9XjPF*vU1_ z{!%3RDd(`kKqns1*l8&36oZHLV<|Y4W2nETP>!L#T*sh_vQRo0ukGa3&|eK3{?hPQ zUVEMYh8>qcC-hT(LZlqrupq8NOcn8`3}6$rf`62n3GyK|)0dID(tJs(tAsD9X#<7) z$m|+Ia;Dh?5D6uc>`6@v;F2dDQ{7WMBuNHm7bz671MreuD(tg_HIZIn6>mT9P{nqKYk@(3ibGmDW591{~-v^_Y@=jiB)zoYYcq!P+lQdLP^9Jb5mgIJ>@Fq3S zPcn41P<=F5=L{snx_-%6W?628_=1?!N((Nreu$@5s#SsTCKO0i2|7akW%~M61IlE) z;WHA@WTQmTPh=zUqZDGPzrHgHzGNF^ylnw5_1j^&-!=bg`7iZ11yP!*GhXBuQ$#KZj1uraJ zwQjSqnG(1)Yu4afA*~P9R_iuU&6Y6I94=^%F4M%yf%UuTi9!94L=imZv$=UiRjr3_ zo0*LV@8|6M^5eY;hwiz0iaooJejc8hSgzvYekkaOud7|NHX+l(`663Jar7ff^Y~IGEUGdKMUQCKM5dD2`05J$WPqKbiIG zqI#aFq_i~qxik3bK0JP^*M)0xuJc@TY3k1JVlv~eceU3QC)w`a{(*n>%}?2t>ycNn z`QuA8g(9no<7l#nL;*L~==kKMl%)qZWRGS{o{>YI%ONl=BbS!Q>6s~U(J}coN6#Fx z{a8@$xplW@|E3e^=QFaLm-kl{mG9Y?9haDS^UlSKckiC*?x>HCxsXwjS6`-Le91@`%BL4a0AvGK0tTj*?e>CzQz*0Tj{Pp&Uc%}#SuFk_b~8GZp5e#x<^ zr)zQx_va9*Y_8(^rmVEg!n&hpPJR0MiLPB(Gv^f)6=dfXLVPHc)s9-tW{0ig!6Xk{a(ACtQeK%Lz0AmqdY{{J}`?qge70-IE2; zlvufI1(nnfIyf7kmG^Orw{s2>PQ-a^oQRtoW1U*e3^`}wPn5^IXZrfd#nLWQc~j#;29r1&R-V?((!P@Kt4o_?r^;mx-R&A+A}k$ zz|>(8_RihHK|4haublvFe|VRyDaArT>c;c^#!^H$Hl8X<^}Yq6lrQ|oDaKa`#0yf%0c2AM zl&DN_!~_dk5~xJpH|LxDBvdAb0UyZbNuGg8^SePHq(FLC-=Nxb3~c%h1e2q1o zbmO*gN4%2|i2Ns9NH>LHD$*Jym2u=g{dGK^NEj3i@eqvcXV{DZ`jK8{r)c1`z}+_`}QB`?m{F*=dOmmU0+`O+;-e* ztm*E}uHAYrx@FU*Wjk}?W8!j(VjQl>_B}hBJ31Om3Nzi#D@~oP-TMk*6e=b#8i>eF zAYM;UR{aGH-2qReGRxS>Vkyu`P06b1*je3JSCk_wN}Qgv2-mrVC6%Xk)zlxTN@wam zr=gX)jIyexu0y?tj`ZwpuA?Zkq@<*eqsAhYzADM&fdIYJ5dUM7y1LJH(V-@#%qlswnA95iXHHg0z{?GTpyr z^YMlo$d80DfugZ7W~__2f>R>@#D%@P4Cwu3S?n$bDjqDcL`tPxzjgC=XaoBm&`?xt zf)1Sy*8rZ7NQai&^E;9?`CKgz;Fgzn#l&HL|4*V4(-DpT%<7QX8O?&kh{j121@fr$ zREvttiLy|9?aN9N)t0a+3bCWK77BMTNe2m+1X|NWTMWHWAU?eTaWBgKv}{V$m_TU=wj8g&JdBY4qd-k&p_mUQcwJUd_wAE{4iMjXTHOe zSQn`nkA2Cp9FP7(0FH)Hl6rq5O#!9sufM(pnUN@?6!y)&axMNY>W;6dkg${*BATch zl6T$!D&2J47@)13Q5+y^8X`D~C(%L3rFrv3uDmI#yiJ~v3%QaD@x#)dSp5}2Qst*^ z4HO>5f4g%RUB!Sq05NFPUCDg!IPcoIeoE3vZ!L}_k07aMM8`l9>CGf1i!{F*^6j@I z(sKTemSbS4Kq?@SL;Yl+nsbKR$r=eq2%!SO6apzl21U`6fMuyImEY1t#3q6^WF!6B zI}WGx{{>Awt>;RTMBVFEL7Ay@(@-(x!cf@7=?h!kePiR56W!%SNP0A*$}ia6(^Z&> zQ+r-^dP*ugU^2!UzwjxxTFh~iGK#1k(6cb?mhwTlfUNvN<`Xh9RF*XZ8!G}xQ4#Xt z!m{eRx`x&R2f7aS9zm_td+5}aFf$>udhtg4j?IfJ_b#r?N+>9;p1V9`{kSR9vbVM5 z*VM(uW#lk(QC!n9f62;Kp&K@D2&Io|$g+sEL?iWGrl$IG(?a_Fzkpe$T=_)FPPE}V|L#S#f zuB#PB)znxA`me9$!=yy5t+llk4OJ_2rmdy1se!juSJgDu!?%zz6&I<(0R>p|BJ0e| zHnRL>CMrv1TfK8puq)(HBJxZpErQ$?)V9rDuwdbwx>^RKE%i;+^CUBz-&|gtU)DH# z-pnM2ecPtBOMClHlXacB=t`rvyMP(|N@RBeRM9(uzJ`xMR1jQyj=?pX4-^7*9UIug z2VdR4d*|l$H?Q8j#ZIG2=ggf}SQMYF9yt=HP975#&Lj#gSm8QCvlDS%KqF~?c<$Q8 zYgbPlf>iYgZaU!V93WF6kgB~M#@_W_FvVQSUYQ-)yYGM$0UrGL(-TmtL%bY|eR@9{!p+1HUe4klno!7rQ$V&uGHhf`TN`w3VwFZx{o zF&P(v&!cV9=2qvab=7T^& zr67Fcv4xoO8zf*9`SJJT6OmSexJ8Ali~V-}14<=vtoxdSoN4#vh$vLbdq|3+qv6lC zLj)dwIa0E2O`f$wpacX8k_u0-MG%=X!@VysY|_M*S0=-!PU%&Df(LK)2&uB8%+CDNe@L@KsrnN<^wRLx z-W)aZRcT%*m}nTFN}tW))bkBf!=K@DVda4ex$#!HH(h)}JFp+2I7vS57``=_KA4e(X~ zFW_H0hYn&Hyo&+oQW|hYycqwd^cMy_&o@E}C2FWYI%W>Sjzw46F~q0NFHqzn_8&}}SL%Z4yM4GE#2y8NwJVXl0NEJF(YARts^tXgHP4gd>YrQZ6B@s?$j@wWXP$Gety%y$EY0fhs+5;>1hAW;`FGmH`Nrp;=TWwWu#x^)NH z&$g{Q><*7ixFrC9(z5c43M+PYfAJt9x8d-2>3e8zb!>NLZRPPJ$G^1x6rOnIi)wf5 z7JJ;vkCt!R>P&7pb?L4nHZdl`9&Y{d){W2lx@rr`JA3awx?dR`q5BPnGp&iwL%5BS zyUo@Z>XxmrC!30liQeQ=*Z|XukmU-4PU)9If5nt!`*zZ^t$6Q>4~aG*p*RC?Du5ib z+hlGOC|bp`L_}Upk0SnIirft^LVqBmR1lWaosbw2zIlBp9_7NYv~`lKBWfU_ed3?I zbXf>ga`|$8WKmB+ewHj-wQ-Mm-H>TWi@o`(lnw>eHhd;Ua@!s8g4<0}D z*%xPTe)rRZpIyei(?|B!C2h)%j7Z+TYALDk|Mbp!%l8m?>CKb5mJRx&MQZU1Hfmk5 zN|EQ9wV~^_mVKF6mPjoOJsznFO^9RO&B>2cNH?dMV*pgJct@)=yXbx$t(k zzu|b@7lx%?c^ZZVdmk|Z625d8mOjQ(b8(;OT{e6uoIvKe!6;f-5yAKxXh~ zA(^s&U_!3w9XriO+M^o%-5x0PLo_L{MqI6E(I>du6fuxF!8YCnh=EUyjT{pLl2W5Z zcNhS|LMW9iFl)?c*BF0&R|uAKj18Ivp;BXijnqw;mz4A2XXVvJIq`&oTm{0##OK_c z@Sp6U{5uI*0l|n2tw1Gwr7Sp231>qo zrN;jU42ch;CE*8iux;11d-B24bR3iq=d7mumK!|$!Hn5>9!{M)W4=JsDbyAY)=M#c z_J^3ePnm2^!2%1aH`zl&v6LyflOrbi3Ts1b>cq$0GSM-?XCgey)S6TmHdvxVRVdCp z<9$(mxyJd4>da)B&9Q#61|pG54TSn7(XlWo@jaCoAj4syMFE15;xH+-;CB_M3wL5@ z`(=r7Mh8g(MxGVrKqZB2f$@w>oUUX@6XgnIgeOU#iQN@vJ=6~-&61aq!+YWZSaf?J zUsKUO2-su%#LUBpvC+c`Z+3?Ju?f$>t)%cFA(6#lr^91DIZzk&rD4tPD>J4UwoD_- zl5ONXExamEbm*WfZsnQz_5uTN6^J*xY(wJDZU-MarrVf^@sop#i-`}H7E5VFg?>*q zPBbQJu4rl<^IY?d1%dilvS^X9*iN;$)bXuwv^p`;TeSxA?#S-2+OK{dO*0BY9YaxN z%e?71Ul2!W8*SvE`r+X_L?|VoDpcbVgsmGlii}mXqT$F#$%S-2Ea|bx9l0YJ3hL0r zWTxt46VtFQp+8{-lg^FSmYuEpkDUF=nNr&Nxsgo;L{+XMC29ZO{fF0HS!ZuJk6Qg`1v1;G(lB^LMkHj@D!l()ZwW7-EI*L@fd-fd)S+>8S zvN$VpOG{;WLtYXGUD`V#fYZZ$P=$&d;3W|Z`3=fhS4oNs@1S^7Ht(eL*7KFSs|xaS zvU7_{a7iu|xgSYuQ+-8oZExqkJylh$?RBLEr4=pvTTslkG}VdI zm{GqHTE?ppQpe%~z-_{$@F|~Y6rh$Ur>>h$i5eiErk6D)a*%8r-V=439zTJc@g4+W zfKJ2ndmS;o7ecCdSW;+C4lM6kwN&d3U|?j5$U(Wam9Gy|fHt3SAmH;>$tJDjP1c`8 zIz`bD*_8JNq()$kHdN8oY|^xEz#}agL2qPy<0p_xJ@6CzWc9V~^G8J-87ImJUzm`( z=XakJPTe)`JOf#xH@)Dc+mh*_bho>UImYg+@(l4St83~~mObMgnZQSGC znALF8xMja>+zA#g1)Y-DId1!iv-@wQFz>FY8@RZmuSLdX-1U=3)IAI5|HPY$#YFG` zZ9~vOaTS+*Gm__i)dQFTv-M}bm34sbL9`EeCByKZ*pP>qYPnIR}2g=jb@o5=#|Z)HrHDRsDXw=F8pq}4}ZSry{U*1h{d8wZab?&q5#+fl={hx_{adSO>`JW>bz1V)*igP2Z1YsDN(N5?+1 zV;t8w!ixlJf9Jt7*N&b!*4K+JtEaCQ?A3YTz=7`0ea8;>!{NZ`h#$gcXMh6#a8i^~xusp$5L=>=pbHh)XGn&RV-(R)>Zu?*!qs+s9-Dia}H?L^M8zdJ{cP*3&u_!Is?+EQ0n7e zeqGC!@)5=ce;p9#8p z<<~v3(ZDuY@Bj_m zUT|QqWjt^BqvLto2TuBf88b1Ep$j>Md_W~*y1yRssOdwbfg^wND1#txHJ(4Y7nONa zY@7#6&L=6CK8bL^pg5(!h>t`PjYK<8hAn+TSzA9y$&B38qqi{SCQ3`TpPjM(Y3G-^CPKSd|+4>ZGl;%chXLPM$t} zVf<&|iN>v@Ih63tLX5h2#mcbs`{Cv2O=ZH+tv0WRpe<(_7{!p(@?pRZaFfP~UtGGsYdxG0(7X+qy|yFr-QkCD;xc9+8`EMP)@g zw{@FzhXSen`^JsHEMDPdR-3{AS!5{IZ4fP9xlMLxBiu?YhszBe19*j7?HCk0!m+Xv z+jV}b6?&FjBtEc6>3k^yS6NH^2G*n;(t11n2GU-ktf@Q+ck4wJhgivSDB9;LJs8iJuh2 zsU^NpHgidU)-i>s71I#`0;odQZrqyWPETdzZ^S02r^Fx=OO7+K&=MS9f9TV`?(Xhg zMJdrS^aV~wa>vwLb~4#>BBHevIwa<0IW}!xvuN>bR5>u4_un_(8wjC7Y6X2AMN0uh zR)7AB`m^gzW26N#6$H4|`YLgu8c5(;I!u@D8H;|Wv6Spx!ld|{KVR>9Si}X8_LKap z579!-wsC$6HU;qG1c_#b-!sEOsBqDyD{u-n!^n?u= z>MV$q;sYq1W6A$j6ju|a$dAv0C84>Ri7C1eH@>EB!76Gp5nD~6qv2E2QTNQ6NhJ7a zhkMI>pdB*;Gb!y|8Zv*z)EFAU#z?CRp<7~91ev6<8*~|fbz6RSA?I8$l~e+U(kTp_oz$x(IH=8c;yx&7XmW5at=bpN<{N^u1PhUFT z(v*`{eDF;8x{zI!h4I!6>(-n*k45^KFRyImP`PQ6swQWLV$Tv48cc!<*GsM!lcj_&)5)^~jzzT~%#OIa?E#F8yeCLk*RA z&Cvhd`@0YHE)89`Vt;vMZo;-N+sZ3a*iyNn$cFcQ)dD^t6zORHCh4BiMQig^2s1c&kC zv&TvK5x;L%rpow@W>jRllq_-T{}ojdqD;001A!Gqzd92)Vl3?N4hlpR**lU;H#;|D z53rOk35_!R(fCNkpA#k(#Hd=plZ^p7a4LX`=J}2z=lqNa$$|AtH55lK@3*vQyJ2q+Uy@Vr7#j1jZ(2 zZAowx9{9gw+0Dl(kHIe%^?6SO{sV-Ck2%X_V%dP zkE`2H-J#RpFYhOtHShdWe?H5{3%k-8u3Sal!%<37UZGU??owJ5a90)w-Pd5U$*;dg zS|!W;z<4->FM`m6zi-K)$tZ*Pu0Sfj?GFYfQ)nSr6C$j#W40eaZpcYd@u#;zgMlP%&FhD_3r-!00Bwy_a9V59VANwjDnrBZFos{A^u_Gp>dq66)VcAZ&o z-E{Rpk;=Cg6ciO9ZD~HYZhuXs)Up-iW2Ma|5lIszDLdmrVj%-yrYzzZy%AGUQ*ms| z&dbq~A>yxeffZSmuBpz=pt3N(xV);mZr2{#M(pYA>F(}1{K? zCi={kVGLDKiN3d^rLMBFv7@!QskW(=5Qsr~vo7fq&{TuLdcC9Rsm4Y$R1FOcjSY36 zs#>E)Rr^!*S6!tlt#B*K{ThH#wTQDYnBbnYvlATE49dbjSHmbC*G&MiN-vZ@qGNs@ zr#vp?Ql_X13X74a@oX^?HNosmz7WJdCwxX?OSdu`M<;ea?b;rB7t@ z;Q`qfzW&Pk?L(W>_V~g5yN`bk|M3TB?zH@rob1GK_k^*dW8uz`5iyYLq*Qvrj%ApY z9+wd9v3`B!%$cLGC=H}2-7~r^U8;Ks)qkKV0ZBri%>8rs?c)Y#!BM!W@9*q7e&~}E z2(S(wK6?D?v>J^MR^Sas|>`pM^?oH%@>_do{Vomlj|sCEE@GT_xk|DKU&Ol^msHvO!S0^mh;oL0v`daQJ(nl>PUx5DDId4k!z{ zAqgB>NTj}3*wsD5S`i?{{w6xA2VZ|>Ky&WHrR;!Y8^TN5Ehj9>ghe^823)y%^~&Wd z#^oW>8BloCMGd3WMcV~+(S9L{&Vc@?ro>yyan1sBa-6qN(5EiIpf0HMz85Z>cU>?p zBEX`c&*$1W#ko0Rj(B#S7Eof zdLd7)=bV3ZVj-@c_j%#@*cYUSUi_a7=#F~PqORU%7 zQ^pGeo_`*Fm6(@%#3cspgPqDhf5B0>%^K4Kbb$<>>H`ExAq1epWvV}!*Ho$iePL1# zMnSsqRj{7D<3ff;wA(^NKpVhm)7;ZNGXkW(aOO-CPY~bPQkmgLdOIsZ(_8&WXV!TkDboYZfdx5y5yphrp^s(=sJC-JAU0qAIy+me@m9GTxS;S-xZB% zIL6|s@pih}tqWbTO#1W)GUF?VtNUV^r$GHsN)qa~9FxZ^`12jpfI#pDm%yNm1*e`tr26sJNytzIv4CesHZQv-;=A zs(i<{H;*R1E#S50rTR86nh``iIP9A zii!IgfsSi&iQ1x2k~v7xqT-|6hLzr3L@R6f4pQ5&q~=4%`VJqgOmSLw7*3Z`sMjK6 zA|2rrQ*Pg8&niw$&Ml5y8M5fZ52hg5LpcP(c|X`|Ce=@$9FQmXo6n9Mi2*vT0gw!G z0e*TJ_+$(hU8c;&t3|=Wo+P_rOI0}W;NV7@qsvL=8Xpc8Ym>QB(kC^2ikW(aDk_j& z7*4IVmqa(hfg6zG%iivyqECxj+)xvR-pCj3WRCMi*we4+ae$hPF+QU)9=B7h7KAp6 zrN=}{P>BeCgeRF^tTfK6U$P*Nve7QkInFZHHEs|vORx}os9SDCdM=Av$~>yEaejQlDE;g?Ge7un(elks=Z-a0`F=Qa+Vl?>uUi|kJY?14 zdDA2svMS=I`p)=Zdc;&0s?*ph19@c1v=3%2oj=_HSdxOr{E0SnW1dOUc%FYcd9nw+ zlt{^(6X*nJ^lPHT7|X=#%E?;u6Yl05Jw%WlZs`3}VTQ<}$R`s#@dHVN`)77tvA!Do zIJGCbJxY9g;YebH5=oxpbo=Y6Vnye4cfXrTMC1^e`6r>`L`KLwaYU?zDhJ65eek16 z7{ow_f0f9U_I>r#n#iD#- zy29kxpuk2PVPsnZ9T~GCn1>i7n;d_0qyvI6$Nr%?*O=!spIHdEhDSEwkqyfG`m&I9 z(Cak`8S6L%AUfR|ySwj`)4lng9U%NIh&IEOGoie5Pga}+(xmLv2xdpOZ;f-7m0(^tAW}alrA$0%`PY@Eh)o11Ivrn zt`k?kRdIy})^E0^<-0O!Q?hK^zl2k7i0%vR468_w-oAnMuI|#h#mL9C^t8!eta`Vc?u39uL8I)b67StbBw@&XWuPM&{Uzr(MWv%r&c^JSVc;YMY z+r~?o3FXKLl~~P=)Hz}rl)!WFBQ6<-@|)nk4&M{&X3$VN#;2eqc>#CHd%#EZNg@SG zqmdbMC;oLR+Y&asIzJbgiB`r)(hN;vlcDz+cz_`;6a6l+j$#;P4-dDyD>{z#meE6^ ztf`~EsvtWvx8>Lu7j|qseXKOU>g)zb*wTG1#mO|Ev{7qu{`|FTUva$P5Vw8T5v~^;EzT|LETO~z?=G~9$a&i&@1){T2vCrs%xgbwA zUA{w1v@2$Hd~Rl364ekq!0Jm&NydgTGn3S(pp2@;yi8=MS-Ik{o0^o6RMv6yXkTAf zV@Xy@GRI>MB&jH(SZ$~#65^AJDyY~jOEYZNEgO;kiZLS7VltJYg|ZqP86PTU*=)0% zAE=qn5IP5c!hX#6kqNCZye4yDrk1RXh2jAUQ_n@Y67YVCj{3*yHC z{Uk)Rjs_IN0W%5~fg``4a8Kp1Kmdc0;IJiYWs?gU=wnBW<4YbAFP-|3;!v#@ZcFMP zJL7=iwEICjkTUr~KHLVW3mLS_^dXVf4f6P8wh_VyfX4uxQ1vTa>>x?MmEa+KMh790 zVG$=pmF0X-{W3i)bI2G?1EB&~CRr}WU?38SItwk!E;1I>MEb+I#f=E`Q@_=0n}74m zNrWv?zyncg`Uwy+L1<>ozrnltxBS>iDOveB=_%|q!i!=P=+;MRe`12tWywK2ChsC) zv&6WfgJq$;m=U}fj~GgxQ8CZ(lGyn8^i)ApoWzK)-#IT`$5ZS!pBA*lNnd$+QZRds z&@Z`gxCZNALr?@~ii8IWK@)x^U@r(Z!XG06*hnCWi|k%TxW8Ok)z4^to(vJRM53t6 zO>ma_fr)%-*))UsRy_{*mYnh7BiF+~axYlTH|B#NvN1V*?fU9h_wS2uvmhRC)<%!^ zJ5S*>j&?xwONgUx-!g9hPH2($3{euvlNLAKx#PZV0WSs7jb1-w+zIqb4(=Fte|rar zq|bN$`x09hbWZ*vM)1}R-glwK`bw;$e$P^H3)f-J7_WP|5{pa^t$&pYB63A7RQdi# zkdo9|$sgBV`O_d0NL_z~WC1KG1v9KaiuX+H;n{q|r_AZWx!j8!9pvDCvW)-<^(Lv} zEU0)@d;md`4O1oh$^L63TLsN(F=;MQIJ>DekJ?A7>K_tlmn)1d<`c%--)gaYbQzqI5___9=)71s2B$W}MkK(BNa!hx|#9Z*po@AszfA&JxHW_!t60 zo6_jNjS@AJrV`e&%Eq?#-H1NvQM&Iy-^sJL!&Gd+?753JYzf(DZrU2Mq&;N$k_D?{ z#>Xrx&r7GM!4sK~UtCn&xMbDJH5*2YZrMO1BvF`0RaDmm*48yNw=^{x4Zo?A*VH3&suiY$ zQVOsHa{6aDc|}EKB|hdgyqHH(S5;|S^V&M2!Ah$>;1C>&53Q@`>1zHvb>PLE;7YRY z3Ls2!yHKx79NrGU%PVovc*S_ojL!FJpu#Ae~<7)qJUzbQZ}hld%`~P-IE`Fa^~dG zTBb_<@ZIBY)PuK$H$8|>F=tH4qBd_kaMBr>HGS5MqJoUXgo%^Kj~PuXj|42}qOd$k zPfH!2mz|ct;ZXf>_w31&M^G>wGWsmNswY6)q7EK3di>;u(PcScbZ$6sxQDX5gUm2= zb|PduK=Z?%gBVNo_8mTQ_)ss8b?ui@bd03h+Ivra`pJpoN4h(9OWTgNUEsCdZEY=x z&fs_T^*B$pwC<|M#-u=m$sC9{-g{?(^zciVIa{@i(xj}|koF6nfwJ{U_0K+D9XoQ?BA=gw*H1alI-lk2?W!eDvs z!i5XGnm^-$<)XUaf;+h{JFfU#y`ruLN>v{J$GmR2rfvk>youoHhPoM`xi^~2XLYav zRO@hd@2h)6HU%IXphJm-KJ~~KDW!T8{80BmkO+y7`CuJEh@b+X&`>HSO}wRgoti!M zTK$N%8b?Jl+Yw>6aE$VmLm;vz2OKF5@bt5-lVhgT@Oda~k45t&dMDveG@|g=H$B`H z52`3$?$qc>lvIyUYf%%^@&xfBKbF<-wV>FSvM$zX?UklD|AbiJoPcXZXLMb$W9&KGySAZnZ7{Xw|0WGbT)4 zv2p#hG4H+m)~h2%xQAOtL=AtIY8XJ(D`HCpd>YPOgi$`jhI_%2Ww?7-5Vqxun8aDbM!>OF2l81xgJeU0z7t8)Z;bbRjS?mIiAo z6|#Iec*j^7#1K$$1`4RByi|&*QszqeGedn|4OOo?!BW2DK)^4*C+=Ce8#&Ge>Ff-21x3y_eBRaX56HSlV&eAmrM3KW$K5E z)^0Q7Gm@6hn>TC5j9EzQ7cL1)uc%0i^8jEHvP%kL(T%QOqnVVkU@$~#Nyy5T@F)hV zDrAUAe?pd1J7UFjYKyTsaMLCMQDIc=0b{~;;11=9z_}?wRlB-R-+1ClYd%lU z@u;+t`hv5z$jpl;E`5HfIx6XFcU);j&a#DzH=fGLQn&9plCp~`%IfzWY|M$gvcIa# z^=a>uGjNnI_f{08W+lfu!^5`iFzOyZ2=6J4hKp=Rumtp=J|v7rN&mcgBlUzEu#{ps z!lhDgD>A2T+rnT~8;uSBM+>A_){PrB0FF3q7OJ*+%XZXN5VlR++bmX8YKN5~KT;R= zTINl|ogS$dR}*Tyn9PHU5jj6R!JwKMT?d$U$%7l z`sA$4oCpSgF_epxmuAPOS0DcLN+MaAy{Yq|rzj@e3_o|Kud}tLBqPS-K!CMs!Tg2m z*osz!O8wNt@na}QNo25^R55?ymm5}Z=q`5kI4haaPf05%uPn~V?r@k92W#W3H<}7} zrHc%95@tr*~KHzuLRIsV4bU)1|h=@J*pOn)mx; zk%RE-KDBJw^5xj=lXS6#LZw0$aes}?<+0kS0@}dZ-LTEvvC$62+onhfB3<_F*pQL( zW*1hMgkiC@BcbQ?)l-*yD#e7%3Z$Yoasz(o8`i-JSFbhFqXCvtJC=Sldj`(!QzuOv zKNd=%-bWFIAnIMOA}Zi7)T;gkFs0t~9XXPMJ@tm4uqpFZ-+nHoh6Mt$*{>Fvl$H7e zPv?EwP-=4YBnJ>G z0^Ji5C=^g*g)9Y%d}t7!4oFNObDJd6EF^s6c&h5;e=l6r5eAO^cZN zFJP%zvlrpZzjmA9+PrQ{_?DH6mu?QXu2}TZyg4&iMUZ;pW~B6wnyI=4p8WCwbwtxwEI^iXJs7ZsI@!4PVLowbCZ}PbOW3RhgJjv4j)dpejUQtTJP~ z8>psO#{*eaW5;PQsl3!m(e^OOnfU8|X2tM3UONy7RKP@oae1KBCb2(=J(Ub>yccLb z7{NoOXvlz#uNHb6l%NR5vLJe=jh`o4ifc#=HM`=1l<+B?s_6`myiQb4bm5B~#6KX( z6G$eNe8Jv@5T2F9Y%>XgjRf0Y?j{;Zexk@x$tooX4UP~kvhiS&@=U}#B8XDC0eQ@w z=I2KiSPD(fMo|E8i&Wk<*#+1NWWqy!aid=q(;RC)~JHox`M1! z(%p>w(&D7(2xA9$i~bDg8^O#HHN&=o>xqUM-}5H0yxm0?FV+}Ygj>=kC(;LpmE_(P z5tD!wZgyUN5e0Ery6)U}__J%@8u29u*KJ-GX2hgKAK$diee&SR!zWWhHyzxOUR71F zb>n8E*X3A$>NJ&aQ3(m@MdjJC#E7U}OqjcWwo#0PPPQpG~8&8(wmk}RjY}>MF zLs&RRA30oXwXR=9+mOWzDcQrBqkZ48m8))S*|fFRwx-^5tQ$(zaj=gxVc!|kT$|!p zyJ$~da`Et(^n(1ZBR!pc`|`^VE+a%Q?`y8eh$TlXYile_FWp;Nl#?ELzUTVkx`GTu zQ7Bzv*?@l?=LIZi`E<6aYv5Fzm90BIE-|mP9DAwE3`uQMvkS9RauJJVE})SO953h|1=vjk05qU=VI5mCv7nN&|^#oMi0nAbuz z&4GmDh#;9}=QUO~~ z0q0wCkCzDZ5WzljJi|H~r!a6LZN{0B_xm-R%5Xhp0Td@B8wxGTL{D#kn-t^V2{_Do|J~p#k15qLcs%l+(COLoKwM zp5L%3M&k*ifjj#mVT-$pb!|is)?A98Scfhn_W$MIi(HdVW@&f^&vn;R>nk526)W6G5A_=ItSn@j{t>%Iu z7`fJypFvvi9P`NlvNPJmi$>skKfyoh+u!M`zsLPr2t-HZrw_S!Xnyl=52aK`jF3rI zzxwK{ueI`kD=*_hzvR5@M@h_Gr+_LT)}1@9+d;SbS(kD9SzWa!8Y}M^u0`n{)qK1~ z(#tz=Eq|`>-HX6rS!~bcgN=Kl(~=59WLk(ZuwEwfwA?qo8hl?Q5c2<75)7y;4~=h- zNj+rQsk#!K6bb0F`YVb=OwK~Hetcq(hz61#A|%tLq@vh^w*s?p$cH$Hu-8GQr@tK5 zBAxh$nNfC#B%L2)^bT%P2d|iUkz7>*}n)Jx=4R zg2KY`<~TS)-G^7J+B-?ze2(V zPJbC0SxBdt-vMk9k<%&OD=DvSXlk+2j13p3y$24RJa;q95PUUf{?gU!*6vxdbX9xH z-d$}Q#!rr4o?ls!&*mQAykhyhrpEb;LsqR@zs0JyZ(Mt-yS;5qY~Fg zICs+M(eJyMx!tyD{p#gQLso=twTlebkVYVd_*@U|BnovzNyDc6Hoz4X`7uM8jY((sX^-W?5e z8czQ`?d&9o2nQ%Xp++8rPEL@OYxuv6c;)5SM*jINUOaW)^a*p8gsxsT>;1pJ{f5`S ze1tjNG2)+wdodNPid%T8zxEn->LZXaScV%T?8Bp^o^KcqR0HH+jCkd>VZ&T61!xfU zlFKWU8amYRV$@LE|HsvPKu2|^>AFi1fsIplySq=%Oy4`T+??b`d_`+NTP zeZT(ZKe!e58Uwrs4zLfD-hVU$l!}u-4s@!-sYJk)M5Q|SUj&z}8c0IuJ@lQD%rykJp?w)itd*#V*Q=88c=$X_zF0%ADl`ld>}%ZjfU`g)HZ} zTnd!ZgP#RXA?Z+L3Mq7X<*PmWblUT>7HKG*KY@UuPriSpuepA`%%oY#4fx zVJaJ)LLEk>1E{pOpAxAQi0U0wQ`$QT@7mv?6CbDwPW7Jm`xy4TJ}|*lHk4CV;@`Ca@0=)44VJ4*cx_x~l zb0f?>e@-{1Wy>R0A<1&2Ct}KXrsY-?re#%Z+P(LBa%H~x%Z*E>`NNY8x845a!L=hh zJL`*S@?PLx5cGLg>BjH)ix_B>d(UPs_h^Hn`nm&8_r14{EbvNp-pMHXQ@52v3RUTC!tcq>`CYZc(CX>WfWP!7^2PZ&1NTCVQ{b>z2|MJfJc&?`?5e8KZh1QJc2h>qdq$&(!~d-c;^Ho;mZ zc~eQ!h;Pj3WYk&zivyH#;{s;|PaIFo{*)QB=EI^uOnefuh+%bnAVo}kUK#`_ z1S^(B*oQ8EvJClg0jw05Bd9BITmt&5B68bBc0u~QLl&lBEU(c{)rL?X-4`qe!QvD+ zed<^{_Q$>)$9?jts!6%f$yZNFbr4_Po63x8n@fX$C~1mC_dYug7gA#-T}68Ak%sPw zm1Fq;7lox1RR*orU9OZ^Z)u#~M-_p%SkQ4K_)y5{Xs!}eS1m2s(SxPTG%t?zz0=cT zIo$W7qL-{GuN;FjEqh2pwL+w{qJJh(qEx0>OG=ou<|fztUM9!0<#gvWCwNZ;_1RJO zqUmK%W}WVuVVfB{i`JKF=b|CD@@36sw!;k8=RMW4BavZOTQr90jb)MXWku1j@(2L% zI-BlHPSr3fGq}m97j1FZ)G^PSosgJS-%!_Fk(=URyp*P+2y#(<3X}rLLz+eIs;$yi zzX}KGw4&=?)~;1CXVWWpudqZ}B2Hdht(#Wr`~-uJ6^|Y{(z9$AFMQeE zed*+$(|b15R~Hv&r>7R`&AXZtZ||upC@#sDD05^|S!o2Er~bcbN&I(webhM=K5{2` zi9#zoQ_aDqVBz{#3Uh@OK{0T+WbAu_qDZacR|+T~m7e95sbyQx7GxJfj_1YSCy5OTU<(9ABro86f=+P1DJ#n8dHEB8NE_@eNAa)^VXd^ zPDDFw;pe;dhlcDq5V?HOqJ7)j%JVbbE7Pot7PgUvgb2imBk>eRSVDuz2r+ zkkd;;&mRlR-__=hJVHsZXV<>N`*v;Lefn&?nH3)s7229xof*geC}Me7LV9}3fsGrt z)s^QZtY7s=U-v+dwb_ll>f8kT>a(pi^|i(6$h!bc7+4o|&%4Zxji4_JOvQZgX_Do+q<(?6fTGBj5_as# zd}n)Qi$!9>=FFz;D{>!Vkt8*j8F-9*hBulJDtfEUDY@vRMG}GJw3TvbF7w85njMHnzNgC{uVt!M3Iud9I(QJcBjFi95RjAsCpr1!6eyJUCm(B{NWLsC zKTRkU2qDgJnm$O4bbBw60`P)y&;(zhy_)Oy?qu1_U{6V@EKfcJFE0N?4L^#V`?3-e z2W5p2^%C+#P^XsqLV9*yCfYYvU-X3Z0Z2@Ay1jvriT;XGA*qvyJSXmA;S>Du7s#1n zXR&Ug^ODU3iRP0RR~jltJA0g0d{SHkqak@ws4R2^^z1A;gXQRtJ5jgt+2FB~cq_TX zzDPTsIDhp8p#03dJ}M#VCBZB>((FHAo`JgvC*qo0!i)S-1<-0we_*9l3{WK)HJJA8 zb9X7r?tpuGPRJd+5Jq_+Gw>BOWZdyr_i)4Ou6ZZmuAm_vtl#aU1PH32GgYROw|M3V zclz!bR8G9OfFk+P@Ac}rrQO3x2d?5IsOX;kejlnnEP-;?9{Ednve@aK|LO71p6ZWY zR|*yx65x(%!N5@$OUWjZC&mL1qo4Y2b>=~&UmkrBSxMlD>~)Ozz6>m$MbG+@ME424 zK|fTW>FGws4hjz06C@rhoycH8!V`XLi zhW3`WS`ad5l0U8Yc7~ynlou{ZWk%Vrx|(S@^M%NNRV?Z+rzGIc`0r z6i*)6lX2Y(-IK47AMKiPwGVDPu#gZU^NQbPFcLJ$2XT{l>b^wl{Re5 znQj>lTVJJL5>79>CYm8|BbKv?nI%+V< zQ1(Fv+2(yzI+XA%bWUEl|LgDO=C)PB?YO^5%Wj^Y5FbJEm4 z-1Y#csm7G2W$NA|A)h?iPBo;89||&^h!gvSf1_%o#*%4#g_=Cti2oymqHsb_MSJ4O z%+FDNN+6UE_)44hlt?S&#KDp|!-u&%ZB{SpRZ0U%K47l84*@mIRzsXb4iy}r_!Bj+ z%Ji7$k0^>7SX1@6UKH|_^&yU>ekyrK54A3LhI)k=Lw%u4Lmk7+;f@gj z6xkz2a3QS8_O^izN`F`9Yb(u%--n_AMV{v9Yki&xC4p|eFCp;qj<*@KDNjh1*8s4!cTB68l z*Ntff`XujjMI<}M@bK_3IqTt{L_|hLaF%|8Yob>Jis;M7M~EilT(kh5!1I{(On1j% z=2!>43Xk9wR>iDe9dAKXWnFKxtzD;S{6B5&Y+|bD4+#5O6^4X}Z*_^#!*Je)HLaj5 z6E}c+?@!LXcw>$p?>u<(@rj*>cU(3e-**?_U*W(*dwBiSzU`a0?Wnfr6rKON*jzAk z7M8rx1%>q0E1y15oAL36gBL80xaBj;%Vz}FmKGG(mlx(&)U_pNRF>uE+IMBIS~80n zmU8U%%k25Z*@fl#sS&&DI@hl3?%cI?+o`C?rJWr$>Bj1?#oEGu4naeta;yX=vC{Pz z48zbuM26|h^yLu|D`IL}i%;CV_2Y?+RqdUng;lLZ6_q*pThCRw$k~!w*38I=xt#8} zT9ck#;G+9djrsEi-Kwow&eS*I?IdD_t%?X)I3N4p!qA9i{Hq1CrVG}bI(?R;LQz(r zf+D&6Ls3A1l_V6ZH$X{Nb+GDif7X7s0Ar|)hI_Ul=HR|aJZ0!m1b4nZ&j5vchc|A>XME9aRf z*2om>;TntA%!#H+d}aY2=J6S+Ph!T?KlA5u)F`w{zH+T$&Vz}VO7>&|hn!=2DV!wI zpWb|0HL*X|;2tm7PjB*)#z23@0g(PY7X1*$I=KY-2ze3o!`YC$rHPYXn)LEZ_Lse- zeMKCw%KXe*LZz%@>^=WXwcyjonq!<}UmQ1KNyN+rAv5Ly@#Yfu#85YW;$$5ODEUy+ zrcUBzg(jKAkZTf$Hwnd4EMw#!Su9hh&6qiN_8g(hpU>mD+=co{Mew18`lDbtb!PBj zz=bWTKL~NsC)p62CbL9+;7sNO_xKdDk4iAI*$`r(Zx92YG0uliY>f4jxOV#Ud0~O{ zV(Cb}xeNR@e(IEo5I6HP8`0){Kf%QJ2|rZHscA;4FXb|2vafK1I1f%jwA6>=YgJE4 zqZUuEK7G08TlodDd{B*^;M+0<|oioZ!Kmr$dVD> zhp|qg^5E`9)SpDNi9E{YQbAfOn-*gR4ZwscsU#2qETnvtmeZ><&t+87puf(q3ce1SceD1%>O!=biRJ_=!8V z``0cWIe6s6*{)5^Z7mITmE}cc8&6-+Y@%eOxIB;RK|J`|>$e?o+`jFCSJlEh#{5iW5M~04il!AWi5AMRXn6-CkLc#iB?~Ca@fEptMa|h9y(_ zYm19fd^Au9Zp-iK+1VvK4{W-8=gtoo4{kqjXmjV5y`7sjH@ECRzquU4jiAyZrx|s| zSbL$fvZjI7@L3&ezuC^}ofZ#upra*W-|1*E5? zq>7#(BMpmdqQl)smJ{0tYl$<_Ptivs=_!5_n98U}bBNw-N^DMypaxXk;r32q81-^H z6MR7z0D3EGQ7=BUoTZ1KNoK|l8K@GI$`W&Gg% z=m+CbuZJox3OSMXps%V>mDq^_Rr}8P_7AF1mAoc7-x0AAbV^t3s;}ZyLaz8DUGu!q zMTnf~E>fm{Q5pn~65$^=6|ho%ntR4~y~UY_HShj?JK84gp7(ti)>BGpg_-byWYP5T zl%0aEv`1*29{sr|3+gf21u^Z(k7%5pJTZ|t`HFtQr1TT{g10rsl*ATUb$ZL{%1PE8 zR!m0#E4Nw=fq!wmq`qg}uqOZ)<-609X!s!#51bl3Xm{x1jXO$ecCY^Av-s_WTO3f!Ex!`OxvmRkzNbIIw#QL`Wc0V_n^A4djoDpN}KpM(C63 z?WU5)>065IskIqW1xNu?@gNYEQR7vs)&03v!K{V`@#EFi^BZqk=v9l^^eit~-^g7g zPC>A$wCa~?`N(+gu;ta%*9iwBrAoz0@f1npZm2FThG9uVUai1FYE*GWb!8b->=hk5 z=CzS|PCLNPt=l>po9mk<=4A&m9XFBVppRosD@W8Z4p?DwepyzE%kChDmiVLJfSfTg zNCHI@&GPeo=*Q0(Iv(8r=GukRCysU>>FPR)stJU3#O(6!?lO*qb#)&-+6B!zC}$|v zp+ntQu3h-{;iDhFxq9i^wex4sUpjsE?D6AYTswJa?{4Ma+qZ62__?SRUmn@DkI?cR zTe??%b(~nJ&F#=jpdrg!niK*D;fk`5>Kke*%Su@Ti;IyHv(o&BXyh2J6u#;i(>?f# zwOfW1nK58Qu`-lvhLt@sn}!lU*%&U2U;jlkk!(_IS)9en_T%GUp8WiiG}_~=gRn#k zDInmYogsup<**8)a`3Ac`X(!kY7@5-ROeR*ZSoB92cysRW&Ogd zCxA*Px6f(ygAFpP5M#5Rj*&(R{Nm*9pVU9QCc>u_1*ziu`MrWw?G@uyZ|R!XtN*}( zgW)?+n*JKUiQ?(C*Np!DTyewR|9^vi-uyT)c<$J7(*plKT(zHieaO%eu%w}{4;nn| ztvBD7_IY+7m5?F>L^Z@f2^Bk-PU~XI8#Zjj+iwpW3W0i^I~+rNc&72X@rLhE{-V9% z^}0TUr{MP^zlHvK6p9Y;k{4;_k{)FYl!kqY1APVz05nNfxz@i&38llHF!S-|ImHjO z5Ax@^gC)4ip&qVU?ZLC0psCFM@G4-GL%}HTey`a3{oAx@(tMACNS(n_)S2o+t_4#~ zClkhpxp|#*Cq=33lYJ?=lrx8LU9svB0p*#PPnd{@g}7KRiUwmchCe(Klx4h(Hr0C? zxlqEOn5>hMRzk_CA~Y0FvuA0uUz9fU(lrJG1%u);h@ZKt7n0P+^Ymclo!@KD}D8PzyJRG9}rajK7h)GMbE~Z+;impj#BEU zannPirb(ap5#uLJo;q#Ttm)W!s30d#ojDVIL)40}RT{@%aj7Nc#l@wC*$IyIE5nv8 zk?aV%M4=SDHiiRxCrN}H?-yg#+jH{9 zBb_*->gLW(o3P3!u^vg|82f44YM1u3!0SbLIKfxhr;+ zSJpLIzNAI4rf;)s-B?NlaA`qdHLB#l?cBWQz_C3IIcceR1zEZDP^xRFD@sj@vqXk0 zTmUs%q-=WR(JMxUV@H+^nd__Rc>>T2W0kZ3^j5B+($8r-vj6IZy$7!BY{vnRlwX=% zviI1QLJNzDBE=Hl)zHvt)TiVYbk^h*tZ#VyWUnK7P56>UBClHbc}Qf`nwW5@U*>DXm^5|fbnJ-GDp=LWxb@zXRU99xh@a3tNn1Sw>60;315)|G#_iHP zVcY_M5HPLR9n6?!Vb%rc>yF6S5UlDKeJbk5Q zb@Vzb#EDD_N^J;(L~={DBl#e4i6SZ@MykAm8TV}m&s=*DqsNIwy1uSu`(n=GtV#N+?&O7zs>UO0&RxEG@p#vnYb&E|vB^1ADHrygx@CR1ZtaizHf`NN zENK~1n!=Kbw$tCrM!_s(LOQ#@rOb$Ldn zSye@?=2y*l3+^Dk_C%S^he}Xub32JZ9f$=fQ=*5F!&(B(#gvD*M_yP!O$KA((LI}X zY}&E&;P(24oqLN*^1v*4bT%p?tUQO#3G~-yrq-F5oIq+vqC2y`x(EQ4Uwdd>lC7RU8C98hA#>V-aUWO{4EDQU$|sL3b{lPi$C8_OQAhG zcO6);U@^*3ypl*=mmE20>^fSWe=|B|_4$4Kk91qNhAv~rUt>LUdhgD?`}gnObNEcqBW*}~H|9g@o2*F{=YnL^YQWH{>K^S{s zMY*&ZXQjojX2~tAt8MB$bm8pno2O3SIDTMLTT5MQXH!SlseLVZSwO0c^jvEduyJ)q zd42u%_PVCbO?SRMSdgCPCapvmg5iX}WyC||pf;>82J05Sb~L_`%=WBAzRJ`^2*WsX zreGORIsOs*sOXudP4nWY$zVLy#L>%0!6>024%Nr@5tV0wIDzu*xi-*~4ONq0K}ks= zx3w$;gj6O*nr!xcdPGfp`C5X_BUhA0dEQRqzq}pf7yW~Im{clBhCeGZC!AiSI6W(p zBhejciUo1?yg(3Ye035WLSB_q6VIKdd&3=#UMAuZ^iFOu-Ps)psFG+;#u1PVDN^|B z;AMuNofYJOyVEGknf0se{jrI1)r#P{|9C*TuCG_mp7iMTUxQ1LPP z;?hq`%g!M-Ei(l#+@E>b#3V*4R&ip5lWA|o7{`A?u=G1w(ZNQ7j(V;@Q1+yN6jll; z;S9HfvCS8@L`t<+avZQp{w(K29_cH$%|sj7TyD3Y42Mu$okU-X&6`HJsEiIl!2yccRD{pjQtXb5S6_U+T^uRKav zkWSZj9-*+1;3C0JeLQFgJapgq&YyCVlYVc&ePEHCNOMv*Md0$lQnv zd+HzTi2aZm=PhPALolLRd-%GnU?cxjfHJcyY5ved#w;<+35?AVNhjk|Swm}?>~J;~YWb2fl(Us}wGbbQ{F<7^#@d?Nnu?;rOb#gd0#zBWHf1J;3CbfPk4Pw4 zk+G1H;F?v!4y&R_W>T0}ff32rDeoZDLMsX)kt)FlE$xV*j-9(6wb~;6Rns$a%i6bf zZr&UczIAg^Mg1~YtSw?+_4a+OHBCE~&ymQM}thPmU?>l-X?Beoemv(QX zAty?$=2o;d?c0uD`10t^jhj0Rm1`SR0Gx_3cR|is;=QF$WgnbHlbCcP!dEw?A2M$up^dnSzS#DH_EFwEC^Z9+|al+7=aMh zKfqLZZuZ#G6G(5JI&J*ePd@xGKK#Q^MrGuV88@*k9dfJ*M0!Hz{;zoFsOv2h_PVKC ze)`#2QkjzSt0m6%%lF^^_@h}cas2p+ld@dDJ$ZQl`$s=Kc);5C<8Q=_J^AJPySHzB z^YzVJw{CyKs{Zx$tC!E8K7Opb>+lf)NnJ;dbm`qIj~+dG>}VHyv#z5jPM>D~(RBp8 z1Y<%V)qVQZ`HQ#i-TmSFuW#M^>dLv(r%s$XbK=yOSI!^Zx7(9LzRJEf+7f@F+}YY9D6gpjEm>#)*6 zsS!)Wr&??;Fp`iYT^bt0k-XTC1lZ6_3fa);4WWc$f}cSxpl1nG6HaUV^z_fa{04yY zkR|O0E5|gh~eVb);>y|0uOgA*n2$%Hh&THCL>owO^ zgC2HQu3Win5a{G9>L}MWuj|G&{dymPNY_9~*RDx$l=HfNL%;bPK~gurLhmFmsSI>q zTj5EnS*NI-A#WLH;Zi7LA87oe)iFjG{jEJ&4K8-QwuBLz2iChsOCbAp~0L=2GL2vDP?S zZ+QvzIub)3$6^-9#NyVu5GM7Q|MXjosb2Z2B~8I3J8kazy`uHAfs>5a{QCFrKX8aP z=y$LhK+V8G!-oy*0ZRDJAWHI!*8jgnP=p#_R}1RZGb3#V`%uE_!T*~I7QjMH&KbypgUUmYWOh1i7{$5r zCpnis`#<;y>;b}XhT6iML!HB1D$~gv;XQJM20M~WC*yBE6w~HAws(zpd?>7qcXf!7 z&-?GauYKSp=MOc-jI@uv!fr;?LOc=WoJp*Wis66WlMSj3#?J)bKJ)j6L6=hHGWZmCp6JS0d(1Vw}zQK1lZ zA^r+x)$uPkZa;AL>&G09Wfax6Z{D--==BGV^jv%Um6T2EE#J2^RphxcDq^~ea!ML^ zeDm$)D__OvhBLWrT1lZLHw5=YuLTtmVG<5c!lfw5;L=F&k5pM? zH1R=r32Lse2$5y2iZWMPF#oNjU|YEwA=IiU`it}5ty!CG@j1nH&AG8P?Kzre+V1bj z%Z=rLQRbUaJgr#~j#YqT>#!A3R@}xmJ+WeYXH|A~M)kfQ@@pP#+J8AQ-)@P$aQW2T zi>D4;iLs{S#K)&4Cb2`WXxi9OTa*+ZbFwbpUb}r+iZdp3^3;ON%$!o@DyGg{zG7)m z)#QaFDV;lZuzPPoLh**0LnWmR5gm8FIlU+5Pl9-D-SK9PmT`SRofK!tb~oHiQB!QV+xTCsit749%7lpUhK}&?QAxW<^oO z#@%fVRe7%D%9bKrBGt9JeB-Ov84pff{9;GqzS?+8!{x&%TD6&d&K?zxIgYhF1nLyJ zEMiS`=;Flyqmam@^XANAyA(7*Q88%>d||@a(VvaNB=`RNy(P{`x#P4qts@;HwBhD3 z|Di*N4IK(2(iu}U0JZSu0rMos2_4h#g$xNFn!jk+>x;pda$8Jto~==vEuqg+)hO<( zO~X>F#siS@Q^H5&%tkLU<9=)w;vVzD38#(ogVT(|!R4=nM&x(9gdB|-8>gs;Q<|{3 z6g5KHB!N!w90iC376~76i3rLVYwe*<%IYQwB}yEn2R@}lOMzSlViW_k$p4mpXWE1S zTx=62{`Y@R&=4*;`{|#$phx!6f8a&O36>CAB>y3B(xh=?GRMBk+oU=R44gK7&b&E6 zL9=JffSqH8g9srtnl^pvq)F4~%$zZ6ro8Ti@lLq8N0#KEwlgRB^Eie%eM(=x5*hwv z44gbEmiX+cJYSz;Rp`jhg9RJu*pNMsOPH7jH+q^6Ahd+HFkymye1QBW?7 znO16+SO|BEp;YW2!hM9!h1G#t)YcUpcaxd>DZ352Uf z%czGYb47#@UN&NRB0xztX9yB9&vn*Vk~uH~8FooF1r#uL2{CZSxk=&6%q^~vqf|&Tc z%JP&uCyt!E5uK9n{?AKIzyvfG6w=8c6g|=6CQ5{I$CJ~fRuR5g>U#bt ze@oBFMFdm1Ej-F%bppm63F~DnI=ij5wm3hJp5X}K zUWsX2zjD!%{kwPXJ+ydn$dYBNqgO8LS`=Zi=!Esv*Cv@s#krUF?(bexymR-4hQ%AB z4;|dTbLZZ@I2vdmv~SOL@>@5xQUf(KwQbnY0rIJ-0JJG?q$mDWwV29~=&Br=^@&6Q zp&6zIRzwIGrptLycUrA+hUD0WZpGk>IqgU(4=Lm}Ep)SR^fP*?lez!7>jv zQu*VG8VNMgrg=-;rVY-_BpodhCR*9>b&PQOSQ`dlJosO90jmJL5l($6i>Ve7{S*G#wJ(_ z^C?qX5_8l~>3*b?XLTh8K2_4=Wn&O5#Y&tc=qM>QB{?;Ph2VmF1BDP;qP|M<7AtUo zT0kr&2WW_8rE@nnVMaA)l3+KGmRvfODv%ep1Kw>(2~a9)BBnY1kEz->0FXdP8c|e? zrs|dtD}ae;NsA{Rh((VcREAbv496s^z|d%}hSOMc`SBry9lDNWsX7z+kVR9FKj)Xs11XhN4R}2vlEqXdW34ZK#xf zCk#lP1^&Q_xX>}Hyex(|RZ2pXzWWxY^qm4rAgJ%i@8w}~w>*Lq&DYg4zvDG{6{-8w zi)vE-anp7G8GsTD38KXHJ?g<;asz3S`N01D3)o?l0Z`iA|3YiNUw$$OU+SgmT|#7t zRPlZSQVKwLBB$T%s=1*T1)QXK*-+8-HC1$%tYSbVjof)d(InlCsw|Q3OTI87JFKvIZsFdc}5sh0gAj?BW6vMNH5 zFx2fnaN@#^RhY8v2`L$Q`K1l5L5r8oTjg3(mzKT<-FxWgArT9=*H+auwr*qCYMC{A zPSAp7QEM$xr;i*wb|!SKw(iVkC=F5Ijdit+ZQE$fud4WOq| zS=)s6(8W$~c?M+E)YRP4A~d6=RcmfEQH>(o0=Ot>I*?ep9M}DH+H;W@zH@3Cr_C+W#Yu~ zrCCY+2>Z84Uu^5I;+2Y#N}oa1`kRF-M}88UKKo#|`?v3Zcx+A9^8Y-k#H6+L_xB0z zkr=XjkG_}H`YuElAs&V7ijcb=LT{w68U5F`K++z5Vj{MgZB$BrL2j`lr% z{N#z_Cysj_pdFdh-F@Q3snh4rUA+F~)vxc|xO(aA(PL-7IK_j{oH>XXY3Hupdu}*g zju<4h+qN9~;^dyKhgPorV#g*L^2tJHfpE#fLC(dZ!{u08T~$_w2NR^p^jQ&eX}O{j z7Bvz>Hv%2*#Au+#frpQD70JZbD4RY@!@NuT$vcEGd49gWjT%XUlD_&%Ly-jcxk2+f)wAw; z4;{Knx{~9n*EP{68Qk{a4&$1ykfZqPJ~yu4h`;WC;|AB)^&8$d!B4$~9!av(SK6&V zfu(NUCV7c}q%z+m%?*I`jeghs_Ad-Dye$R^Y`_c_03>n!p-X!7(0By*Vn}P(N4)vTyCdI%72%Q_ z^2YF?L^QoVboj`(Mvi>z-SNFVGsL;{!WgMGL%hG?&AL;Qpx zQP*Lo11ABF_>mL8yfJjxh9F!GSH^`aVd1k2g;<+c*et+#3UytZT550L5qnxamtBO zX|6rUTL9C@prBx>=~Y#)V3R-^;Y`%r9`D(r#pE=FEThy9SDj>F6ia(zsg0#x%k)q? zt?fvl2@8G0Ns2h}$-@+O8Zq3iVw(I2taHlX`#n z;Rhdl_~C~i5hHGcH$68>3_hfsjDe_A4I&*FBCu(aAg76wrcR$eYu23E(`U?{M>hEK zh&7rsAs+uRQ03Y8Q;OTZh&l3ojO|=fW}Kc< zNrWfe4cUHJ0E#w7j0(XEFMmt`m09dTu4E^U2`J7e47#!ZKR zJ>Ai{A>Y1^qADVs1*k9o3kop6QyAqBn8|abOop|9rzmaJtEiKhz30$b7CKL0u`6+y zU?)BR+2A}`Ci~$ z?abLzJ2oA^=*V^4x&7dAOl-x*(^oHV$+I5cxVddZddk)vO(oMZjguz}Cyy?|(X=3V zVbt=VsgvyoH*Wj--q}M(&u?q!JlN&fSKAtqQQuOsB(G?Bei|tz8-km1_`kV%7%Y+! z-7UBqtZ4+QMhF@x2tGLCZ7Y1qHt0 zGK@?;23}Lil&r6~M*Sx=i_I1@9zXm${-Mw;`9JdFyeNQZ8c&P$bhqpIm-@Juz<3h@ zM)PM)Cx{97G;Px4X;U~9LYb%r&DnG3&Y0nmFsW>DY2YauB`U?q$?J z4y&Np<>c)fW6*z%QMk!DD(O?7Pd-8E?*;ntPD^*dnPe6>B?Ts=C+pN$_&q4Y$V$S> zK~Y3Cgq?%lOf>wV0HP3$r%1v>pbRBEGATCEhXWro$)4=Pt7s{|2U>AT;R63%8fT8H zjdYU`VsYfeO3V_H7gx4duAcWChu+NAGA+!}y-X8p#ok4QW>FtOONuR(Yh_xXm9wva zH3NdDN^6qeJv$d^VqpU^`6)}! zcODG8ytAXNOEY8R((}@isrzG{bWL2pXHQFEK?&JU94u$2Cz5h3!hBa;a&~D+c~x0u z)7Gt<+BY<{wjW*_oA~AalcB5Dt&Be0wtLsshVquqrK^{2-?Dq({E+p|+|ttc)r&S% zRhL#IClnW^B}{he+qdK{3_cJNvMf9-a{a2%#fuzGrDZ#IHkM;P&MB;KHoxpTxyGGe zn6)B3Yt_!pTX*a{v%Gu9w(UE1?A*F>V@G>S1D=n%#>Q5PFZ5gmdD)ns(3k`xPa+u$ z0Yh$X0dom5Ni6X^w5_UU?l_-6^Bd;tlJc6Smd5&q=5{)aw>MVT?cUVd-auIjv_pYV zbx_CYl4XlLf9}MM=&N-dXEf{K`~;^RghNp<6uuIdn#}YBYlZ2Q{;jJZoC-4`_FW#z zGzy%l2QvYgJlS@Lw@nVX{-6d21@INIW=vx|)v(DLjGl~J`J)9j>Dc4EbFfT2gGF)N zIP_I{dGc{|p}Tb0evUOkZK#5T*@W5X5!b*$NJK`R=Z6ME3K*~r-Yh?%8)l*51#j{d zYLuk=YCt6B%HclzPTmq2si)4zO@~xSb6Pn&R4AJ%p=<_W%UXgJI~u{`i5SPUBwuJW znd=6JPAYZD{;748uJr{?@!|rr8-uLf0?*B!VdGdVj;(}L{vq&1g*B|&w)#tcxND|b8|D*oYVL)OgqmRgc1l(j~7@5740*S^FxxJ;M1dTL{iuB^%fFouq*od`~mr6@f$;j=J zk}@TM70|&xNczMOxW?X2@Sj^oZXH(SPR~f;5M4mIj9^L0sU>v`2gG*gqXy+!AOPfy z?Cc2D%grZ_skXUeyS8>VHT`q*md%az)zz(?UB~tvI(GA1 z_pz?+ZA~brYBAFp)qR8r2?T0r)>{6lSzJ_2fQ#m4E}J-WA>;@eWK{hZS|Uz003m*_ zlXPx=6^K-)(wTrn^?;+=x*Dz8mrN-lykFY5dG5|l?VURpF8F-Gl4a!H${Z^7Rq%$* z8(P~su*tQyH8*0>E-f*NEoD_TmDON4g{11CPaX3XFWc4LHf?6m+@R*#rpBsVsPDKb zfoUn}X`g;Jaaz#lpU;^#v4n%?EIMcymi0EXqAY_1ZwhxD0}fMUQG2 zV^cHjzy0{D7MqxqsHJ2Wk7QkZVtLG}35B>9KnKRJzq)x1-0{MVYgev(dExxIvv8wh zN6{B`X-6zw-Q5r)K+%a)r%oPMe?NMh-%g)9dGZ8ur0#C8l04$fx$|evoH_T!g|p|+ zo;-H^!r4=&jvhWjoZs#}d-fhUy_&|LYr~eDICJu1#232{oQYa>W;>EF4@*-7silo} zfGk$NkouaciXL|4h0X5|teGg+Ae_>DgTaYmhn50F5CnL3!dPTozN~Gme{^A#!B;c< zAoh%k@D45JITG$AfJg=h85R^udJ)F*Bql};5Nu>hg9K96ANk5QiRo1~av{SI?w zp!g0wVx;elhcb}ClK#Uph=>G9$&dsl$r$M2Nz(8@Er8z)8qncA6C)bny$2;-P}nD* zyJU^}EhZ->9$e&&;*kfrtnrE?c|nvCZBcCR)_RWLs@uB?C9xeVn!$ z*Sr=;$=ec>@jp~4O9_$^U(sH5yhc~I*PulDfWCuXPIG<+ z)a}EyeX#eC!AV1U$#eLt!Vo9*3L|D3hwtUmhzVwh-HXsEMX#55B7!-?mZ{EjQh!tD$b5P*S99iwE<`>jLL~{+0W$$xmNRRPvK-gWHyy~kQyLSkld?dGlfPTly)$ZFho_U9CHW4FEL z8<+Xz)qCakwfU|23F+ps`}iNq;p$-sNP1$&@G$u z;&Yp~?b_T{Za>)McEl#QowQ-|B%Mgf7PZFeNXsm$YCiOh<%e5mF8uWCsqbn0Z2eA8 zaOLC_>-UM4+SIUd|JAd*8fqFg9FMDQX9-ouU&&l=vAFUZ4|KEhIGA@k>s)By^hKd7 z*U;;3?(F58&Yw8?W2}>~f*($8>DYbb)LvWbd~0I5b75F`a9LJvPW4(ns=kEDdX73c z+5jA}&tsIgS|ocll*Dlbj`%J)G!RD{$~X#DLfY~2Nh&*}ZT%9+pJ|KX4-%%ee!bP; zOQk&?bFn(JU#{3BS6WJZEQD$8dUx6;t$x?3udi({iU*3Nq+~fc}0NGBZxX~B|6fH7T4*)pwWbACHZ#=le0CUin zP12@4uqaMxlK??(>}&ySIYNkl9NuF_yGcqSiwR7mjZ?AIj&WL`3TMKl))PuKSZ8SNJX8)n@PqbNc%igO4@iM(1&G8YrV1K#wEgy z91x=bG*(2^fA*Q3k8F&J|Fq91pJb$e^2w(h=Q`5;71c>IQ|a_9E;kb>U?lo*P_DbZ zRqJo6JTHVt|4b>Q=GZAJDb0i@d1l(>2KPJM{vveXU_Qw^IZ5YG-e1H{sVVl_qGkq`oq!dKi)dxWv(WRID5Y z>qPNsOZq?|P&`Tsw-G)#LX<{qp^R#5iWW9Tx@|@Sgx1GsWQ{^cP;JoLK!lsnBSz#E zqE_lH9@Q|Um@Bjh@5m@^HMu@SJGc-RQ2shucB&t?DH;uu@<{l}DJ-vR?%cLx-|;KA zAFL-oFEOJK;nL2oiz~FW^5(-ULy8V0*PU6j>gb6}wW)FCofSF7j6l(}G63e}mQ*)) zv=_U7xO#Le6r-xNs&iL+RYfIDc6OZkj{N_ammmIiXM0I`J{loW#h{H5HbhlKDy?L3 z%W-QOUNxz_n6LK&@%<+Uveesr&$u*j9(k%Leq*1Km=GHmFI5`?rc^UokfEMnaVMtb z7v>jL)HH=TW9gIGz3p;rW-fNPbTe8@%*aklaz^dj#PqYw)E5@!k-AwNE3?U z%G#zKr~X66aT~SQ&OAbY%p`f6I?=YHz8akHWT&ipudLfEDqj3Z&zbUUS(rPgK;uUi*q}u z;+F5@ZE6FjIj1deF65MSP+5c>zP$Usv$VvLi`9Z!&EF;QWq)Qr3N7)v|Xo_x8 zK$2uEdBKkfH-a3q4xm3|6_A8}ltjpYDB=yfzs!P*y2^?l%Zojfog{g~ByTC%AlTc` zeT4VmfirbnZ7!gaFAwKoHa;$`yW(BmLV8f>0F!)J6KGzS;H^@<#F(V4ZEn5*z5*RZ zkPIpTAAR)k#~*(rlXC`QC4H2SVoP3#pYS`WOm8y79X@QDy0cGg9GhC4h?5MdzvQ3! z^DC>qNu0N&BBdiXBr;B5k3^RL1+a>>h_>^H`h=qP3~2Hm%p^bFg1iaV_hd(pg3}IF zLXwpHC;rCWNy6R*F{Nc?re|d_{t0JIic9V#_wx^Rma7A4lNa#GSJtdJHP*%pa$-D{ zKyc5fDy%+%oGCTbB7M=}_ADZWoyaejMxTU2p((tu;?|Tj~pmaSW@~pIQ(!) zVWV4qFB9~tz!X`J1S~xv9Q>DOWFG$?CxxFL_a#9E_~dboJTf2pN&#m)@Dut((fPa} zBZ|9wa^@1p95G0SI{R>s1~=+`pBr-KzNdR`D|n?n@ZxTNMVn9~@zM|IQRT(?&%&AH zKgd}a6leL3I``oqflriyw)`q&2C>Gb?H>s z?oFFEZ)j`Z`s&{8ZEbB^ckbGA^dblEt8U-9y1#uR0e=iz63@+r{3zKGLDa2Ulh)|p z)Y5{MMr-Pe!L6x@Kybx|jA}nvRCTph^9&Cs7OAR|tJ<1ct=?Lv)vtv@fv9AFtwROX z*3r=!yl~Nixk1~v>|ZPs$sx-KdO*TY3!~u8n>KWIlJtaf2h`#bF^R{pvZ9jLXx=!Z zxv{#Tb4&ZCAT;8w(`HT&o)!jPbu4cW<%>1lE7YTR*E zbLwLeG6AAs+sx}GrzFIte)j2yi65uBT`qhXxv@`TOjmrI%`~l#AO7(DPc&_O{17SA zw{WQ2w{PA6nh;if<;yQGUO0E=%*hicjvdvy*LiGj=$B5M06U#Lb?VHSQ`|Vg>BQ-? z=f606TKsayAX6s*RiLP|r{#e>{P@x1C%d`qJ}jBxhYy{OjgBI#;xBa*!x|6x;eEB?Yd($+D;RacbhrT>p$QT9m;?+ob-<{l8mepwF57*Tp? zwG9yEX-o;Gw#vxOxcPrs;TR}1!jnH6;KT$Q}EbA*b1 zgz1tBTk<&Jk}O0e_0Xp{B9p{sEzv6R2$<4%&X4@f27oG14mk~TvT1W8bxPp(WGmub z{Bj~}BAtnVrEg@Dr9?#h#v}LLvM6l~>jEE3cTZ>aThCN3diJcxK?B zH{TlmI6j+mrtcOp-IMyI2LKGRR&UG%$gOc%fAC9>gOZ1LFq- zK$Zk9^^b+3LDU8e8Zs20pZ(PrUwdu9Ku<0wZHqn_uk*%dr#pf{X^rUz8n=%(S7>qs8N7M?XwrCpQ)z)klYMp{iH-`IGkeaQAbp;N zplE?=LRInFe4d0orK9fwZceDpIgD!Fjeo^2i5PX6q4 z9c_h)vHDu0_148b8(a6Ezi37JPHmQ6 zS)O70hT;FA)tO(~R+oQyUu#2USzTjEs>>0VQMUKalgs-qmeTi1y#6|plmtcqSfCuny2jDpPc z%$CTdA+t*mHE@LJ67wDhK9YRCW)&{Mi~90C77)-IW*BV;CT#(^&Bg?61sLJXa-nI%ej$Wd-%&6cdqTK&T^YfV>l9X z3bT{$7GjQ5hZ`Xa$!?nW`J#oA1sl9@$^6+f08dmV;}v)k96{g1Q6gG;&x4+P-$u7Y zu>DA5#B;;hBu2=^@L|Itv%@sfzsY%{ouzY7Up2N28YJ{-!F*$ZpKOH-TtcJ}4uXc~ z_C~riTg|iUGreXwr`s4AbQp`TBF+=_34Xi{AtsK%ULdG(oRh}&4&)Y0Y+PU(^u&Xr zoRW()W{io|4I|xnQkYzUeR==#8Mxrm7!MyJo|~703BjCPFdJa+q)B8ZO^ScX_vM!* zuUmg5fXz}qGqK$Sf{zwSl0L>x@3?0Jr%s=Ouu#1m#K}4C8D3o8i8`Tk3Va^SG;{i7 z7M*Ozy!<3>!ZVoSrp=-a!K``nf~HRv?xan^2MBEP$TIcGeS|!zfeB$J=Le ztxxF1$ClAW60W_*r%i~JMPvp#$6*+Bj}^ns7N2Pt* zC*zY(rR;<{IIzlrq72ejB;A{AZzGX5aq(^|`5@2sl!HFH^EdiY%D zKTR7l1R92h)0mkZGc#&5vtdvpW@cH;43=bO%gg~YBr!X&1Qy+pX&e+4qlPn#$knCuB-6I#%Un z+R{HPTd^9p1d_6f2@YuzE80GP{~`QDR;N26DlREKhxoOIHi-2%-`%nr4o^Y}_SeeJ zuU4&eW;L{Kp1-)}gdWv$;$VAGZe}*fE-p4DucB*hTxvoJ!KLNQ+_U0i)}GkiSXEb1 zSlE5++v5i|)i*TmzLT2ivR*%P@btyw)nx^l$%q_L22o!FjHtRJ2}X{UTII z4eN^KE7v=Wb&C&SQadzniPi2g*Ke)CoR*rE8S4lS3pb+*y7q6b?Mk<@RqZZsQcm;s zjZ|Gt4SSmx&7=3jdYsNlnwDJGRNF9n`Py}>md@=c$*-&_Om)pYy572K{-Sw@=5E^9 zvGKsV70c&sZ4tV}k~#^pB{)6A;35VUdg#T+$x1N{KolwQi6kenGp6H3K-!Q?fG!yz zR*Wkw=a(1f0-Vq(Q3RE+%wJSUwV6kaDD_$KpTex!MKukLm8o9)dgQt* zppG;)`=-Lj;0^wuHJntyhV;~?qlM`d0i58aWy@49p<2v=FOj6gSgQC^@IMHXsKa#@ z>iRJd5XwqH26}mGQ?@5Wuq371Az-p6C;Z6I82M-HGM{)P6IR}(Bzz@ zGHz(m1-dMmAY`(^1x!KlMCXm$J`)SA)>OEQ%os(}5#tj|n#xj= zKoIHK6{YEZou{~o?XfcWLG1WVORPuTj*9NXj>YSgm~Rc06t{FXxP``>PTymS-3w?E zcJIRGA|tE%BEshum8iFm9KpOs_8Z!#x%vVr047iqbTf{p*(jn9Z?QmQ9b_k}%4u_YJz|486)j{?(1fk}rZ=o7UXr5drgp*N}A z&>`tJ``@^J6L$(VCl|7m&_VqGg(5>qqEG(y#t#Ze33&1|Bz}*Z>cUU78+}BKpqSDv zdA9oaLk?XRX{^5LB*~_f&p96sk}d3_>E>MzVsU zW&RpAke-p6OoAOlG%EnSmn4eyXXs@OLkSn%&@attbrbxBDapK(8+I?6RcpyCnv@x<`$BPmR~%5^z^w? zT^n2Ks|Cq3$eBfoDpgd~iVzCyVOIVD4h03Ns^F{ga>P?Yor;S$pnxha)=Qo!6(tly zt{{DWTCP_Fl$9H0e}W((h^nlusj8`O+cIn3f?3mMb$88VQaoq=l6g!eXU|7u&vM?T z7OmOZ(AdyWi>a=xxF9FHpsKB*svI9-#RO6aXudmT+O)|N8cPZat4EKYI(7QA$)(w% zJdO4-i544xC#|@&urfOqyDBi*o0y&uO~P7QQJ!!YhGB=-=XAJZIBkA9WHChoS(tdrfwr|4z z{Q#ze2SHDV4j(ys3_x`ZlbrykV@HpjIErklr{~aNetP8S(L+54dU|^Hk=X>8+Q0AY zY0{i_?cBbj=lnXm?1&mIppdREQF`drD^6`~H0pj^UyrX)uphbTY;KfL#iE4D({ld> z;E5R?{FH|IlD#E?<_9^BXIL#LsF z{H1nj7lQy-mvy+(ALZ`h zSy!(@wg5|4Q8ztOIElD8>ZIfg=qbMCSHOgI{@#OeMv3bks-Mz+QtysRTuG3^D;mA$);E zN*@#?-_-~GL40s8z5L2+Z@vA&=*1C*dA6lrPWWiZ(D93=ee#C(Qm~3xG6zLUmiNGc zgJK7o1A+u=X_AdHfXC4WDCGepNuE-?Vo4_X+>-6Bp?#9?4sZ<&mQRS7fL4;WG+=<^ z#dLowxnI99@b$M}f9d(>5p98!o*TeReLn8lVBCSvlD`xrN+Tx@IQ(j?7VF~tH^u}= z$ZT(cMT!{#l8`U;QD4djerOrx8T}Zm_>%7JUuh680ImEhKdWx!Whi#Df)QkaW&$^0?|qJ)siJEK4DFfxf}3r?b*p68e!B)TPi z{_lYoqPUSFLZH$TQm!bHvAezUs`gjQtJ*6%Ov&-8@mCv2$puI9yWJw+(%%k!=k2$- zyzO|$g>XrG-}yI0VV@m={LS83iZ4!@wu5HoEmAxkr4bY0An?9vs>nQL+qSgB^6 zN+Yyp9TFF}FE%+dx1_4Eb@RSsWW8$6sEnG;TX%HzT)AtHE~weE|M2#Ek;_)Pi|X?6 zi5bS)wQIs`?zoEGS4=&-H){l4NGFtRaRXW15i-#3mgMA32&MQ zND`}wbW)Z#0TGYHErq)T>*vp(K4qoT5gnDg@2d6QcaX4O3ej~GoQ6YNPv^XFU8fN@os^x1 zJ=~Q@gQw;KGW>QPEN5BLa78wMWlL;7eD>V&&eDuH=YtQwrw8bT@2(x+S{=29_3c?R zXG{MvaL&{zqAHp^eZlnc#Q(rQKs2OIle6^cC!c-(31Lfr`d&HmKmiP)bL@xKJ-%6*riIb+zx5jTM z@)>KF&zv`ZxxQxRM1#EDNQjdIVW<4P6Oe?Q$xx|Fy}57y12}+Xadd);pj+Hj4vJo#eFdZST>xFmVej4XlzFEwtSyj=)ULpB!oE!|CJTa zj1P>9L(@bkEvSJSN_!L^LJuSxbx2|`3m{m@~mA&Iqx#oChpkcO57bT7k|x^j)i+LX@eKMb^_;L^G`FasiYQ(0k3wMQEY57Hkh{uWYmvKt89#k#_EyX6LWfv4z z)KLxWJNnHv4t#f9L2YeQO~-+gOT&DL`Q^2xmy>lfzNEG&j=?UDA~`BHIje5#${NJ@>JGORJ6cyx`S6yCn=fZ&<+xD$bZq9LfW5O@)?QE+r&Pq*;6G?{8 z@IFTMjc|#o8InZ(`)|>_%T(B++>mLf@Fiy9yt_PO;R>ebX@N{ixg`1zs&q;mWG>j> zqDZMpEN*128berW#)hV@qsv$6?iDMR_Ut}zdX<5!)ED72Bb=+&I^7qmi~S`=MSIVg z15Ft;Jt$in8RuNTZ1LhXzQmXan4JS_;hLV7E$!{yCl{?Xoz~?Yg=uj<)HCa^Uc7vL zogNqM3=3PeQuld$?ig!v%e3z1y6U3p&9mcHIheY+a_eh~(z9ziznr(qjZScrIi3&D5}Oa-O9m70U)Fy?OIY9} zfJ%x+%0<~F!Ak{HhEg}?6_PH3x;LNi7HmMvM2RI$dUA_vPzda5#~g9!SO>LFUSaW; zuhu%V%4%!M(tM_E&4ts44j()D&DV#vHRr~u(*`13AOOpoHqIX8g}7`azzbVaI}`iW zJZ3U1@Jri{Y15c5$Yf#S#1L6{lf(dhY#=i!O&N@3+9i5EMhcT8Hc+?>o-PEdeK_j> zp85AoLOZmK5INj3(lv+^2GrCbjzq*7K0HRPk*>$PMXkn?NTe4u?bwmXCaCKU^>)(lTNiJL&y8NS;DECA&WntWNE4-v2 z6OyCgM^x$G*f8pXtSu$GvbD9GOrB(#9~S4O#K}J6ibd_jZ)mZhf}r?q0~Wz;ZpCn? zWHm)25AP)dCXb~;nFwa$rP5B5=5f(nJ-$Fj3mx%6Uq4=gJa~z@!}^7cEQnW1S2Ksh z!d90}u9<&uu;ti^SYqP8rjQau$;K{aBm9GmYdDH&?IRKPpMl~>8i>?C7GZo6bsKi#fBSIH1fWC9JzMTX#n7r9W`sU3vzjQvb}lI&<2g0K)^ zBSW27A=wiQe2qG-Btqj6b8_m^6Q4x7#Azz!k$8zy6bFu+p>jAY1xwUYfu8qV0j(C0 z>r_BYWFW}{9C6x0yhKT#6dw&XVkhJvA$W+QILJg>ee~%5?b|lDpoaOE*47h?zB#&U^S12^!(tt4 z)>&7aJ-mD8*7gRX=PI<)zKqpH@@h7eAVK;~732uHQe{P@nCdF4(IHh=VTseq9}@!| zLugSEaHvE_#AFo-6X0D~5#dXI##AOZE9#nSYwD_Ns%z?6Xo(;$6P6)2Z{EIr)_gh= zF}}@NF!#$DbLZ`9YiVt1X=!e5MPb@l3DM85oH0-08wjJA&991pfYs6QRe7ZwHk3Dy zn=obSgt1wPG@`($xP0BUi>h^8A6#QBU62pZc zWq;ffL!3b}Tfjr~NdeY}8WN=d85N=J2pd7lhF`06RSAjYb|o=O4*I;g>|V4-2Dg6% z6KUv_kT$ZF43Lo)9>vd0u0ESv;+P=T-+`MRhR29>R5VGQ((o-;!J}Ad^rq9&4JR29 zL&9fXun~K0Q>HN!_#L?=79ciok0*HfkbjO;5Onovk{f#5ap18mCZ6Z zdeFZQe(9B0-X1^Z-7ltm`Q?(8)5cAj{P)j4`rxBaM}F}dg&YYc`e4T+pPXBfChibD z5jjfw02|=PB2n8EdAQw-0ihIo{(>(^o{WoLas%{%wgIsNLt#epM4SpHIbZa?&`ao& z*yXer{`q+^y$yJ6*t}0)eR;?$FFf}=(c?ry4aD&l1TiC;JP?XxJo{f0COj)>2M(;r zk$i^#h~K$%Lg zKo)=wfkmQ$SpY&Z7xWf#vt-FDuPoCjlS5ubjzlLn9B(ePNJx`_N3S{l8j2X{wbx#I z-9(V|#vA&Z`dgtC*-~cv-VPQS5<%U8@4oY{<30QP4p36x57A~TdG^PwquD>xFxFVU z(1t#(s?D+EzFZSFh1i-=IA$=+Xp`P!929vG5DcBjY{G8lVNz0z3F#44KlP3vC8mhu z$2YU7$z9=F^6F6|&0FbMvv~26CED^J=_{lyTg^x69-0d2&WKo9^RB3G?%2Nj;KiS8 zPG4$C)25yS-<-H$k4a50-&xsqI@-2;!79&sB$jK!)~uwfgu@e?nBTnL*SP26*{@qO zy$>!nPUL`!5zELpSxOp^!t1J8|t$nPgKTv2*_S3;umKL ztz%bbk3FZhqN=<&tE{Dkb8voP>BiQ|q#LbW8=D%s4%*zYzVHKeIT2QeH&VOy^@)>T zoxi?f@%-5{rcPd!mXn#)df9gO`d3@G;gh?yIWitCe5dJgT|Rxw=8erM$}O+T!{43Y zJlNjQ9p_mxr6xNyEt~T^(~MMxZ%$NByl?cqTfbhcji5AQSwLsZ{6(@uXbYt)5N+Y2 zIczBDX1AVo=rwEBhvVE>C5cI4F0Tul05%(kmkuE@2?=SbF%IuG+r=Z>yS_=y&a~g? z%wV}PCUxJjBj39Ux9#3okdzc@{q{`HmhC$>w$&HW(OX}D$9?9^FQ>6nu_tL0{&V8= zrBla_RMqzoAPfxYlTQde{e<22kq+r??Jaaj?C!4{ubF=hWbYf2FVj zMFQIpcKxRjG;$mHj1Do9Zf=%8xtjt)8kNcu7)|xn>&kReBm4fPBM}jqXR~< z-E3&M0@-%jXcu?o6jvRO6Ffr531|#nWg8wjBAJGDYBLxk0*121v#4B?g zG9{>M zq7=+vJRgg+WuXR8dUENi)#1@`>!sB@l0m7>)`!B9xUARKiOw*Ls%0HXcA`uI8!3H~ z41{p=`EzC;oI{5NWxM7igz|938Y9lle8q`aBEsc~AjBJ?hfLw5D`#X(LaK5)G`Dxt zIOhDVFuHAK71y+P?A)|xahU0dElJ8fm>i*pI}*uoa(muHbVSf|Qff|KW&6JHl%l4_ z`pgLXjq_U?YB$IRtK5D3;L*#MuVpvy+~1g=pWwc*xgwvO57Za{B1nLzKNCv2PqD-u zC!R0fxnDt%o=CrC^Xdxo z%LzYUcwoz>&09BjcXvsM>XuEd4K=mZ(yd5{656-C+-%%%L?H=VQ=3AzN>Vb>-GX1F zK@(mTKGNG6+$pyz-mfYbs#HkoE)n3^Jz837ic1fNqix-P9`d!ICIBs#=S-qvi=!!X9Br4kG#y0^xlF90f5?fMYx^Naz=B4B{AW_5yK;YKET% z!-x4#eMvw0DATR z5v%8Wk~sxg@_Bgj0Up$2x}>SQynbIICMQ6WH!dy8;fPjxH%es&7`q=NK`Ly$B%&61 z63woAD`gIP9ZW9)KO;l1;C<;O`Xq_<)_&^6^8Gyt^40G4y2rAKZMRI2PauTI zdGl#OLqd@JyoiqijL2u9oC6Rkae$am{4M96P+EaI!iR3l<&JSXkcv;g)$5Tvg@}}p z+jnl=xkYMt5ar-4{dRxRLs7+35Q=r>p7vv3o*mKxh}Q!^l7;IN50DpN<%5NZxZokp z!k1jDj`H_-hu<0B{nVEXdbGdoBd4+|g^^F|MeF#W0#MLNG*R zrKO1MHVOYPAPJc&hXpAPFmjC1I?*n?DaiYH=JKAAzUfP(@j_ZgUU_X*De2Y4c{wuO z#2Ck3M@*Awl}ajV8(KC3$B&&|zIvVJre{xjVeW>p*vuANSA=zElFE>fnVd-5fm9q) zX<2!+7pQ97ICsT5<2l1vziiR*gIn6$>Z{QeweCLL({t+NDI+>1Bif1G;LPrgO@MYh zSG*FCl2-Ij8#a*eT~NlEqiwFAOfSknT3Al9 zl2SkaVwm*nnJ`)#`ROpoaH`K|+8=T}fR&UN6P!Ysa_uUl#^cKYsj}b~Nbt(W8g8L)Ifl;78!4!x-iGeCpKcGhcmm{LsP6 zVK<2kzXsGcTGtL^{{u;8R=#uD?xbSNi(Ir_fnHPJpmAPEJL_x zNALe++z*!V1IpBk0g;PU<^LPDK#oJx-WRwg(nSuAZ;8i#e$!)UWiVKlJ*+y=Y!*-Dr2+%E=#Z(P79^M!yHU(l7?OouWV z%5erE8e~%zw?Tt+aFaGTV9;RCpnn}a_>B)f95P|pM}K?o{SQ9;=nw}V>Lc9kGG2$wsra)>yCkiLNZ~(DT7XY+K1Xp4t$AD01*Go9?^a0L+ z$x4yr;e`R8+Sbn-HsPH&2fzBau_NFA z>%iyD=R(kHpom=FjQ z|BW#gzClAdG0E{;j&YBJtkk00I6ewy3It?nlPr_jDsjmo-&Oj9?BkVwpG}ZykKDkq%+C#Na$ZRok5Itelo%GU8#|Kx})Yi5A(6@K3Cus(U<=b0f0=Emo81s9vt6TUtYHD!UHp@y1I4i zuKg!Ye|5aGEU%`mC_emrYgG{jhWzH9o5#QDZfndbX-o93JjEIUo}Pa%mcl%~q-0eIpiOM!r-NSn1D&Nz4e0%}lsyH>9gS;U&vYb4PH*A0nE zI-PAaCLX#cDJMNMIVGnsGb=5A!#Y=V!r7RX11%8;x~sB~F+`;_?K*0^<;*Tgv!4I% z!v3ur+iHoAZK%w2n{L}8c{uhbkrYjy$m;euiGdz9OdImgB3**ADDcG0{lgFc_BT?y zfvMVC_BXXRWRI8V?qCiH_I%pL*<}p0JJRP}I(7B>g-|Xz1zKuyL)bEDFEEW7G;ZW$6 z5H4xY*#4CCjPuX-X9L+7E+NIA8^kbqhXnFq(L;Ot{cs>AO&RPgd=BPFmL~Qg+%bGZ zBQaZ=zk#{@xj*spaz=%c{Uc1tGwKhcCrqC{XUSY?5y&vbXKrxBe>s2lWJ*K(829MM zmAaEZP!~3dD3+YCGRp{uU$KNPXCxiy=o}75<8fo8g}A&(eRwqDod^(KFh3YhY&Uu( z9jTWgoQxO2)%fDqL#MmVHM5tDA3JR1qy=*(jgqK#2O&%WpM5Hyg5Zyz8ra|xC5(xg zHI3tXvurEn5&%=`Br%5g2~v!Y#1M)jYyqtDK8d7UiZZq0FCQohAyOXVmIC5IOHNjP zg)2Ff-%U#nkrm(+5L1wJInh%bsR3z3!Tg%#U=$P>cSKQvn?QU-T5ce#ae9uK+cz(N zC|jK^UxdexulzViL45rTUt_eYi=7{SK5bdYQf<=gs{i&GX?7$_B zQ-q}Q*?>!r30smeOHdJb>0cP1I2H{|N(3ok-sMn4fVr9j6UL;k|GzLk2})kQLNO)f zf1}j`L))SSb7uAI-$Tr2&*8a8jzX-g+$SR#*-C_{nLZy&q>(NJqv+{HPGC6QG@MRK z&n+yiZfxt^yz|gEH`ZZZP0lK9*u1@S_vv+pJGHSp;b@Z2g$Iw>hv0X&S0wGpY57&{ zd)L$D(zg1C?^j`BW@Li7YR-;^s)|S@x_Kr3_H`G!wkqm+pjuy@kqpXZH;F59-2otsX zAeH1v?`B9?7DVs zSU61^mMr<*ViCWoq(V7$%#o7^>5?*-Ymp$u{!dx`H2&#Fd$04CggEIlfKmzD zFK2NVH^jvz&Zj@J@|2p9qU0+`^QhZXQb4rH5~sre>E!6KaD}O}{e;PbYqhvQK1H!P z1x?X4j-xA9ddb1ga1=}0G*3p0?8S>0Js3UYf&_M%zQ+VJ$wlNeiiG*3WgLu*v?WPS zC*PZQ0ddy<0@c_C0{WoVj;Orsl$aE}mClGbdJUsr5@ZRuuxk`fHgs@=U|ajCib|Qn z9)g&H9#Uy(5A2|ufBFfQBl*5+$sc)w6lS;Y+%>4uo>r0o#f+5n==RN9kS611AhgMG zQ|Fd(tN+bg;##A&6QU%hxj;%h4Up6yYD8J8K1%k9ey7)?yT4=Jwt$}gjR%v5;|k=W zpoeuKN+Qb}(ZPM_l77EGpSh(z;Af+k6T%7;cBavy$si$xwuFY#AMn{Q`zhwh{vo>u z4YN?f(Q!gHsfOMbt|!-M(UJjH>06;EK9Qu}U|~sVLX=S_1xvPCwwCiW$32I9A@b7d zN^#B>6#+SOfvuP+VGy9;udOX|w!)CF#40(Xq0klKTK4!IZ?@2G8Ji z6Y~w!kQ-WYFaoQR5`9AujStGrGHZEdbwlT-Eju>1H`LeFHz7Le*t~boHpc&*n|JQo zHFMA0*?SM}-nD(x)~#KeI$D}qT3g$<&6zu+tFE}Pa6@%d+vMr9XJOKyOjtN~=Jctv z=T9Fu0y|wX`*v(barK5=Y-vpNBTeg_n>Qbl4dLRrh=_P6rv^d#qr~4l#U)g3Nkv5HtG2BQ{SHd z=ImEzzCO#x6JLdMvcIWCCPmx7yZFtCLnxdMoIG=8*|*DRv$W{s>5~Wc?%cLz%Z{D9 zcW>+3*xk{HHtFeF`uA1JCTH7nhABn}o0qHQ{4drv76~Lf4|>EPr1F&*w;6UAUKFpE z!33dWu!!R#h?zqx$5eCA#Q3E>e2ONLuofsrE~?kmSnZntG;l_3@iM(JqmpE(B`lO$xs^2)oF{Bgr)E-TVKVE)CW{cI`Bxt z{H6ns0_0&IhG+OAm3TG^BxUoN7Un!ysUk@>2vQ&%$xDtm!Pw6`0Y|!kBke^SP1Gze z7>JrefHeHq5fcRu90dDu4~Qh4J9zLQzAy*rgS~_PWiWl>sNUXx=PgJDGMU$2eFdoT z+BH{N{fo%h~FdGuD~+qQS~xAk|lcP;N}@7l4mSqMWCAfzm9AAf|bLy(aE zSzqBn%6=nRvHwXuI%WFYxy#I1)5nVN06-@7A4Sag2@@wz`*O}~OhJ!RFe1&wz@~7J zHt|;ygV5MeUtd#OS6A1_@Y zTGQ0Far===_X(GaPR=Uq*t>Q2xy#|6xbm+bmgUf3{!tM>d)}he(T8?bCwXWrlvdEX zdv{Yq?T+1hHa8YVYhhtTHkb}ybVSyvpCaNi^S%F;nC>`Snwk(5M!vSJhVnGvI}%|_ zZADI#vE)fV4T1wLUCOMSsVz;)pdvEAB@>BvNc{*(SigNE3-q;FDao19xGNH~3YyN| zII(Z%#`d<2yLA15E2sR(y<7GNrv1v^t=p|zHn^{!+_5{46K|X+ZtJ&O8`2Zf%gS4- z64w(!1zDUn1s~z~X=~HFb7G2GTFzYfYWwN#;z;IMT{{jqVq;QmRq?HjZ8b&p=da#5 z)pqdW9gp$Ti9LskJ*(EPt;k7}FauVT@FkG;NB}opwl)6%LJQ^x$+TXZjjwGsubN_% ztwj;KQrLci9 zwtQf(4HP}#G;OM#I>nfTgb>l3J|PtL1Na&5kS34P);f^A-c&`4F(MF}L1+>5N1S0H zoUkE3K7zFYFsUN^843`x3`r5ikKmVK0%5=%D2pB!9wO2k`8WbZA_5#TtW^#X`9~w+ zJkLBcD(M;9pB>Kx|M}0)JcHJV_MFcegnFBx9&B#h|4>qxg5}|cCi~;8&Eb7UfLMS< z+_!6ldt|^UxK5x_PwJy!+M+KqN12F#{wP7u<3P1!mB@=lEC^~FKYrrW$zRTzGM?c} zz1V2+Q^|2Y8Ubd%v6Beio;7g{_k*cdPL(eH;%Tx@kNoIG*HnBn7>%o^iYnSDNV{MezN z#}ImC!|P#u@?_#CpCBvxgyJgUV`VRs#%=aTB@l%X(Yq1{qR0TU1G00FALz`QwOA4N z2Mg?sF=Kl%0g+3bE50{Hvs#!%O{9{Jl9JIA1q<;>HU#;gX-EyE-MR+$Ni|Ru1!wr@ z+LlZ`t6z3DvW*;>&*swg<*8hjaAn?2))cR}sIah*&?lnDd8YwCPAHI5-U!*Gx~Q?n z5WzQo0=%49K4U`kL<93L`ElChUDzzBwgm%k?mu7@VVJ9q5dxqI*a zo`Xk^9Y1m6)agY_mWRpGkuY7X@($96i7<0&7%c2Mlh;TjqS^T+RSm5hH|;ol_SQO^ z;fW?&x~Z;t=RU$z<)VVz}nX*tfktKlR0I)RfiTd-ip8cI@4MaL<;; z!ZgvsAkHc(E~xwFF4BW!S9F~5O?PcoS$aY&B{6hSM4z-dR^sTEQE+p`yNV)2VYk+d8Qe8akFPIkrsm6f`$a zX`4E!g7w}s_ws$6jU6R;$l_d4jXN7k6JioG)AK&c^o7IQ#OEwZ)+H;9VqRWT zYaPfXH6qRzS60XLUR z3(>$7dI!-p73|PYTsPvok&Efr)6M*xM?9TKC&Pq9}8 zQHJw1^@!Y!<__il*r(6{;ZqZG^B8AJ!5#uVBFUeA)K5)Jb5RUMfgj?q{KyjP{K)fh ztc+ftX~Zo7&K!XdkVjGAJiOeu1TVQM`1||iMBJsi?+Alep?4jI$t2vBXBl z^`?qX#D*Im=k~KCGp0Ysmpl%KmKWX*yxAqi3@JNl2JB*oSANG!8sN{lODbq>30oghXVQ{A`4aiYVA7=#-+C7cbfF{RN2m z)o+YZgt<#Nmgcd0UF^<;$O{3IOd~pz@`l;5R2zvQNdkZ5q=b7qy`PE?6K7g>4zb$( zg{~BrR#w%tm6a716zWC6oQaBxv<;szk`?4-iHt*r3IGs@oEU9+0#0^9)BfPj&0E*8 z*8Fhe)}1@*CDFHDcf=$lrX(lCCFRiWEx#x;H4RxvQj8Y4TG}8ai#rV&QKKYmANdNI zYMAEqB%~&4egxY&$eRREwDzDYYxlI>FRQCSv?#*rwY&09Mh3P{9XR94qDwr!iatD~u@zOf0+ z)4pl@uKoLWY~Q+N*XGV$TQ_gnwQJkf+sT~BVyvBVtmN7!r7qUQ15hdU(@3} zz|XYANF6(xFE%1FIW==6a%xmZOf%AwQ;4a{%g8I-FluB`c1Bjb7q{TgKi*|;1uwuk zzW+`dy&)mOn)WTxM!#U7!-oz@nh_W6@H*i=a&|v{;^b+XEpsh=e3}# zOD{EOK##S%j|uI0#Cq<-tAjb7etuy79Ed_l^V2M6c#voeb>ZENfI-5)omwAVNrmK< z`>kpBh|!kuQ1@HQ&H!dL@Xw|2SZjqsKedc2-=PeuSBfJ;?nu*2do%YL2@!GvdJLOa z5uObS?4&7fBw(jTft_GvGUCy)JnNCXZ0-4ABsI@JZ@yq7BOATVi!Yeya->U|`^A74 z5DRG{9O9$sgq#B+26_~$34-w`#A5;TI0p5X2%}eDedEp7Uws9Y3URdk`0}j}-hTs; z&`U3yI73K0lD~2LrA5Y|-@gChkkO06mP~l_<-sq5aQK-(9_jI>59kHU0rL#R2^Xxs zDdE}rz#z!afTV#z{5nxez11J^ci^8ueoN=sxv;i9r~Z`R96V^C1Tnqv!iz7yF?_=G zA)mc9wX|NN_;zBLdI^t|Ia%k!S+qMvpArT3r5{#j%~V_5&!Mq^1K z>1ga2bF4*OBgSguLPZ!ePCRHKq70fa5%5C|86*it=A_=_L5nbE@+4zQ0IOkBgW*8a zSmM>DhoBBZBBaj<#N%T!(Ra_Zv)&sl^Cl{7ZB9SCDy(mBmN!Aeyt;;X%ajGA;Xpy7o!d>V{L-jh;Mr z;neAi&{9gSlQH_~F^UFFnz3-%LZUDcIPv19Y6QdBCTioYWj~&||mLNDYP2j4x;6a9g;}j4Rub6YGGhN0P^vnVOQBRg@9`-?0&R zt2hUTqt1zp%dFad&Zh6(bM~wKO$9zZY|WbGOF%)!T+2LdK_BoM1(xXL^~L|W1pdQS zec*e1#hW46X#Siz5D`H~+I*{IG|WYq#18}yQDpgRG$#M6*V3pnr@J-5!IHYm=Zj9O z*}12^t+|STyuzI3(xS4>&6W8%`DrQi|4d9t&&aB1K6WwO{B>MzTcH$vl{6LWUGo@v!|nEnKE@U8mzIC7ldae zCzf|L)*Q25{BBGB)}!6|)!Prp7bKZ&9_!jwhQ55I4Kw*#nVy)+_QL^g(Oj zLWalfU=AHYR2Aa(!mO+fv_H+u%*n|rD5>3(U6%aA=HoYym!-wWL`Ftu9w^L=cHG@p zmy@221wOxs^^r9g{YbxHkD57q{(`1m&D+*a9t(H)PYUZ{LukayagsUFB-Kb8C*k+zSn&f<#p@WU@M&=*2-*-2k&@degI6qZ&Vj>* z4R!N9W0*(jge(}qEKnOHIm!^`P(KrMl`*21A_T}ov{8X5L_8z=0Bigg^{qesDH$t}L6`m#BO%X)vnFcPozq2@3WvWM~P z|3Jjk*g1=q&zwGP=C}#-!)A@4#U6sMzmJ?YZm9No2;Ms6iLTEAKK;yv^ykx0KJ|VQ z!nl<1al8>{XURKArV>shA@Vs^l3ZgWVnXC*4Bw{FP;5XPu|z~WNae!}+QJGd?Yd~G zre@MfNk;PHD(OLqef-oXh?0}O;qr-uBD;h?Ao)@2ti4%hmC1H?j*+Y7>AAno!Mwwy zo41u=ksv5BmC5_?YuWblJ_weR+d|Cs(ZOTJO&G7vB~GO;rMcy_$(%9*c{lV45q>RD zAc|6ba-h`AEF6H;g;6R=&{HfJ$XbCqNBD;ypwRCX6!KFce6uUon{KO(0)yzbRr<?cX*620W=(x@RA8mOHj>+qNBkzW?AsRuGS!JiTb~ z@-?`HS6KOzHMrJn8ag2XMaX;{ZeL7NT4vsc%KDa#tO1`x8D!U8zJ%cJUa{s5~f4ZP&h@9Xobx+SJk3T)znxzklcEmd2*q zsv1_9X(&_Q+I{rQisfvUeS40t2wT3!ol=4WqP93aH6uSicJ+d8aYL+FTp8z0YTeV6 zrfX(wYU<3)6epW|xk`>^Bwe=7h>wa)%}Yx#%Y(9l~|T@hDa_I3!28@%6v$hWT2sz7P$QxfYd<52rHwjG0M&u<|gJ$$9IY<$os{w zvcBM;V?`MvB*!7UiH76Mh9JlW*>I|%fPP`}rXpE!Mv897hRw-v_hBCppu<%I@A!Z} zPG|Unos)l<@#vAuX zNPe6j$9)pYz{FXIPPY1Imd`DKramJ05wIjeBv2|X+mOU~gIHoAe+G4jBx_qDB7H%k zp)p}A(h?BAoMbOSVDQhyJ}IM^!qot4k?O>ngn@&;{A1qJ0(-d0PyD$xQrXA568a@l zv8&t2BK3qoerU!=ARTeV^-JO0T2@_NK#;m5%!7TT<0M2C@ejJmzHC7Me@TA|<^})1 z&(5g+WQnl}{6vad4(WF3U`zAbA_x!nd&_V`xh)8&LOJ?`$m))Nb4C!EBrV+{ys>Gq z(wJ3d7tUxe!XG>T9cuAfvjw4%VL`grBl<&b(XSs`e-_yf=8*?KNw$aBNAw>9f4cXh zaW4ogbI-VoWJeJhpbRnzi7G*-bIXny?4KYzBJxom<(90-lQ(PL{{Q$zAdmdI{FRdQ zC|Qrt9wAD6=F`1+NJh%W)_(J}E!X<0c1#pSgP&F!5#4xVJ71L2sygy@*`oYMMfi){9pN$lsyG`&Fi zXc};47u9uC7c(rCmRHr*)z`km5^+02TMdL-kPcx%O|9L#kAAa!)#=mc&z(B3v%Qh@ zYAm*5iUR}*36j6AU>rk%0{SU;R`imvBB4Thxur}m#X1K2DHXRE#7Ay|eacE@JCq11 zQokzvsIH-rq=)7v01z!e+o4jscM*%U4VzTwmhMek_w3!Vg_|4OTRS?sfFIr6JGOs0 zrE%=o^76Xzlg5poHg~0U{o3^_=FgtJV9}gO%@oq7C zI9QLlcN-Cq_Wf_gMTRx%!g&zT*9d`519WhaVG--Y$HQb+A31VVJ2qb+&q-Ez&U|%R zm=8?oI6>FPPk(*p)alcF_nWg9uYPy={P|0luU)xtmODFl;qnc)*ZlGF^*h&29qQ@X zzklEUGvRAjEID&%A6%@vv$M0ky$$@+)WiaReQj-RO?~ZFhqkkpMhjZuf3x6_2LR%n z>L0UZ@+4EMWFbH@N->tft!2b!JW&K+j|djJ4!{3Lw>8~-jN?NN6L_h{6`Da-GkwOa zPl?w`iGlth1tJVTR1RAX>tAS4!1WvYb^8zI_b&Wh!62L~BozgV4eXMBvG;|GxWsUh zkzs9~?c`e|(YsPol_fIIibp40xsC`J& zM{sl_R2VWB?RLN|RD@3pEoO8evAPT9d6UiUQf6jRyVLXqV>4KW+ezg-B>=LFQ2U z9_NdX3pW9!$W@UTV*rk>fdeAxfCkM87(7TC4r!RhA_w;(_Co*=wxxhqS%~io1$zDM zH(&khE3dq)zZ6V1$l#Y;gCkVR>{9~=zVhj(Q%Fo$zxacfUV7yv2#z+W7X%2ZGl)C1 z4e%&8nnsk-ph3wzoRB8@Bt6%n)OWGH4+`;fBd79}y$GPvK|ud5$mgZc=C4>f`-`!o zhOLTQ@U8$PI<39*&S0TF&pDqDg!y<>N>Svq`d_HF#)kfxK%%i@D1}^Og9Pw6$M&PF z<`yuBqRB~*?S#r!f58luh6XCgg7Q;2z8S=A%sOP;ifQiPb)~vtXrt_D8=VY{(F)XjNr1a?I2@($RzsKiE@}GE$3*lRODUmCfxt4t%?%u4>En#)8_-hfnV<_8dq5e=^pyul=C) z)|l`HbH$4F2!x|@-MGN!ELyyD^$e!XlV&c7O|9EfnUKE8NRGI%_51Mfo~FjFy5sf_ zF)NqOn@cnMiQ~|d(m{Q`*PD{&T(WxB#F-OEj~kzp5J4vr<|MYKBr$^KNraNHC4fD= zHhqp|t~T%Y0(t~GBKTQB6FcfS)CFNehE{897Oa*00Mivs-__*IjO-jH=y@9ovgKA5 zF@-G;a+2@&oO+-i>?q8LPblAW*Svr8=C_;5^D|3oN^*;fGBX{l9xo8eGjrCW#jcES z?Qr?QY2!yr^$cSf`h}1l3}A2`Fb}Q!h#ms-urEuzmiCtZX7C$m-rg{=f$0kNm@fyt z1ntpZ3S^`)2D=$1%s~+YgXG}TXND*~`K2~JbebHfQ>SXs9+Ty13s+-;oh9mkvEwue zR|Wc-w3pXLnD~{5lE%_wK7u%=f<7Ts{FMF)d;taG7kYEd@PF9wp&q)N`3VtpMx#M} zGzmU5858l`=uyv%8ucfyQu+KDx)X@nC-cwtzi7|eKi7%64kE^gH0pq%qzDCx#K<@7 zG5;gUqw$aiyhmDy>BAi(0wg?0A7M&>kfco~jJAP%LL?{+RyC$CQWF`wMCW6S>jR{o zIA!vL2{NVyAzVbcsLL;lI7Jr#WQ=}l?3~$aBD^t?ju~Udj2o-$VNUhr0X&eOkt3r< z@t`gxT@vS)WmJL^1c@lf0`jrp_EHY85hE~`sZx%3YEqAe{wru~$dKXF*V@BY&EzQ5 z64p)R+ zIqP{A*iLVz(EJ~gmyf@XZ7wX!!N%@25)C9vSo^aAk>(uO*5w3!T-Su>1eospODeyk>-;#z@o+a zlE;PTtRmEO9XwTA>sY0)ej9xanLe&ahbAVRb!%5i7Qe`PM4pJBc-DTJrq?W%m$z@Dr!c(85t*wzlk*6|4DUAP&L90(Ep+_(sPkXXF-FH(4e zicv+|BQ?C{wo-yf83N#^gr-jNh(w4$YIY3jV6+ZtnHf0+C5-h1T$GbmvGvfoUAuN4 z-$_JI`<^Y^w(ljVVpnHFbDi{Msjcn4y2fP^3*@n`Snu@4#;4_0WGBXE=f<1fq}+lu zb4eSFYUjF@Z53S$4==3tjv%O6V<|GxMV9|MCR6%qw*8Wo>uB9snC$cw&RRNeQ|abe zvztqbYv(WAvnNRpU$J>y$%$_rU@ru=v5eZ42b+#1?mMvh-U}t9wISj03{|=gi zx(7zXyjf_DYD&xtlD*dY3(m>P%E`%r=M+%=upllhC!bw5zm)KdvdV^5X62n5yQP)d zrY)QCdUdvSbZ+0h|9-sh$I}?APwZ}Qtg700@cVUFFI+gWy{VewtD?A^_4PEmZAZAo z4?>HbG}nyTRS5^}>xub;=5Ruwi=LA9%%9I`L7VfG0_OsBnB)j8hv?{&bU>ytK186h zq*C{jVNRiAC4p1XVmi`4vBi3Zc)ke1BtU(jX9W3yj*%=#mctgEL%hyGuA$+ll5EG9h`<6_-${e?mc%TeQ0EI$j9kxP#Yflu=T z>Aq-5G!uI9wku_qCxM?Z{L$-?;4=-@_1_5zavyR>85xB&)pfO%>FoC;ZgHP74st_$ zuzf_q!}oX=razckiKcjFUJ3V>sB509Xo(1<7H%3ve2|3v8(OW83>iYk&ns2$|y6d>(gx~bPt%@ptZAD$DQ(9RbU3)8R zBj`rE6L6O`_dfiwy4=0%y!SYsEdTu};f{e;NB@!ZXz4lD@BV!SYt#pguv^?EKO-{g z&B09N#9*jVCk0YPY4%W6c#^|G&mrCDD{iT%DAN4t-iD#@3EB5lBYL1SyBL7a0j<%Y zdA%6I)LtM8RE-l7oHEe{tI<+ISXD?%OViSWfSH+ERv_mcE%ym%4H@&Lq=0Qe!Ly-A z-(ZE-Y~V28Pzx;ha1h9J^GIKi|K1>jp{1mndLq?M+7R4Yu5^ zd-osOm4}xC67h&Ho;@RhwKf@b;pZ`NEH|pyxW<-_O*;?FUra~?U5Pb^(;FS1zG2dQ z>%vv-2{AG8y!SFn$HXO7Rpph{S5+3|5&Vn`tG1@5rkc^KQV0t)g+5o!ovj^Pcb_>! z;`Huqkb>66hUSK&y620_2 z?w&6JIntl36p91qLGx2p1qQFFtFLWnY;NMpx^fpd8{gKxy*;}(ZS35 z?A^X)v)=Vacjxw_a~I8_mF<%$mDc`rE8tIe*&Jne*q*o;vFPr|LbRn>yEZ z-63~MAX!;S*4jC1-*e91caOdA*rZdFkU#=~0D**Vx-q>QFkqT2&7xvi?!9-w7-KMC zs!cJy_ue~%-rIe?U$D--!;&QnBTG|r{`3Ey|9#&tn~u!OM+_~=UNoS3U|Bp=j%|$7 zT2d;s#E#%H*&HCOM4HpZ{od>MoYcZzeMCyyKeT*FMuOJ^D04}gCzda#i%p&y@Alwo zqAjrY`q^XbTX%>}{@>){oj$_K=flGu3UA=z&hJ*-R=cB)T`O1Y$mvAb*b{a2k-+eOo>iLs|MVvTyBl7Zv z3n%yQM76Vi&6>4q)^1R;os}!J>J}?kuAR~KH~0LbbS0C|r%N zkroLuz8HybX}FGb#|Fy!L{7*uF36xDmRcojGfW-M+W?Hgwtz}FY((CGZ%k{TVmI2W zV9+UmZQe2n@A>5VjT<*WH|la7 z`lYzdbv#}EYz_T}ezPIU9lp5SHg5SN<}q(u{&aHHfjG*vW#0KWp46x0LC7Oo9?2t< zZ*t4Q^YGDQUqHP=zS3yX`ND!}D+Gk2e5pD*nrITGT?`YA)Thk{F2sh*dt7<%LU-AJ z-oYC>mtm@UW8I?^IB%jKM`u{eqvQDhZ)_)RxstM`&<)$FK<*00;W_!1kBY~}uw-HD zS!_Ac2nqSeH_>rQ(G#bhuTF6se^PJsF9N^(0VFN2{RBI))K;x!Kns=KN=h_8h_J^WY@@aO52>vHIjviN z3*l)kciMc{t}S6S+?AhN@e8e5#Q=qx$`c{;;hTJC;l1hi-NsCsOk!#HukuU80tNE7 zTeNUB4~EMCmYT=5Fq+$1c$#}Lf(hVpk#+4M$m3Ia0$xCCc{2WftJXq_1V~BKGmV%2 zKbyB|*R};2+U;+%1v+jVTsFE(%S&DWkUgXrRh(uZImR6ZdnpVY-f z>J!kcSu;{D-VbGoTu9Hmt9zhjfNS7;vPPv`A+m5DGuR)mh&CjUT52fb{lH;iWB_Sl zmf?;t=Wu^!MaBr*NEdT^Fa@xufp8y+Pn=R?{Kg{b|JQNjP*4a~kQ)*D;HVMm;}cP9 zQyRz}xwg_;H$>|r#D}Xv(oZ9xPusRXO6YD|=MR=2wRV5`>E{j|y7c(9Q^yYS^)rx1 zZy(5m9r1THRzLsL9thOoXRU*+qtPLR-;xTtqqBp%W20Yw`K8k@;-l$AG>}f44ZUlC z1Op*l?*57BeweRO&{6|o^#~0e0s*2d_NQXhLOZBxXZSShm5iu3IMymn&D&9kK?EB{S2_^*gq0AHgq=Ac)(_nzs0-*aB#OqG%)RAQULO zxMIb|t@}>hx2F{4q^74QC&b33j#?h&mdZ^mQGl$OvnbJUU}&D?_}J94 zm78jx9NW3|(8=xF>-TIgFI{!`#I-B>!#y`I>?zC7%}R<-OifCvu&%#$^3?w8SGR1~ zwENPvtEczxSQ7nbY+78}lI{C8tjx4uJHD#+&*GRzr?1@Jzb7kl@-&+^#^KIi;F&OK z>{Lh5;^o;BLi-OKK61?HX_{@mXVt5$ROf@|&mV4ClAE(*&k}cJgjnV#PaHLnjt4z@ z_U$uxP}s!r;X?-W?c1wopZ>ivJtRNMdX;Rxxuif$}h zo5bcp2?{le60Zr0A6Z3mCFErCVbPm8Gcz46D`yXudzP%<5uKLlIKAhRC&%+>Yf*a9 zk`4QJ*KIs-?8Kf`YY!aUx^hLuf|aq+#w-*G<0GQ;7bHBnp6T9O^K?9BXi-vp+Pjwz z1qllh5`^MMeFFz+9Rh_0wb$F3Kk7d?+S;*0B8qFnDAgvmb&wj5TA3~5TezEB#+qY- z*=x{@fq?Ac2AVty7^-p?_(#K#<3~TjfsHuc*||dnjL^wYpoi~bpkqOE)7v3H!@%Uz z8%V{$k=o1K8#|aFAH6qrFu8H|YA8RydsP0JUyvqNI>-hum6S)m)`&z*_xJczKDo^- zpT#x{`i$OWpMM_E9XU+g?=ixH-ub?aUJcZf@@&2G6lhUO6PnLMnF0jR#30JENVHkM z`2Nn&e-Zj4?*}ZQ*4m*JLx#)oNg{_slD1u;_WoWtP?N#q$wGC-c;=3gH!nH-ynnEg za4>9L*ueti5xt*E5+b46**8e2Q{TQGd5C-Rdm@lR;v+&Jm{^}r`u3G4=`TW<{=gHg z?V^-nf!~F_wC|t+y%}K!O`Ypb5cJR8-Jg)MxZm8}XgJ-a zvCc85aiu!^205F;g2#*3S@jtw4!T<3wRYSf;aJz$s&xPVf(VAogI9i0Zh6 z1JH${_p!5PppEfoxY5Qnl#_*!=ZO>bNguxx{7mCeoG}A6j~s$g+AK%ZzsYfE^`tS2 zr)N2bvoPJ6Qo@sEhCJ~w*+1HT>%M(N8*JaPW9QCYyZ7zif8fxeBgapjIin0bjC9lF ziAB;km!PkCC?^>%W2A9e;X;r~{q7@IW>Ni;hAAv3E+acFdr{q`85eUr2_>HS$cyI1 zMB585&#uOdl3B5e803@`7!gB(>Q2L;_qB`;DBcT-3iApV)>Kz6T~Ja`P@I>GYK7i8 zUTMEhzNyrou`Gv+eG6HKjoQjeVJ+pVflQL1BK{m`+V=jO1!0Kf+wL1>&tKW9;@R7Y6Hq>ukTV1`ha$O;A1#BFI%9d9ZUSB_JVtLMO z$6S^Qe0nBXE)Z3$XnoKwtBcS2B~tDF0rc91=x2vPk1=|m=AQb(r)0>N2EL9Z!U4wa7& zt4J0zInqf6#OPOuk*BMFx2|1Hs8KxgCVO|&=_igdkFVXm^R1L9242Lgi}O0-g47O7 z1ir-JH}ol&1Vp*;`ZV;7UoyZsh2|{utJD@;;3TuCXE z1Ju$yskW3@G(Sz!^1y-=$mMw)hm4VdB>yEtBb-S#SbCruK;21xDj$uKE>Vz`YIw%W ziA`uCTu3fHn}(^D>BW^qQqf-lMDcQHzO`No6%*YLTl8-+=sdt>-i+Mh!W4$t;_~85 z8uuXtl4MxW5Nq2~6C(Qw0JyL|ZHKo6V1}^Lf{8$k#;-s^&uI%U!W!*mu>1(R(VhoV zD?WRnJquxVoqLFHo&_nP4#i^tf*uzB8&JAE7WhFe>3VEFX{f|O5<>mNeA)+?H1Ql_ijgVorMN6oyKd+q7 zL+U*c5${UsJ5;%7 zWv1Fliqd0IcFJB8ISx_d% zP{!A^_<8RmHr@ zPD@J3V8C3kWO>cHjrIG+MKHIGBK472dAf|mrj@N5UZ0niS(+Bti+2~75|>!IXWUBR z)5}(Y5=yb4BDjIqR8}#JEm4H0YFYJ4jI`^vgJ;&Sfey(E@hXuhmCLXtfTw(MIgn^^ zg|_6s1Plox0{p0KACdZ0s%H}Mqo5$A0$RM-C~v?IzCS0;$Qbb?Tw3^4HGg46^{UmB zARD*s+`H%G!2|mb9X&{Eu7le)Z`*(1$kE9skDNYvXnTEqeI1sx+VwkVnlOJZ2}Sg^ zpCsqbsZ*zn-9KT}kikPoPaGQ_+DkHy){GBdRlTmRW<_BPK2xgn_>?5pE0U6F>5~3) zya-U`#AIsGdVE3eKYq_GT2M|8h3wL@qKrhrNF;$d@r0oiBPv)o+;mGsvth+FXni3m zKX>%oAK~zV5)t!*bcdc{1pPpVwB!Fc!5t8h&%br%EZQER&^d8|Ap$Z^PC5-PI&=2I z)tlF^s6^x|S1w<@eD%tu3zx23zj^20d`-9Bzs1emJLirZICSjPnG**O9y@aM!0zpv zYu8|ctKCtzzHTkXU$R^`)~`RG(z}OSyHX{T2zM85;v$8K;P)~%=jho@8Jyplk%baL zJ!MReXYBMgWH{#i${<0$6(mjdAESW<>J}La9E<_}3UEkYd+qfnsQpCfCr2j7s32UW z($iqVI_dEb$k!2AbN?RLM&J#eES>n~z(4=IeH%(d#Ph92h~`ZdS( zAb!4i^QL~Q>1{HUe7>$*V(xO>Zoq&3Q@Ygy=NgjhBlq~(xDzOjFP`6@KV#g}?uQT# z&EJ3cz>T<+XqFO^a6Fwc@6EtDm|I z95FL&ir4Fo7&mmp;9r3$t$3GUG0+(8+2CaUkfB&Q-1}2^xjt(=aNuWXfP5H83?Kss z=mY(!ob-VW_|AoeE_09yi&Zd4^&q3Bat!e&Rzm{{NiMW2%%9o4F+7OXVCHz*2)~g; zJAB~FftE5<>43(LagMc(F~t1^8PX;+VKOC=!%X)@5~NMBMd(vPWZFNqHTsm+fuaZ^ z^EvjrK%qfD#Qyj>ZN}QSSInp5FP)`36I@5JAi+UDA^s8M!voxv2Vy#ypr1~@{1pC0 z>uCE$>!=e4Wa+GRvUfIrwPF9VDGH?b(0^|V1riR#LO2Dcv=oxWBW+-l!DAU5$Ma%| z^pPZ>55)Qf|6v;pUaQEDzFuEz6$r$*f^T#yi_$wsj2y9pDhKNqTVTvMg}+Fk;Pf&- z8lO~hR?*@WwL8w*9G;xYMQQP*-jE`fmYbHCK?0{a-&MHWF@E&uacRpoEzB;upGX41 z+?W%4iJyp?E!tB%QX)zM`fNghY*yR+**aVly*S<5HY4PW#Ecyws%lW!$u$WAB<1&($9q1V{~%7 z`&u&g#~emOHX%JOI@QO~V@z_Sae?+V1@!do7dkj>pt#J!Mh+X)pT9T2XOMIE`nNuP zL$Q7J?A2#*_~c0Y)VWD13D((DBd3IegnEOSahd8pyxqOOncbXSwJr_2c1gqO1eEOj8BCaEC0s)-@V>eyKk=A+Ggxhx-&Y!-w*?cGBlnE-ARqfNGM!ls zS&C(vox>MFvoe=)NVb}sGUAhck_L36=zs86!v1OCA0PZjXPm;;BM<&63R=)ra05M4!(anoG{Y0&Q7a^16M@4kZv4<9{o>dZNOVCUrQG7XdKG?Lh6Yjdoq z{Kzgt7?he-uwdz`+8sw{&b7v*B_o*eFq!itq$b8C=a!UtT?u8&66ejHJvTSIG|8QC zC5Q4kKKuB-v}8)!_{6mAYzS~caWUE;$xx!Z5ypcgfJ|Ot0lumHJd~L%Ym4t8#*6!f z8XoZD4UT7#8X*vij8x$E1Sch^Rjsr$w+8uO)nSIseddNWcaF_PeH4SNeE#`WHAL$yT~@PV&F(YvvNlYd z%n~u}VaAUciaXW3L=@(vnVNgf$h%NUsH`TNyI>SyNK^8kzQg7_?Q|07e%4eg*dxdos~9X$_N4I5vjm} zGOc7XYwQ)u0zua^&c18bty_;CX!|D7>aVHYx@+I@r>TkdtNV7JxpMyK@m=-%ck)kb zHf-H>VE4xDsQYWzZP;^m)6#_%IfW$)SD%cGI5D$$`$DIFAwdwM>deU*!Uudfcd`u9 zg!KVMdwfYhT9}{YSZSz%OlXgdF*H~~bdC0 z3?n_5_!?2}xl(NCSWI8DD|@BIm=3#DyvHwATuS1+kosGXYamEb6g!|DlMr}YvZ+{(qe~#sa$O-h@!jI3B`e}0 z-Q7^_S@Ku#aXEbLB5&hJjMh;}tW670D~dzJ^bUFl;xcyP5A;^0G-?F2WTvvhp)>$`&mw$mQk6vz;Y7My+wnk~ii$XbxqF7dY}U zVjtF#SSAPEyb!gGO2{!@HCCmO;2cyx+Vdd6IO69DpvHs9Sf1)ng5P?%q+^(llS?Cp zr}1O4V5url;ywbQIM1FM&-~~jB=|->$@Aw1&-kyDj69<}L?3S{A?3T2WAc|@#fsMF z4G;&~WMk!>)KmzL$M{5+>CwnY#g49!9f$FR@1_JavD+XUi*m3 zsFc1}Al~AlqJrG4^i;ZZcw?M~-TLbJ)5ioD5o_}2tsC04kFJXX0(ryjyZ0YGdqrLO z24_5Pm7vO?_RXq7}Dt3;Y>)+OG!vAt;iI> zo))l>}v61twQWt zi+Bpq&GO~d%d7c2H6mGAU$>!l`_U{Cx*O4_t> zER$$uUJa?)LR7NQEw3zJBZ0z1J>d-n}cAZr-_h>GH{A zXO6L!vwQEsBgYQy*|np7V_n_m-N*NA+p=+8UG0X=dq$7hGfqRTI^)a=ymQh(fKOH{ z3Mo|TOIEpZ{+128@v$43P%(Nicrbv$Z|sb1K?1>PTi|IVLoAy{_AgxpHB(%1@EdRl z4Rw#5R$uRwJxFC<1PWlqps6c33y^g_3_@Om$VR*00CWRSxpxmATZqsWB6<+(1d2xs zdh z_D>bh^Z3zY4x`7$lMuy}gde}K19=UF|0cjq;Y&99pmGP;IYtRJrGRu6}K8X7gIXf2-|RgIka!+Bma$mbF5c1 z)zZntaU-44#2RIYAuTO8|nKmRc)Q{8(LoG7v`OKA^k^+0#~&nPLWFqgR;{2n)KoUqK_+6I4DP$- zPdnfKY1BJ#nvZx9Z94Sp+?FHqr*1tue%lTkQ*#fxBY`x$mrq*o`0x?4G=2Wm(Ie)~ z8rQ$qw=GfjIKL808j78-Jc`el(#^~9xk*)Ie&!E_k){$&d41efREB#44YCycnQI$3 zI`knHdaMLU6AFV=1vAVXZefxg0FF_i3a(Kh%6OtoS&p%maR#fcqIdWZ^r9|`z=$+u zN`yJ(L(%9=jc7fUFEmJPM3|$0uL77I@R;DX*s^~7v7Pp#-mX!5rMZE_bn2{k3Z`nM zZ0(@^+*Ap2pfJ!F>e!#-aAN7dG!kCZsgoi%#xJ%`+An%1Cvu$NE=V2t(z*sA${`KI z(Zla|(qIj`3_)WwsXSO(*F*nXVAY@@!v>EWMKOUyW#S~}Wth$6ic(vsOxV!DK$!LG z*6SPoQCnAspOpncq&Qo*ZkKvs@4h{I&_w`cG!!|i?-QBGGf8%lw&DqC`3sk=+H%7h zmzqZ}$b4p{87XP>5QZYeo6+;_2}hRC8avUIbM1I(;hXx!uDmq28N1GDqZ+|N#gUHNeK>=<;x*dxOSc*iA1BVgiQ?LZiOq_&S!G9Xs90}%Od0I8= zG9&&^_#EfMQii5%mhvMUs4^G(GBFRi_|di|}$tXvu&$2(B>9?8=W zY*@Sbf)V@d!1Bt~Rck5=3fA4PO>{Wz(Z=MBV!?E+SH0 z=iI`E!f7@0tsF<7Am!kM3FgGV2$m5)$FynFW{~kQXU-gL?gXMa*s>(RTBFgQ%A7bh z0f~`JP_lAMYnD|O7K5OBkvZ8`QukG1|^pS(YB=NU5Nyjv7QDlZ{UF+I}Jrz3h z4$qkF8?7Ew$K?39h-&FDx-}_6qu)_KLd%0!q0Ck{ka+o6dj2; z2Qo9l86GlRj#PGC6E0&6@soh9#uBu}0k0G~8f~f2r1V3HBIURs7q=2-IAJacy%Xdy z9`v9@adS0@VHS|XRprwt5CbRC`!^EhUnu&N&}O08&4Q8NG~=o@^Z%?_GoA6qElJFu z`G5Y|XA%$}EHR~^DTg%RqMVVWAB{X{u}lJKXf)5$8&o@feR{k4gb4KE4=Pe1dKm}I zB&J^+4kAP&{7E;6CKP_)&rxiWG=uo-{C&XVLqGC=m+u?47F%LzfA@aT7qyK+&(CgCrjdKRWw#_vXt znC=#eB=>K@3{LFH-Qv62>Byy}1dHYa`r;sWRI*1+CBM;_Ec>OTCQu8hR_egU)oc?l+H>v zGgYRIW@rDme9XLMwb9h3LjfgNMi|U6AMXoONhB8bEX;qy97A2h0w93^!QgO4QT9PC z+;0RYiU8Rg^^uNIV8b!*i8ABbluVp;6&GQBe>Y z0;}1#Z~tB)GzShK#yAe6IeY%Xg$r`_ z0mbrN9J5fLdGl>_TBQkmaz-x3+0|Rl&#*gKrca>$3yX_SN+)^48z19vc+&S&JLb+$ zj@?+3824xGlGO5|tn}Q?nQ8b5;-Jy#$%yulkrb9zE-s<#3!U91Y+l?axr_4zIpk!g zkodrKFdn-WK|5$`61C)zBpI!ESd0I=tY%YY0&qm2L%pt;3}uxm4Z4{(V)-&+t<+W? z{xiMb(FbK_5qd_IQnh+h?YiZwww#%7cgHzzKd?Qyd+oxXh-r!!jT+d?5z-v zqEZw&u$cu-DEMg74xw4NsG@3_wtVc0)oW_Vn^?Q9Zu9m-`y_v7%f>BxcJ1AL#TK9A zdbE2>ZOzKsZDija-@bA6ikkWzhfZBQcX-#P&3muSzImJs?@fmzqN3TX4rk1~sTYqF zYjdM#&tgQNB$9nZ$v1&Cf)ATAn(&s`R6fvXhS?ZUZ9^Qy-TOvT4doh~mqAOS+Er2+ zf$cgnoQ4Iz`%q0TE4`L1J=4aU4B?QaY)HqiWTb>h*+AU@v7rN>N$H@|C5pYmP2u2? z<}Ok@Xc(}F`1C;CJkA&*V`368WO>C-73*tyM4jQoGl8OyK^lY8Kolq@vKV4deog+B zbIh+XT|8agm_!{Ann2D!-5G)`J#0?Hg}R3-MY_Pde9uaIE!hj5!aL;oNQ;hd;*(v- zcb*(vqtVKXKVVCAfn@?!4Wy~@%A4{Y1wQZ1_bu6(LN{+QWHF4TF?PL|o`HZZKQD)F zcj@Ual`HlysBqp|Pkjbd-;eU$k@^7wG@`jnN|vu6F14_bkmi(No?gC8f!gwi1mS?R zCA5rtETq$=(BVt!NkS^3lhvauy$%PPLDs#FOO7{!qD07!IMTGZza*q&rzWPPpx~g5 zH;TD9wmQW~j2{yjGKv1q(FiBaqF?921%)}8d3mHjE2bkw9ikS#7+3IdQNF~f@Kt}7 zunjAHjtSm)_2#ux>>FyKUVrHibJ1VC&jL8~g`gfPKLj=8CpRWz2j>>r9B#BHWa$u{ ztUqDd{E6|@LT*}wJ*B`O6 z&I?f&_=oh_!V0C~o1o_6!Yh_kRo(-3G_!%w9q>*}jIKZ+o4`*=zR$G>9zPGSJCz5=G zEF9sDnH9Nz`GUNPvf|S6jd-z2N(zf`kS-u1o~WJbnhon}(D_x0R0nv2w`%!1>Ea9J zsgnNf<>eJim;AK?Pu3z~Gw5oTVcf!wRq0&nSG82D{D%TN6+EW=S>-}@B%Ozw#Y;$I zwk}!1bMx(@jju zW?vFSh#Kubz-6yq(!BjKrl1Evi#xZ`ix9kgRb)Bm&MB~S@`U4L@QITr$yq+FpPF$7 zdIQ1%>73{G+}YE}akzi+(&bBB`JY$l{eJb@jhm1UWI5NaToKsuh)&4!?_W53Qd)E! zJ8|~-!M(e7?>&6@$dQA4cWmFfZO^Hx7mn`Tvv>Q>QDbl&NH^t)qYvy~Td}B|5I7d5 zj3V|!W=Oe2K{drw%ejc*nX!nen4XMa5vrr3k$hiH%`!~Luq(9FaDT{2ggr|(4A@Ij z!413;4cL)n9C)kMW9C9*K11Tzwb!;+#!CwatHA;MR-Z$AyoLf>99ZhkcmcXW2MmXLVzSE$KE0y)I#SizBHAt+`??xKq!tlrrO_6WdqdSatRNu1v?1=HlEC24 zo6v{*g`>9*5fc)VebN{j`V={$$}z|MHuBFfjb@%?RN_jf!IGjkb;eh zSJigZmeQf@mw|)B!$zQQ5Hd7z!st=LgcKN}6B*se!chVYAv^#aw7wQ^*2XPD(>HCY z-?oD&G>Q-+Bo2Uu%u&|SV^zy59~QFO4R>5}Hm9Kt$1c8dCZrZDt6IIhvN&(Sl7)=_ z@$sHGXLS5R>zpaB*HxP;j-NgH{KTEo)S7au+eC#UE7Y^+$SSs(?xlfvJbFkCVGahW z>C@+E#*qb%=-E-T=UQh?MSwD8s!ZNLnL_9=i3`)Ffj%HW@&SnaTqIH&i{o&*|D#3c zU20>R@DcLSkkgMYQ!5=Yq>m zQc7#LY~OQu+sZumn};{*w36z%^3JgC{2|UAtXf)Ee|A%?Yg0vsz(a3UY1&Ul`(V+m zfr#8c1`8P?&dT`C^{qt3GY~;nIg%W$#EjZ17SW#*@0LC$fc+Le8ANR^N9+hA+&vKyF<98hwm*o#nPnyB|I<;dKla~_TCs@6tK7C_(4GsuR3|E~tUj6&I6dW??J?KP{ z;|{g)zBCY#WX_9_;<)f(qsEUPF>=@d zHk&`gjbtA=F>id*JCsP{>GU0EzqCh33>${>?2kYGFcJ0ybSGBKpipyl_xr88j>sn% z@X0ua*e94Jcho*<5_loRfwIU#S?OTTZOB8S)KcWkvaUX1=|^QK%Q$i;WTss7O<6PQ!4**4F!eESsKBn2(byZ;!17E+W?d zEhf^2H4G!cfB10htY|u2Xgek9q#*(xd7R)ABP>9aom#kKgg>{Akum>_^a+tO21h^T zw}qT$9rccdGlU-TpK@$6zn%V8#UqEP9HihJF++$RALR{ejGDcLN@0iT&L!w)GDZB6 zBS#J$J}j3*hYlZt4sn;PW~QEJ&Rw{8`LYnB`SZPt7R+zvRW@(C|3Z$~~^=q#Nl)sk;vBy1MUDihJYAW-85ql9Odo zFc%Sf5&it~vPm%G!Bk|KIeDkomgGY4vhvd4LPUh7!hb$O#6wAyn4C-j|2B0(!X61q zkuodpBW9o?>F~&kwM;zaf@#K|HF$^DDo9DCRAfNlF+UX1#=LrMEuj+iTMu8n`}q0Y z8~0zocy^CrII$qNBrD<3>Fbw{?pj;5bTNz3%a*TMRlVtAw4T0x#F%lTMvn*&TfL&( zJ7arIRRyhvYnCmbj}4PM=fW*Txn4If&;~)DJ!9I@!;>fM9S46KIRUq;8dxWy>ml|` z&)z+I%1TxT+;(SHf;KZ^qH1!k%+6t9n>KCUT*sOUmyN8eP?fBZm}XJ(Pzy;PE)~+8 zEdm~8?oj1pHsRtHLO`qqyunf>=UK=vQ=6d?pggOnT(*KILc4>Ihf_0gKHDz8d3y0Q zfew2PA9-}`>}4%CJMPZmo%QQi@>_NLZeBRBxq9WMJ+q?cPdm14i{+9laZX4Hk#$JQq=UYP(YddrHY{BO>oYSo094NDB1OJwm#aFOCgF!U9JLn zFEu!vXp~DoNfM;ZODNTLZ!!ISjDuO?ntw7 z`*$P=Ir-)6Rf|9gr6t+&6l%aUQkuYy5WVrUViu+(27%1vnB`5!5JTiiN=S4oR>Wrc z2Sp&_B?vLHm8{HEnFpjw958HF8t63ymcZ=fBE0A$H!)jDStzw~voZ_vGFWrqaMjFU zL)v*!C+YseTC_k$E{z^mBpTDY24WPgBMOkB%XsZ4mZ~718pn8Pryg^>Xeh;*z@Mi? zEJKULsl|l?&f%j)-hYB|M< z8@%1^2)veLW=1K|fiXSP6WH3axmD&*L*D|3FM`h3whL-%Wc?j#B+2Z+VTLtd>#ibf zT}99%tvEz%QxcS;Eeu$+sGRtlPKzt5Dyu+9OMQ@qEFBpeO2`SzV`VZq!NnrstCws+ zVHEc%l0_4N`h+t24oN^yvC=6#X7FinT9Ggy5EA+zNdU?%T!1xn>&|17r_CVF484Pf z7{*1a8Yc~x%ac}?p5jg08aZ#qx(%y$uH7CLSyxlUXjTSAD&u9!ORcP_Ubd3B{OaY^ zBs5nnSz5lhYI*g^ooiQBS0mwB=3_!4`}tTH7z&^&!h85lU=u%7E-@{tPzTYg3qQfybsOr)k=VIs4~y4FPF}cp>HOKtw{Kj( zd=VgKokwck#giA#9zVQu%jUWbb&Swk>o@HtwXd+WTYi6b|1u2@l1 zQ&YXTASI5Sz*)4iv@jzLgc9d;$AX1kKGUL~M8A6VJX-sAI2?P1Q)bWr#rVucgF;JT zf-IlpWh9{v!r%xeQF;*L&3ms!d-jq~=gDJKC=dPy4;dj0m1N_{>73z#u>qJY{MZJ;G^|Yo*FrQo6lJR@i4all68~d9X$&@k-jKWl zXVV_)sDwl=1VPg8+Aw8VXyru`^Q~L3qaa_vj{z(~5~TgvM8bU3RTMxX0lMSQ9r=&O zUB7$x&3h6kq~CY)#GmpP_#5zOu8K~JM^uIwvcwP-A|v#JHoppz*D0P)^61HMkG9f! zo!~!vpnSf>Ir-_Dld-}dRA!iN1ViuSK^Z`z8u$?H^P=;t#nCy;<_uWS8(TSpOp<7& z*eLn71`I$l0!8EOvf0yZFPQlya@C_l6qDj#1Q7{ydZGMVdleuukp?-w3J@j~^Hs3) zTSpzFf9;~>Iy4A%5LrGLn~1|9SO;|t9kUcB5_gr^9Hi5td2?Wkh;@t>$t~^R9UGxO ziU#>XaPSs=_uY52Pu5xoP=bA{wRS5Ur1Pt>Ek6;GMC?!74xM`s=s$Qs_fDNV{Me=y zW-X$A1n|hSBO8)OSlB17$HV{A!9RkYS`_oJg;EX#L`cxL-+uQ)`=8o=|3kZWZ98@B z*ivsEt1M_>AmKnAzi;2E!_S?1v#i|t$5yZ=4at+^D|&N%<^Iz6B1ocpKL5gn7$^V= z^tr~(;K8584{Cxo0P=(UUJAk?F+)F;J3@bGtipAesPDC~hQlF1T*Je$X9Y6D31^*` zvXZ)TlykI&pjZP}Rv>fu@#CE1Lzoq@R_I&nm456I5v^P45v=+O?`hK}=36``-#2Re zecSK9BdX{7@4t7p_4@%Cklz0903XPXRK9P&cYydndOAqgt%eE$kgpN*S$?Aoz? z2P5m=z5Di!J}`C+@Ock3ND$COq&3qSK;|N>ae9+-N@?1%W#7eTdO|_%g(o*o9j@QL zp*%Ogv@ky_iEh79k*RC+`23amagL(m%Bq#y_2l_>tKDjwC!V93+N@SuUY%ES$9ogp zaj~WoBiD@SG@z}>NHAy5j+#Grw#}(|i&8UUqo(jFu<=<22mef>tP0_Qw*)Q_vO{Xm zq!1ih)LjH;jIpwc%W6FlKT{05CuVL|+;sJSr%j(h=W4^qC3-as@82QahZ3w)zmF3$joJtAU+{AClB}Q;!S%WlS*B?uBvKzT^&CA z>?`FN$zGfX%${OXlV4xBbT55Fo-=aFFVkmDA18a&utCeKR!!M9bYTC1Lk6uQ=AUp} z*P5%F7blI6GV^myoiL*jqwKc%qlXUd^+)%v($I=44n3wA(jW0(LG{eKm~W|?@Gbv| zq+^;)-6v`jnv42LZ2|z0Y$8g`NDvUlEnz^!wu%NzMZPj1JF)L4(3De44of8ouwcP% zS57Wz(AW3X?a5h~Q^>FxD_ zfdn2j`@ZLcJPHngg2=VeSRQxuYmA6Sai37oj}~g;*wUJXpcQJ?4C0dn`-%N57@5%L zTvHVE(f&y78QaSzL`vmP>3#gc4{j2G^!~6UK`rVT<*qJfEna7e!aZ0lVM{;>_WaxNIc`;;5b3UV1X%p6KY zbJ%b_OvIt$)E#BRhGj$a(}?$~XgPbH22j>fh`!Hiz<7mQg+Bva^ayRLAJNJY4HVnq z(3`4HYphg2Otb(zM5T8U1tdI1;T{~-qC;2L?>}>Ao+GJj?e@CWtE*R5 z7Nlo@YEt9V)3Z!1w`P{rofTu99T!KY&90QQKDj>Weg$;$QQFzvS{`CotG~jJaXX3nWM+fUby>& zIk#?@-bC^fQtZ(Wj_ogvMIH4b7`ug9b2`qxDcEI zexP&M%S+cDB~|7oe{0xGmp+G2f`pwTdymXIjnNgzWk=kEF!Y zavKVTq`;%N(+d1?YiVWH1xSF<|4`VJFNSBWqKsLyp7ZWHJPy<++s_#Zi6l2Yx_JCt zVus7%N=%D)-8;5-|FP4DH!WRRfB4MNl@*oMCuYr=adzM4`r|X^+`4>oo^_5bvxp~K zzkWqoVl+my^G9~ADT>$TNbnOoqOctWcP31}{owq6Ym|q>rv}Ftq zfbK9>$|z(4c!>GKPipotrF);*%fDw&Mgr;AZo?cI4Bo-OCC93QJ4U(z42vdc+=jcddsFDG=SX^%y@73`wdJ*+bQn zYH=1)jxD^V2D~P@VBtz=$lk9OSrXN=qpE?JXi5(xq8zsZH!(12Q2+s2bmRuH3|$Su zCrT4S5L3D(&5er-Y!d^v(b7WTII;o{z4>c8tMQq+`DF|FLP(pJ&EpzrFFH?&e+X*B z7tbmwWoAl{{7n%7S(036sw6_Xk+21U3w$|{|F9e+@*inB?}+~pn`Kf`N(#9zlJSdh zC>GaJ=dob7 zXhJ2d(9Co7|D7)_uS`m{+Cl2%!-VFrpp~U!S!627d zV9gRp29GTQo@N{HaT*x9?Kg6%xA>IYGMd(m-wCd!X@FO#?P2IYD7fD zjM?^WC6&dc#bu}uMI9m{#Dz=N?OnONW^K*dRg7V)S1e-`UHaLwH5jDUR4-qSscS{e z$_+awFggqIGCS-KQwEJUWF0(Fp}nJV=Ge|6Hp)2Uxgv?mcn*;GqMDj~zL7^33IH*U6ET8Ujc-XZrLjCl4OozjF&t zE*79g@w0vFj(rDDa*~@JH3R3`44kuL>JTbb(PFW(a#3Dd{HvP}-y{@d=Om6xO3zAV z4I|#`G~PUVX}r~?C; zM#Uy5jgXi7XiV-3OCx4j{8zZO&YsoI_?yxp9NQCCp2=AKOfmQ~#Ss_Z~RhKs()to^#_o^ykEJLU>M{zjE&2zJ2>o zPn|O1(1E@CPfnY0_57u2)22+N6*7AQeTt{DkTGi4mb#j9y%bPb%syFIpyiu+4P|dt zCSd^khce{AX=DUur)STXBzik!{XNE2`C{;8R1mDIIfIno2UMdO0eGEsfwv;_2^QkP zv2VV%zjD6xd-4Ah`sk|9)g$9!kSKi~0Ja)o>|#fj?FD?X&~hu__Mf-^G;fFS#<|?4 zlNK4y*tE=h!OHk`mwU!t8+1p%=Xd{}c|TY-H&3D3X{nGO^U+6--$5FPu!sjGjv1@y zrwlu443U9|qeVy!Xouca;xDPON_PyZUO-} z(a{M|n^dUHW9wl>Z1gY8FVnvY0@Qph`O7ii*l0_xlT#DdyfL^0ULu#~@EHqu#7^LG z8fnX(mJM1-n=D94OGm2^X`2p?L0R(Nw}dXseK1TLD2=O?7f+Y7<%g|WeMb~bmtK8; z@6h(!@4rKy18E5YwD1f%4zO1I_?MPguy{@$m4_v%*=&{4GLWBIwsN-&lABhPTH+gP z(ZXo?ul%I`7Jp9uVA~(t|J+h3j1+B(`{sYCc3>@9xA~3$=pTPYm-n4m!az{`gS_Fd zX4Ur#Ie~GXl zg=;Wy`GpVH!oNne!!#XOBP@gYxtgP^dAj_-{6-0PM8Pu-0fx-h#~Ug|f%aOHS&VH+ zxH3g@>!}e_jn+YIS~jWqZGcps+IQynwzl}X+G6K2+6Mf9r^{#;NVlQ(Kj}X^JLo?L zcIbdk$LwJ5sCV!O-Dn*@62_xUT<{wfwY$M0%bUuGEg&-LrIb=Ea9!>p^@RKI=no}D{(3eVZk_=3A&-@$Pr ziF_akgmgXy$K9qv!Z51nMtXM z8OfZr=1)Vtqfnako0>S$oaE0ZV@!S@h#_?l?k<(KjOs%$4mm;N#!Ygpx%T+TUi|WFaZo5ymaC6T@PZ=zY{xVXM3J1fzQ zzPY1Gb$(1#cwgBCh2Uu2?Ch&S!W+B(YIc5KOkNxS90EU~!{wNeBp#!kj*LgelEZKU zgyCR`{I&@L2M3n~!*c;9V>5Mva-?_QI1NIlkG74{N17vo!o%5b0XP-_jyBXnMNR{D zX)0qM9e_g?4|)w!h5^5ijPbJtSp4%Gzbk9iCnX01GHvw@2CwZ*`Hwvn->FBpyD`)cSr`)u%2qan}6s% z|H9#l(2in=i|@wG(TkL)ckehwcZ|M`c_o5iQ3^@BD8Waf=F$4w`o-|a_5OaL{mVk* z0Teb2t8&H6I@sXNItK)?z|KV*Xp-5(UD$Ql_^FYTM-Cl4bnw6dMra67Xdsp^0F;Fv z1E4Yh9~;*o`H!IklHf-MtVg=Js{{_-rn|qZUn5=u+dz~qJh=oChk?J$-ho1UfIU*+ zX+1w>G(rwDXh7&-cKRWqkRCxje{i97Pb@l~nBQW$dAp*;>Do}H8*0iyMH3*5$3!VF zQ|h#IGcAy*hy+?R;&CxS$kj{4rP9!=tOPyVofDibE!IW393m^D`CJ?YHkL#Y?G%B0 z{$K(N^eI&v91Twlu;+cXX+?)6TbK_OJV)A*AsbJ8UUVbE)#VWL?~oxT+$TiPzbpVa z=+nrq#<|0H(tsn5Fh_nOXAzi=pkoFeCEelNfv;2>|5qRW7rF{oolaE^S=AzK)3s?I za-7NozDN0iqgI<~nWaTpVXhprq-Al;+K3*r3+>UpOtZ+^bTBcQHw)dnB=k(0aQxU& zykF$=>|+vm@bKZIC(lG&kQpY^N`&Kd3SmykUzMR6w$uPN)>PvgsM)l6%Z7~`c3*lhkGja9 z7g%a4&6wt%-?p}bIGk*pF0o$QsoE`v9va^H5mRT(XeH*m8B_LcJACHu`9E()OdNmg z*m2QHPIRuRA3J*U^31f%#g(z~c2QTMM4dim^7wJ!o-hO21C-I${~K=Ub!*qu5O=X$ z@t!5%9u?Bzlk;RFJkxUgsTKA7|0y|AjDa}v!+V9UK)cg8@>J|9G4p$fDmu%RvYj1sR z-Nvm4j-DXFbdDZZwz951eAK9om6?P`&Yv;m(7GiB$uU-+`Aa0QiukZJVov;M0y{DD zAfKLxNs}6AwJ^V7torCG>@0*8Gh~3$4A9^(^6N{0yVl1=$UTBN=xz{iEk8fs$Wswn zMm9xqrjY^PkWxcH27H8yTBE|&690nY1~?&LMRpY-fx1`Vjz*JTK|d~E2XwDINL;Q3 z!H-Tibj|C}PUMKQaCOGNC(jTMpW(R@6P)mv#)-am=*cNveoYbR|y_1cL%ZKQRI+O&huK>M?>B*ByobV-+Kfl(NG(K5VxMBPvu1FqgHR( z0Dwd;Tnkbg%dMzuq_Q%|5VK%hrJW$`z|63T7%|R5;zZUX$^xRlkXgm_Yi>2I%5;W-RH-H6cxmA%2xT=rmG4=l~w zT&f1rtQNWwYj6Bslfmlu3gGjxz#hR7ua(j3m8fi<%L2Ln%>DEq@EyLSDY{S}P>;YK zpV@+x=I6nH9z;0!wi=Md<~AG@9H9bgAgGbYv6u%n+rXT z8ZR|Hz^BV0CD*|_ae2XdjiiE=85O&e!6*DT#hpQfLV5)5@TnzB`Ku@Yg^!L_tGE@@ zGqU7!$jESHe)878^_KGpd|s>4T#9T( z)GEt;wkCp?OLMTx#(Nmm?a{AQ3XGB>;9tR>^5i*9x?a4X*_gan?!J6wwc31qhoEI8 z#mUYqSy)lEs&3ooq$`&nMv666}x-A>%wz8^v75&tgEnBvsZVfp-)m7DNH*enfFZEkC zZK_*MCv{QcEUjD$-Vw4x*L24cI~p5loF2$L!_}%r@)hla6 z<+FwsE-Vt))z)r1a{K~K0;f%nID7Ww$#WO4&yJcM%_1XGqB*m!o;!2w;J$5&Mw)r!!N|V_!6*D%DcgN&H^Opj_Znrt2Z5+{oppn5RDzZP-)j&>jk6fKk z?hD}o(g1r@(=33E{A}C{kXr`=8^=S-BkiHeVSn@pdgGus-+!o~La^F%h7ZPsx8d%- zvBd{_DQk4Xa6o}Je|h03Y#h3ukQ>x^+<-Wp!6=L9!{~m;Zt|lou;Dk>ENh6sDg~^N z-6TaPS}oD>)=ZwuZcikL=Zy`horcWM1m~nHkfTR?*g8Qn+(bt^7zguhw*bsGG&dFo zpiJ)DX*e$ytvA;DN`K>{IR^S0?^l+uT^O-~AslFJNKV$8H$ZD6U*8bXqsvuQI4EuW zTeP5omZhcH!iMTb*`bPB#-#czHj7{$p+K$7*6-0wt99#d+q7!chW1)|^F|^i5)~1*?r%P9u22zSKwZ21*zUX5 z-|>(5&%QR*W^jG!_r;ek0X$f;Olqe1&l`UB`QXn7fp)}x)s(eYNnGHfu#N`P5vapA zW0*f^M-TI3#zom@;Klk-pbna2ppHmXgy)QQj0t4+GMYTh_tZq@EzV&nOSB&p&CGHp z`$@Z|_gkUHnMyPdn~^O_3ut0S{G<>yzJE_(4lWa54maix`j0{Fl<>f4Z~kQeS^LTV zXHn!Bu$&OZa^N`{xjaA}K{zlRy<13EppNKqw9X&@+U2)C1H*@h{@(pJzJBk4%;C4+ zelzGA`ZuN_WP{*)AfZR#4Mvgv(ll7>1J>#713X&q2J$a&!HzXlB2z`S#HJcHT)qD> z(;bl$#!a2Zq;$f>afA^l(lv7E`ZXxMSvRbyu3o-!)vDF&YU{_25v9&!buM%4*|W7-{|_-c zI%hxYTy%wGD#LUHwD~kC;*yh0Yb5pD((vqsG^70LvPhEca;NltWRboj_Vr;T&Ls^PxuHTlJlAoUzbFq5) zmgASVRhKPp6B>$>X3&8Cl`A%1fA+{`9nr7+Mx@h)E>vcxfA84QHyvTZiM3cHpbRVI8Hu`Sy2MN4TGJ*3^X^5MqfZTx za#4%4%J!9%5SBNP2w(uAv=ey%8eVY2A-Y;zl9NYhWBGAc?H#)()@^@ux~{4i z7n|+o;rb;Blg5PhX-FQgPowjjt6PW&b$CalPJJMso69eOfyO?ij?45l1%G7-Ji4j0zU%6T7oE;(fUl#G`_i!*E{? zYrrTVm!a?;=a43db$rS_m91`w^hMx|-aiqG0R_Ig3eDlDG5ZF|;nSxN{09M#upSM- zqxWm7P=Me7xd?7)7%IqvpHPGJw}C?}$YA{c8h0vN?U*QEn{ z&p*tbDZS|Nq|$tP6XSyyO7M~x!SufVydVw52{$@_*~Bd+tR+_Qm=I()TtX?RM8e}Y zfJ`3?LCd;0Q^~(aojAxCY~kw9F>eeC;n>HxHGp5aZ7`3opL+~{F)7raE$5Ww`+jaP(1$Yq@W=r5UEV|Q zJ~4PTK7>#8kqtX|)X2d@Li-H>YneR*8M%JPvt?1HQh*n@$1S=Z2bL|_N4j>4?HZKU z6@^b%kFULYh%9u=#j94mxtpFALusUE`ZI^ovh3NO92-s$M{W@F8|aQ!phI`a#ANo$ zwYaFHxTn(fK-6M-IeIr@l;lM!tj9;rCkU2qgCLYMiPG;!QGlZAo*A>$NU9ue~>^a{n1 zV{(=poX$vnx*ll<>)60L9eh*=B@dZpR%rsml*^m#b($V8sa=M_3^Y$>PQ7yZG95YSwS`ejDgx6H<4s7T7N8W^eBk`O`R?p( zGp8TeQd*Q4pY{Jz^&a3+mTBMjksg}juI{exQ{Lz8$Mb!=f-AjPXo@IBQ0X0%UIR%e zlbO3rNhZBbdT%5lg;0_ZAS9F!dheh#MNpc6Am8u22KRlxBhxZTCR6VFy07zh{r~^7 zsJ5Z1ILlK|PlKj?jpvS@y?U9T_^S9LLBFaz?gONsjHqjlqk69+AGzmTyuny@7 z(o@TwoL|{+=;ZBC*H61{C1k8~n^%tQuG>h@mD=j+`n@M3ba!F(u44V>wd)ZyQg_;; zlar&L*qr9wOQ#OBHqncH>&_-tg&UjOTN+whcI;?BcIC>AYZuOk-`CyFh&AiNnyLys zo^3m_vT~E7Z0G7Wx179uY{0(lZ3`BNzisKfeeGv%-MqYVHA&5Klv}ZU$#O^S{-q0! zY|V3<3F$6txKML(#x9)yH7P!lANJp;O@+FM!WE*kZHrgIQ&lCg7Oc<9^gBnCEP-Bk zhLNk~X$Ah2f<;>4x&pG6>AEAHEEdD5{8S7E5gD72@ZiqcwWqDQ`RGk+WE7ItJ3rsn za(1*g0pUDxF1Jh9B8|0|_B7S+K6s!um(Lccw3!mJkvF1lV@>1P^|?)R7cQJXyRjl8 z-nD*h*s>F?_2p>}gQJIJ`FJ~1%0x$7)Il9b<+!QM@1!(5a~W4>kyvGAK=qZ8R8u3V zj4=O%IyS&>fFk4C7j{%U#^*rn(S9%;;!Cph%vZhDMh5$8y3`!Hr-Ry`rSxzl`$0i8 z@@bI6#0MzqfSw1OqQ@A~zV7Ik89SyzIGqLec#HAq7$?2}VT4Y8WGD)wBgS9@6)I$p zrS+6M&PGIXfWjPP+$1Ir=cIpPr~5jGBRL>_#_B`lX9**nqwJ%7M~$|*Bt3{UX9rb3 zE#ag6c_^NVMp2~2`qIFh{1zv6FP{W0PC!q>UzPMDLGTU|5RuuyS6-5x$Yf-S1o`-Z z2%O1(QG^Gc<;6T+S}n-hr4)*~Cpewl7BB+u58&HlO>+qW@|dYsk3)Wi%Pw4cJZTxE zTJgI&p+JFX4tPKlSyYNAo4rtOTRC?YxCEz==K?yjCPgCmF=)^A8Vp0&l=m!<$4+}Q za*F5~#k(gvxZx!}W+dJ2FE#qkrREIA#KCj3viaE}*67P7@;pvlK z`57K8{psJte1$g1d&TARXHn7je%?n~A64j51BT(oe;s)8Kz=eF;Sp4+le+K}mk6U0+ z3dv?D^knlUZ;Z`6J>8MU#s_?om5Yq3_;;iVy_s7No?OKh~+(l+>% zn+RYmf=xEoZm+G{SVQM3&^Yj!{CbS6rj;Jw5ANL|%10Vh{~#I7Pp#J9c-b#_VZ1WS z3jtt!Blw3NCDMvLAxVbl^2$w(t%uGmU1dxDVq9)!RHV&{zbGpu&h3oLDXZMFF@Ia_ z=7##Zy}MrBP?(jT!R!uVkcWp%FMM12{*_f$SJl?y!m6p+w1s$`#?7_W1SxOkz8d0u z8X6lK8W^zZc=l%HUqsczI3~T;g#d|ONyfEGy`ocjIqDxS%FE033c`CfR?--7@1et| z=Py6E=VVCeg5}Ey9p2Nji|EkSmiOXx+NJX+ zj~=A8*50=E{d@QBX*+yi?_q8oJbd!R@xzCYE<8(A{yYxT+iJ+MsjDq1&Wq94p4qwk z@P%vN-?;d5M1*PYZI5(C{P^RepRZq75^7~(0gp6Y*&~dkoG-qpD9-UDrDx-Viw2}Y zfFz%p2{+j@U%w_<%r|b_l3-^(U1FN<+`aw7y{9(2ogOOuj|jIXGdY@`!x8J& zOT(FvWtUH#IDY2Bg`_8)Ag9ew-36UUAmJAUZM@vE!t@t=G;V)!s~-Rc!fFx$@B zv1Jort{j>u>K<%Zf`m+3AiklrrON6q0}x}g3>;dbzu;l<9mdJPz;I0RpJX-L7!v{& zErI-YmT+^!U=4^1;w~UVBoec$887}MbXNp@a#lvlr(hcRt`$As@9p$>&mQRy|ANrR z+jvXhj{-qn8l?YZ-VKCvf{N_udo)-OfXKM#k9!LfmzA@PZ-YhB!}*?m--ci)2sk7* zEaRc=k>eMC;m5|4S7n?LM1(6$1`-3yrk@%a$j9Ls1BG>IA1Gf2$zERbmA?pkB+*I7 zJMR1^9V&_l6eJV@zlq1~DZ8H1_oRS_kOzsK%i`fN#hI0D4FEc^#USyqbIWP-mntk< zK(tAYvlB#QApNo0^615GSZ#=W(na#45K$`s;(HL0#d1~&ehdUZ9o`|bSxJ6OKv97D zMklNpaP%(K(Yuj7{)Fa7FbirK#5Vo=zVuFMJ)(MAd$|zq;F#*wGavDfPanN^7np{E zMG&C=1I>PBUwVP}wUO1M3m!80C5R6&rjU_C~!*F@3NtKZPU z@Ad6F&wJ7DTR(7o=sV~`9Sk&hkU3Zb10mZO>N{+xIqWYVeMIaSlM$Ael$~V+W&dyl zKHBguBSwswGS;k7N3sgWWw3UO1++jI;#d7)bYJ}F4Ljm{EV6*FKE4*@5 zC=P@*)JXLHPH>Rlyh2v9fgR#V!X(CowIeI%@GH4XTjIy;RbLpmU>>Lk@rQ*g5g@I# z$CYkq*l;+zFwWT2c;d>LeMg!i4HeE1_D>l`!K9IKMrg5)%TV+9RTv%wj<=*8p zCt9mB9&fJO(z+uz)|t{XyLkLprQ@huw(dA^_5Oof2kIs+Sh0S++jjS7SKY<$FYc*I zSsfBSf990&QjaP%%%`77gEShY^&SQrq&VWR&j`fO$_S!FJ%sY`h6(gxlN3u9G0jRe zfJ^|DREW0PLTO21DFN7FlH8|+J>D6C(r8CVq56$Q*OOILn7?7)xwXdf)0ab6g>o0l?%0`qTkf9Q z(@>d_=r*3+I=Urw{-gOmh-2dVlreC7s?3&;uY#cUKz|D zG3diVAAYFRKE?+IJB)@r&WCg>bUyu5oO2ZP$4SUoAj3kB9!R#jh-6E4S1Gz@Yjgad zK*nq%*i0AY3PCC&Wur9`ejI7Nt^qUr*%=V}L=r-ylqxQf??@B&!0}4wp?_&5 zySS^uK>}X{3;~2RZwhoQAH@v|Ie!K`*I~ z17VN#?Zj@j(b^b0My+6UPf(w+Uv6k*9dWJ6zZ8FU) z8)rQ`AV+4ZdS0jey!MWKD+n4>SO93EnU?cqKYJlQQDTq#sw22cy^@I&qbJyq zK^c=@qns5wj{S{|MGRb2y6SMj0>ZzuL2;;1k{+yqICh06tF}Y}#ObB==WiCR3e}8I zR^HUnLS3RT)D{H@^8N=ivaZjdTD@CC$_Wu#CD z$K#e_C6T|EKh>gMkCgsdSh%EWN6#Z`>?|-^q}JkQbZlH~dVbl~#(hmEBBQmnsaaGd z1!Xz5Gpt3R%HLYQq_4GHUVU-b){SLl`LVGD3)*%z)Rm@3-Kwi=*t>h+#{8_> z9sB3cJN)&LLx+!_I(_cSg)_&F@sZMhF!bh6w#+TfJ2n-kGAWd~w2Zp42|#`nZ8oR> zT{f7ertRAs>+82kUt8on)m0nI$zv^qKr+u3`xfNeGZemIb9-AZcS?tN{0+AjYXVGsY|r*&)A{iv6>?x-%xNl%Ky5Nwz+ z&h=pz545&5)Rh+$mu+mQuPDl6xt|$+Zccv9w~=`}<}IeN@V0V-RrK|tD=r=1U6ZX# zx?4y{&cAQ?cgOJ`+ap-ds{3*h5Q3Xi%|h#z#vMYJT-=5U*Q(=1&IY=$O$1!auWL+`=xxjRm-zK$zF(YMMzIVYLZ*PtU^70 zgt}-`teXGU6$&Fz=9%iYPR*q~^{4nE z0>g&Y!}qZ?+Im7QMvHWRQT>?2^#m!pLvY9Q4pe9OFZf=6{;y)3c>&c?97n+x9k&E)8@pAID!fqlfEG(uy zI^L{}@TbjG0Tct=W&p0;EU*V#?CvJf{GeE@(kpD`MrCIZ4@gH|*~SXJ(xS{<7}R*N zGNK6v!dF$jdF%GpJqPz4M9{M&EZnMFLf3>ZJ;O1qm9D*Q?Po4rydEB*>uXnBy?ldX z*B$sr=xyGCAFp1yaQx7LJuR{d4H!Cbux;-i;Lz^fEqnH~?%2`LxaZKE-SwNwDmHE` zEZQ)sv|mA9dR(OSyQW=jCy(#jx&7=dmRwOsJwZFce)Uf ztdzv$_*iDfn#!2*F0;~is+(+IY76|G@jw;`YQ6)4qyN^8YcL+C;4Uv~b?sk6t)Xg(l>=fHj-SNs0`xYza_{C2H9{?pGOJccDSWcmDW=FHr^ zW7{SI>ZB8wLOgQp5y%691jcLGe-zMz4mwjPJcEp|=-&f(bV!d6HZDC{byQ~%;P`Bc z;?L0$!UOhVPvTt*@a|Qbj@(64n8%-e{Wk-oOSC$X>U7T2o(7P2^BBq#_~?-YZt0J@ ziXI3*7nh3Dz-&4x)FV=#pMQ4#c9 zhA_|$1n2>e%VX0X-5apOztf%sK4nn(mC+N#<{kK2?!f*krx&Pq<@$h{YGU9_^CW;$aoB$E; zD3eyNp2^S}U7c0CF0;1{vSaT<7*C(Rj(&k&JB6lFQl-&4YN0-qUg(Mh{Rj}Eb$ahN z`t;#${-pPS0iqP@Gx)Q9eW=g=EKsS>pb;a7LxK7Ycz?wE1E-Ac#{;u|??!Lb2Qg4E zB#0Zm35O0)H^D+YWGC)YN+K@py=~mnkr?NGANJ$X`{+GgL=XK7u&39+58mtF?}PDE z$9?{O-vRQvAY8(T%y<0|OX<8P#y|9T0wmFzBxkfkF@!n4-Hn)3&Vk;N%>MS9-MTT$ z?>3Fqc+mn17z#6mM>Xwy519}G?;7upPMX0XCUOoEJA9RWoUquDYqn&UIq_}W(@ zfHi5Xj?zS**F{WWln3*LJTUq9mla>Lcit88-0&mVkRT*3K|`3n1Py6pI*GAjtT(Mkqjd9%7s&0wGh!fc@RuSNaD=r(VIpmc zMTvyI{(6zQ`M|^dMQc&EFGf&^>uCDS=~IA1b>h0+wq$B0?ELyUF z!ie{RcL6j(kaEZ>QJ$=&j|@G&lCz4cHt#xqixk6UQz* zdSH3{?Y7Lq=H`-53q1O&^x3ul4 z-%?v%f>tztI~@-=lGE_Q6B`q0ciJOk;-c(UEwQ{d1&F+UE$Ov+_iT5MRWY;pWm{QM zQPu!jEIE^kz9`7bW0|GAu4&)ph{vaQAAYVyZ*Hi}%PZTuIorN&McCq5(ryAFk0Y?sb_yVmviNz(QsM~`s8-CSLn6KOn6 zs_L?nd1e$<$kYBz(eA$PmBJT|y+b2$& z^wn1r#_RBAC#(K{7&mU*mxNDE7(Zq4%7qK3jFU3nM>wh=C691_Ls_43@6{6+Zi)mML2Vy;SzZMn{js|FrzIKq>A(`}(H{eWbY`fJ~n@Ac1?P1rg zA+#QS`-!8-e`w{^-p1PB0Te)JGf8W{umlbqisNWyh_Uhm@podtRl-Upy-~4=p3H)Z zO${x_zrCkr)f`!ItekcI1W#_wuJ(hwcka7zcKOA_6)8FO+Y0hC<6L&)=4nvMJjlYF zP^v{Q!NKK4PcM>3=%t=dc<$1fvzITNINILYys4^k>jBn(u%x6Q z+mlwjrJ=}^jHn+mN#6dicWz8gNN``@wy~nJG&j?eQ{DRYzFoAeJb2{z@naWPUO9gB z(!Dj-v?QEG|CXFrkWQ?LxqfxXiX{t$0*Q23iDZz4$s&_B^?x>E>DubWKs7aV@j?Iu z2Fhb5E>$B4NX7OT1s2ecc(?#RH12@}p#dr`Ei2dQwOOQMJ);@HXYl|!bn)R(xaC4XVV z#YVx_y-Z?^#N)+w&p7%r(TBlPdkKVS4Gk^U7!f)EuYcDt8tnXb@UMo_uOpSR?4$rN zU4{Ah3(VC>lQ2>{v!`7KM$!q~w&8f9H)2~q{?$O1PS7$2?z1eKT?vL5OpoE{J!-S&!AswTOhJc(eX+K=K# zkLalCViDJ%?g9EB?fG9qd=M%qBbO}oKlzol_NR~^x$V7_3Qd3d=a;{NT|+80CFDUW zfQ`h8HOzb#s2=Gz2Smw~zR#54CbgGtAs&N&=!~F-Vs+ha3s9g(r7A;s{HfuvbLdoX zx>I-A06iMous6Ko9k>^27&ee(1}#sYf;TT0NDAG@rP z`zD-6P><}epdJuU2|KRrx;n6@gTPyM+cKr&(aT4GLd5mtB_AkeY8%>*UOB#h3!z># zV$V)Zpl6~U@#5D<5(9JhHYDNtwd-)6J3l>m^!QiiU^LM%r9#y-s_cQh|K9fNa2}P` zlS@~WEj#uey|BU>nLaKnicf~tx2d^hWraC~wbhe1SEM*&3yb)`(>!R&`m!nhPM-zw zfTlPz*OWY=ni_yLYJUmUsS-YSmpNoJWDHN?8s@3QCDuP zT4PzW;_6j8R0%`5{Ox60Tb)0Pt7~8D?tO>b53tJ`N{J1=f`YRzdgJ6!_DQFFW-6oZ0-6;3&6>h zn3|CW^hjjjXSaZDdd_O%B+@r->^V+QUJnK#nuH|3#3GI^2ltluem=69;SA)EOE% z=~!tAugC2P@d=c5ohWkI#o=ieX7tVh&Zzm4ela#&;!biXur3A%A&?n+0wbJcQ1p&P&M z-Bq-*>mOFUO=9i(2WS1=U}c0t#gfz`8d#Iuv$L=o*p0|@dPcvbHFh$1Gy;zW!VsgZ zK~caW#Nzae?CXb{OS&DuN`OxP0q?#4!Kkt02J^#6R5zd&txvS~PrCLUfT2Rsno&ar zAfM5D{dK^wK4QKaD1XXN28^CNZOXzqgNA=KtgqR}+BaPxntuHqXm)Hw0aSp@xmOVXJiipCl{;p{YDJ^eDI)A6Q_*%pl`oEc*lHu2$Oo(U%YIQ|L{Y%WU7Ga zcTCt!2iVO2T^@-?!sl&ww*X-=(;YLcoPB3PVLHqL!ywlYy^c9MU=CCBImTQcTw8%K zmv2O<6SzR;W0LwY|1E?q%*UnN@3nYIFZc_x9eJ*p+Hh_8^fL+LiA1CmJaB;WY<*yS z*m;m>5C#t#EJhTaI|9`mA4U!e7(95$kRkS=)?wyHZ+`p%B` zSRWz!95H8UBel<7=T1>Tj2a~%hB_DT0kvMhSeE}WcxZILK}H~Do`g(Db_gYjEc)v> zE~vgpm=F*%eb(2DjMBSiOtT|AG{j^Xs;cXC!2st_w0RmzoY-GE{rRHp?-G2Co-=enOw?N{$lXS!J#_ZUr=(s3cWY{FuMZ`u$gsxg=*F#q<ExYv$}3({MSzATJc+ER-u099;bvl8Z!H)mDXZ%tFM@t;xNKoBk!~iT@o@pji?&6ZVl@>hVi{_EW< zM|Rc}r^Py7T-lKqZ=HcyW1OU}kigJIu|lAsY_q7!-h{m<)JUF`_q8HMVjmbhSR15) zUvz|R9S6S0*MI@+K-vIbv1(cSMPbu&;{Nm%+{})z^)S8(mcl_!`ds>4O9kOOYqmDa zcjhb;SEfdLEz|2P@E6^MkQj%zA$gE6l?fAQM+K3ICDX&WSO9(?p45z8%jnvZ0$_cTA(*bufT^Y@)Q_GQaTslASL|m?yhkjLOX6u_qYg z{RQR32?ga5CwP=nMo5b9lxYU5-f$E|L?%zLGuVY(o0&5gFIzq*ezLzvM@&aTN_ zrvMOywM?G9c&;dG^ojpE^=nDLn52|QP?f2REn%Vh`dQzsn9Fw#>L(gP32lMv&{a%i zJd>x06i5A)HnF3;3+la~7Z@%y@RFg-X4-gzE@S#Q+gNSfYbbB#%vd;m+BeHq&YKFc z;(inQ5=#N5#Db$Wul~j@UaP!MeMc}a^hvXO{3*b&5>TF`{u8zMus|KC^z8H$(KGB! zg9&5Jks?kLOGozWl(8&-qHGt@4JX7l1(Bb}jy2&c!7`+Isd870r@S)W4S7f4OvDi( zxX~v^5uan5W=ZBJADQ@ZnulFaXGS%%(J-@JP#D~d-CpS*DW{*x!yFI_%+>cp|LCk`Gue(=Z<+QWW( z6gf*pb=}T0?VC3gmux`clbMl5i~=XUWJ76rT|<#WdeqAiM(Iwxm;uv~hUZ9nLTOX~ z%rb-MYN%3>)l^YHA*%tX=((@4`3dOb0S)q7} zTDp*sx>3O zieaEZEP)T!I7h4xclgk`$#`j@0<&Ox!ujGud@=2(%y>Wk*hsJ^`X(isN&fU~OOE=) z7~%M|lah9_?8J2vMk;NzzZ^s&NBfQ$?HuDTv_-0LV2h^gRMF0uK!G^1u@12ohz*Ir z8TgGMJ+XO;qG6G9QespRZKg~W8G;r5k;Y9BDv9}?ma9wcXE;=~b29CU_tXV#xFBH4q96ct1xaTTU78bI~yqpTOIjC%S+f9mtA@iZ6+Ls|8d(BuFr zjln$;0aQHJh)8Qk&=609 z`iqM|-2@Xxq{W&pkxVgfiUx^yNG|?KVdTw3(e#=ekzi!< z5z09u!^jLkrIM4Qqx001dae-PRG?REW0Iev0bU#%wDKUY@2FB&HYy^qkgaTMxv(Pi z`1U%nDU}xGrbOzvq@H16#XL}6Wmn4{PL@X@I%qq=&YtmrkcDsHM-02 z9LoTlmWcqow!Zn;h2_?S&qgM?_zlD1ip#33Evpcj%%rlE=onAOvVt7kV7!)e&C^LX zK{;eH(=?0TDP~lvsN~6QX>Jf1O_gd|1=_Bv-n4albNjv>+qc$YuG)l(Q0PlVrCAXK z5*90!R@sR=tAs7_hoU2rzpmNR)ZDU*N}y$LYjf+7#VgMoKL^oWxz4(7)m0_1X@|QU zN8CvC+tr&lZe6)}g~QSLOBc_aIe+TxS$Y9nJh2DXu)DSG#KG1kB6ynWH&bEMlG?nL zE?X5f8%qjuGc)rFIQFE)Ijo^~?mztY(C+5l1Dm$hH|#xo?WdogU_3*(3OtPX@%sms zh_EoLrW;WSS=rPb({ebWqsX zulqn$0&d(8$Z}n~5q$I3_qT3guQIL$UdJ$X{kn1UBMCv4B;?yaO7o^WckbN2{nP#X z51+_}`}~FO;`ofV!|60}cC8Eh@y8$6Si-NJ`|i>Sl1kg!4jeps6zf=P%Wl2-KXqYZ#J* zW(Ubpn+^P*sKr;p%6vFh>*!v6oVvrGw*g*ZKw6NZuqWd~0;Spjp}weBo*BPd5zILr z`-#4VSRI4-8-HOY_WQ&dJMPh_{GP-cYxnU*J%FkND4C3@t{?Ereh(i$(jIm|HY3s* z>0kaT_lW5VtR?8>k@;B1X$hPa2>Yw?j7EA$@YEoHaOO9MFc$ca1ZUyz^y+0y!=LAD zM6sKLTIHlUUguL4+5&6gGvdB+lf0iM6lR z&&}BfflP<@hrajWxEZ5A>}#Nf`M+#a{Hn9JAHQ#imWIYweS-!LLe=VSFqPpqp>=Vd;@7uqxy?21v zuJA?$($PwZaU|@A+REL7K3ABbK4BGh(8r^Oy#MjA_lCSDG0gnXL=a;IFX;f6cmCmi zM-wSbWw$QWLoZM0TcT!kX6ikIFCi;4wOJizi@rt9#%zD_RY-dhRlTv4F8&{FerJfn zd<^13TKLu%qs@Y@%*A{45{-f6{eXrXydF^q>3xHMQ(no7*579Uk{4`Ia()X=_2FRZ z$w7k#4<1Ss$k2~J8VY;id-Fq@n8RUAX<9BfUApw#963^##b#}cHuiNXa;2gL!U%mC_a(Ky{i^_qBvHOd3upSd zm{fq2SvqyxP$~ArIx=I{+(kz2_V$yxuC>;Pu$9>T=gyunZQ73M(|2rdMEBCN4+TD_ z{cS`rK(||Vx9W0%lT;Jzp63Nt2U)&k_h7!|I)U%}f4<3;I;*N}D z`k7Pgi`8e58>B-ATfk)3bSdQNyXn7q*v{G`5_4>~OVh+T@8(&C9K*sv=9Q7#Pvi)Vlw`v9?{C zYqo4baENEDvN$iRXnR$ho1=O{=EiKW3I}^$@>)8btS?H62xIoUWT99lzFzS0!bRb> zbq`ma*w@@xQ&F0mn~8lOzj8xKDW8qhjpHZISiEXwXhdqoX^S4^w%xOQH>u7{%q(jpRY8ot10J0c!@d#rg= zVP<-)<-(Sdtfk|>95-%kN8v9bj1UN89re4dPY1w=&})PWgp!t4UidP2kfb3SA2{CE zRYH!@-`&p&a`EjApv9iq3#M!I^v2`(vER~9Xl`dJYW8FVFznpsEI)R2$IEg<8caJV zIDDpm=@ySM>!B9WGo5 zGM0onrI}w(*fjP<$q&62Pm-h>!$B+)&QRZcI?xl$fcVW_~?$_R953 zW`Sf>*71~hD5^H~Z_>SL#>`n$U@Sb>Z&oc@Fn6kg5^~SfxeHe<2S|oT+80bg2$KYW z>L}0xRSd2v6ZMPllu7Xug80+P^tp0?p)gl6h`7FZbDVHP6nL}glQwPEycttx&73rS zGOjKfM$xR;2lV6`AlGsBrWmMAR}- zSQSrRImD*ToH1>x+(Ab#kc(209=T@v- zW(nO{U0M2XHTzGUY)!J;2}Vc3%wIEEAr~QvM&eY!dd%PB0W_)U1$9+uD3X(J z*-^K-s<5c6{@|g5N02MYF=Oenm7uEd^^W+mX){?R+1Z#NVsRp&;b_9u7$qRG8ngwU zn}lUeol1~HeLV^m#3!g%DmKtxM&XuREw6)j@ff#~S=^z7MetIr0;)xeay{@3rHU*g zi-`%?vUv;oQ0Xn+(%Q0Re-u<9+9Ah%o; zj$AB*vdB?RsLK*_>7Q7AP*NQcurLrZ*Fmf^!!XRx1Q)A3Ek!=ySh$#SZ=Mhr9=)`ZA-T0RNQ;2C>cNpa;vvIXrg8B8Cwg6MuzShi*5WBrW9Sqp+0zLh@5x z(htUBNuF1Rk zoRq>i0o~H+`QBByn3r}5M#;=Dv%3Bc?WtL*TJx!3{Q#$0u}_J;^z}0KX6ZBKy)G*Q zn{F`6Z5Vp`d3R~?@CZ_=sjh1}c;akp1AF+Us?z+lI46mX@F5yeeZS>4-`usvbwAun_FKN+-`2ig zAYcV_a_0`n?9R{NvIkF}LVTWEoi6dP7z6_lODXykrr*m5D?ZeI=n&y_ZEbD)F=_$a zn|JNpxqHu{gGVo{j&R1($Y%I32ZEMW%a<%&IJaf{wry2q97yEz)C*rxj3qyhIDa85 z2BYv_z$*+uNSajYRgzi|5zZ>sB|F1_Rki&yT(5#5*kOb}@|FjwF&3d zm72x*JV^9sfja%4`IH`CVkYN4ZkPV4+NMIJ=h4xb9S#=aCi~P6e&&=n(zdd*SrlD%HN05|G`C-E- z1kKg`WtPIpjHZ_qM8)NZv_}0-QJNyIF&b$~rBW$EyaD#MkssyxTDdj|07z8CfXMqvi(E7dJx36@ieh-o{eCT`c5BX>?{KD*G>uvVY zyvxB{6Ef5HH5dsb14Ph&;FvjI4}EW--iNkQefkd@J^cOm27fwl)r3z55BdOYMgZ_Y znosFa7Q$7uzQI6|{$fUoge*vds%ReFPPOANLYbGu5-*KoAJiV-_QsA+t7#%z>BZ1oN1@;7C#B^!FWr#m5}@ zuhQh{gF(ZF4=16Ua&GvDkB1I}V+;Xo3>j=6qz(S#5Sn)XUgrH1d2|ut@v$TXlMDQb z_NjG*_GwoN2r6I*2kR`O@k}_#gR!DN=`8qTl-!B=M<U+E zmf2*P5qO0qZzgY^wE5Mlvhp%%yEp+9fJICH;$JaP&`aD>)OzT`)pHl`T+CTSILw#m zH29d&6a@(Ppi8?>+o!(`1Dk=+UiR!p?;?(VxW{tlzk)q@54=m%-r`IPw}7D5gGbh` zUkCM2W*@;Gj5^-Kag>{>xCm~flR-v)1&7Pi$1dHza?zDkQkp_wOlBVL;>xDR!t6u` zjS#gfb!D5%6A=pv^N{}vNkSFBXc@uKTJ9mE_!@^R+tb?@57d_zq{Qg29<32pmwKlxGOn$$PGGmx5S(~+D^w*fs2G#ggHhe$3Y z7{+%3L_?Y#b(LM>_p|IBIs_tV{A;q~sGWuVMfMhSS`x@&V91$_9moIgf1fF zB5CjRcUn97ik2;V<709=CQ!8wnQ zpOAtrg#}>f%A|>IasBX50;H~=>?D?!Hr-Qgn15cAnvD{F`uuNZ&is1**VC~B5&BDf zt(BMPnrxpUF}8u?6q>?o{g27hrZ2JB=FUK&!ehZWrhci7%Rb&a(`L=2Jn=)9}OSO21hwn&la$XqpsexzvF~l3+yea7}UeSptPy~nw^9Fot z3#<$6@NVuCaw>y~>}%Qz=khlIj*2r2Q&uOp_#p zl3~%oe#N9cH8vrRWWjZ-WX!{(w_@q}b2R0qU&LkFfL^+I34!$Gt5+{Ev%DfT?$YHU zA*=P!ufr4<5w7eMsu4@K>x|rzs)oZiLnEAN@i8!pNLIdLJjL6NUP3;&(h=UWv1)V6 z`86x|rnwz1>K~~wXl)S%y7hQai_mEVh=DSIK!J?>(!yMxU6P*guknfT@&lH{5zD8t zvXz{~Z%GBl1k{KOR`L}jCt8d@rDu#I&LXuiZD=yGa*JvAUB02d?Z;y$_tfLYsjRK7 z*|Le8liE$q&F!d7j_lg8Ygfzuz55Oy*?0Wt!Toy=Fm-Il_`Y+yNWZsluCA%7Dx*n9>g!y4N36{Ihlz(cS;Hy1%qYXn$?TXTw-)zbY|hHBYV5F?cTX_&r!iwIJJzW z|6}=b4oJ3m^2)Ytso!0ng-;ZPA}nN~WZuf*3qoMb_BM-~sn7Ud0z}wz#Lz>m3vry~ zOi)oaBla!qa99wt$+U>9lJGVB~mm}(iKk-iUYT*P- z^?_9>Idv!2C2X5ZAHddzn&R|?Xx*~9jeyIH^?1nSxU)iE-UZ!>P!NuELhP3QRbU8r zA+ljJ77njSh(aOy4BK>bTJThnweea_{Dans<^*D%6z_#)e&JyM^_9+Tnpb$@H!3H` zk=LV&EZ>aaJ5VxNNZYi0s2m za3uQk8ettBrT!lw$={#Ej_|`3sC{au_fp&_-_fIDSjzEZwi7kR_jC4mC+RIV8aYYl zZ+o0msZ$&Y9eAhIDN#%61e*aK2G>O~ASSx!Pl7*k3i2{DGIJ|y$au{ZPmss1R4(?E&R!%Uf0LSGN5VtX zZXuC6_9%==@{V$jCydyLB^6n!K%tTDXw&^?&}KqPIxjpUh5M7!Gd!faNSK4&8Hu=G z7Hor5uUc7w|06yhDh^q?PzVGFg5=+ySpn&ju82UjTua5Fd*eKRlcqP+Fd{4A3yF#J zebJwx&-d0*#6Unj?9V$uJow^dzVPG9{LNotG|U%nLK1vv#$;H7_#aF^ARhiwuj<;H zJPB4{ki`l6h>UW%Tv4PAQw5oU^rLYjZiLk+%Gy?qHhL>l}HwprTA`s1MV@D1wEiI!RlTl{dpqB?? zbg8IN<`%)4RVXw#2_UGck^EbNnl{lix~jCeAU&3mmSWS?tw0`?8N!=FnDG;QBu}17 z+vms6$#saZL?Dpit;cmDuh+@mFJc%z;MBB??1IvbgtISP7OFE@0}OG{*+kYO+OX=^wEBW#{Gi$**wXeWf)uX01h#$>zhF!b%9l3Dq z#NqudJ6Zc|X+dl*5oAY?ow@?-ICA(X*|Wz_oIHK}?AcStPo6q+=Je?c7tS3!a_B(& z!Gn7R0qoeW%#j473y0y2t0+U!CkZSC`2s=GQsN^mzdX0vr1j3T2S5D%?spe1+;~F# zkli4IjH3$$eZ&zGC)_#~Y` z-h1rI>WG*TBSw5oE8B>*aQVdx_UveE*eVB^l2T>s@k83E6p^v*Kk|8~qdd_G*0n$A00%)!!byJ^@aO^5!}+K)Y7%aMK)7;0 z@&kO>fAM`xbEZJjSsp)m;zViY_v{(wpIepx}^O2nq-zhe-MRAdMkcz}t*xD>!glh5q9dK(>E8Vv`Fe*N+B*g*E7TY7 z0ubyy0);d5?2!l`ftU1(?%A;y7y=N1Z6^`OjwZY$vv*XVPJj}i1*g7HjsNoU*1&-S z27)u*8#J*0fcHOq|3h#|-@b@F`nvkq04MrO8HvtqdNL{X2b5&s7ZXMd>Cb(C?BD;x zj|UBYZ_q~{e=%yvdjtFP$8Ibwn!+X`y3qOs;REW=!)kpx%3~wR=+l=6_W7qqg`VH) zfw?ddi~NVgsPyRBoAlie2aTID|FhY1zFD|n%ItA{d-d+8vV-aM&5I^!CF)&=GVwUy ziS8aOViKVyaoqz{nG@ID2UWjymOj&oOQ(x0w#dS>T7uSOIhtNeGPTy{2Q#ylDfI$< zekV1#o-ZZ(0&StsA`OHRDDQ`~tO^45$Stj}LE~)Kfd9>#hhqnr^5KVrhYkOTq+BHl zpethmRaT!N7TTF?tF5ya8Gc z9B7yB)RZBt=`ABPcU9;bmO`o8O*+2CC8lN;RyXZGckcyzj%36~Se zoVAe`3peaLeEMcl&LG6K`kANTDJ;C0sg^gh!wOS-*B2(SV2t zSAubulJ?7=QQD9uz&*^DCDmZ@VtwHoiv+2>tb$m2gV*pk(t3oNNN%nQTc?=`d8vu1 z<-2PtQX(C?Nmtp_%=|PiimD5$s^zfDK*vP4xVpZgw6Zvt_DZEi<)!%m*rq5~;FgIkRWZq3ew_x1xjb)XA@nr@1im z*{>v2m(Ob~{)jifnlyRZl8mNpTZ^(B_Ru*~Cy4?>z=}4qGd7nILRN-z#y9@)TWn6U zHL>N$sxb~tbT-VaSCU*zj3+ORPz4d;XyF=4Lh%)dfrr!;u6X;_Gq?x`VmM>PnI)WP zsf46hil;kx3Voys%W4i-e!6j>wf!;$?!}w89ck%><-~U7xnDfFe(3bwd#Cm`Z%lO> z#v0YnaFIyH7q46_b;^RpArT2J5jDrJ-uUVMtqW~$ROcm|w(GqO`xOcYuqvJ!{b zKEQ$Yk;HF|`qM};FG>HUk3V8hQIe9uyt+a9ht>~F>^z;xQ=xy^Ky~3Dd3V47^jZNj zcJ;N3!bAtR%2;9bG8PF}5fVDrAAQMOZH{xc!ETS8gQZm}C*vh#k#t%B3DG1jLL+?$ z+(<>v5#$9aB&SFVX;OK`>Ef8wfnSt{*l+(`e>;%NzyBRY39a9_X}s+(;Z0^YuywaQ z&~;MxAQ_q&pLLb(VOJsuhw9g4_X3qT2~A0x5G9Hcffr&CGGQsfa1W7pz%~5krisS~ zSmKyUziM_@>Fcab{e#MYnn7UpjOjCG&7L`%hH_J#B!rk#q@OKRWXj~YDgOx<;j!ew zrmtMJ5c{P3gdb0xI&0qS*)!(Mo4;bo+!-JT-T`?hfG|^>lRL_#%H|ImIneh zfg}2gE-x_)!Z~b~xsZMN)Yl>Ke1>zXDo#G}U948}gJ5*_? zdMS>VF-k38cJ=Ca-(5oy9Rfc6?&1aM(0TcasO?00vKrUq+I10D-7d8V!Z6W)?7aM>3T+bpD^|PRg!2zjFEcBjKJkhYIGEG&b))waXJ930;XTJSB9;9Z8L!O`?j- z^_i`KPq-$6oCR?}vj`nnt4@e#hD)w1Rco@;dr6`_QOXi#bSfm}caspS-&8xapw;3n zqNAsLNJ>e|$}iklUsGAT>%^XB8a|^$Dc?w6kGiT&+nV<6*na?{XmbnVlU+^C2WWr2 zch~kEm_~Q+-@B`!Zc9z&#`3Dhrh^A+igLv&kxn}qppU$Prjbk(3=%t;OGnt&)6bf5 zX<5kXkmVsOm-SdE-mJw-I6x^dCXAiWZrSpXb@7Gyg;^P~F{X$TPZ}GWXvS3E(6nPmQ&V&E-nN4m*FU&>;q0X!tTEP`ckWuFq7ssz zT5ijoTjviR|MvQ^eXR|Z(47q4d&OL0V`8P3IUjvYQf66OSZeu}dRpFA7bU$OWrVG| zwWqYCtjHaX;!wcL3j1;!w8dQVSM>(Sm@Uc^87hS=@j7RcBR4~5aMZ!K=Hwvn*ul`` zn1IVs8{bKo3w_Bz!|dd;gd@F_g5WJs&m0}|ogPk!2+G#H9iEetq7nm? zeI_O$NH#GTfgAA$-HOCuBRL`D!EzSwzn&2E(rXi$M8F6+CJEB<+VQFLGy6z$l>g{a zqejJ!)`@P48xzGqqq+U4DGZz&rgT=KT~K^r99tb#M}iOMU>=RPEP*s$KVXiL6q)QR zIk-MR7eAJ3on&}RloR3^d#W@vk~ox9hsU4IjKCBnAMwdB5W|`2!3dnF^2 z`~u~iVA#quGrI7j41OxuDI+72-`6=CXjFm(x$tO)r(=3y3Em4)LTH|@ARC||EpT#+ z3n4Gu6+qoAf)smdCvJ%JL{3`jTl|51%e%oBb(LaAiAll|5<9(oeeycBgg>yea$*;R zKgmgg6#SxN+&Tc}57F_g1;ta$CwWpx$xh2i*4@F8R4h`on9e{}bzvI1LmU7Bigy?k ztoVCyoKXMJR7rD*3`OvWnn_sk1(3jCT3!{bAW(&-*{Dkh-F%hHU&ZOe_fo@Y&s1-0 zzA;I^3|0h&zlnO$!TWdIcD!&}UbZYTBYcoryut`3|A{@D^&quc?4!i~!2*Yvz##AM zh-FpRHsLekdG>*3kHiKuc!l!nO%A#m6;m?RPczo(YI=&R%NZW z!zccwdLywVmF0z?xXdJal%t9v>L$u%@YXSHBleZ|MASDC5aQpSJbuc%K!0oobkU+P zhh~BXens%hU<-dq&&+1Xtf}AGcIq;-yfB&etqQm3u9WI2lQvh(STS>BN-BtETUAyD z^o69WJ^50VXXO+WZQywnV(lp{C0M1BFz@op!JE+1F&Zg_i2^Vc=%^W>YBoVu>d?>B zRLdZSo#&+(MUfi0r~xo-Qc@9Plf^5hqZ@0}&X%^;-Fpt6KGF_LVSL-QyLDgN-qwBX z2ag{)bq2TUF**PpK79DdNg~XTA3c2Z1cugAr^wHhHQLs_?d?Yow>HtKsSYP(U9Bkm zDk|u1LCXhp7lrwGP?$VVVq%QTFdS}1SV?mvY2i_$SARpt`u z9yL}ny9Lbv8rc?fM`u;9dodT=bb#8FH8x;HVIDuakDdL;AAZojx7{+nUyTFnHqZsW zB4@r3ncPKea_8=Czzjd~@)`LlKZL&g^z)B+eE0=iLh9EaMm&G^@ZN)8EZTZV#9E%O zjp=weNA%OjPhGrx`pBU}G)QXS*NVrfnd2WArg_J9t?|D%!Q;=b)FRnjW1{Rfj%!O6 zo!*a7r=f;VvV^yVr1nC+phG^$pHnVUlsB{a#AQGd3L}Gwj2axOg*|p=Ok`k?At460 zkA`McC68#4R#=SPVYM4(puj(rP*6|tzC@r$F@Q0S-|WvjtKC>=DqqG^{fW<0jkxSL z;3%T5dIVdMt4G3GXq?mq6eIc+@0Iq@pC4fI2~xlE%OmG62DkYWemU}&AYnS3B_-bShkw%B{(dj*P@ zr+2R$BpC!mA|#;$w!#UNHT|4@|BXu_H2nv>_g;U(QRK`8chGi3n1gR0@%bpP58fV? zV{3?JMc9eBgFYPd<**M1@Q8Y!*ZTH<@52EDS*50g8h}=XFa+Ozuo%&S1oj^&4{P>S zjv)z8;nbU8T^B@#7TUf0ka|m60@frh|JbwlfWH0SpEN0KwPnW4$s-4k7}{5p{zyIT zJ)G}Gk#Vch>4-33>2_qN9;)d6@03E_nMBQ0XC@i5W-_N@z9E-fN6xX&rDX~V4OY3B zd-p)x-K7T%rYDoJo=m-aIu>;9xv=NLMLiex!puWMZ|Q3UfUyFUXb9EcIY1xS71s{j zMfq`teKdRoI)pB&Ql^Wwh!F;BgZu$4LmWemA^uzs(dlvBQTU9KungBf(ME^>{!^BG z@RfqnUJ!)<*@&ccaIkYJF7-5NcWPc`S8EppX|yOX;Z8ETU+kb87(5 zh4OB)ZHjZMWg7M8?3pv?@Jbg;Hlv6=RxDrq&Ai1cDcG5(iJebai!A7JhO3B4XZezO zM~_gM96WeXe#l$0Q03P`Mi8)QB0ERGB9(jPmgYkjzJID4k(YEWorDp9#5P*B76;)N2_h!>s+T9>(<94#^>j`VfkTTj5Xm91B@}@5l&rOx0bk& z5N*XPE3xY^WfpL+3 zlEPg0L3R@1Vx~Jjc~kr2$K`3oo44+0sAhR7i>dR*nvKPI#ifNgd5Ei-66NG&q{O=! z;b9a}84U;A*0r#p@O9zjhb%)l!@Bo3OBR3q^_)3W_0wm}WLpx`2+pXflV7Elo%q%G z3Dmw5nXO`XkTx*?ecTscO`Ky*jWa?P&zn7c@edq0$yN`FY9eM5j+ZRvn%ui3;9EZMXg+wK6 z^EJ}wDt6h*^@%wD1r{Q@6t|YfO4v zVs4RRiIFXP_e400^l?JH^-JjvOwt@>8EH_v69~N&8H?>X$1ulG+YmKabZ!PR7Qrh) z?66#^v| zEbz|Hn3n-zaiD9VR}qMX!-OVb^TKoijf5UTKo&glMAnm5;Vv$^rak$j_aCmOdc#(J z!QZOyqr$>93KtyC<*BD!ea)u=dFMJ^elSp1ao9^h?*Fz%$}Vk z1w(UkF>66+=AmN9HZMynT0B^$IMJ#|`A*g%XLzv4Ga|yBlqEr7ATod%gGSc*V3JT; zRj-YUjSe>!KC0T_oNhuD;w_kkr&lFGo zo6o#=KrrkUOThtgtX6mGIk>)zo>qAS*X7GlQ-}_4VbS8*ZlapIi zSyoC$EKg7faD{>$De=+4hbdN>S<=7Phf9i-31D(TWWrzNDl9UH?lurD^Z$qdO3HUP zk)%A#6uG``_l~OF`y0+&|KgjIEytKSUp{x3h8-v%X~%GaiDT#CqX*mC4)X3}2XW)u zzYko2QOMb=d&&#>Y6V5xb5Lj#Hn|)sNy%gwe!{9{_)6TeMQyeusLc;-5_b?rda1lx z?OF3@*m;60H!ICdN!q$uilF2Sra^*`1lN+F#X=H{=->BXH`&n_9_(l*mH?RS-nq-M z)7%wG0ueEPEh+36AtO?i(;%s9Vhz8D-=D*l2!mEb2SlE7=s;WBful#IjrH-f=da)T z^2Vj^3vYe!eVY38^;d6w`hJpa%g67$_44_yV@Eo#z4^wuQ?2!T%Zl=4@-N}Xo38hBLnIHwXyce^N2nsm#4+Vz4nPbL z2`y0!5v2eVjN(w?20{>wB55c_yf0S+lA`j%B3!GL)l&L<79X;%T zK}1WLbTYzP#l!zLY0j+pV0T`yu7SbXBuu0#s28?xcS25_qD>JMNnv4jfgNx{J0(%vgADCYLtWu{3YZrF^lc23xp6-%hQ`u3i*5aCq~h4 zWL%SVqCW|r=w0Qd#YW*HKpNghTVVO8@?TV8Ac2pkz{(ed<^=Lxl@`=!qLODwQzY<- zTqX3+k@_Q(enbz*(J9f9>@(~%{}ADdlC&^()3b^=maF(4xISm65zI?W30#0M zfEyg{KTEK|RfHir?%+5L0BjgS4i_MVw+~1XI#*Rb~tLGa4j;2|*0>EWZN< zAXWK^phse#`*PtIlHs8|L7rNA5rxQ`;4SLs$E1=%8=;69ivOzri9F^Rx#7@edO|*% z!PA0Kq}%4Tn<|J<4~GXw2s0IeC9EiWNfMjy&ms{J@&pl+@>)GCBQzz|%KD(V=h5_Z zC<=H9j3PhmjVkvKIeI^3hNFcoY$&}Ov;CB8QaKF;mWoZ6Q69=EhlsVRN>zsn*@l!6sE`2Bv1>I44cxw8xq_pDW}G=vh_|_ikJon1m z8{)Tax%1A=+wqBJMsZE!qTSnTmbDgVW^89~m1Qa@D6VZfQcZ`$sO7JCiwuCg!qT<0wzjp2 zsIR3}wTx+PX>M!lIB@v*>5J#jUAT1q?8&a*fB#|zJKi0C7MJ;+4i z@|R!Pie0l6Ij{VD|3~V4zWz$siTQCbiWbm``uIWNBwYD{sC=eA{f+2XKKt~uPvvPr zDgs~BC(nQS2`)IFYqQ&r+le*D!xf3PQg^Vuh#eev1WgpGG^-+2AX zh4VC=e(hBRE*CGKJ%jtfi4(_<9aqN&AIG!z;6c18Pn^5_=7)*fZ0Ot(Pxd z>ORuZ*50zeh8<9t(+)AO)wMpAvbRE4f@R=l7cP0cSOy}ES7ao~5%wx>DpLC=D@4|b zk@iR`>qSx{oO|R5^1vg--#XOEh`>r>Jg~9Dio1#-6xF0PwQ)a4AM5HTY*rkU^I3oR z;RkSw(pD&lguo=~JFDOl^V>9yPz1ZEZ$i1%B*y(+z_+|+`Od-B_}0pk-#fnR?RTvG z9=HNpF%ZYm)=WO>C-Z(FEY?hxwm;w$#v!{+6fXi(tOgvC+zL7u1s_t3YEB4BfH-IM zV&P;AWFY)SrDSl6xJWx}0^vjr^Rw+N zA{ZOM#cr!*koq}g7o_D_^0z4g0ipj-MqdlQDJC)((S#6^Sb;4A@`bBBJup?g9Zfn6 z33B0@i6yKZcM{9f(%M-hCJOO}zzw*8mE^I$RQJ(2AFja zN%vX;JwY(e*r(00vuXuBm6jw6pIN?Y^*XY!(q~$nQ=IP9bi^)I zd+OUe&s}@_?$=*__0#9K-@W_2k-h)Wk*l}gJaz2Vn*1D}_@7AL*5)o~?B0dwH7l>6 z@vg6^W&cNQM+=N?+b9~^vL#__`mvIHcS<6NpBX993lWTnTR=ewr32QkN63QkMHDdp zNvR(c@s9N{8i{n!fb}Dch!z63Rv?w3&@$Apd~X?JHC6;vz^IXHzT;&vU$T(LSdG(CXl*71DFbv zZkK#J0Dw4I3N@r6L$_Vfi9?DY{ybyW?D-L~t78d^!8CN@oi#(6>`W0jF^Qg0#!Hs* z3Ig-r@RuF{1Aj3ML@tS#$uK#Wx*^mpx{g6Jn61u4^6NzK-@0T1&re<)9r$YJ8rb9p1bt+$9FzB(%tpy>!00u?ZDC2eYJZV+Pkk_ zJ5pDiX5X})^}7o6!lWPb=D)L3&{t(`e2OPy`~LbndtbSDWPjRMon@t2=H|7rOJXDE z^%&Q(Or%CFD7F3~yQ*G3E#iW{h|I;maH8UIjK<4()X0$|9V4=a+i1ydK4%WI3hG5v z2793q86y_5y@3=yItJL6nX$o3C1*Xu4$Ps0WH2iM0 zJO@=sNIa0}_>E4;M;o*Lq!0Spv**qWU%Y(DQt22yZ^1lxiqM{!0W)T*8NTVM;!UZv z-ARxTU4ow=u-K%@E~F`H(xVf5q9T1qd^C}gw$P%91Rz8o4koZRs(maaUJPf&WLA|2 zOs+7e1PMr~G^bdFpQy@Sj8SZPKSNOho@THvZF*f|i850GoouM{)EqIN6(OFihDG5( zVHNoRM@>Yu-~S;Bl}|8hF>*sQg(;+thl0Z_b1rO77a4DCZZGj6=TY|*kSuG z0u)N(=}qc!5f4ac+aV!U-ka_;}^Qyn$PT| zO*1)D(zrmGtdjl5YYFDaWVYR~rB;-Dc=Yt1A|wCLk_O*#E-Rz5SQGyf^=&_@R4jgW!6%OI>QFJWSm$uuN* z>NGM!Kong=In6OWjMc!Z;9}xe8%(6kk0;BUjb8|Rq{_8mRvSp{VCW9XE?OunyfH#V z^g;Zr@QtI>8 zKak9`@Qu0R*J9=bWaqfD1G1nebnM9Dh_eAsT=+;T-ydE0YwkR>3}m3ZPUN!wDd zK_vvSkl}uSTYq+zu!6|3w?8b>xAZ;LYyx*#^?;BPAPLc=-Hy2;UW;H#qNU#n-S`D(iKY9@yY8xeYf++QGxzkNm@`TzPu zc;K{I`CuAt1WQQ7^up{#@TNrsZi;=Z@RC%Aw|CE?cs!ys2$8UlqrmCwg+z_{hm1r< z)>Jf`CUILUZKdmx z$4E^g_*df*fxnDQjRHvc{=!52ujmD3#A@VeKO8aIgQUeoi)vld-oc1<?wb!p*d;9%2U%vYC)$7-;;pK(ogyuDfEzX`h4<0ys2HDBU6Evxy zMa2=CNwd-@q~u#M?(f1IsHmu9C%WgVDmF+}WqG-jH5vJjf$}pmIAMU#DUZs48WQ;b zj_u1?g$i}Jhz0_(#l-+9h!EM!-fp`7))V%NZd<0RdM9Hy{0VE>ufLMc%`lKpKXZK= z2Fd_;a8;is3-{nktC}yqps0sik)Pl}`>~)CpozSXJ2;6jm5=ViN51%ycYX57CtrT~ z4MjzF?!JHb!w+xWc;(uq^QTXqJbmfv)hp*ti#F$^)crt4KqJTy@xwYKga7faGv_W| zd-=T-uOlUK{o}7+I(72+;f_|$81w?)tEDHq)J_Z4KS8pW;&vWV$tr@3sFFvE{bYoJ zL+jNzvzpmqLRLkL#^^v}^E4O7i;M(9Lo5IzgHAq5Bu~sb+#J`m)#8ve?mOtHBS*0M zF-T-5c+Q$XJc>Cq2m_j-uX3k)fX6qEZ_V$lQr4!vGrte~?tAKm=;-eF&i=jgJJ0u4 zo)BMYaY2Hs7|77f`@tHW(yrZ|638*{rY=X^7K6CT_yeSIx?O=B;)>Fq2Q|m>a%f93 z!Rts3NJCYI7x}LMzmD2)HZ+XoLB>=cDQ)I-b=Y=eBy zTBthe#g`I&3UxmQ#YuSD3hUrKL&A73FL5!R4usw)78Tl&A*4g~v-EfC${y7>_$i(I zbrG!?eM2Po3+ga`5!^qO-ZwCY?#j^*#`x#S%#vlMY%U3fb`Ufz#ZB;czbH+X!;Vn3 zKsulvD_2l3wZbtl@adJTQTH=q3B!{3FItM@62}xZ)HzHMruF?*Z8ApS29C@Gc7%0E zPbN=(Nq!-}{=y4m$GtRZ(s+NsXFMPJ!VBXkNR^Ko>v%C>?2G2uAYJQ2*W?NG?3p;p zAY-ql1QRh5qA-1db-1QFrum2>uw({JayJq>4#W71_rQZQ_PUhwtHzJp2&b4wm zwb#U!C`?3OqUY?on1|*GX_;g(_tdv_p1t(S&D-zYx_kHC*Kd4u&s$a3aN!5rXP=$& z(9n)4T|&a)Nmef9NE#7M28+S zZZZLs2FmNjy)ju@5Rh-wQG>9KHRvA*Y$OAR(w-@D58WV&+33&J2@(+2u{i;fi=TI4 z4oSZ3^xV?s6J3Y!#c!#osjuB#UV%4wp>*ynCr?CFNArt3<~g}kzxaG^JI5&#^le-E z=%n$cjT^*-P%Zygy+)Q$$|J%ODZ3!$Eo@_fgw#Zs#>^mMyy=vAgw3Ey&pavZQ49Y# ze=g1_h)ZO0IA!WDzOd*^09zs4zN8&u|15|D1~7UQDG7-Nv|lbg>HIO7u{D^OjJV9$ zHlGJ5Omt=Nuwm!;>CUtL0y(ck%*1>+)sZ?rMWHZpaDG2Dtt%81nA z96ZB&a)ER`NaB=+g4Gu$u_H^qnjSx>@Z{lp_&#wip+ zI&O`KiixF>l^+`d5Tj$3E{%b8M6pJ2KcRq2Ll6FdA5>l#fQKv=_#s|bfdELHU?J5q z-Z4@*Ry_^|q4v*T{wI|>8iW|@f+fV>u-@Dd$cSUa88jN#D8!KKd5 zvmWvxB0VQZsqTuu#`LBJEwC!kJU3IZ2OG>*^_7rrAoJ079%s*wC#W0}n znQi@*tH{S?`h`b_3=$%a)^8NvLBdvTUzaatrmzs9A>_0QhzoZ^L0cPY5rpq=Z0~;g z+QnnXy3QUv*?s2Z5zJ7IwjH2I{BXy?L+u9-Ak=QrSu@Fe?iR&)WhFCZVvQ`avYAYN zB{0H)nmiY>cBVv0Nk;O6^di$I04PAblrHMFzB0}W)8;DY0C-ZuX0<6y7&vfb4MSDn z$`uR{2#S{U77V&rav7pH`3w7!F3?%fju{Hx0kwN;fH%xmsl|b78~e=twmP+c9>E0c zL&p(>NyJKo5nSaFW+)v84iHXs95`~Yql3soaLA!!^twcveZ1>(_iL}(Yw~=~tslH| z@x+P4t#y0rn%di%_g9x;#znnTR)41atbdvC<5`o2G9WD@yRfWgf7iDB+`RP7uXYq~ z&-4-cLVqaR6un7&yczcwVPqRNuzw<;)Qc(zMDNt_9!WYd8tTPVQHBS*Umg_lYdOK7Sj&q23LmRKxd^_LC9Bq3 z5TXwvS;?Z^5w8~_eO9t~#o~pkw51G^8Z$eT!;;_;0a&J;_C`+MLjsHh7YH#CPiLPU zjuz}sAZKaPfPKAkVLAYSkU79ZBHZGluNqDS0!rK%q?jpvnALzZkciyB|C6Jq;0FFd z?Tuz3U=dS%Ux|QtkES6Yke@MrrSB*ak%gu@ZfsvQZV?RfwD1=wjADG$_kJECW2Af? zk&sBGjTXc(eu?W6fs$BX5I7Ml>jOg;#z=jf*BFfS(z3+d%Q72clfnv7Il+uatT(ki zSO^qd;0hno>zj?Dw<)I|gd}#1wrrKE%B;3ZqTbMcv1(6nO$~*3HRfI`2`x~`gF+Cb zZbevUQm}8qU~`pC9|`njP#P-bd=`XIMXtUn-(-Q z?#nZ>he4PDBsn>S)e$QW0GONFV`A5OvTc`MS-s|1Ya1?3j8;u&Z?~Vhkg0Vg^O2SzIqA2#0wWMoP&*AJb&Rl4I{d`s6wHY1mZiv z%38BRJre^fa0E291A#;}Y^1URG(zxSTC5cjY%dv6a*&OgS%2dommOR-DjZ&9Y#az$ zI3i~%zru?BfsQi{m*EU#Z&t=1*u@CN*?aHb6V1p!aYfPGgI>Mra|_oHo)93SKKqkU z5qc$w1?rbP5bnV%@Q_bGGe3Xgvrj+%uYLdxO5lr%nMu%#&fPq?0F4&}+yz@#OJiM~@uFAso%+A+X3%T+z?I9G|=`Y3rKn z-86n~Z)t6;1N!fkRkCNdv8&h4ojZ0Q8ey#{e^Cx+Ly`9d6^nFDthr?<;9Q%-plau^ zR~fc+2X%R22u1W+178&7!AS(sn6%H*?nfMKCaxgxI)fq=lTODW`uIh&@ssn%U~O(h zt&HeIzBhje6vzSm_>LCHmT!&k0=}nB5joEXN(i9x^LkF?J^{=*E^AFc=YUu5l03cZcy7g9v8ADMAWZ)6P(Kx&@01% z0~#v4+0cisb(1{IK6dOtkoMU}LOrCxw>*+87 zC(>i*=|UtTx{0w9iH74@&mgPF9nuE(5>O%RGLp?)sKpKAU4-t}xyNP;Mn&ZgD zc=n+&BL)u|I&#!dI0ys*5lQGTNW{Tg(@}@GVIzUVo`aXrTZcC}$@5YJL=BIft4X^I zz79Q=!61%->gnI}1?4{t8a#CPi063!vxD?k<}E=Y8DYtKOVtrSa^vgo&}BH%&e%jR zvx}>%ubn8yD${2b^RNU~{wyMy`+idF>|7cY8{1#n=mZW}q1|IJu6AAE==OGIf< z952;2YG`k)7={ghe!|#MBZeE#g$)Tw4K}r=f^?j*b}M2KZ5IP7!G%Ov ziD<|mJkR?tJ*mwvF3Qg;D9Z6tw@*AoE_yz()C)Yn`&=EObGZcv( zlV5ZzqJA&-2pZYSbOY%NStl|Zax%htzNo6E?dY}FzPfn0waWGBg|3c0g}H^*jg7^r z_AT**!meha6}%=mbNmzE(jf<_rrPU(J+`G*WNl(;gxipJY*P zL)hY;$A1-E!bgc;ty3y~cutKK}VfH zhN_ZD_KB`ygG8)Z5*z#sDFV;M#rGxi+3ihTCsE~?|`jDMr}yl z6ifeLLciA%M^4>yDNVof?BVoT_6WXEM*E*!7I=n>m9q#yG z8BP4+ku6k+Z0*INnCQnQ(uYFH30j4bG$GQL)QOo)MBs6!7M`f|@{}`GTb(d@NJ0LP zoJb*GoaQ48ocyUFA}<+2<&}-J3}g867v_Ks2qpxc(DqB&y zREL9sQTM2hFD`48j069O6eeG^@i z0?|7vtW4nMiWE=gG;?~8%weYKa>W_boiijdFmyW}%tP&29`H*Lag+F$SS5%u@`AJ# zh%3Lxu*6HvjrMrOpE{$^4mdHmJ`TnZl2Hu8DCvouOOS`SOM_q`QjB301Y*KOLiM7v z@TxSJH}j%VVq*a7VXgbntV3XjxI8|j z#UpT!p6VDMA&xWIA^F-ATwp_pK}87Xq&CMzzSdAd4jk=GI3_WVg~rD=TBBP~fQ0g; zL}p5T%tOLEC?ibIDap^uln&?*q^9NV*eF)EFufOrmTh}jNyBVL7ky+W? z(O9cZdpKb|kngt=)N>9IuqnU;+QEQ8 z1FL`G1)hd~AO&Ij>xMYG5`+L*VYed=6&URNoFJP>JuLcjkR9^(?r`6|!sG0c~OA>L9y>sWi_uiw64$X+)zjNpI zdv`wk@MB*Va*j>wZ@zNzZ1)-9&ao4y{0<&HjsV2yj1eJ7r$!!hMPoG_JP7kRdHM2{ z>+ft#*b?{7mD5K%K;Zj9B@yt0^&{9r2Ap53WJF{sqgIYx z7s=?+P1+432C)kJFjMUu;9&wjWcJP~5k&|)B!{0P#glCR*>gYOCj=ohw-QHK4JwR# zp~5q`+;jX8q#=gm`=B4bhiABcuzzp-;6X29xtIAvz`Y+_Pz}pZCQ!pk-|#>VedZ@A z0XEoyvRiBpJB}w5x`e@0bqL`wD0cDdJ_0JasZ|LOXaLR%o4)oVv@)#La2v#rqf0T`u;8Pm@xtx${I$$`MGpEbFl@eOJR zu1up5W*)#M97Ab|)?W4Nz zz!xloUDTok3&t2c#5p*S2Wp68s2k}=FkoZY$Pum~A;YvUD@Y?uu!q)sQ2P(u2!lKf z#mjZb5YM3AqUjhkc*qMcjTmas;ZyuK0_1;M1(Fy;LI5R0X}Tj?5OGT7?WuzvgkJDi zlqhoVc(%9xf_!hjKcHjqm}eZ?5QSF_K7vofes<_{Lk5YnqtdaCdqA%qzyakj`dbF5 z{(&@8mbE3WuYD28So)P}`w_EWK;M2U=I{NO2lQRsFNUCG@nQ^GWYXKeKhZp-qkk+b zlpFCIStde|)PYivBkNaI?m+oIf?=LEo^i4QWOcB7=wkwgu#|rvDm5?9JvZ{jNi!yn z9yw;rsF96gqe(P?am$7*#YQNxN=YlJkAr6c*70{ak2f+syE zzf_z^&Yr*Y^6R(%X}A6G={ujMc+2Xq+l`M>HYKLmk_MqLq$ihIe66kJ_}ia5 zzPhr?mTF7K@a~;&)An4yliXBUUw7>1eQhV3oy>#@3np9hq#l6 zI%|kmijy=iLB+<6(oR=ThoK+*GF24m3ENVD@mbP_qN+SUR|MmX)13YaiwZd1rHO(9 z$)?QqGtsW*=Fw!Lq9E5t){@pVTAdNcr^dx^AiKO$t$1+NO06j(TOH2YRS|u9$OkK* z0)<(BV|(b$!p4~{LE@}A#MhDnr*|uyKq?dn9@VtoS|$c*WURb=D_!9g$PI-H!vZNzlF$k|#zthDB1Qo?iz5SyBz{of@V z<4LzWJ&giyD2M0mch7YmZ_2*ieZI41Pi1a)rq{l0bNo7@!PRP2ACl-q5J+Go&W!mZ zs-b0x>7JU(hNErAZ+>|D!j7bsi=!eI(PC!q--(N7&z?zxWT|#Xa=;pxD*_o-fmHZN zdC$c0<8^%(@+X*w0rRkra*wn@J8YvoBLhc_#DYX{hdInX)WCW~9H*TO49Qi@DamHuxt{;JG2%AB}T{sd20Rw7w976 zACKV+jV&}+ZsZY{)TaXaVp#;V=*RH;V1LGn{`ffoRk>09g1O@tzYNX7J!qAI#y%s1 zgUvNN8^~y}h)&Oi&DSDxqXLu+_9|Df>a5smbC&GsEBM^UJ zSA;bx8ld4Xn-M7&@3zXlArXH>1dk%pDF+E(x*|Hlke0}c9O3EwQ$ynmkOz%~!D?Pz z?&D>#sqj&>3kqZuFy;i#ixQ48=TSBaFNpMG-u#7&=EJH?Kt>3tR8Una5)i3Yabi*s z1YDg)Pn^stg_Bb!{Z&rnlen2wI;n)6v{Y^+Jm6tz>E!aVNo8tsXc@L5Q&28@Xog{% z;+q=GRtL_yF%>Yhc#Uw&H4}?i^e1!X%nOfM9>X?SNU6@;xlt>kG~x&sb(KI405#+a zhym?D2%=Ffk5{=X_ck3ooV}jTTj&6mQFRuxZkui6G9BFZj@B$!mp2+QVImRHpaa7i zETzIU=Kyn1Mqyv=Tw|5sS*=y;)cS`RPc{gQfSDqai;s6~v~4mrhb4eHG~zI}+2lw| zv2qe;oxB2WFH@0~*^Y~k+49TL6uYPFDZ$GuIv-xO6?fqkCu5?wD zG8HSx$1=5NlB%*F%Mza92M_)X9gR!H`+>pF$O@AAE3H?s^Wc^sq+W9m^x7Rw^|ch36EEUOw>=-B1W_z@ zNNF_DU@<5o3PBbE$xTwpeF*ut$Ve;F2s6&M!Lj~t!a9H)8feQXE{)XKTKXhK`6HM^ zq!MbmRZs`Ez1l}iEqR2JL_ip{LlhxMLh4nc(PV8Tns7Azo;U-6IbXiPuR3pFDWDzg z&W;&W-b?*G0uW6(1aPz+=s+0GJ9!&_QPy3BcywFUWBdlszb|Wzivdw~XDm4=R z!j30PO7~#cy`OT(Qc6XPU=F3#al-XNh46Bqpp6RH}T>B>5JiqH-pnMvf@#Pf0yPM`yMVICgwZxt6;Vp30jh+n~ggvCqMN(Qd1 zkPR{f+D6sO+$3#c8c1XEBvabq&{CYko-!D`(b8xI?wX!C!|y3VM;Hu69+0qKu9})C zDq*zCD_*f~>R*ER#DeW^1RexeBBJOGTM(6nd^eZB^Om&qu?li<6?%BUS2r>36txD+ zp`?tWBtU9mEF~T=hxn{Gh@d5s7S0i-MIR!KF-wE}E-e1P2@=mw{x;YjeB;T&@3L}A zP3fM)`ccIpu#_@fCv>??k=Vl0f>^>pRq%)egTM}MMMXs(+?(&p3lbp%!WyeAubD%O zV2KWunBJmx$RQ*|`QgZT0R4m3Z4!K^``l@d5)}D!rjj?+5B)7A93Fd5lVB6sd@mVR z^u_cLumsr^DJW&f3JDdx`uWdN*&_8Vq6G2Z@Vj6S`SoX|t6$_X!H_|E*XYr#E0V9- z5*!&lop5Y+FJaPuGwPWxZw3vnF$E+01V41(<1%rt-?frM2}` ziS5eG%SNFl+Ekw}zqFzN)1x4kIfL3LDg}FIJW%T~e&+_@a4E#*3 zC}Bw5MiB@a5acR_r4>8&>}za4(uobzg{yDIZFu{&mtS9>VEU>SENaV1Pa_#6f)V5* zvAtELb=h&42-=Ep_HCe?@nLk{Q*Y(#a;J8*z_o-3xTCjleS5R5^( z5qos=bN;N*k#khToIcateTEzT^w|q|Xn;w&PoD$}2pI7Xh|P?Yf?=qV0X*$7b_a_N zq@u#8{14)ORv-r|TaKfcZRijCiTpX(W#G>hfQk-6KOv)|%IFOh5&sa`$(?8)I4hui zc#<7V&Z30U01;{5EGDDcXY_06$2W5MhFd5JJmjk{jW0q({{azkd>sTE`3f+yTJ#_k z$KV$7(T5+dZqu{w7V68JG_Fge;W=4{_&2X#Lj}`)xLwW{&FzQb zBAuPcK~7Or)OkW$;~Wwu!g@S-@Yw0DOXn}YeEHhj@7{Rj+%XCv0VBu@Ly+$vJ)}d^ zzrjUnuo2lM*0t=R;;?jBohEfY>SO|$4v0r< zFe`?symH%+$cQF{TnT){fi)||CRDEcY~HsZ)S$Z+ijcq`sdoFZmjDuexOLnM_~D-W zhd@Ayc@J~~ACWScKwef9!8q^PcuVMy{L1y7=SS;LKm7z`vHYU{uxb5=fKl;4g=RPr zVKC0P;GiKg5Xfi%F6pJSuA=+kxS+m=4QhZ(#3DrL8W}1gMe)PdcBES}{ui96S1`T!& z3Zy{AImk9ReNZ5f#ep1U@Zh1a7WK@3JUeXG0;#weJ!+W1m%+nE%$WKdOETnz8R5%T z&U${>&}W}@JR`yw*8mGr5-WJ6ziWWmKcpuBqVR}EY5jr;dWeGrvzUEDVJh-#-*kDN zM~fA4(-K~XwDjvQn8oNH5Zm87AV{DUjhn-Mr7H^mTgTJLTv)%zZ1}E1iC7fxka=(w zX`nM=)Tl9|M^BwPWB$CcFU(vK_0p(OqsNY&FlGAK7spMSvvAfFskIT90#%`92#+RB zp1z^5?TruaT&&o#VMT0g+?qwRW>1+oY3j7;#GRr-QDdF7PccxJ*lFJPJE1AC6ecag zRJhTa5^}hK1TF?qi<asj`#cKLJNS(ZfDpbI1Ktw{>$!ZE<==!^r zA`r|96O(MF)Obh;pS`_oS6#=ku5*`PxpDW)e}4Jpt#`h*dw1O`%e$4bjYL`Ecp5%9 z(%kN{mfEIcFMs5&KYDC`c}Y#{$(x_Gl{#}yUB3O^!LQD^yDsfcK6bW!U&D@u)9<7b z-|#KS>{7lT$E;d-4!7%#b!zRO{bKBOs7$!>#U(-_1uS`Bt}5OJSy7t@V?*okq%o`E z+*z2FlarYNL-A#hKgh{SBc@@Z57c$bqqMBt{Ot7N@`79%=uiZ%wmgB0IiDA=txnOC zFqL1qT=LU?JqZCb$m$oaLR>rhk7D2H-zGfJ+h(>ny@FK~B@^@J{3^f@aS7fGvW?Z` zAgwYnCOl5<&Da<5p&99ymH4Y_lo5*7lbMs9xfAIg0ugzEK}DuK%4ub6W7@S=pPV2p zCiY=0bDEbtC6rp^is%>FR*ux%L)%;08(NyTt5*)5dAXyZ`RIXcQ_LtO;DoG52&%Ot zBEk}pMsyS{t#Y$d(wyz~JB8RIc#_sGigSjl$PQp)Phz6Y&;oe08i61u2i(JgjjIy<#{52f z*e{&H-uU$JdnS3=+->FwFo6@&E_>rq8*C@Dcdp8oQXMPsJy}j z50s3By=8aR7v17VOj?Y2Pw-u3^8yCv&Rwu74oosPLL^0O`uU4iE(aOTn;*S0ZtJ$y zQ48n8bnLS-5uku={4G%3(>zlpqYSpmn;bA{vS$)bC6gW~^CO$dlgcJfE;A-u$`vVR z3sG9AE>7bQvZi{cIj0BA0Mum7?2A?hfX5&=f5D;!3zja$Cn;jl@-1;u(3;4|n5E0< zYPDq5x|Oknoth&Pd;WW5WHcbzUfOi-`n3~PF07-s8n(FAYcNux=ekbIn=$Ui!AMZ3 zWKhVJf@8((8!!{dA+J_hRvN2C>6x0Pz^ks9LbWTr1}DAk)55Mig--f3<7Va>|jw^1~|7O)=P$#G9uw_ z=O*uo?Y#>_v!q01dC3Z&M&=Zv%hxN0=C6((JJ zt@~)_f#Vn7-^DDM*ia^a;?5tO#n_oc6$zbZRp!4F8^NO`G|Ci`zyz8ooD8wPGHqn; zsHl}N3Lh;l+gVdf3?Q9=>l>x+U+te+M+f7E{ji#S;s&yZwhwjt_M=2;s%vd;tgpom zwvzgG=IYx8gXeC~&17`OaRqFQK>+hPg-B6%4ioX+)-6ILHg9sqhjN~f6G5EX5W*=z zIuWUaN9E;>unJBc;2NqnDb=AWOJs8-5SAM&tWwCLmj0F6Qz@ogM41j#W=&lrTw%`L z#t*Sei)yws8I6w#n(<5a1P10wl}vQJ5)}^zN|_q()k|((F|RR;K$?a7M|3-dy1;dk8QqD zyJP3>s-jE}%%3qm32C7v(cJp?M6^!Zs9a)2BqVN?v*j;~iU?A;3^rK5%1_J~#Q^Du z42a;+utXYB(%2n-D@Q*nE~X7KDuQPy)&tNQvn|-enjFNAX{O(|#5$RVSBj20sw}X) ztjtMg9izB6TZ`aSf(NR2@HoYe;&_cvWC{Eifhq!QoK)ZF zG8_@e^%7Bv4wFhVa9IlBAuFKVEDI?uudHcosxr!cUs18Up`i*?BX~v>61+q193{d2 zq_f~07ovM%H?HD7CDnU(mX-QH*5Etw`LZ@ylYA-pUPhsnfUM9ht5S>fImqPrB7yJB z3&_oL`ZYd;XhzQeCv=bXkyTVdN}qOE$i*NxnVEUw^^=}K&Zw-sKv0KC@YY*Y{SpCj z<4O$#jVSL!LP>OLM#S>sm?`3U-D0N~v7P)d=^(mdQzy3^sy&-L(x zoB3Hf#YL%^_*!_$#Y;Z^uflWS%0)FTC(fKcx?e0Y3QOrgg ztJ|4P^ohk@VKFUm_EcAt7Z+9F^tx+DNfvItXn-+{@~PB#5`O?3vDk+1RPWx`*g@;D zuI`K1-+1$lH?CZ{5trcE9lP{EW-1du1`BT*4U~!svU7@d>|3~EUHsZrYc?gS)EwKU zrOT7-X_@Yum*Tv+M*OumE}nv>T)24%WCF3#yqPhNp&D+}Y%~QjfT_k1p*jr>O{zJJ zfljmMcB4Zb2!yvN?jM1?h!*2`SJ#>DGZ(NfQD+u*pFVTuY&Y!Y9OkAxK23>YSJ&yY zJb&&2EQbfDx-d6Ekq7tbU}#1A)27``bO{e+g7!tbh1^tDRaaGkC(7lBk^>g4R>323 zrs2re8Z$ZfAa?wtU>(d)gywM0;5cB1*YP}i`UApm1XYT@ni93&u!qTnS`;n!5M&5+ zxTk)6_#WyEnoa|9a4r4jo3GVBpZ$soAJ~nbHx9D;GMCcb@8OWsSBUI(8hN z+|Dj_@_(eUj&?XXbVydn!Gj0ScAo&^ti8cnJJWUiP`jK_G-dqQ(avR=3-b;Q_x} zdf-i`Rto3Xau||~o+=(eHVuqpKc^f8+f@FFZJ7M?BbKL*{%Szzz=6O7Xzq>x@lurdVkN*G!b;VDC@ z?D^fW;lrT}(`?(8Y*_L93-jabk#pva8Und_7(g-Pxe+L205rr&&zgfm36`D}q(c1< z|J@k;uwV?ij+`;!#WA!{HmLJ)49y(k5J+R9YvD!ym^XYrxu3RC;)7&JY1U;v z8_M_KD-Gs*_hzLGeQp@5Md*_a&y)Xx%ZwU@r|YC?)2Ggv`4WW+qn>|$!i-51$IqTO zd-`NSGUFzU6Tyla`yb<88b4*q?5#Uaz4i9R=AGV6%OhfwGd70Lo;H2P)TxvGO>NC_ z!B}C88~2iHoR#~R9B`RFJy-@|>|}bw_MvkLr9RWhBulqXn_Ou}5lCf)DP2`({~nEj zPAQ{2AZigdLrh6rXD;kT9e`*92vW?b2PKaz%J^vRqN0tM|0X}YblHma$)+8X4P-CW zvxvt?9CKQ_L9Sg#E1qSmYw21`fsnYS2)~&zW5)F9=CnXIt(w|fHZ~iWJ8U=qPHoJ%aWA5K z8KuDgs9jjYd^P6jC|ejd@q;DH#T18eCCNw*Wc*V0hjl_8fv%RnkRw;_N3dO#cO%%v zanM7cr|f@+l_eWqugjjCV)}MnefM5+vf=#l#?4D-k2TdbojKF!OV)0T8*rXMR=n5iN#9 zUO_JOSBn%;_27goosM14+sAlE2Ld;pV=SW$n2Z`>AFec!F&Uzyy_Z7@e$1!6G~Wtb zHei4e8z3;o3Lqn#3J@Du2f}`5bU;+3J1R^VBtPONk{TZ32M(Z#30VrOpCT&Vs906JJSHdigA;fa`fEZ7> zZIL59BqnYZ3Xw=pct8a1Na?6*wo6i6x950v-uwvm*$B20gU0;0jCIiq=P!y_x@6I! z1<_mcnorhwV;9U{6ti^AhK*}iM9hQ5$SA`V3_LT~j~$Jf;_y1tNyB6Bw9Ki2j8y5E zH?c2EuQ1CLH+4XhC%Mq;iQM0m&ZSc(XCe0wlAV2;kB}=3%xr+OX3a#2!~dVfBV!h( zEOVwXmO)^`rCZq2Rm-Cg?JNink6E!~aWtK5moL$(m>7mL5z26b9^&SrQqJIUQ%y<@VT#HYXHX;0N>aMO+^+IA$=q0eVM<(3SX5TEV|NXpMfzpd)$V1=xOeZq zI#Q%Okon_ongb(^;bojjYHDb}xtoc1IWZ}dZTtdpibXzz`j9ymUb_r(L>jC#;V%-) z`72=Tdp@YVO2Z^O%FU)`?sobC%V*xW@7eWTY5s9%-!pOa(fO%`PE*`3H z;LXkWC1SErD~t&SRaZlkq55O5-uwj7Q^JjxU+zA6psu#==&^=EW{Fu+K$Rnb1Jhzj z`4VR`8~z)yXWsVwUFTfsZ(Tl;Ls*gOma*Eu;8Fx6dmMG1e@n4pn1`U@+|B#^O+Fdi9v?k|9yXLr(oFDwMHA1b9#wQP0^Jnf(3NHHQ%o6|q8ca$dqL zTB8_k@l1zfLvt8Msin*<#W9ct8vcgq%?CiBW&;CHasO}>_yolWXUWPBgdsR77Bcc4 z7V$egft$RS#31aaqFkRzh0*p+s-{?}Aa7Liv2msI(-8Q4g-@p?okyI+8JTIlccX=qEir ztF*TL#K|MA4ZACf^NV)WR)Ae|kiv=Z#e(k%j4dnEon?ca*ipdP0Vi19u#(K8Fu;kd zz*07kD(@rI#2>O(?=W`uL0>>5FR}b?n&ybr^FCw0wh4LIUkJp3%yHZTLN!}^$zd#) z);4#0atC2>d!vXs_Es0OAqvWO?qS5LW#DRRD9cJs%`B+iSzcDLa~I9VsxWfKL$;!J zS4mMGg-sahXZuj_F=1qY$0VgrnpW&hN%T!iP2RZa*4FHTq_ote z%^5o6!7G zBq@Ryp;L6u0hv^ZtfLBU0uPY=Tfq_Cxc{)na!OEzcrOcH*Sy3(>M`yal=Uf}Re+#M z`%@1Gl&LoZ9^<^O{sENS`-w&{Km8ubhV;c1PV)6XsRjawaQpSw#y^7*zwo5vpX$qz z;`I6v;+79S{P6t`-hcnjdo;Iu=jM&KZoK{O&9~op>`smxI%FRFw*v={pE!Q%(x$C%T)&J3%0X&Y zg|`bIVdr2?82dv->4Nu3joNM5sdhXL9I5n6To@6+gu+IEBYkAlLMG;x}ZR~hV#cz_=kWFfCow!c|fBqtK2&gwD`p_>c`BVJlfSHL^N@T-yFmcgaLer z(&a$XLzvGdFC=H;APqtA@AbfMX@cd1fP@hx$&bi%oawzlz$n|KudFieH+N zV{3Sn`a1YWIu*U$` zzz|)eA`rwYvAa*3mIP_^VLlTk_qw>oc*ZJ^OK|OQJo|tq3>sYU$T7&HD|f^bR$A9M zhxi*#40R6q-O%A<#?F|(Xv#9LdsF)A=`-d>EuTGQ@=yn2m*KF8Aw(rE-KzLmKeZU- zlDx52t@IlD+>2w!j2u03424DRp*R){wcr*K_`;0Q6dM6N1e2t4b?NRnSf^0z(|5@5 z7hW3o{Fvd-4I4c4`S3Lh!q>$voBaHQ=bxXuw(9Ix-<`{g97&e?#hFv)%@{Lk=-}rD z13rRujZWIY-~j_fT;eYfG6n?qr=({9p^B_7TR)TVMT&&__0Ix^nEiT7+#ngB7PfMT~Or!iljnA0-i;eLgf={$2rt0ZYPeRkAR4VjTkX{^l<4kOtHc!gEad{ zQt13LX6(2Z#x2?uJylomOkBQZ5fvZdYv&_9nJ{ts%vp=KAARMu(>2aDG2sg$maJJ9 zJCm-nT97bd!UX4d>x2p8C%DG{nLGIdo)dM7U!TI;bZ9&kDTCk->-6car#d8ziH z>#*n{)NGTU5;zmg0fL}_&?H1ria_8Uq7zRMKLSz-nqIB=sCD+pFruZ>;4 z$#5kz)k-$#@e&s&{wHD*D}gW(#PT&;c9bXKegbH~^Kc`NqyUIq-x~U8Zk9PHetptP zQ!u838GUwsLFvx@&4*5&fAz+DpMLTA-P`ZH|D`?q&^OCJyHuGRw?1x*V!CU3i&_qM zp6t5zRmR@dj`|Z<-hBPbAKTr|J+`c}?diTB@8#M~R%e%=fB*BFjn3))>L!V3 zB|c7Of%>AMh)f7&I>@2U`Wr9=~Q6+$5cP_lC4kdh+zm4 zCfra)k5rsR`O>IToaX4?Ff?f-!mLE{l?)mpm!nQW5t1o0SbPNVs&q}16q6*jdBMgQ z#F9}{l_VL>q-3J3f-+;9!alcnXKma5`lDxWe)iGTV=Z-ichnwf&QVDT^cs>rpOVZK z9-?9_(JJb1vhyrmwQAj=!d>n+F6V9(vz#U5cLj)u(Q~ z=WHj%Ko-J@P%YbFvx^6p-g~5CWd@79%)2){V;^1H#*8CFeG+Gd_v+nqomMRX0BhqCCS*dZY>0)m%vUuF^PEmR) z7XIbK5mC!mEM2@LW{LkFgH7@xf|sseEUvPPD(R!~+v}o~ag8l!}IcwtV zdFZ+r&{&o1Mp~;AE{D=Qcp`^Z)H)R(tF<{X2}$b+bJr)W5j)T&^zBM0Ztp&KbZ?d| zA$~oMPWHsr6o>?B34#sri7nQ#)G7&kBlceaARrJ7ptvAKL7nCIK#|fCMLQPnx=@BZ z#+G)=n;;2sC%9u)mixL@}WW{xm z$byVzUSVljHBBoIpF9r{dH& zQfa#-SfOB?it!q$BbV2A{$H}*13aoLOWS=)kzj1vxx1&QyQin`%>Va)uW)-rh#|NEq#P5F|6IuEBhYw=N+TB0FKaC^AIvBXb|QnAAh&=1?%BuN){X zoB>qK>3rwMJt$YpdmLb}8q+N95^`@y1CHp+pA3t zv|Rxpk3D;PF_;e5dIz(1s@Mo7hhE=Lqail203(>%jT z871~b6X3=X<%qL5_u{#pN<1{(905@!F~c)!Lquffs0L*xaSi8Q#BEK>cs4x^1jMQU zH*A@xx!k>?6i56cB1;8f%L+)05&MXmNra2QL$pXEA^=eebGCAkRxm^yQcPfoDW1>< z$})30E^LqxL}b&Z0st)2wC2a87DEUCxv8W;CdMEZ=_W&y8nezp2VRN*G>VBV)rFK2 zRo9f#%9u6fn(9fDstx>OeWpxyPH`(V$}Iuo=o#XM;$$vxB16$w=TQ~S6j}z(ox{i6 zxhhZA%e*amw2FQzui%TA$f|OrKuI^a7CkjSwY1RjsjKCk)MLPi>ci7e(dghk`iLl{ zfM&F+VNSE`g8|^7AV>r!EzLZ0w)n|PuilEsbxW((g6M>#yJy|T?kxvBDL&Gg{N$);jf0!K^rNw<9RWfsQkF)*3>GRFL+QMme!Q`U z`lj|qXBUA%Ajf~ohUD_ZtQGqY)5Ekjs;_ORuVm~XZ4i1%ief0E1*s;`3*GoEcw5#$Ms%VF!|W$f4$~Af7E>3K zmoC)>{e?RU^}vZSP{kDzS@f3xLq1ftWRNkLDr+L9AdT_1&@gTN`hwJ}4thcd_zV%r$UKoQ=P${W_n(P*KvRk1OU??rZ_U)sY ztYA@U|C$tw4U##H_h?)7G7sPGcf_`SQhc?_K&JV|Dqajjfe#T(;~;8A~gQN~7wf-F4UY zsKxYz%(gk4m5uf#i!vupoik_F?B?dsS*6BmdvSeBeS!7f?K8&?9YNr*jVTPS%T56R zsCxpUpf;g3J5mY$K?)$f;*&jl;3lqp{rM_S_v|tEE@4K56&yTt^vJQ}CypOIdK|e4 z9mu&lNPN5?MNWnQ z6$X(gE3jb3>bIuKtIgsZ(h8hmOzqtt6$j%U!N}l_Bt!w00927pQt)EE==TaFKoVqC zK~WWI=O0L$?4N)BS=G5c!B@Wd=_fQP-+%w@x1ux=o^t;?FpGBI@~w_0We}DtILZDE zKb6n!-7`OlynXxDt&h;0+`Mt~=7%5Oy?*Wb2k?~-Z`^$U!aJwldh6uAt#l3UUbl0{ z)~(z3VySZU=&@t+N!<{#6BtTwFT#_3Fe#p#&&o@`bmh3JsY05wlM|wC_2s}gHa-ev zT1WdKxktj6w2mhsO#kht!oiRg2XuDTxIoc6jP_f484^9&dr(B7jr)k+XCO<5 z5}23_X~X75FXn|F4B!VAYw?2s<%onJME}{w_6RsdAr<+G^(&j54RFFg75m2D?)L ziqrziNz|n8{6l*3@Nsi~E$r2xWxAS41e{c`Gtx1q2*3UZ`KM)$lDlI*!npkZk~LxQ zNr}QI{Z*_k0lY!P?m#f%3qKI?gYmL23XWq{ z5A$_93`2jzPl|6eFEYX9WO%<3qb7hwq%q8|M~)mlB{VrdJ0=vYX>MzenmlK5J3Q4$e>B%M#38=EJ+U@ zJuZk}|KB}&ocs@YJBHG!-tCl>&Q1=e{Dq2r1&MND>7HbK?SBxiE!??`Q6vY zt#ijum^yaMgB>={sK{k6-h5;{8WavflYi~da=`6E9Js~ zHc+xHQZAYeu@bFBH)03tFNcQ4Kl&T?;o1m)c5wIz=kP~HjGj#QlNn=$lW3y?pd+Jk zv>Y{-9i$`hxCx=rb0=W{J3Tx(U(a2cn_bx2kQF<7`pm?Q)ht!SL+HTq zAW;d$34w)beZc^)R747-H8Hx>!U7f&1Vu&~X#e#XE!Gxi(pc3I`!9q}@$retWC_bx z>8o;9u6Dat<)QEj(q56Cwk%Pk?@Mr3ftK)rM=UNW zs@%k2)u5!RuDNIHj=hK9x_JHeU%&b4ub+H$`|}^&+kdouxnBSB&ZnzOTqG04?MH6h z!Nuv9n(YTp9k~3X{@wlaoi$x&8@F_=?XD{-D>BagpGI3nV`)j=yL-AD$~+o^4V*&6 zLXntIvKCp$%}{_QBb_db|4Ix@J_8yN8UhK)lJztNG~|C6E1nhg$V!4}KoBHHOkL1I z+ZfUgKLOR6@g}!zJ{@ja$tiA)O<~?@E81waF2`Er!#|qIpGu+Qki?+~zY`KAJ&To` z&5H=av;~23vCN!3-w_rN4lTi&G-`l^rSby{sfrlnH4!1XMg7fGz2MY^%2zaE3N1I?D zUoh^mv5*jIc-R;*Vh01URl(UP&J$&cc18UvIwpSU z;+UxDm_)ma-ruq8xi0E3Z_X1DZtyK{j&8)Rg+sz4I8ylep#F$X%vnV~@63iME>6rS z-F)`Owcf%Mloqiui7WDwqY*oWiGIHvO$gv_4pNW;MEn-&Y5W9hh|)vgZ4sW;fIPWq z_344=LwKT!a7=KBZFdK}>a3u!Yj8LJ=3`|fha&<%@)$|cw&w}IO zQ|B(R=a2vR+Fo8n$zDn8o?&mFyKwIOEqhf{XUo>Nlg^yk zUg0X=l;=i#Z_UchPCrnsmsA%Q2Ac*TgUfqcTgpgOf^2j{2t}%SSegmtC ztR=R$k%2a|v`*I?N&3(d%U|RVSMY}r*Lt7=!aro2T4u}4|2Ak+;q>$fPQdBweaD(K8MUFpE-&^dtoG+u)`H%s?-Ax9 z#wbt@twD)Z8XH`VMNRg`V&ooJmNW)>nGMnpUxhx57E7y+=EG?5CDkZw^=oVEY|~nQ zD<&IYk2M>1?Ax_z{kEOk_nbPuvAbvM#;!K4WgwuWS$=?@(poT5ku2NQ6e!s?&x|I7 zCmg0nls<&3o1blQQ~x3PxU=!G<~CeZkZr8r2>qZShnfQm)k98LQC~HaS@j}A0Q1nA z+G$9kOtngCULLWPNjR3bpe?Cw4K?m*OBd-m+5 zuFfjWuFy)5t?xS^O;3992Hn7KS&!y}l)R~>8%)~>yKdRIXaDwX>(_L(*3@@(u3Jy7 z9E)a!g+zjo4B|rviaktXk-Q)?mWmo$2d~+pSdoQ%bN~Lg_o<}uibPO^fG`#) z`;&jrGv}{gevTI`vXD>i-o3-;$BJRxxOoF<$S0rPx^eZ|^{ZDdUp)WLTgQ&QwJ3i7 z4t&XJ{U()4I}Si~C@GR-!Qlbr96UffAbsB-4xawt=9TNq)2>}SbL0TMfjFpAJtKr% zAtqzfuTY2x;gOpiM*`xewLc|?Lr805qwKcKjSOs);jU4d=)~L_o`Wxv?Vl1E4uMu^ zXY4AT!7WgC5Lajf@D|;Ll)?pX^b<1ap%$*l>U?1P#Z)yj;)Y`UG62kj&9l%RP1GW# zzu11RcN3i|Ig$Zle~nUpSvwUj%F%b)sedsrGf~}s{W&wz zy=D-~P^AtPc7cnLlipQ=q8>7fhmTwG2S^UWMz&Fe(X0g&gl9s{~IQ*dF9x zq(r7D|1-Enjp7!*GXFaMum)>IA!vTnE2eZ*^%?JD%*GHb0>wT%^aavh7`gKH_?LNNFwzp z;&k%*Yo*l21PmWZ7C%x$$5A@`S0l$woe(l&L`Xzd?yPxX;URB$R9E3gwvivWcJrHxc1Co?+E57s6?@*9HJmjgu;Z39~V4w zFLWCMMf=Nz5Do%)lreG$IqClPxqNdUx(tUHg3|sWNrG4 z{sj2K7^M0>P=bF}Cmho20?J^9_L~o12qRe6#9Ki6^qLEO39Y>SdLxNCVgf~tK}2H4 z4V0>Q!3=DA>|f$y`If@_B}-DW^Rm)XGsXUs=Cq{gRG$#Su|!FMWqph%Ju1s4_ z@J`5{p28ZhIFc@2noN?9MnjMTX}pzXLzqJm{Uq1#-A}B1@$${jzxw8jJ0IWq^lN+Z zuB%sSGE?t<`j6a|S-JMo?z10%p_LSs)o;0y@2+TGQ}6j@|DmsnIyY=x+wMNKtG=`H z%cE!at!wY-YOE|Sat@*|j7p!ywGVA_Kj48{kvVm%VP)}( z--~gqdV`Ebmb26{r__2lxQTLKHuNBoFBmA}P+er_5dVW+6xK+GF=S+{)TPYZ6a5R4R+gU9EY_DodSM%M!h2tz2ysR`31HX8-ca$=z!) z8LKLE;Kgoa)3TY>JgVoV+D0xALfH5vNh{6M4;-E!Zl76OT)HZawZ7!^)q3h;_MW;1 zD(oXz%X`wRJDGyXi112!19J?}Rg?(kC=_cCut9OO zBgQ8-#*F9LTpDyy(%-R|lY$+@m{c!Y&cD|TAWXi?Id*AxX6 zvJBD%)wtI|tqT924@3HPb=?ioeoQV7%((p!Fy$2G4|*sci-iT*L-H>3}o%G8|0QW4_E= z(%~imYnian(1LkSg@!FkT>_p1IWU8f3oWFQNnbFWnT*348O@u99>p$RzQQbWmNnH@ zR8_dMk&ET(2DP9J1I!Ut74AN~vtUK0T)0wwkW{*4AOwO>Bo<3C`tVu0%v23#9I1Xx zTj>s}+C<3puvksQ=YxqWZY3 z(k}3b2}oI4Wn&%57G(w8u08yt$p9stcDTwa%gN+RiX0lhk(9v9&qz&`^btuiyaV?o zfej31MH{f~t8MPwu)Fu*F)_CO_}-VF;2?MB%T?~4<0tB@!8u?5;|J?1n{Jf0AAaw0 z=BnJ)M&-u%r1V^SPU^+3?vrVDcack9v3p%*Q`ryKZl6E8|G<&G+cvK6?q~%zG&Equ zp^L@>oWMs7DFR-pM1-YU+2d+~lO#YAN0nG2FAh+VBeo0w&JR}OPzZ8pYEmg1aaJ=c zowCR&88|^{r`{DuVZ7i5){_ugNS4-E4{qQPRZ0pac@~Nfcmr{lDnb!XiaL%`9D@QL z!OBcr**RI6!gH6Vt`r26!+Bx?UrlJkU50a|=e_8C5#KAJ&oE{_5e+KjoRJ}3uA;sG zNiCK(&oV`aL*N*#5W#06B2<{Zd-qO?Or#veTZE#cUDtN~iXeaI4#G^-7JvrS$NKsd z1SC)eIuF2A)@>ytKwd%c%`ruc-o5uqTH1x9dp32kw8)xbRV|>Qni>iYYhR4*k(ENs zbPKCm-~Maf>d$VT-P66Mu7WD1QaY%YVHyKYh6IZ`TV`)9&zF0UzT&rBuo>(Zz)UGF zl$b;+ZBSjf5(1>sDjo(qfGL}MynqG+HYuo4j9JC`Lws4KnoOJRGm99)MblpDKg6gC zSg21gnC6eo^3*2BR0}eJ0I!O`5Z}|f`a;ANzML@0_uT~1(j;}#q)AjJVeX;B6AIx8 z+B9E&m5c6D{A!j$iWuq^iuPm%am;g)ZV+*67`keekH}i0`XtfRsvqIn^Im~mS(*qb zT(zFM{`Hcuh|t-n+JY z!;T*DjxbsV^54Dup{2#C%u+BCAtC0ofJz;sX&}ilf0t{$snNmv!w;$PaXdQPTVN1t zwrp+3?4{|UnMy&eqsGp$)T>8|goLq%b{~$zIy1+n7JSjRuCt?o?!S%90{ai`Y^tuT zr+Z3WeT`)6Oe8E}ia4soLrYIzH0`>g4<;==O=;aLjeGrMnlc?0W~qKknn{Ym@FLjp zSGk70x>vlnp8kF*f`9-9CW?a-ln$)lK9EmzSccZ$t>Uz zl!|E^MP}jH_}HdR3}bJNif9kaoqlBOIA6H;`biTOZI2(yioJTT6(Ygs!J`NE?3Ce8 z1CpMOwhkt>jx~It-kR)l$JUMQjo4FDb<|qp<%3ay|cte|(#7HJmoHw0-^d@R-P`xMeTrgp8Xw zZT8Hmwf6ktX`$RJ!{^nNQwH$WtxrF^^zQi!XHOnIdI)v`7}&E*RZ1{%?c8PV4v@+@ zu{3%@j9GVjnFJaDL;(AH_5J;Nd)0Ke*WCBpy>JES1pgqY;h?~VgJNC*hR{wdkStt~ z#8FfiIJBNPPELNn`-2B4&k!U54MAlgY+^ekb~DFTsVtZqIR_%T;|Zvlu_rlrT~&c; zvpEq2Y80-};tBg(87qtuI|?aYK!7I#HH3eEmidxf5MSjY@2k~dEguj~R?8wA7pYCp z_v0HL21!Z9FaM?5*nIz;`K{$U?R#Hfg?9hn@btJ(AYbA(D2 z=mg9P#B<=l;p6Y$%Up5m`jvN2oj%NwA>BE4`XK$wxNvstK7&77|D!f{s;rwfh{315ADERn%f7DaY|G4LZ|AVB~uX&%NX?ZNh(}rmhy*4 z;^E^KY&WnF@;1K_V|&FUwkjsERxydcOGyfl(WP%1YMCS!V^#G4nIVk8q(nFwj9LtJ60|j=DYsgGWokHhS!vZ?c=b`7!e+g`m7Z zSQ0#G8a-(y%n6${E<`d{F9De{al!LF zs6~qsm++3TTfhQFQ$im2j_0FX!X=%xc@uyGHnCzVk zOTZ!Ef-G;SN-hp!aJq}Dn!2~{KY8iXdpB;}{p^d+KfQDN?q7ehIqK@ulT+^9yY1on!LQ5Zn97G~xetj5fk@etmVgZaBC)jjkv=Zo zWj+o6$pv%g%%)LGn0PS!QT#g;TOej7D<+qf#X!<&QoTs&Y3tPm|9e=N5Cw55Ab&)K zF?I4JuTMvC2wV-Z0+Iz|>|^8PNr*@>ByPs1T1wt@{V{LkAv2^bx@d;Yk6o~8tAp4< zfgl_zx;r3S*C0wLSXj5r$hH|pUGIH<@9LR@ySHpy*WO%TSzguHtbs+6SsN$X#t4Is z2=Ol^EKXTfQdfWI-1!ebymWSJwX?Ks6&K421Ub~Dz)lv$k;s5qpph90>|GgS7vKBN{pk9XMhz@XePC zfFqWdDuy~=DtgiJ!n3ilFUZI9&&R|(AM^b4&quRG4S9Zu83jn7qpjZ%uz()X{haTR z=bm#7@ueM&=Xr-xTo|nG1Crusr1LLWdL}PP&d$qN zsq3q9%WB)#6s09*d6HrovpT#4M-E1+2aCnwb(IwKI?iS7?b6ML1N6iHi~w!C9m=Iz+?G0ec?)8cUPThHaZOWIMN@TI$*Q#U6|{SSO=$MQZ5MByzVPuD z4L2bwro@3kK4c|2Dao;PF#JOph_}oHYN;pdG}_fvjfu*U^$Y`u+8?qhlLLe|caW(4 z0f^qXUc&>yT>Y4mW~m^b$-tx+CCe2O((5QJt%UU6r8vR^1jZ`-rCSW4fGo-JK{Nwd zph(@cBecMh!(EK*Li`!ZocXz^UQ9E8#qt~1uYGXyqr0M9L%7DQiTFU+iZ}&Ia=doi zzN2TaUc3DM&5!T0w)D}*pMJectE{!=M&x|=&1au}@%JC}()PXYoc}P(Y-np*pO9sG zoU1Y~y}K+um8fZXS96i>ym|bsBm1_l?cA|-T~~WMnHg(lqVNSwi0ndehpeLWtt=0b zXOVx9cnBv^x(lTbCN1TMG}7T$_(>55O9{3#(QIxO(|wXces3%39v{SdEFyP;M_8#t zWGg&Ga@FVigvF#k{H02&Gb$?)sfd3)Jj4Z(=5S*atCSc@GN$GIXLdTZk(|%8ESaX2 zQH4aq94f?R(x6LTWD3_-`7=ppRuyVDv4)_XyH4uOR|q$T|Mj9c6SNvX{@Ku zd1L$L6PGWX+P`zldaPeb0vf2zY=bayAxK#7U2zouzQXc`p3R$2UA+9^hgU8f+St*v ztD&;GuDYDX^}>Ruxv-oZ3Tg)t{`5`Ta{GE##D?t9|G*(~(Jx+XCiZ8BMghnz-H7*N z&f&)Xq{IS15wCoUIf8j2%BkE@;h|ECrY*2zd`LyQ~Y}OSi4TNQ~QQNPkcG9HDlO|(#s!#UgaZ<%(V~U?Nn|F%! zsV3cO9HO~!&M1-)#(^7;WtI*Y^+Rnq$4xC7^m(pm+bHkz7Yc_bLb^r=@?Kya8*V^{A+q;C9@V{Ezt^N2_T3tac3KDik ztA0_?4+D>XQu`<4p|ZNBse|g5HC;`OZL*@tq-LO{xGe)580 z8|cl2R5}DF;X8W%LOLAwKlecpxCi4@(j-C*9{3AD012MR%g_(}3xl}O&62vrP%Mg( zM>z|G3lpm_jRrGW$|cSWiomR?qpg!-xYpLL&bGEXFe!`I>@lS`J5QZEcIy02?f`0H zk_1t5M3pEysvh-DLf-jHN}!}F%FZM+SWXHjOt_Ug!&*BMe}N?3-DKz}E`TH(HmG*o z=BECLsemMmat-Z9pjXpC(V3s10%PA`!3W+?rU~GIwl{$9NrjDr*29No#lBaG6}E0% z*U?0BY@uy$7$8d~$mKrMEmH8Gw)ouaN+#9^H)B?619T-|EI4oocQAYD!rt6%aa?Roj1T)1-XofC)mpFVLIRC4fuym2NrHIsoxRCx$`jor_R6A|ne z((6^1d6g;HQtS_ac#!04C_4UC=0%VRJKei)|9<$8)L95JIeZAW5B=DHqetN-C_9dV zPXYy(AmPvtJS9lL3rpnpGnww#x@EJr=~Y#dqVx)a7-Vs_RLzJXkM`Sh7lCApYM<2>Kdb&l^qIEvW$d{Q(jtUS7 zjKmzG!J_TV8(P&Mi7VuW0xe>%OYJ2tNT`iU4}T!LG_XNfK?55WbP;f9%J0-=>+*^? zDy`2-OR9&hsvcN5IDK3313$qf4hmKr56aL;IMH6o;C2|k{4$2M!&h+--CJQ|Vp6J6 zThd>=X~n;**g&1(3!+uJIrIO=K}_p98uFTK1{B2hPZF{NRfc>NA-p6}=kpnpBs(s@mepGx=7^ zOmx&6n2O4C5q0>y3Mp|yNSsnAB83)#2rE!ppw%cG?i%sPs4;V=2+|nIrjPjbsL>;X z-$d9jB{U)~F(tDgbL#Z@vx7kz`Wt_e|AmvMY+n0QbQ2@S&YnDd>i99kg?vaq;77fJ zioPEO#o&A~0v=--?ilg(aDWIr1cTDi6XwpFJZe+Y4;`QmEk}14#s8Lj_gBaGHoy1c5-3yoBr_nD9+1auvE32^FD5MWuP0P9+N6vlu%eSB1zJ2GDdv`wk_})Lh z`|*br*kPpJyY=Cn&%e`4+qNAWa_a28g6^9SesXs0-P}~`be6b`pNmQl@9(I-dh)F{ zRL&*zSt~9rZ~-+CdLS(S155)w34c-X6Hov;52fstBnfz;XADpTMP*6!g&?9vU*cFv zOPb7Q9}*M*iiD_qiU=kj3FjXP4*hX%6FYuj*Vb*l$M=_J z60J*lfM66Y@l_-yTqn!2&3gLZwY9Z0VXoFxU1F|EPff-SSD7m$isLCeL0atH3*ji* z>?g^_`!I@f_LzjT??nC0{u3rl7(bqEfk}7i#QD=sCS{Q$?zgd^7hF0LaGFS3PH$MvSRs`@IuH8Zyj~e?;>K;T_r7D-4)i9l};A@tMui|l9s0|UYwK| z8|m#Gy1+T#ClvTnG|$8hz?|Ja%SmMmu*EaOuGp_JgStC;Vdjhqr7Z~%N-UX_sfzcV zFqbsMg7c%|V;7=_3l9s6O-=}(9~u#{*sLzH0$xJrhvUM!AUtVlWLQLENhAJ6fCD)-=~utjb)Gotu@7BV?}Da{9x}9NVf}J;j+) z+Mq4-OJ=HbBpY;=aV~Qt_mc@Ng}KjA4yX1EJ=4CzSox$N#~d{W03p@PrjiE+oD{S_ zqP{Ui0V3hcU@`;AT_7rwAGi^P`W3(i4Ci28QeiXx%49(jX;?`YSw9oYjG`i^?kp%N zlFeOIT2fw7WY5dVmDQb+n?M6vna(0fsN!Mq#y-FrPYlc>vtSH^TEA4 zH?QCP==R;)AAWe}i?6@?Nl7uj`Si}czx|*UH?7-y;K=){OSYXpnUr7TTAi1cwjyo$ ze_qO5xpi}W`RCVf9>AbtV|PdQdgQ$<0XC8MDR82k62K-;cx$S?v70RQk?|Q-0fJb> zfso#+z!5Nvvla<@^;lk|;GvNvamhIqUuh$4?T`()($U7cy{xLWON>lMNPoF_RzWV)`=Rt(c3LBB`=K`RKiqJ0@HT9gqjCOgcyzmRJTZGB7kKpAM_3uQ8R=^)Fz@eVJWrUX!B?Pkw7%$)HiitM!A*4 zyrWlEB6lL8-r2jSOE6ZY0xUvU_>_FOxU9Z?>y~Xh2()()s_)#qzJolnRQY@;TIW*c zOk9oPHN}L^GJ?06y$}|!f<^)Uq@`%8^u>PM>gmwcwW8T6w6|CR=KYCtD`fP4=Ts7f%nzRQQT1e8mZrEmDRaAXt5lV{SQx zf(AZGmU&7rrm>g(N=s7GHf{fWw>#Ec1oehCr=?f{A(Wf=hn=mVFaX0%k z(azUjU0>AWNJ{e1%+$ocG?1&46s^r@^=WJMv>ELdHs6l5-CFyfAS{Zq$VJ;B+1{Fs z;()NDcL)BpYq@UQ+Voae+Y>G1I^L~gZ5Q1#0B2^4i$89%l{Ei`i(h0dq(cfdN(+s) z?ltXL`|1ro^gE$Zj|F#Fd#%oLGJQ{F5Gl?=!t@_r5?kHS(Y;~wmbL8-4Xub8)^s#9 z);BiQ)>3VzuADLt)%~TVrEZp-eYtpaX(nNiRB0YxrW{RBFOre~rGA5^=zWXOf;?D} zXUGsHR02?Vu7OJ|wko?niKzVhql`Qr_+%rrpr#YKJ5B9C$^;%x+}Rj#hP$S%xrS0b z=m4%AhFMUAGh#uByU27DGX3f1P-u=^xo(g8Qczk=!H60toju*1U39q;wp7nfHE%ff zUJ`e;_qKLbYn58X<7jI{gC_a1%tk!bxdwFnJNRitB{t5xtx4x_Yps7&jEr-p7%tER zYNCh<;}T^F_R7YV$2VhF%YbE>U&skVlA@P>3~%wDKwYBkwe2%{2gx7>8&J>zLecjP zVAKj-KzX4bf}JQ;0nlLou5Ft)uW9SqvSUm4`t4iSZ{3O8=(>io;!@_%x&qrz-+uk| z{qKH&oe&Yrl&x+8f{gKJs;p@Qoow5C-fE?)civ#+hlQ>@?KzWLFe z&vWcF32X1(8M|zi(>Y=0g86gi&YCfVq@iW@oQg7s{`p6D&Yn0XeOwM6K?osUoNAt8 zf)YsL1t(w=KVIEw?s$Bc+D~sePcI^q{rk-Ww*8LY03j#)_UU`aB0iB_KP0k=LkHyx z#6-ao`Em^B4tYF&{MeBrKohSLMg3=vpQ?Dl5_QKmW6NK}2y`82pbK@0oCVG_FkP{M zy6OTw-)^`H%ehrF$SD0)Gj|IH9sEFs6r;vy{ENU8xs!<6Lhdho74%4zCD;UErjR)9 z4kCZhxpWQtlX9hUA6t{ICi^tBc7qPyL8(jR6fCRKzRc@ zIdWJ#^ykBePnaKatYsN*_^wpIa83{jZ~IiUtdD|KKK>!igBvLzYfHhND=mpVJi zfG@+4qGUx+SX!lC%|V3;cSN<>D#0my({6pn+vJ-ArMQYb3Q<8^VtG(ub@Kmosb?d~ z5p@{{)lky{@)fL3b<$cPZ_99bh}&gWvEsAjgPDuY<-c~K5oG>YsL39FE z=?7*JG@xur2dJm7@x#)X1uG978Hvyml98v7f{Y9eofw2eDeYm#MrkXijvi%gre}5<)8Tmio#0sf4(tdda`D(ZLi2#G%rJ6 zooBbj&A~o(!lWrvg7^t3hhZOHMPB0pguMJpArwWE>`5$Ahf!H$BiAWcjvqsZRRE`) z0F=^~2fgx&f=;xRfucC!RQA_Q+(k_3KP<;Vdn0G$m~la4$Bz#h6%;&ner$54EiWv5 zby35%3)_nqyg6p<=wK;S*0`zj5;F5+!xl}aSmMoTGpC2ghfkj}bM~w`bNDiC z+VWb2Y3((xJWo?|p(ih8ari=lGdeLWTv~hjE3>?!z;=CITT`1=i;0~xTl6H_?8gL> zpes?b0}>2lM#0Sf0#A5>2xg8k*N^4fP{({N>~Yd_R+xpE#HiF=`N502A(o_EkA9R_ zW1%LC5|WaWmo0WASf~!REHV@N(~gohexy>`BCDkGTGiPYe1*mw5MPv3p> z#jOuN#-91+?a%-A*%$X#P|)-F7himF|ADi-b;ApL4jjAmZNc{UH(x1jt@ZqH?t{%T4583&}El^4HV#j81&Sa zq<4-O>q#+A(&9zY^XKB&C}}PSlw%(wB`KVli14ua^C2S8D>14VA;($tJ**INj^g7u zH7dIm!2yXYN`aV|xJ5`2l&fe2z6`7mhSF|mGMD{0ZHzzEWc+vyyznBA@+l&e5TPdW zsYnUg6f>qwY{V{n;Tv{Hrb}tC=gYLCt$tmqa@2vK{EHx47BU5rVVq*Cxbp6?ZJV|p zy7U!$fB*K?^B3N~_Tk0DCD|)hq!588X^Z`UYfH4ne_paAIU^%G$0n|^QdY2<^$zXYv1?sH$?_G$$BHP_(g@ar#(0 z5)=zt;Fyq*;E<3IFFNTTguZK()ai&Lh}aX^Uvq&=TwY@zC%Dvu@~lKUx4=pYU+_Hd zHv|z%&5(fS@c0<=oH;~$u5*ab^Fxg1EiY)#dtNYK>@SiN@kplgt|-@Da$}cdL55~| zxolX!p$fbrXH(5~i{=~95rYOVCYwQdoA{dchlp^V`7k1|T}AFu8tE?sGNLvzK*S#r z&Us@mc-?{i1o(|~})q{M{9iHlQK zW@TnE-clFGk?RDi{~5zG7>OC(FJTD_>xoO^i=&_5I^s9?eTi0osWRqQvGIaT5*DG= zkLT}7;Z8xMElQ8{7l0GxpmmPGk|@y5UxeFn)v-@W*203iwi-uvioL+;C@9QMq0mgE zY0(t;2@x|ExaNC83+DwQmjjEja*d&fDz>~y1r~_6daPjx?myI zIEfK)OIGAN)0eGCV4y{_Zz-9}7sYw!G_JcvdDSGXt#!qY(xzrq9;FKLm zj@-zyX{$2cS>M&(=_y{BjR7i{SWD^eMJ8wz%w!uTA)b`}!j5HdAY;>DD8E-$$}(** z^LQsZfhhTsYshG0g@)0l0yoAVSp}<$g;ZWBM`g`zg`s#qiJN87QF?`A+~(cn6%|Sg zQ7IEFQM0Y1M)c`~hsAC(kP-(GqT6)2DOoX?2W|OOoj_D5GiP4?SD8y70?2o%`L3AwY6&<0iB(I z6`uGKWovCQ7%DUaAIL(e+o_aHk&qd%0%s5_dSYjNRay#w3@>h3+?GjCDHC&Zv*}ow zoGx6&Yu2p}56j|GJVn08U^yS*J=hSs3pCd_s-sN>d02sm?(+_JVS!Uu9gSBDRN+o3$e;V3tb)jW609OpoQGm9u!`?P zs=~60Gd@7}FE-X4qXUp+_IgC-G?^J>d52mRuX(CexLBab+N_xO5 z$^zMM>Qw2?ZA`IEEt%podCHo}zA%$YY)~CuF$#@mW>T`_$BZ!3HH((KO1)+vswK#o zN6+&BRiGNGA+en|uPoH35XraP2=4}R3k zcQx0y@NT+$+8V{LhoSh8IF>uh21>5NhA1AKq8Iy!H>zIfQy^x99v`f|r2T}jUBl%E z&p_7i3)$%N9l(A^_a}_dP@CAuWPEIP2d!WNnd|z}Cx)1&mmx^e^b(DfRST3Ekl&yg zLruVMMNL(KyQ;o*{hkdig)-O_=q)U-EHqsOC6#r>MF_B^Rh`FG$OPwfYXwhxm=QhY zjqP1)Iy;){nmfBG(V_6G@@df*)NeR=HYp`_S<*=$;)a$E+80+oCOk#46q$;ufhp3L zS*v|ih=oiq@*%C3Rc~eH8Lcg#ood034!!e9B|{;bUk6b^g(3~BXb1HO90icF6%s1n zKE93e7SIFLCTK5u$$Ix{`<%FJ2>L{dArb?vHxS?;FX#s}MO2PRG0XY4C7(Wg5JI}4 zd()0>U2E5NukE67_l9+CHRWZs)pP)}{q)V>|N6IoeDnQ}KNB*`>b~MCLRJ{gWs0h7 z+IdJCww!+J+@-4*-aCK!#;0HXVo-?w%_p~Reey-F-CbVW(7JBlq6{s^J$=rs8GmZ3 zhC(|HPa`g>w=TYW`lu2+fI$xQ9-zI6m^ce25~czL)^`71rY<#A!GYza-Sps<${kgr zvwy$qfIs`z+pF*QIj~>r{lEAZKoa~&Bq;1D6a~NnHc)8g*wJHBs&Yg-_M788Im%P8 z%i+Tus9qd2cGG8O#}0k_6LN$(%p^#i4JCz@bq$@}TF-CL^fC2|kguVxs+dkjlqS~H zFxfGF|2HR)lSdIt2PctR1$adPd4@TJp%FORjA2eAw@Ik8%1=(S}Dm-k(cC zJ~=*z1CE`b%kdfQ?62QB^A@d*k4R;YxQuWzI0JiVR-|nn40)3J9SF-B5j-MI`4=?> z$>gGdtVmPXeRaV@5tTs2ppwTz4;llxng&cAz?zr0>kQ*wv?)~WQ@KOH!qM=Nqk(7* zKvHL`fI?{bK2}O#0-+ODQlbqM#n_-IMHJyVG=J`{YGD>;LOTgGxcxjTu%V+(0i}SH z(PRsMg0i4GFEhfC{vauWlgi_Qu0C|I)Bb}irD2TUI1 zS1Kf8fe*bcxk&Dd(36PbV>q6p zjuF2BF@!a5X|%>n896d|?9`>Pq2q%|Ht_$@M*fz1l9706Oc*_iijokzyo{X~92621 zj76zqxSawUJVb;N^cxv6Aw-H&@I8Wo7!=?b!+k~!ufU4rNx;XbQKQjV08+fzL;i~e z*z))Yg*gO!2yKA4fKjNz;i(8ScpN!;-1G(0f}jy}iJ7%HEw8+Eb#&z7l!S$$VGAaV z4GEbLmokwiGQv~dFj+YEr4g`)!Wj#A1C0oo3#kywdHh9eFPlh9T*Csr=?p}qXqX)q zf{^58lBWT$yfTU|Gp})Il(Wh|d+G>O(xiW|)B`zr!02K+m$m%3&ZAO zOg0c65*ikj8nC6$G zTJLn!BbgaSx^?-|C8=IalFFSaB{dl+@;1lg#HlmyUB3E33Q2XJGYPS!bRRL@#g&a6 zn-88tFH-oA8y~%Y{?Z2@eRA&;$L`yX^ql+$-+uFxUR2Y*zW3CHzd1@g&iwloZ+~!8 zzx!_QG3Uqm>uk4AbzlwW5j81GwZ^}b+v6sZD@$kDC`e!<66zB7@~z?(M0;A=0H_E; z5z&q4D^X=<>p6o}Ob8TNDX$Y8;+}_$B3nhuy0t$eUS!Wi#NEgM);EdYoj68J;78PF|KG1y|WB z^|D)YGSgDT`$4WL^ht{o<5=Anr#&jaJ) zC(4+yj&YW;`WOo?uUd#Z*gr_ac)2EZC6H&$g6)wxk1IfDjc`7%4?JS`_jN;R!CZB2tTEMpj0d z(H0%Em{UXTeN8LQfxGm0Us1| znYgStVvU$Vq*`%_OA{AyS;Rz}NJIL`xR%Ww))$Wy3%EolmOhmhS75~=SL*OOG?E7k6G<;)@^9w%eq}#diU*JUlpIAv`10NDOt^*)x$G$prbpjjlB|MN=VUHhnkmXf77-0OK@#sO9A%Q!QGURum|XKuD*Ck{vIB=eLF7)dnhxmb z5!1o@q5@rf&mo~E@{wSCBqkqxwd!69$9eqN=deF-_}>G!^$+0 zem=Z4J3u6s2HT14n;P}{SPTph6Rbb-MfOS7W)B^I_nzJ5ajZ(a^8TH)TOZ&3SZzqAhOb2?HzaYv5 zG`|uTXe5EO(scqt+bGmB@Gsm|DrX|Ac3DLN%Q{iM~M^t&rm7(|<5nOr7) zaUJx<x3ukzr#Yakhs>&k-{ z#X!k@WaEq3{pJEj?V4(7z6?UF-NwJN;2R)MeU*;DKCSPAk`PTbthg z8_o*<&ev9u2I(4&kvinN))pry#HY1IZ>_+7Rl|nWYwWVL(6FZ%Ad=2V z`p#D#WyxH+?dbJ3sXt=4;V@g*(A>b2s{d2dK(*V34Rmi6Z3>k?jM19fmJVTsQmGO=t`cW!&n9xL&%J?ue-Ir0O zlO|bM9tu>W$F8~U{Y(@3!4T5mB@8KE(zE~xH~3-AqMrCj!nu-E)-At_G3czUV`Z$P zwz{Qf^Tr*!cC2rsFO2*ZXK^vUzvUJ6jUCNZNuF_O#|c_;S%5!>FpM<$kPZ-`l@pfnm|RQC}--|fRX?TkQKlJjvl-C`QOf-(2iS=9Xhmk*S77OH*~ku zRkhOKr==6YUR_yrU76dk{qpVK|N7Uze|7)6pCBVLiwRE`VAV%PYSEi)+I{qNLekr( z&R)85{+;(OU%QiEx80L(&HEay;EFuWT~gEBwIeo>nBq#Vv!r->b$M}x^~-Em-rqic z=j7ohC;(vx@J0pesH|JuOa24{0r-eKV$YtvOlw{x2n0yUYSbRBYzev4~0a8i6F+? zwv_`cTm&f6(^jVa{6l_OhrTAft4nSOtqc`$Dk;>oLL^4D4b1{U7-DM3DQ6EEl=8{X z$~ooCVhF@QY-`6O3NFG(Quiead8N)%U5q&P_{v484Is=%l<)wv4)YfqFvRkc_T!T@ zj!_`Q>tyoxzX=J^zWDWLeN{Ri-x3gV{TdiVILL(y#`!;7ym}|?>GHMfm(O2(S35O8eQJtXHK7CL0Q%2$bkVfag(8N zYWp_sBpefrRv{tcwF(H)x*qFfm4K;6KnODkS`%?|(dy_W%}$!tW|c3iCpbr!*K zC5AMBG0Xgzn=l%(U~}y!#dWZos{e^fig_o3O5D~4@-H{FJDS2JG8N%Afb`97hnwu? zEkEFGysLCF29^W7^M}93+aJdAvWHZ`95z5OiWHo@JPZR5F)sn3SfDAY(aGzM*B&A9 zM>C>iBchK$kx@W>j)SfAHD6w@dEH;iYu@lsIs?UUj`-8a<*xk9Rmn@Ijv5s-PL%#Z zlO~S?gNU!{=utsqLZnB^;L%W(prGI>V@Hn;o;-0B%p`EcsEMP;1d-YpZ`dfKvGY40 z0f-1Fk*XZZa%^k{hNpfo51!c3q}ZS_HsmY*(3s#5Q^<=pB0zY`aDL}7DtHvonG}|o zle};oq-6N;ks;F;=2}-IO&&94_VkGp#)pjNjZG#+n=y`O{2>G~(x=yWH2|UlUDB{P z!Q`b>DN7uE5M}7lLb9e|!wP7sqswYBX_IU=GBEvRx)d9)JSwg#!J|c^@&=ij_xIr! zqrd7vro%y_Ne;M&{k5`-L1QOOnJ{hol!;SjMXmJo9NgaGri1#XeY@AK>n^hC%f|YN=G6&n|^VD^lKk-4SSx@NA<%F8qJ@-kOe zZCtbe%Kp0Ki14KR=1W?6ZMk8$efQNj-&%k9@tiG`nqMR(a|g}~T^P0?CM_u{a=tcq zkXojPsfhZ7)%yOB7M{q;{cL|2%v>;wzhIUHdYEK`lIrz~jwYEGw6e%Tk4X#RRG<{( zu->ex&I?HbP_(7K6iDm5WLaYH_1~$MMs*@NAQ4!f_C!&Z<*DiGi*I#%3RmUonN~u# z%;l_bCncp~cLK&pXDKcrDJfym+h^Z?>(uGD&c1iy>h+sq2@7b+%2D_NlrDO_y4JP3 z-un3G!m4j6B0P8D^0iMsy{C5{>2ceg557fvQrXn8ZvXkeTl1af?F(0|MU^Li*3G&* z_uv2G(#ieZHPq-h9DhN3B6o6R*u<2C#()(iJ&}BaXj_)osCE}&2+PF%1hYt{WQx*6 zeo)Wxlhrq4rN7juWa$D~vROQ)M#p3lQA%%ysb-5{R)MJqo#1ZAAC$S6PMNCrZl>}Q zgsv$6Jv=_}NR5vUpIuu~J10V1W8z{t2XWvMl3ih5c%UHbkpl~eplCmdvoaVLLLn_2 zZ}0>n4L$zf33wBhV4cDNMJGhS%kRJ{V&3c-Q&qzm@X7=Yi;&*|C?>#Iq-qB~A-a>` zU?LXMJkt?kI3AT1B%ZUR$|Q)|PO~y~THj^fnq044Z6lOt+l(HN!W-TskeCr#{ z`ss!D4j(-8qoby)wc7Q|4+WJp53OjbExxz4+JVC+(suYvs=0h3jgCPrUY8j$OaZ=0 zF%L02yA_Wa2cEguwO{9)aO`68>5(tM)@+|XiP{b<)lW@`KlrPxN$vlzU<5Fsnc1@UnbI*ofPTd zVS3xux-%P6O{ue{(wQeuIy*rJSR{}?&v4?D_$TjF9J zanHoN8Y+t_T+UR~A4_3!i3!V>Gj8dW?T8mq)Y~<0F=`{UkZ!GsYF`CnUxJsWD?MSgiEtMY2X% zuQO_3WK>+dylcKIi+UxRX@b@?OEUBD21U9d<|whtGF*iY>yo%7%a`#Eq|1r`>aeP!0cNYZB>-mua%hV)38x;j<$jW8CPMj)Ll#zCQarkxbbG3#mJ z!+8HJ4D-rVWPSr0yHTGQo03Y}VRdLlqOAtf_AE1A@BNea`G5a5(FM@>V4{DkQ!!m~`T zTfb)4>0QmV0nhWa9#6OGR<7Qg*Kd53e)smt;#4i=2_z_7+8G%+4qJ9sx>B8(%Pq8V zwWnyy{rEmrPy65Lz+?n@DBBc`VIpF>gZ2tqRzegzSqE8!Ny|x>ltfh1EPOdE-$4JxXzd9d9XuzVR4J@jrbyTgWe~R%m3m_t3xZ)uT`>m= z0GygNYuSl|$ChQwfv2K}Q$SrO6CNMA^gy%rr7on1Op)Y&(jkK)0+hyXH_q9TCQ7_W zQiyiLNmVGZ9buadrk|COn#|o!D2&`;<5|3TM&^1ZdtOn4Okm8yy?gfR`+gIy@-Xs~ zURkBaRF;|^S;uA-d$Y0W8Bh!+vWOJ~!vJAeGbA6R=-~fpXxp%E``NoIGq0X``}m1> zzQ{8QU0U`hxAW}zbSZL~w%bRyu4z_3O<=7{EeCluWe$)m$;?T|F&9RaMBP8g&rPQ^ zxqHFre#b%tw?|ovkdjlbZ|;&JHUz`K&zJT0QW)-1+G2k~frNyjMK&B$Oqo<-Vsz9e zegge9)N~5IxEBU2m@iYjh9X1`m+y?5HFG5QPBIiNVZ1XDWK{ZBPiX0qni^CiW)wqAp9a6FZJ2zi;iKoZR;V1{ll? zX6BsPXPv#i{a^nDi50_?K$)i0a?Bf8B9+dtPB$^I7x$DRja~w$PMbQdW@X=V~vbi8o*ozC!QyT7)mb><9|C(wy=tb4N zE+fjPF<>{y&g2I>RqS=>iCfS#u(?^lhJ3d)ds+fp$x}S7W=kM9;g^CxYqNg~x{!Wy zhg|4w63PH)z||(;q97tt0S+pIG|tnB8p)dJ?yqHX zV&Dpz>92DtvNl4U5vT}yhVr-3KLg-GLyJNBki!aAOHL%Sb#PeH=0eGGw=yg;y&_O@ zw4tU$^Y1RIZ0y;wrL(S~wX1te-=+;ct+n-4V(8{502UD~7~!Rbtho`(Dk_V3TM|zN z#(=l$z1@wq1fSZvCIU-cNAH$hM|SkomY3Hw_w0#@PmD+OOLlvH<;C+y+BLy@fdU}J zI*7hHS{fT^qGZ9ENw)P)Y_`#!y_tnbg0f(F$AUbEXr9}?cKJN*}&etM-q}# zjk*~>pSh^@Kc0R5?9tszCm>Z27~+;>{6H5eN!+D&{2jzexCjtt?;c?RS{cDzqEOM= zl!FJ&1Ac5{f33s;ryM#|aL_pLj^0*X+jHzVbb-r>&{1}@Jm|!OyldFJ-Q>U~@ z<%j?We0cwcu*r)OIeTFay`sEmZ>e#A_aA?B)p0`5`iq~!99o+B!0IX)zld#`n_In{ zoA{VIReK=B6OqQh@>sqpuam=1e$Yfh;EVuIjce;`Ypb;}ncJaEKhCHo4(|+V#waL8 zBB-z!*v1+`eM z^|liDjMLi2!bKYhrod)!ghOCucnZ?NATAJro6GbS^mw#otQ~C%G^o^xBt@!_e7wb| z@~i%yl*sR5%~<@PC;NaY?fC_k`oEAD2h_!8g}M+$pe_fjHced|Jn%RVvIA?x$NKxH zb8GdA@oV!}{^A=e`NFS(2L_cVR?vWz0u~2?73)wpl!ZRGIJ=6^D~JW|BGoQpz3g}pp_^jNyW;FLNN95Zh0 zX!>dXRoLiJ6I1M~r;Hvmek{@zA1xUf@2`oUuYhx1(OJ^Szg{>vObOkQJn*tqc&4lPT~ zh@8m1BQ%Vewlpz2eL5a1qkY2u5xmXu6Xs1HtDo&XHrF-O1A+-A-6G}Ei_}#JSICl_ zq)kei^S<+r_DisH3;UHl>()3+4S4}c3$Ltq;}A*QZ0znpt#g4}iL6Bpv%HJc##cxL zl6h~$gekMamqjcN51+Lt&0bCXQ$}e6HG56ort*??X$wb>o;Z17d{SCYJ{sxx$hoA$ zGs71|EL(sz=(L%@k-2kcPM;H*%=A1fYh7+ya(b3oP|~x1=f+3>`Mcu>uXZ^~9=dDm zioX5NKYsVe@AB=Qe<^i-P#qnyd=aHT^TQXSeUFYqpB zLW{q7<%0_sE?&NN>)yjhYoz){yKzYO-+Y_lpe;p9_x2-Kp8lr;2=nmTrK`6dKK)qL zZ>qGg2K(KASzJ`l_8z?VTdTdZ@X3RxU;mrA_x!alt>xdkuUy&Hx5ZmkEc!jE(lwy6 z`Amy_r7PKR7v|Syt}RDp1&FRCZJ_p(|$g~^?!8e)}5w|4J4j7H~YV1T12BC@pv#_I?<@yjz!YX(Rsk&gAIB9aU`llF= z(9I_{nuI!%fjDpW3@U$wxnLRE(5I`?!Srz;4fARHqe|mcJ(#ej^AA9gSEOuGH%XgF& zH8gKHytTtTP;Sem`%tP{6RM}{{7}h1N96;8;|D+v21ULO_7nERoPS5M7 zD?;WlY}L%yW*`Wk#`IgGmnpj9XOfe8AAd1^F(z2YJ5jm>z>^GJ_S0|lXjEjQxTvt8 zQKO*63KAnNx1~tX7)Ez;QT(~zX%x|l>sJN8^naTkTAsIPtMk@d?!m!t4#tLdaOIn2 z=w2MZ2zm2Oyk>ua0;cXwV{q_W^xk=k(jU9Fop%1xL<}doLh#M6rHb$!SZ@`DK7L#V zEMB~L3G2NaV!F4EM|$fNBXp6r!hR7o%dHVb%cVySY$i~WF;|4R&IU%3ni+5r2db8T z!pI|CWv8jyk_pZ`m=71Ne}#y3UFgoE0Sn=RSfO%WC05AcL{2Wr zyl<>fibJbAp5dmYV&h^Pdgj~?B-hd=G(XP zVifcR)cLe__w7G@<7w8@o44-Xx_0%(-AB(XWz7Xty)b9YRV8?<^q#qsmRXvAvoc}%9L6V zj?e{Jp)V<6e+jFSbxJcoH;WRl6{}M%dMEcis+5e9 zu8ANC+`_%o!&t5SCziHIgNh`DBftBBO}IYJBU$Od<#yTV4T~N_dQ@rkMUq`C|E#C~;SIZ!IvedT7e3?c**rkZT z#mxqaCPBlMJhjf6V`LAIvzxewbB0oDUVbick<$(e7wC$DtQg2!3_!0<`=yv{RS+R6 zf*4^e^YukvV$cqF;llq3Rs^Iv(Y85e;c_I0x-q+$aBj}PZu+@1t(xXHy#&6ZrYY)s z+NPHJWGo&kd)zaf%vgeD3Nr_HB==kw(-zJR=7O?tX$R!L5Fc-Nii`fYezcy@{hey* zCHrcg;E#C6Bs>;zNzwUoBn+Uzh2quItq(1i_aSi7$v$LlrPe;^67 z;E|3^JNhd@MP%LM>|pEm{ea~rOH90VK|92`;~ z>{J27H4n=EL53V!!jDDuB6;XQInpHT@l8WvCE|Y~AhAhV=qpAmsbZp?yP&eMV`EQS zb#()~#@p8J#c{c|6nsKua8Vh0Ev%Qzig{I01G20}QpSPJ(G5r`F0GKxWRi)|e}^8) z*#90of9}BELt9!q_QfWwUUla5*|TRau8dDej61Xu#KJznVx{(lS~@D@PfK`0mj~LV zkBi=;>{YQ*F`NHcGZc}w=rO@3kG7?2y_lZr?mSZSv!$;O(S->`83c6LAtI06cv}Ee zU(*ETpbwi!tqTa{kODSXFbX+*_^|ke@Qa(F34#;&K7K+d!^s;@Z(Ob4u~P$rz;{+>+!x45eO@mq1EmA$NYKWGZX1X-zX?cBKQ z;Hed7PMkiE@9DYAH}7ZK#(45LB|LlfBqe>F%~4q1*|%g_^2*&ib{&byu)3;d%x}$k z{Os1XYZs0m-oH<_VjoOp&u;SfU6kIS;@N@RMD2V<^CI*oqOy<&(A|8`Yr<9d7q%OI zq_K*KTn5Mvkej$&9U8>W5S0(#Y`bx6;BnyuB6wjJn8${R)JMvJWOqPVPO@t#5TX!D z2o7jk-UH69n>KFd!eQCj+E`a)wb)#xEoMhJ$E6%*5NcF@;yv5WQQ3hZQAbw~^qS*T zKuiZ8ry!Q~AQna)MG!ZtVX+#7Q9fpmXP$_&8xMC6>loSHW=~QgbsQ^^sXkr#vwb6>AlaE2wULZ%cQec)UMqm&p zMH`f*j+z`l79;$u#nj>y=LfQ*Sf_U7`&)r6{x;p+*W^6xFaH}r=rGJ+E+(lO^ktwg z$T&5#Rqg;zUv~5_W+6*r#Ww6zf_YQWRkJ*ZLmy>c1+|^_=UukGXD2=sBh^7tEA)^L zs-E{F0vH>Fg{WlJ7)Hb|f3{xGN}ZG3>6eesGZaU@c)$Lk|Bp=V9W1m~!Ceg9MOY1e zL0nPLdB_j06@gyxVtjX)``spVE(OB|X?=^74av8iPQ!G-crO6d;T#?S2~i{d7eHkE z-0727u8mkQUMNOb*sSCwbEhm`GM+zlCL=c*BVP_1HEvc??&{dMx#P6C3K>m53V5J1 zpc5xOeZeen5}a1h!=Or`?<$PN4~(KlsF4P}jU6L`^n+a^T%egjybBS>j1Hq#iT?ru z34-B!1Zt5xnT@y7pJyS zDJQ7{viyo>JZM>*tatk`i-db);TpB)pLULT>s^qlP zgcXsC7cZPPY37W1Gp8e^e}BS+N$<~))MLi z|6ku6D*W72?6Kazc=7!CtIw3XtN9*u@9 zZ^;AI(tJ?AqQ3#%VfDZ8Ee<9$;{0$?Ab}W zY$#PU_`dbBJGZW1zj6D{{risvvS^u!h~8zP)o>M6a^5^}^7dz6JZ2g8#?@=r@7}-q z%vsY==BleVXvbCA*tP5Q7oLj7zCVBV>DRw^wfAj5`0E>Hi8^?or;R>%rL;RJC~(=O z@dE(FB9sLoi_nrBED1pfe52uzl{^ZC(n*m3Et#2)j1ZBvaJxNQW&KqC$LEib1OBnw zptMY{Eu86?uLkf;YMsCIHTBCgEm6FVOf80jA-!>CO`Agf5R_$7!Q@vaf>@qQTtwwEmfk*NUq|qQ>SZiR zg`Hpr8KOzEuoa6V&t_41{q;I$Ci<2nl{iF0mZap=9B0+~-TU_M>7tUk(sSg#rMlqv ze|U2F#*If`8bl<>X|0$}l~KMCBv37!V^tMzPV+QTn}7DH0wI z`wL$%Pf~4Z+sx2K--3PN^y$X57erl-x&_FBuL`azB_Ng`$UD~;*&4k?{8nQIj2<(F z2sLIbp+=1!s8Ngfs}M(|)sLwyX$ytEir&SA+q8JCz^+Xnb18Yd;H~n(0kD>`HwV({ zhj0A@&=MpBX0Y?k0DhZ;1KxUz20#99zop&|_~qMlQma8VW7i$thtNxisKP7!`W^Zm z8>l=A7FoqK2AZT62MK&xQnnO}5(WTi7$rPq5q@0Cm%AfWWB_T5n>Nf&NXtJ6h{8jK z7D%cnKPz7BiC4s?x^vT$vU1{3XJ{KW0R*P9M1vKz3y=e=&k_ zw<>vU&YBfSS(c;Z84$55%~tH9MKYGTfTTeYD-)un#7KC{;v%-*KOAob?Tc++Kr?8{ z3mo%$pebs05TEpH{Tr?}yI_`Qw#Z!qWvSYnTgufSM#Ee>23hptHRD6avv~^^FOOQW zdhOcyc#^{Ob%q;j2uC5S^=0*~%@wZPl*DDr)@7|p&yg-vsf@Xp$dxPNSHvK#io%cx za0Ic6jaijMdnt)F4hy}0OX?fjygj|=uAl4O@X`If6<0HJvesN+(s%6C)wDOVJf55n zwv?nx+bS8yDNq*1IMgK-h-gi6BnL3qg|`HABdM!e8!FL+5D0JiYj}%h8_zkc1}-oT zvIepkW)Q(rHHXSuezFSZuhVKCV5%L;N4qW&@)Gm3$gRdvmc-mTlZSdUV5 zIrUXVZo_7GyGkou>%`T&zy==GmQtDNpM3Q6$VABuOX<3iih>8{dJiL%3PULlRO#NLgLvbx2V=&NqgE!d>8SeJOIX^Gp7oH zD=?};bQ)wC5Ctq|*#&C}J*nyWlHSQ=P*0bw77Hhrl7{xihRz+G&6vN`*U@E~as)mL za!BZ$>ldg!nE%;q^cR7w6qlCq)GWVo9^tfsHEn8YQXGd-6s%hcY*sj8`w1%twZKW2 zOR1m(p!$<#OAnGBXmf(?+r-qekFPC=RyM0GuV}m?lVHIsk{B@KRrSAUZ0n}09V@u| zwr=0uyYa&POnd&PpWeTI=flTetXt=9sV^`1?a>bQjBf$5#!+ph@ATiH5-KmJBt)=^ z;3c+%Y(Sr?7z}zisO*7Sv*IHw(#tN{KMBQ35O(qL@rI@ zAXtuXVMe~=`hT|fu~RpQInr#vir=gvaZd4IFC91o_t~NuWz#F6DfVgpQvoWrX|AaO zl!pRXrmJbr=be&06bN}{*;xzHJ-$2?2sx3Sw6vCiI2blwqs_my&491?!CQ1~P-~k5LzED?lSeqc zCJWr8TB`l$zHDUu<_+E3_HEw`#3R4%*tmW3ru7>(!B;v|SD;`PM@PTTO}qAN@7uPq zqX26k$za+I?~6Pi)j{&S`l+35!Mp%>nhf3$#x&!%Rkam7SIo3H=sr^17_22Wh*ErI zLL4&k(XxRJ91@*vjra<^MEaxK-fpaiozw9zHs0p+>;U0<@AW2}ua(L)n5QMN&4G8lZ2IA9ju#f07_- zejK0@2gd{|Do6@O*p#R-(&(w)&`?9eVR{YKHG93ynD)?arK%Fe9T|`um6%l&dVrI> zKF60>fv^HjD*w03ubr1U;heN8$z-*58df|9TFaK-q`%aFKW+u-9z;M;$8wV&4N22noeMxXeoV z4}=6ng2ZH}qA!=)6@<)W&mLpnKrjI=ATRnMdKV5<%Jj5lHJ;FWM+(T@!f(7|up!=gEFpkqF*c_oB@&ghA?NCS6u>k%skN%1s zz{Z|Dc}iOIuv^fnXo;Rw{RjxzxUr{4F6)IIH`ddSy|B2VRdqzbG5JPXBBgDu?Oj{8 z_x5hzzoQRJDS~4!z?q1+UK0^2Vj!4=dO4hcnO)sI-5cnB#sLP35=G)lKR!{y$>cZ?tF0JJRsz( zkdQNH%+mqDA$7ufTpbIOJtGi=JtHz7Q7>wpiBykn+=M|77AW0pE^$Vp3PD5ymYmsS z5I3QjY7F$D5VN+woK}5m69q2~qAa((LK+$q^r59V)|dQ9WUgAqDXTTIGNTn|+8f2+ zp}B}@q8H~i5yh;$8?gBobsrh`R{;?NS_l)NuYTgvR^j*1|nl@MP$ zp5X+u@0o`DF6Pzj8jC!_LS;QTL|%q<5$cx$_$-BpT(+JB-8i`Y`~URO5M88VBBJ=d zm5elzF^5`*72=i>2o)IC0PQf|)wL?+!^9jlfLm+D=!EhcYI-D57%`ImJ1Y{xr!Ai| z2KW&+cJ8_go9pP7_|YT7M&pngCO66tevTPGJJOaLw{+2>8RNyc#2C>}o&@4C0zb!} zY0H(7BgNE2L?r?za6=&{@jXUfRE;bGX!PfweJ@TmkfL;m2Xaxve=u^?^w~3JESVa{ zb0J!hC!#a*@E?z$&S=tjaEc%gXvlk%0nJ@Hd8B9f3*4mNfJPx?JoMr4pvG~(Q?0F3 z=ccX7lj*5ub_=PPGPU1v{6UH*!t^QMMp$EPR7rma~yf7bgm zrca(UZQ9JKvlh%4CT5^fZG@KlD!vjnkA5lmm&%Rbk29b>eB3i?u>h>-BkDa{s(QiL}aPPsb zYqxLRx_9}`myiDBDQT#)=UZK6_3L+^`?7lb=8E6_`yZ+4t*+m7^Q#B{?z*(Oy}6Or zcT#F!g6*Z3|5!((W5|BIn7yE;L~XdR6#Ttsba0d{*@if zo`VQ5osL+#WEnknmPJHFQE{+xbxM3vHXUxrX=CG)(#_uUAKd!lPxqev?*4^i2P;eg zOSB4MRd7{Y0<|Eh4#b;em3$5fq-dh&U|t)CcxBm=@K@(iH8W$XaD<5yCrz3>1*%|7 zc}Y_R(VhrU03;NRQ{#U!ZmiE-3)I6VfJ6j~=!>$vBwN7_5(N#fkPIC8m2izDC`>w^ za4zfDHj5=c$E?3o_|2JaZ`-Er*PfhtRMlG5vaS9?A(_d#EG@lJ$sud_=wU-f^8W$1 z>E+Eh7!PnHO5QVQgw@Lh@+IZ88de5*fDCX-xxKzKjB9L5HZQ101=lb;HEjG49S^`q8$%@($cvc`AHG3 zvtqg8KlrUu5ugbD*!*VEU_T0fH2HA8?f7NGugqTu6D{~M-YFbX{Ek%6ITrPYbZ}5D z;-^|{UF2A7TjIi6MGEWumYU0omRD)EV1O0yLc!D|P%;chL_wq<3%QOcdvpNc!=#w! z?}cO}q+}V+?3BC=Qmz#%R;8DFtLl#Kuv0Pz|3G@=h<$~d6V_U*%k1lNa#Q2^r)Wn^ zFwBFb%pRo#h{UdnG0AHDW1>~8A4LZ$${p<&Q^eg?xQI5Mbw#{R`bJ8Zn39;7ks!%j zw9e=#L{brd1uKog11L&X&$V&FvgI*rGFQo8%a<1|vo1B3sKtJCZ>G>`p&eh90K$uF zzW==WPAqcD=Y?t(OW5&X{uE45A_ghCcZ8sX6WNJ5+luNx1ehza$($QRoRUWbN_`Jl zgumt#>09SfB&6n97Dgkg335?F^-R34nc_p1~JlBV*9fuJ;PR9Y0t3~H#QemHE!H>;Lz?JC+^(1 zeeu%6dxv*!?Cx3Lv-3iFj@@aw`@yN2bPz~V(*I7*fNK(~_(@bG-pOG=%FXe>bqSQ3 z^zy?*gc7O&FC0SUyzxBZWWqLL`4+=my% za~lkR{k51!rGEvc$(GtrPzkTV}$M?Qb z2*~rHzMis%?%kKI2udE_f0Vv32>r2#8XS3V4xcW zbElhR&20ic?4Hu*6ZaoH{^}2pKK{*vTURb_ZmX?Cvq6bHSsZ=^MIM(j{~21M6FNRE zk#jKn7Sn8)KkJ1_tK(L1bV4vWYV9ir5uOngM)@E~`SO?Lz*&mwgn99HnHW>j6DW+t zzU3uBBOB43AfaJ0+}vodU#s)s1~N>R;$@fed;N~P*3YgU+Q0AUsSlrBf9xuD7S|Ts z+9+LK1ddR`LzM=YxFK$(LSQlZDv z4D%8PPAVlcf~HTOF?~kO^exhC$DHmr&6r+JD`SVxI#!5?eXet!|9tuv8w;G_PGE9> zB(glYJih})pQi?605*|!J6uB9Xdwr9iWm(=Qn6!5-wqAYBq^5fmKIlQ0OQ8lR_=Wc zMnV8=l5-gFHBBh&ZFX-6!%6ZH)$Zpt+s%$35|j=~00xn~t>3t1+s@71TQ^}?@T0Dc z`;P6~d*RG>l9;aVQ<+X4`6_)yHgDU%cSqlrEgR6H2wJgsP{Y$MrYr3R&K$}cz|$Gt zfj(Z+F1J(M+YiV!NVk5nDTy0cYF;>Anp~_X+4_fA9CW;g)Nc*U$vS48*qBVJLENd19Am~s9 zerW7X?dfE?14uEID@e2^tTG#>9}Gn@Dn-o>sispJ{P720l7C`;Vn~1^+fwQUxm9vf z-^EmZ+!)B+eCL=h4y2;;GPEU_wRnnj#zbpkY6v?z+w03qiakY*)zy_{)z#%i1um3f zE{F~k#iIu@yidM-8L%6Ha$QAnSzW8Qk@m-ZaH{S5&z`$@;NZy3l1Z6BsLN?)*0EtUy@<&50njpUb$A0U<-zZQNuoCf4>7-UIAM$jt&AMXpX=SVJm(|odAV?&oRQulj_ua2no*M z342zu=`*LLRO7^wBH0(#kd z#pSh4-t`-{?K^V#;F04ePoFt?`uvG=cdk5In`y~g0}{@*m_^lH5s69h2Y2mUx|CC3 zrdd*0pMLk!d0rO4A-Lm^+W!w|JE+_dX^9V|?A|Rtvd|TgmteAjoP>VH2SN|(%{)Nm z&dUd(M_N(>PtjmR9eRl?M~)spb>^%{CMZZzCw_Di4UHfbz{%mmyxOs2GzmI-OdYp~ zh~lKUh;T3XK)?#pyxquLw&SBB)s7pUi}KJGHr5Fbt8WA$paJXbqK>Y!4UZIWM^E3m z+c$3ByLav8ZAxY?9oW5<>Xwa~ILHTxLPZX@4$cxV7EM;D#DhV2e}Dj~zMk?&LM1Nb z8mYTT=oJNP3^B`uI2esx*vb?$tTaA zK7J(bvL9-=a)Ux13})5Uf4Yvp%9Tr(E?&O;!IhgIKFj{>$^8#+-+S=!=g+>#wPfe! z=RCdo!NrRgE~s;_u;Wgj0x^6WfP-Q>lc0I zDqX~+5Js>N7S&<}z2X(bxfLU7cA-%lD7rMGI!Mb*RE59L6?>Vp^v8l!##kK;g+g7Bg=@ZUs*B&Z%)H=bkCs}%R z(N$e6}ZWeq%z0B zYxu!S)QDi;!`1K*p(bD$HNr!g&ucIiZWuFR>Xdm2akEB;jUGR4lp68sNWm@K5jJ|P zMm*3F{8f0@Bg34-{ZN_o(_AJ@fD2Vh0Yjyu5Vi;uFlj`he2s}I)lu)@hQe)b(bTip z8#n|z6%T((DMG8RUNUdilEn19goxOP#j~eQnKfndgb9;p&7D0z*^{?q%KI~B zPUD90<0sFUIcs4=jH9uwgd)*~dPh-hGspkND^}-MH*Q|Pb9=qj0U2%Ic>2+UM_>Kn z^P3lIa$i}US(ul+HX~x$qUDPh;Y=&p1&Ii`2Q|hoe9uV)kIb3locqJ)fFxX|93T?W zj4WFosiJ=%Ng0v_Qf<9*MDi^LbV)BIr|49G`M&UrwYaYaN}8`e0@UkwIi+7|2IdX1^@SA!Maj<-V4~JIaL`pyNhZDmYqB^Pz@KTJOk` z@V`k4#EI+qLI8OXvjJoy77HS9-OEOnmnqP}%r_y9)wxNM>S~sOTPADttJfvbT{DAs zmV)$yTsUcMUg7pDpM3fBi_aYSzx&Op6Q>)UBDP<OT|fGr3u5wO63Q{w{0jvMD5Zv~LN3MpY1 z$)XXkSeS5Lo`E-tX?dNkdk#nb;y^1l5G;)+j^=kt3fshImzj}mKXtLM++AMQa`4IJ z4ZVM=DrneVe-fDOu;u8odO<{_kf~{sT#{I7`L_{2nCcQV2_kb@#4H#-0v@40LrX{I zz<6fOoT;TFG--g52q95Z0_pxeMNM`h9}zSXfOf<_&Kw)UZ#IQm9W`dqXpKgEYy`%t zFfuX-2SZVN2_V6X_PIfd2U`>XN%7l$ZyCBZPZ7Sff#8wBCMuD^gWnu%ylLg)$KRqB zvBONNwPM8eRcMkn@&5D~v~X@jTO5Ry0}{i7m_pOX}Oj3f39gdYhj6Bw^Z zlGfst6PKJiu38b7Tk1%XuHu-(uwjwx*VQR$o|=YIr>ms4rl1t7zmE3q6RBBuPMYb_$Adn22f?d^H2z? z%~IKaCj^6_LP(JuL)LGlQiNn(7J|eErKm`i1eBH`pnVy!fUFzKaw;=^@+4LBf;N1W z^&~W`rD7#nT3S)%t{g7fbka&dMPq~XNrg7Fp#H9`C@AYbbYP=6mey8zRGzKCX0eGx z0%;tamy}wBD1cgVu?4Fj(y3@-!EfK8lUMHCxpVi%<(o|P?%uq8=UEO$l8TZ=cWJ|h zeb@5~9oZC|vYyviyNe)~l+g0<(1AUyWdaI%H*e7M)V5aMgGMTnAeHC$ za~sAX4Rz@MD=Od#;`z(^E^}i-qRHkH07WTivzNPt#*tHcxCgV8g0kAKb5DNv`~UOR zS6|xle*3$d*Kh1-*Uv+KN0$&jBM&a-ouk(=ZC| zB>PL%ucqk)=zty7ed)%DtsA#(-FN=UheuER)?szmc`jom(2dnYJ#qz^K$Ad;=%|-q=YD0fRC5fQ!t;Qt{ZaA_`(I=So!R%ZHjlJ;&jWG0%m7Qx+?h`2M zy+&&gV~xzDEm&(u+U?$wcGIgMAOVbYrSEQ~rLo5glIgI6Qi2(@j7fXPUw5wW=~};~ zcS~>Y=FP%jdbS@eGvx1UY~ z0Ws|^cnlBq_7j#!!r#X0`+M8KH2k630=U6!qb;+%;Z{5H73tZG2k%SZN3XYYV~@8P z#srj64S%JFlMWgTD1i#XsYJXYSM1e40?mnu3S^EOh18MW@MVH%MAh;m;dN3C1oQoV zg_|)2opBVaq5uG~vyk5H()lNd1E&CM1=DRq*V3Qkhv^nyGLd9bKNL|;JG2XHAWDXXmac6GJZ(4Gp^ zQqxdb>a)BcTZY0wLEYue^(90Ex9J?uPdTzH8yagxxz|+N(A3i2)wN+yZ2Xx+2lnni z&`Y^XMqq3MHGmM1F7z~_$)Ko@) zdQv?iSjK0ivKggWpH{eRgIi#uGGI6Qmc2j=u!Y(`K-wgO9e@%5haa3c&KFXS6DMF2 zzz_L8ZXTPc>wiv?bK_)s>NLMkpCYbBT{O?_+tkvw>%`&hy~LMY z+q~6fl}#1wHj(4GBqrLaN)b9{WtOYLs8^I;NzD+N-aUs79YsKL^3>V$=ctIfLccTm zzon#Rt}_JC#I2w=!cyiPYm%)~rp=l$!?=6l{26un|JCj;fD!Nuh-RnonH~Jxxf4DE zpxL)?|NedZMZ*JPLEWMb1q-SLp;jt%=9~GW+_#m7IdJXf^^jZg0#4FvD@o<9Rj3Z^D?HdG( z_Mr0MU?tMRPJ8!!@bIH24@TYpFm27l$Jei3KDq}9%$6;5lJ8kBWajzVs7uaEe5mx{ z=70I;4sRQa2o;PvIpHwomHSnG%C{yGa^_%f3yNgyBG$4Q)_=nL_S--G5z)&Z{vcdN zOjf@B`Wq3x{N^`beDV3Gl>a=X{O7*9I}kEM-yhJ-)vJ&hb!Eh5y8qDr2d|ZnK6(7% z%{#a6KK|^}`}e=j$;isjeJI=p>5ITRm>qBiFyku@6S4)oQip%QM?@`_z^m=sx5?QD zmz6EX=1`4g*gVx`B?yH|w2_#inuCamB6}fTiXzgeGiw7lwMbtyi4K+aia`W~GC~3q z7=9b2L7Znw2nm5gXADm$2OGmqT7MbD0rm&_Q#q*pAg@*~U>Om;_>6Jw)*uoX=>x{i z3{RVr8{}FsU@M3_Y}OLMqQ8OFk_I@YN$N<8AQNumV5!O|3@VbvDx)}1&Ua>s1M6EG z>roW`7+T^&U~^PUljxe-?>UV8b|I#b-y2~zV)Eh#v$@L)er3I`dCvbNHpOHg#qWfG zX#_baGLrIP#gy%+cYO{5>b-z>-$TbDRwae+mP);k{aqJ-I;rdtI~Dr~$H<=vWdWCr znmBFx+-Vc1O&mMn{h5;|&P&Z*o1Zjg^e9)DosyoBqoyRKOq%Q?FVGeH$WZ9XaB6U% zJs=r*0yxSDx_0!_q7{KF#&Fw+s*%PB8xoknu<>I?nqsHo`QF7PZ1m_c6W*UOW7-(d z&PY2RD|oP|Q6YGwh*(9v=NkSR&o3ZJ%vgBGBSt}UpiUuZOAwimh-n#1KiPct!7vlDA!gbNtD0Jy?CGnP z&z}{!A}(QN*-Be7lb4kfGm0{VIt`JNt^VX@nK^Cj1zGZ$1w{c_!k``qmde%@z9>lk~?k5&m zF0c{=tg=QUp^`6Y{sXtMJWru8WwBbhi{N16swsw-fTeuHJ$SGva%;+1%&8rUSIU_X%UbDMzBJhXr%_ zoTTOQij{E*tKam=hkU3;o;7;uf?3iRXwt+Dl~RQgD@ zkA3_g%{0c+$4t(-iuZ3=US*4!el!36?}@ic9VnY2Stavs`bP{FP{SuL>@GdaQczkz zgVx@yr|%u!w)5<_M(Zx`A9fwsQRylx$de^f*$*luRR1?@Mlo&wTaocZW5%%*14j*K zKr>p8MLLci3p8WQ2w;wFOb^y%=6&ZB+hlW+ZK7*}i;eIbZ^B|;fXc|mfM(bf&`j{? zQBuj{7%849h8SdX%-V;v(H*^*mhz>y8SHjFJo`fZ^bbutur~#3fOYX4JrFp(c{PaB)T(F@Zu; z3=F0nv9BXHOH558!%Iz!OH5gtoS0EiR#fRuV#PTC>|(AM#4KpV%4C-(F%beL|78cv z_(xOj6Dl}X?pCZz+hg3QXQHEvMVZkdB3t3L9Z?S6#!nzOR1VSXJTcanIP%U( z8Y3cz9w8d7EyqNm9~&xQMvN+TsLpnrI4)4xyZ!6cHttEj>%16n0fPy=k+H& zB2vl4kY*oJiTK)I*b0773l@orY5u%gpUI_~8>+zzxW<_GtN9F-1q+tMC8lN}ETLE@ zHYz5b_nDlQk)3B2&_JTWlb@a(w}Ku&Ss5wut74!-_`bXlyE;BP*(fY`B|)bmjHOeS zM@B|PuShLvZ!fjlje=6AyNnw3y2id^r&we=d*sNrw#vdXPifowijv}veMk4S6qezM zN4<7#arve*r!REo$+02F1xh}XA~r?%l&(Rq>KZ|!oZt-~!DUYS3R#6tILHz7gsc$I zqA2B2&mq@kIhWEa++!C zk^TGk@7c9$`xc-J8DhJ)wUKm=gw3e=xkfAaXUZBpi61znO~Vt(b%hEb%a=`14Z)BE z@}Y3#%M4j{1$VZ~x}|DH%fbW5CuO}^b(rmz&Q57mgbbvS zO-9FpVXf4-_$Iv=bUWXwMqIKKeQy<*8c=5`m)7S4m zdw8sOgI8-}bkiYmZD0-E!MZU|sSRzAle0u;5I)zXMeic_W?C<99OM8p(?zqO6J(>VpC(r# z^-)c~Zf@(`)VF!V=H6o`FF&|=;^eh&vJ2}V zuuuApFvn->u0@M-I?G*`lcTajbg*8#R;Br+I@Vyj3_c{<2UFymkf5u6u&yTr*<%7l zFK3S$#4jJ^B~YEYWp1P>@tzK2xBdr<(wG+U}^RN zmYvg!0Vsj9W=czBtXDLVMck&t0G`*JAB+W|;S0jU!-4rG4cZniT&Nb+Ee-&pn6>_* zh4Ld0c)1=dCFw608D1E*(gHUCJf(mr0gNg`YJ0$bpcGe|;Wf2zB}g(SSc%9^7*AfW z1E6BG1%fLeDQ*Usm0})G=l>RxLJHlp33)`%Cgg4#H*eUmW!K)_`*&-IBKPWtpm`Y} z5ANQ%n*;_216zlkm1V>%9Ra+Cz1{bc$~#bA(d&EN_C{||TN^;d*%~Bcn+0eWZ#)2& zYHxmx@z5skP0*uYIJx*bY;g?L7E1Ob`2#YaYQI{0bs)%u{x|XqRZCE16&%-IF+igd zk+PJQ*(nAHCMzN(VLe&$6Gx$6fx;uf--DDTko9XSfdWx$Q50a>t){ZuG%GO;`5k0Z z;iFS0KmHO-62weNGE0AHjO<6Cv2b_@FDWRbkxyZvKt7H&@QOhEFeLp#NBDIbIB@Ee zdD8#HNymw?{0TLXAHHwU$hq?u@C_8X!nrfl1)V*1@X)TFmgY@6_8vNM^uX@jJ6bAf zOkY=uXt78%KJfU$P^4%Qs+g)7wqz;bq&YCAy&JdgJ-}NydW^0|=gwZZcr_s%<#b9) z8se3b#yOaY!FQuqugx9z{+xyL7tL&Hc>3_(2fPCWCa18z)lM(__CbDqcmz1IYuD~w zd-m=Jj=)CPz~flts>7j�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%0DrTZI( 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 Q+J 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
56JrUvXpu_m>vj&6(s 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
b@(FgCn`N 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 dF93}U~Jjg66tnezdI^ovw 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�gC~0_yph~ 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

sXD)_sq~Zjp60I8&Gl7@ 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⁡b#?}gjZ{VwKr3ab zEix^-^oqTjogI(TgrDrgFs5SW4yjhLD%in>Mg3UFd9kEyGXJ40e^^cy)fv%f-16I1 zY>UHL1+LSJ@Wuk?$sl^1XEMUlQTaYujAYnDXB1RH0aJQMGM$$-CFE-4r^KTQIVUNU z1ai2k4J7jpD%}+il5@mO;im*H-QvmuW(F;(Y;vnQtR~TCcv2+j<{*>D62c`3tFaCY zs}aBj45&&JD+o}52g3^5nCytFSU?|M+mgf1!FGwN#)4MxHIQnBDd1%;-bk@(anQ1W zfzWv^0rOvdys;#F&>gu6M9O?bLgrLO%!DCsVpO6e!sv8;a2&Kg`EOYVAanI88Ck%8 zMJcTIGw5yk&V{C;QwW#Au+)tKfIC3WW%L4%Mc{iYR_kQ0H2-lWgr~ zIzSw6e;7}7alyVi7=}cTFl+%NLvxaYR?$FK@a?xZy-lX%ZQR=ufh`)K%$+w!9;mc< z)|`cN=PxapM&G)r47KEB(~%jxEmtQ_km|<~BM3w_)CwXmm3J-w;07fFUp+cv)g6*K zc;J_xeoTL{GhhW-s)LF@c6mEewwE(Na8m+JpW7JOfc|lP{B62LZ+P3=P%TIqY}q1( zC~37g$QydtiPaoT)8bo)4%Is_kpjocE`ripU)X}cow03D zn1>ZWyWAw2GUbJayS%iZ7Z1&3qrU}`C6w-=j0F=DWvw8={U5{G3nx0Fdoq(|;@xku ztsA5+=q#+BuY=jHg6^F4VA~QU{wB)W&at(lbcF@5+BH}i`7gz<2@15`W9ehRXxTzBbdY=$xG!P2^}7O zBw`VOcesY!6@Qki5<9A(F>xyXPWaSG75CQ-92F5DVIZNPezn`qgsG>gzsP{Xgc;S} z+^IC9RB?9klOaOJ$`$`r3??0DG63s*N%86qG@wU?0Y^R#jfmBhW}C@wh$a0^QLU+f zL0{+5ru~{#G*sb&4rdX(zM$4TH}_g00(u_P>W4#YUawS?WqK)ouXrY3ZYBkbij_*Z zi*Nk3B!oKDE3M2kL~wFGd*ASjF2i+He_SmKFET94YadZUsDuBK-!TS#>38wF=DzH`5|&8Ry&QUF_{)h` zl9`H?`$|r?7=0-sFp~_&>Xsfbl-Q=k%VEmAd2pJw(%`n^8C|=&E@>p3I(DSGz;#GL z;Yi+z8yZU6v7_r$SB^pVQjk`IoyyReJYE=xwU0R#7O+=mYWlQ$$(*jq>>r z*AX|sRo-wz!#LDr^agi*>UGy$*Pwob2D$Z;>NoJJCO4>8H(tlpPP(>s&b6^xxwqE8 zP2~?zku6%Z`28Q?B3oF08HAqAy=JayHLG3_N2#xtEpl33Yn)$OSi-h1ya?O(r$7Da zjywM3-x2wfNMEmY3W&T-8z{uI)`I4^EAG>u(0aB_k37 z@T|7PB0|nEVc8PQS7Eaz~~A5xZFG~+*KH(^+XIs8#!7uQNah>2E#L+UL-cA@7fP2HNX4zyYGx>)u-TR~xhQra+N zXi+ZJK*BPb*viJB`4WBfeUbdE{y512wh}E6Q!%n*m<~WA#4)4cB!NI`rcF}I!JkC% zw)wz7iO-@SBnpgpxEos!0XC4xkPlHF+nTKn=`@`UR0U>E)F+| zu!(z&OA9~!i6G$lc+TD z4E||%wi<*X39WY#S1Of-@h1Yp-5fd?KTwU3hUqyPDxvHsomFn%ph{xNnF8q?v5dG9 z+N!YH6~17o6}s^G`R)~W#`K9{$1bz#vB$~;VNJ)391+L456&VX4qrzCvk!==w*ViQ z!NvW|H#4aV=})Q{RE2LJ44CPQ2(u50OYw)MRbb2?z1}nZVW5wp!_-$)h#dtIp$q7T zS3(5|x+MSH7sLiS^ZQhSd*r5mp`S>aUP@I#?)AzrhygDNm~aE46uS6>8oWt}E)rA3 zqk(3_HWnb{42l@V=-%`PHW2s8Z-awMd9fTZMGIsA2p7C~6x@@@&43tD5XTRf7h#Vh z)E*wnkCXfLMl_U61oluH0caBN>WTntMbR2&MwT2Rkq`ba*aZruji9zouxy!%(u1gH zy@pdL<+=@eT4Zy;PqVHp?4ebeW{%O?684a$JfD5e&@r0H{_x|apJB$X5})v%N;H5p z4LKFn(VjN)P+L^3)YzWDB{#ES#TzsBkQL4w!>MsGYID(Ie@V(xZO~=$<=%=I@mY+n z6JhO4w?3T(1&RVZd6eBGD{3yUxlKF57(4}Rq7S|OSwZX$n+N6zsPWUnFQ-qPIC5|= zjgNL8ICAvFDbl#8Nuk9*`t&QR>wmIwPtv$+Skf=itRH^P_VO9FE52}%NLSQZKsnJ2 zq77jUckexT%$pxR)MH$q&IrpWF|P!rVvy^vLK7IQdR~( zHET}k)JcdvT6%>scokv_2{p#%QO&iuMES@^HfZ9<^Gt5>_e$k}T zCCk?A*tdW8uHAbN96$B$xzkyv&YV8?0c`LmUwrxbXJ7s2J4B{e2=253q0%p3{Nc-w z&!0KAk6yleIiSE#49fORVpn$T+`N9p3W(E{%U6(ZChakQ{!-S`dPWOu+e*i-pvS>x z8LF)twrnjg-?AR^Y{|lTlnob8pQ4fCMWY(XF93x`VeQ9_V%FKnf-w}C(_RjdNnr>x zAEx&ez=&a@6Ms8)>;#QH<5Bs9V~W_W{PGLjE}krKW*0BIAG5yu_A5TjXPkN{9d)1DmHfYWu|G3KIByn{ouVyV%Xq7rBrZi2f?7lqcI>Pc^3@5a0(C}j8MuL{ zwf{(tLcu1+35ATQvKX2Y1eMY*Sv-{~6GxEaXT`D;G+VSOcteL~(oc?V8x46-rn*QF zN9D!cFa(voX)pRRp*2+}Bx`{-Udyyrkb-(kUfbUpVQ8oY@I*C?#FXk8#Ly{IkC0Zu zEP8J=l+=9yln927?~-|9a|!MORtWrXGk_!j4j4HCYmrUjnq<-{MA{(ZG(3dh`>aH1 zGKa~V6)N*)`KA7>6dAU%GB+#LjL6(M{#-ZjIt-jFoGLODAe*6+9YO52B7fy?R;^-S z%Q|-NMks&j+=7tHOdcK)%i;D$_r!OL0^GIR-<4(@IMkd&ec`qyv%KBbJ1{o*Ue=FU z8Zs68L?3dI;SpOT+7PE~Ihcb7a}HG_EW)2!basqx8SX?CX+Vh7xDu?n!{I~3OCH)x zZ(lk-)Li#=w=H7A4{uA1tXqAHBG;|4(sH;@R+C(*mTr80Z7|MU(ebm@zy+rocvUx} zu~Kl8#*&+59+~(%tz&pV2_lu1&Kp@Y3W_indJyJVDname7u$U@mN zFXzq#XfJNGmTt*C$-r(AT?CQ?7MePF zSc8dB2Dy1DcurQBkNXUZly(I%S|3Czq=>%ttykFRCR9~027ps=kFWA()DSdb;c2mP zZ1GiY{>#B4V{uU?uxvR@^opypU0YkqYZ(JAhz86GGI8S6j1e*J5WXLnp*^CVYFpL# zL-7$6p9x+I_7FwMv&$Y`k#6eUYDWcVWa5csDA}jglyfgH_Ha@j2@psz&vHjbI&s3 zef*@x&y1PyY~z;gJ5p;7T_|PC)sOZ+W|Vw|iK(v=I@<0uH+b|>_gLM>pFlv_=&7fl zZA<|>3KC79yz(430*=B-+h zRzcw1>{;s3pLwRylaD?8&_C|Kr*nJ8(zR;*^ixt*KKAItk37Z;G-~w3V~;)lNHi0A z?X{jXBt|zG?{GUT=gU2ipT9{W8am2Gf@-}7dxCHZ2vbOp(=m{mPrGNTKm8O$D#BoL zLnII-2!2*eJWFdgN?Uq>m4?;#r0~=f~o>XxcpF8;O>@HUK5U4Me^OzQo zW_PdFR;4)?D8M%$0Vyqi1D>##_i8oJrg6<6P@pe!s*}N^UZ2XC{9f=|NFph#I`I7d zfM+pNgaIKbwv{^Eja$k$%L#AVw1vjrE7bf6H)K{rm1}fHnG1nfRth&V6Y7v5mge*b zy&w*WEJ2<*4T7Bw=VKsZ7zl<4Baxg7#vRD2sQ4lr38RZi3uesWYBAP*|!MEV>f9*WY&@X zb2M8(F^odf2!2@|5RV&uGdz&2j-dNh76|wbem9gH*qzeY8h>pVl)lDW8(ZhCkFCpD zUuT_?=!Sy%rh|yV;rMyPcdp!RcRP|%*!w#xbKK3T$x+4kCKDdI1F3kL16q}l zWP37tw<4T4f)df4&f{;_nqI#W5iLs9-ySnIDP>lfB@)Zr?CNs}Bj)g{Ry34fu`8)r ziaQMAN~NhKWpvY1XUr6DTjCXm6?{7Qf}1h(<~5;ngNNY)_`($^Q0F4w;7_bZRLUuX zx(i}cM>A>83Yv|<>UDE~pY@@m^Ugs2cEj!oin%1R@_HbuJj1CoL zjm}0MVtLihQEa7acXRvpaA`u172S%U4@D;a`A(~#{_~yfI^223U)DUbivJrMfq@avOqxZd56hUC#&ZMy4I#3D9m;MGs6S2w5LHT4@* zsamB<{d#rlsDfOV+TOLHTJG9Jt)$y-^=@&urUa$r-tR+y@O~d{o}j^f9jHX5ivF9w zhg6ix(Y3sxRRDxlaIIv1+qSp=>Gsn*o1zThA8gR)f$!i5KmXO=KCfke@a8N~=9j9!_7#TUy$;xt&z zMC(9>Q4~fOFyp8y=`(mYaS*^pAYTld>F8Y*k2Ww@KqPeK^3TjNxL}y zVH}dAY#NXKlED@N(kM>wfjJ(uyQufX*kpF151SYp?TXU1&-6I9Ohl0!B|c%H8aE;- zA5PJYs1&>^yHm9^A@q;c*@U7}lt>o!N-{NswFu4d>Ei$h)Lzn7GKS7s`-XtD5Frn% z=$87+Qo(~lgg&%|Tm5S$@d8ZZzXcz%!}2?;qAT!9(_)jM5_6#v%a}t{khSYqWMXLC z@bNKbl%ki07t={$ z%%n7A^#7B9f_J%UHH4z5j7`R4?AYOU-7F&vZ^)O}L+kBf2HC&_%!>kANSMF!6Nv&( z)^qXdN?h?wxq5E!O#LSCE8;+*(Ox8J)&%8%!`+BqbjK=_iz1U`eZ0^e-ljrr)ERgs z+Qiw@h{E)a)T~C;7W~V#Xvjzu-Lx73Vh~p^C09fg1gm27xd_GLz}_dOMrrYuiuO=e z*^Q~gnlV-x(mWR#B1|1R#J-ID`AhHKeT`Y{2Ob|RXPybX8ECC2iDW5M0kI7n(64VF zzEq>qySIDeH|GA;5fj*97)Xg+Qsr=e6>3G-zY=f-&5aeaxHsJEp*Q^3X-oVDF>;!C zNp8L#e=W*1x)c$O{rY+R<5X@U3EN|#;_PhJxD!;gu@i#3&Hr& z>Oc=&5O)yEv0t4R^NZq1iqPUjM77vcq=Z#8!j97Z0EM{msao?adN;X&`4M3ddclw-jp`#sF>(Y+S9VVDzz2tQOtgry5enHx9*_%i*LUB@zQ0YWs94o!ir}7 z{M9EvdBZ2nm<@-o`6N&gD{S9!xM)=d5x;ZKe&$T0X=KF=ZN^0)u_;>`YC9QxyD zP8>V+&f!BRP9H4av;Xjco!d67Sh{ff=)A0p-(0wGYUkQD%NER?KCY0trSx%}0`rE- zF#Cs3&Yn57Z{yOk$<4=MGz$wk4@gF4&Rx86Lpd{x4<9@P>N`f2sZ`4+-aY&N`Sa)A zd;i?o)9;)<|M6!O;=`g|zLK4N>FdwVpE|maVlDb4ZP`jhylDf@#V^}v_Svg1y1=J=@qVXj~*eE#CcnS;%asd}Y22t&opDx28;)O1& zYrtji(xX3LzH<48?`da(?*8kqKmY8)`=mO=9FpAFk0RnAb5+#zbKO=J`TE5R=fi25 zhsDLteh_7L(A)`k5@Z#}{&=h}L4X|3c>A(;RD$p>dop*B3QS2M3v zpbe;pHe5pwL5LpQiO3$fo<)l(jkTLpG(h;k_-HrUk2%@^z!X5p{U8r80T&2FRE7|A z^nX-ybrBGZhamJNI5*-!ksE;yW)N{S1235r-}kzHs=@1vrIX!}^e12_FmhQ#UFLNd zo2VjQA|9y>#V=wVi3#~~gB#Lt&e3xYwsaUtnclB42&k(OiX>sdDX#VZ8NaEfHZQ%T zcu(15eb=lmBOj^{p#Y$eZFF4GOf7Loj>LLSFP14y$5q zpJ*FWN?8+OhrrA!Ph!RdiFI*wW}-N(vlTCn&m<5K-X|yF6Dw4fsk@4n9h71Wx~Jv> znU#ggP;ds!w78{-Wf^AqP#?0UHIV`{;x?sY|F)V#blX!@ytRFMyxeW`w^rRk)T^L3 zhO@QM|zw;P(r%hc9%baRh#HT)BCY98a{!=hstehnp1Ka6QuNFlpfoqUUiKH3cZ>}8G^B&U1(n}(&yFt~KDKf5wjE@1 z=n<$UfvS0fI;qJgBR>IV((dJhP;@)AzMU2U08Yunk39M)bRD$b(+CM&(-c@fYNy>Z zSz`6z3!i-au}2@L?)n*2gU`2n`JQ_a0lw6>1%X<#7Bt6g)uI_}Vq-nI@iR|92?_Y% z1NYw5rE~lCFSKmdl$Ux+Y#^`m%+pUj)ri-6I5w0VO5fLecIzS|MCgmz=`1zj>vV!J z4hhS~q7Bh3Cq=%Pb?V(@F4;^A>}aD#hza9f6iSZ;8Xz&OVLY=6L?DQf?mU`k;aRoBA!#k&nqfK_=e( z$eg+C`eL$Q($$5FAaT@gz$3hj^J0-iKCLWw|F)s)LW!PRWa1tMe#7%n8-X!yxb* zN%!pQfzUDeY0{u%7>Ciu6Ttz8*H}Q;i?(<;QTb37a-ZIPy?)i?BB5n@FL=y;{oH_R z<}Gz3l=RBV_F@=H?2R%m=9`c+3WJLg6g{NP7WgJN*2HHZ79zS73=G!AO-&ONp8*u7 zSAzhozdC6ZLKQJ$Yv9DzuE{fEFhj8!?qu_(&EA&8*4Va0dD?cIh=ys#cZQfk=I@E^ z_4ZXJE47a=lZp)A7n59MZ_d6nf%Sd+_U-leRSm*5{layB&Vh77GKFPKmpc+Mv4;mC zc!WESx+5up+|V6yM?*+QLPz|gmBEM5gj|j>M@YlzxGfUUAycd=aiT=@5(|oKJaE7# z>y>6}1MlVbc)Qa8;0hwQyYg!IFu6`SPN^s*5{#@S_*?C*x<~P!`7wF`5CF=BNg`N= zti)7;=F2I7o(l;wo6NIZ{Y>0^Dk>|j_4u?j`8K>8v{@Jx4kaAk^w2badQCgz(xR{< zc*tZlJyS9!b4n(O7(m0Lp{x@oIXgLP%0N#N($|p>(O6EY=Px}Yj!l75Uu32QY zb0zjBSwnW4YkX8a7z)mQ@D=>fV&E3tlSk8E3nC+#1>%oNW}%3{7+E-STwz!*Jejt5 zte^O(G+u(288s@w<73bvnr=6KJd=Ki=!oeE>f%$XLuHCto`Iv{FccSirO{cgEM>NU z<9tVjN*c^lYmrtSiC&M2=%jW~bvAX~>yXBD7Rd`c|lbjt0V+^JLN zF`be@Y-)56=c*cJfja2FF!r=#{H5!_c`~jYc@%dT#YYKmI}LVe>t2XRR7cfqb+|$M zCofSotc$y|7C+jzYuo;gKvH<`J@;~n-&2JjR|oUl12LF>|NZC;`F6j%&)uKQt;BV) z>%AMeUgsLb>ihL_>Qb?f9vRVWUy+BLQKy5^c%x7_kOzMuo$ZArJ@=Knt9 zHcFrw$kVhL(!vORCYv_(np~sS>)az=um$<57JT_F(y5tgY3!V9b&~+NcsPA)efu9d zoDg!Vj^<0;oPKkyD%stvtFzrUiGjBL5!d6|6`n)U2R+ zME@BUkZ19K`3tWYZx!a$J)dY**?zTeq7c&w4G0fd|87piaGh6L)AWT#a8K95CPH%K z8?uH8oJNl$;D#X?IZ_KsEy;}l)bz$QF@UBXkB59AHzBp*svQAQdC~exqhv{sfoMjg zA9UXj-+%u-SNB7PNI-FdKmM3=G5(Y0o?lG)$@stcSZrc6d%PO-Ox5uu%m)qQZxo^ zqYXxhMPZ>=pur@RVPc7;HyN$|b)-kfLL{=A;}hzL6k*#-s3$v2s9-=3BT^c$fi$fp z2ou_BY2D4;?yND5KEUr2S%0y{GcBaD}PM|eh3x#Y4!*N=WC)%Vo_HD3s{bG zx{^H)7I1jhZeszLn53|htOM_i&qP+&FN%&z*yk60lNgy|{-Y>obQJ)q5=t6zDY_8l zGBwOnUIoMsof7yI*fVcN488R4ilGxA1mQBT4vJPOmGOai5#^ICr?fdW2vdk5XcSHS z;H^nsOH;^IH_HlZD$r_sj>(}E{a~=oV%uwwk*cE5rd&!32*F+6?iAw!_qhYr4x%oT zjvYsUCphTs5AE~zUT?ZZY`>x>;R3ZoQ`BPr%&q*rqT%Js6a@#Q9|<6MKjIbEw3#-n zw&HMUF0)kb$Dv~}=QGf17GaDo|U^`w5C;&7A@Aa-5jpk8^>|Rf`Jn!pta*XvU=v!TwLNCmvk3gQ^w|XD_8$llaBR~5m2Bh#0 zLDSx#6d@qNon%8fD$Qa?!a%ufYwGVZfHjJJ_#wO#R+#J(Hv;4pCu@Hdu!-0=((8$E z6LBIOk}iLzl_Mb*T{dE*$~=5%mPN{9!nOD*%OlL8Dv$LbDiAEf`IiV{#||YS_b9?S zEF~Uo#?-v={SPjD{0T#C7%l#dc)*{3#RDpm0U}ueAt1?idXcuKyqeyXE$H89SK7`D zNN*Ui>2!fA;e9~~&Y3f39h-H$(A$##s`EP(PF?@i3o;jlg{<51PH;m2aV$4;7BGM_;rJ5OHt z{^FPC-#c?`&rX^`9)9=qv3H=F-Z^*vJ+9YB>fAi7lLpwLFnja)m1&OAYpom<$dgIn)X0!YI|AGYa z_z6(n;X|;!CusPpv7S2X)N7wP|KZ1B>7vdAsGebJI7HeHM@ zy=>`Q^T^uLC2|4`9`J_Ms4&#{Uq+kFEODi6OrAG|_HPvN@{j_F6yPIpOxn-l)4V`| zS|AT5A5l~^TCZgZ*oxO9v>~>kk-lY^i1c{{JeH zB4`&OGE$_V-Z_~yn#SgNe;_7cUGNPJR>Fre`|q4jzja&Pfpn03( zCjv*WZ!$(i!-k1R#R3wzU{7)f#>g=wV^_QZPZ8T-;s|gCqKoeR2G*!we?6CiE}q+; z@e(|9kSrsyj`*EnGCNenSsj+TGj`X^MJ0dZ?WB*$SD0l?xQ}7sPfTo+4Mo6Wo3gXWd$5>mAz7^i=H0+rm(_BsXTmbL)mRl5GoX#?} ziet(IYGUBltQCh-VInqdN^FjA3X9lNEt9uC6(_lFJyPYhHF(fE`z`3v02Q}6#RA+d zzHVSzw&re&;2;TgcBGL*BP_;8?n$+@nWX%&y*^D7D*~dOM9fvh>JckbBuqLkzMeX> zwNS-4W6OqVBVpW#?BVp>!Ws~Jii-sPN?DmDGkre%{Q;w=6=^EhBJBpn_kcVkOPJp{ zUEtIpts-Dm;UMsjJ7V=Y=nz2?5E97dCd{u04Q9j1RYoT0(}=?y4fML!f-MN?+f`$k z0%MG)a%lVfOiB;wr;!ZB;_-WGX5ho()Z^iZ7?Y&`9LLBIm5>B zA-l#FLg(}_72s8tPhwfNlR0$TP!&X9VsI{0XLV8R`g{V}#y;^0VsNdY+;~o9K7%Zn zzB6LSOVs%FHo&M2&rggFf3emPPsxLRcX#Aw9 zOoD-VQ-{Q+jp>{>svv8?kg?6$yyQAZyST3I<(fvvbcdHxw>S|XSdlEz9+(1Sw#c9A zUB?`h9%Ew~sW$lOr^UK8l05H;#~+7%gX^Qd*B;U683xO|(4kA$mtK6KZL6kqQf%6+ zWlOp#HgC>Y@utrabhjV{FSc&cylIo?o{`>9um5bVXP!pw z_vj-JG0S=YbFzCf{ivj;7g(L;T} zIBGAy9Pg5@oCfQlCx39g)I5yLjQ?sB7+6C}Gts3zEm6aFuZQ0~1MUm*iz}shH+Ds2 z(;0g~Rvv7O30Svo4P643FQJDlIBbEpu--g~JWE7b`iq2Fg|E~^Q0;R_?y%O4OVp0D zCyaA95!?_X@CMUv@OB*@E`!;Vq=+~QAAf{Tdhd*;$Q(T;;)YtEK(n<2CJ(9!%>V{0 zXQxsZk^|UV^tPw&-raRK#@>55rtz`*

YOZgf!PLWx7`{v@clGYLTC-kGpPUX`g;I!EGRxXUYi3c@%Lkww*cd!cn8zWm za+Nj(OKaJtR|Eh92F3@}(CuF>C{W7fpBQuz$!M46Cfn z-jPw!U&qj@Eq9xe%gWS=^|vI(d~K*cJ*DpW}%P0LEL zpk*au>cH$WsF>6;-Qf4)VwqXpPa>*V${Xe&nXnCCKG~aEeHwUQ0LutE@TjNgWJ*Kj z#VuO}Q8$smWs>~_dEx00?0MsBD~7NrS)7MxZXo7ZxVtD8UlUy*@Z6a6AYKHi#S1i? zs21nkGD6Cma3x$SEcD5yM6B_qE3702LDx~z5}`e^`kTJckS|8L3%c7%K+JzB0wG5Og^no!JLg^sb#yO9 z;p;L~;R|QSCEg*#HJMI)eh2qbx;Nx^*S> z8*y!Nty{oT#*dcV8X!RGs za*=C%7qJ(Do2w1OCYnupJ8^dvI(4skQj6xfRO@&QnTa-Y>9$VCX{da(Pyb9B&eD zT8r0f)+~5gZUm&E*CO6B-eN>cXgo+guSGKd%Qg3#g_|}lDRIRq3L37CZXsMSp{F-K zb)1qhP{|`In?J7rYo3j4@#0~H5Qv*WJMmZ*Vt-gUfre-dRo!)bmoMfnjO1lFI*O)< zX~f7u&L#c$gZI4$M<>nRMJ^ZJPu?Z(r&P)FxO$iCQVe&+P>8*xID`OuyLd`q7uA@- zBg3ese>o$QS^GX*bPCpy7|zifF`X7b0eR;NuiZwI&l&z>MHq{l? zv_Aw}#@+~U|0Z>a}Uw`}=x>J5`2?Ee2;-Ny`Q$;n<9Jq}NICHqRY zpZ!zTwqZ$GM$;`dnvSB95&4BR+1(=;+$h{-q2+LnOq#5RFqhRvbC8r|wNFoZbVG%u z0lgvG5f0BNn2EAp+UNe%|0m{A+y-;GAq~VC7}r7&2-HN*v?c*7mq8Su+92*ptO^qh zEX!Y-Dn14<>ehwUdvC|q`|GM3HG}E^OTCdFh{kUWHf}L{?254 zy4!Z0Ogzss>#qKP1RGqi>_i+M4cp(MA&F2iW?bQhax4nGQi3Fln|u@YSPC8hwuGiE z4-NxCJi-CrLpLyNC_@0f{(pi*>#O2jpfRzhU;=5rH{TTb#sx3UeEZD17;b{qJqMHx?Z`jRu%=P^s2sjujjmx z423tMPb%+&FBE@ORsO5r480(gNfUz6)eZ2`=A{Qkcc2(IBn3ReXahexg>A=POfbwR zH`|n-n&tC5ZBOka(H4rX6vGNy@pI?JLG^^LHwM4rGB zJJTy-6I`a~FJpCskVMO5E!2|f+<+F690V1<;%cn6mpLRT^FE=n7e?-DF>(xMzG4_Y zc#BpnrYJkVVye6&3B|gNkB;bU;yc~=n*w5vMJwMt^Qr@v93lv-!Kd`Dsw%Y!l9Txh zgjW~1`QCyk*BcgcpUDc1OC;cCJFd_ghf!Qhk1yhCi@E)`{S8^HUe>Tk>a7Bs;2nV+ zRWTeCfxLGg49&4)w7WZW_}HnlAAa@2Q`+NWWcaAX) z`<)~Ec5FnBH)DJuQ;skF@Xh&Sdv|PHyZo&(bZ@r#r%#?Rx^Q^HUHSThlLvQgUh~G% zd9z@dX3j9ilXE_gW`wKPZ``yM>E)hXU_Mf-d-v?xzEu&Z$;u=FqSs;huDypfcS#d% z57ORl6Z4^AuB?QDr9)6_7|mL;(L8T5gGdX|d?ft%^;EL(akXg+M+*0{iTT(CqSC~i zc?!Fc_K1oj2(Nv0(THJItSy76>bshTcjOWTh73=6BPz*a5}pvv63iw;LU{2kpL1p1 zaDVvz`)|Ja>g)e}_4&saKKS6mM<1O(bCM5mnquywhY-$f+X&Obz~@yfmZ8bBLdY^h zL$gXG9i*A&H1Zvoq+;antkB6Mz9vqb%zP{=vqzB;Fj<3>gdEDH=r1?_eCfyU zzx~g@KmSD0&)N6RoOn9uuV25$U-et8uBocnYO7YPgr^fzw`}Q( z)oa(l!cpr$*ATL)Hvp45F+*Cy4uy;sF$Q#8p#Aj+#0O>&W=h;Z+)1a>K7II$>n}pi z4eH6X1ftO0c(d z=;HATRxZ~l7M*m%%ws33J;tQT30184laolhPpKqxVM}}lD*K@8jmmb?1^+Do$f2$$ zO$JSQ27jUVR@$OPixw-t=Ai5|%tFWwVj^2^xdC!gvZ(rYJfI>de^+ z`EbzJ$rI#2!oga>V6m$>rX)mg4~z;)RD$LvV7EJ6P6)l%E%KeVVC^qLda`p0>T#&j zy-C6(8jZPe#LsR>G}9ZLYMyiOAUC)mGr{l!HzaqcH!K0w=4HmLE7+hxIfFy|J(@WN z%8jSGtV-Fudf>IZ97Ja$T`1;rb;w$yIkC!y3gyo1{6`cr=Xkkw{^!&xV31aW$}l{x z8QT6>P2iwEs*+%x*m)q3H~wiuK$du|VBOfjW}vhdWUk4bXc^!o1ammYoLoDb@(J>B z41PKgXsEoNl`ZpDv79UR6#^dX3(S6Fd!eYWXCT6Oi2u^f`q1X6y<|R`^GA4L1Va#w zApmzY2HnZ=ck#;R#5qwKJQL4JZNoDJTo+0jE8hr525! z{G1rKCYmDxtyMr7wAa69A2+^bI|3@HCpvZN#D+ChEPGVOgN^C;mSWfIS6$47sp_Dy zAk`l8A5VP@wcBHlJ?b9m{_sN&{p(-lF=FE*669H5#>Gp z=pzq5l$|+HGkJS5aNh57D~3gdo87vrX(@I?91k4}fJTCDLQ6W<0{~3*F;%qcBWJ)N zh9{=O3o}Dha|u@ymfi7tSL2t8X%*dGdAV!XM3)p^A1=*xi*|QCYQnq)hJ(S^yn_R8s*!guI3*CPTk*S&jAw+?F2&ntB46!flP zNY>ly*xvXP10uA!0I|HKmSk+@(wR0P3xVD|mmY2!Q_9ifOo*BDpi@HdX-! z(W~l5#cD$P4+KKtyGj~G2q7YTJ=J9+Y$718d4@WB+31AuOm zDvAmPZ$~B8H-$DTjbYqex)h{)^+_EqyXr|cXkt=U2*(hx3LqAH=?$!CK{Gfh6WAPs zM)!v#LC2ebFEv>4Z1id}6h?|>sx1z0H9E*29Of6X@Iyk7a`CKdMdh2ukyDDRQpWoY z%2*=$cYR%-RKa3Sb7ElhO^-9Q z8x=3=!=u6pzmdF5nc7?iZMqd6{iSmmVuYn%MX{B`1ymA9M2oHPCIO@7wuCnOTjB^2 zQb@CqVR1WSL^PpYIXfMl4Q1DN7{Mm}HCdRX?fmNP2yM^V5#`WU(-AjkuzNQRS@tCM zCiYd?ONgYa#Yu5^v3&^Zs_vJnZr^_H72D>k&PmV_ZY_KmT;;dOjS_nDH zTxmKeP|=qhO~k@4HNi{Fx{U{*`T;B|FA0q%e=GJ(dE9AJ6fXmZCK5UO72T>h)Dtu| z88%bHI#81&W0G^!PC$X1$}B+q-dMzM3R%4|DMWMZ0#_I-h>r+a;sLM+WmbfZkCS0> zWLF{RRD{4d8Xf z;vh8~Ft5o(%&6{Y-ry#t1tIfPg3eoshh_rpff1mH5)q8EXG89^Xu$ZLTtGwsq ztqa=3nYkPTpoQDFYX_ZG&>`F&nrvkIFu%6<+J)NZw~MyVZI{|!^M7A_A*bDl7d12_ zoj>c2b}xGE>RZc{Hq>3%we|CSag!R1JH0>GXBftvf4<|67r3)+i)PKAZ+qwe-E|k2 zyYBYyO1qmMck|8Nop(&BlC?d8<{RR+TUOm5VyiT;XU#C)C zF<*7yx~{#}s};I7w^l?-wp#9*N;MI*)x4%=&6+pg;{VROCGA!QdE5&16~8syxJlzC ze&Y;$44Q5HOcSqhn7bM~)Yc)c5#y^|)3E3&2d@=smfJi8&y@x*#(mAGj&;rAG^+8N zr}J17#KEAAY?dO=(X?4!Q@=?Jsa&eO81$OoB-e%piV1VDW62zNuVo0fETVJJVgzj2 zT}_)*6kJc6V$hs=J;GZLSi^{U>* z%0JN}UtE~J{L2v&toh^|D`vSF;xQYh>VX(m%u~gxSmNO{!V9tZqiEJpYobycnTDgV z06)%O#g>gi!Wj`ERG3rXkEmV&i0~!ik}GBnT8yn4^TdQGJ>_DPJ(R)KjTV}z^{t?v ze&lmvG{NztdRZuf3!DteQcx49<|ndik(+l-U;W(cuE= z0tm)~*a$c-=(^ub;yh!3j4;p#nN>z09zZ)`yTwbFc`MSE6H5_I@!sok6HWlqi6D!+ z7B5_|U;&S(>~BFWO2=Rg>=6R}atbT`70vkpMYa}lYz;(05CfRHNAwqfzr0+ILExUm z6&54AlSqZV~iDGnvI?2rX)>9Cj7_o zsy|aA4vmhb8w@MR@)0#NP@B$k1Zk)%EQ?Bkll!Kxn!Y8G(k^-Q$J>p*(}bHF-cxzJ)T$H?neS-D7yK)ElcXEK4P z-z)Sg$w+C_UW51YdV2`YLUg>Vj86wd812QKAv%xLFfd`cG66Zfzt=w^_(@Ny2*DvT zv|(Z17(0!&;I{b^*+H{#QPAG7SeBoC=T-WPK*s_GtsU_MCPmZQm-n}24-Ezprk0U1 z1bJiLz!h=%Z=E*ID+nP2wwKcYnWNZ1i$UBMbdHfF?maX1K4ZUGOXa{#jeeFKf zOpMRJ`0^`CFTcYW{7gMyMdBT>50&vhE(4rWvAXd{Hycz5-m9caCQoBYn_3hS%mitr zny$s$!Z|ZV+LcwsMeCv!!_}KrMea$DurSxnZ)mX%1%Jf3ixulGMek@ICLnyhHCaYD zNE4}#XMqn(wp`jV6|C=CsBRwM)KXv9Tl;OX>{tP?zFL^@_cvYyRSca_t5U`8`rH|GzZqkn^I@ecv^R(Te$r7 zN2ibMDSvzA;(2BGcvl=M@roNlkI!GUESTrPKBh?*b>o}fUZvnd zQHG(q9XrZ5Z(K_kJNmzssVZPbe0n|jcFQ43ipI1EDn=DgTMU@NN0YB1%yT)_a6v@h z7HboC69^Lw<8^!&)?xM~N-<)j`hS;C#R3m108+7x0y=JZB?Ss{Xc$%(f7;v^X&V&P zBx=4#eD<}}XPTsxbv5+d+`2_V0Q#a}mF7tjYu)UM5yd(h zf`Iijh-dO-G_iLg7(^wgGz;DBMi#=p%bIiAbQV3{xXIownda@^pMUy^`}lT7tY0{H z?#!vc&kQ)?Xc;PR>CBHJ{Q*?5}bYYk)|%1E9za62U5VRghw) zN9UTxrj$iGjrnE?Bq#H=|5dbrBs)EfmE8a&fB? zE0ZKFS38`**%<{zln^{{8T454@|7$7RW(J9$pIQmWmH*$lu(_(6^a#8yu?Nq3AU9; z$=@2^658sv#5VhzBGz@m(St~J^Q$W3Q!CE%vSn^*Xoj zzHe1^Am`lVoI#MBF`$AuD<;fjQPl7GpSN&lKj?z$>gw(a_nz>a|2a2ugv@Z%R7FNG z0F_HZ5iVXqSrBK2R;TRPiX?_3h~sO*D`H&@*(8=si!kv`B3xLsslUO7m&vlO`GiPqfnIVHo4bLW9 zr=FuvhC|5;@e5W@O{85850D3$&BcR-ct~M9oyg&T_Pz79Wh{7v78=RJInAO|WE4^^ z9Zfw@`K}vvh2^`XGz7YejqoGN$E=VNIT1pm^X$tlxsrjvE2CgX{>?l<)cl2qlhR&C zj8VFHUV9C^;Xohp-tOTLSnT`7@#DWazu&ZHbgWFKxAZ*p(o;k|PK;a3zq*b;FAGYU z#0QrGCb|*v(sWrC_$!`|Cy_VNHptZr;XE3gGWvd9{C0bf^yc!uDLPcFt|@~dp*vbb zy?wNjj-Aw!l!Tl_M@Y16IliK_?D5AQx&NU@!d9KTbnKXE3j%?`zqEU!R#|XPoIzZ! zZ*Ak#Y*c1<3>#5)!;Su?@W%KJ?)seTuDym)Da#{9c$KtwpChJ$%opuX@QVTLbJc$a^rQ^{`J5A{Ku=Cb|a)4B^f-?-3P`$gmAi{n*lj$9q+>+WNOP#(x@DKKiAAaj zWYthX69qHj2)jt`jc{cI*U5BGb|_9m=sDV^xD9p%%YE4ra1lVPtR0^3d}c^-JgmS zdcl8k1;%py&^l~f9uT`%S12M6c7wpBAYTzvt7UL-O=+RQav1_YEcSTCuq>%e8}meT z7bykxA$Fx7B=DtDv!dTeLSkjnF1eo&*5!sKFhY66R@&*+-nwfrkasD z-==l2#5qQm1dS|>{F*~*CrzGIg$yif{J0bySF!P@pqF=XH+);jeR=3;3 zZn3WEZn4{ax8mFRVsyDZ=vHX==ev-Zm2_3#0YAbRSjZ^~_IbDD?SJ4_S|Z_L(d;z4 z#zCPE zH~GK)?Qeeb+uyWyt+KKGu2rICx>YvrDAl?K1PhMU7S7cgMpo4}MmK0S*h^?ktgLO@ zRGZOlOALfX4y<)+-zL^JEda)Mwr&%)jYmmYd%0^1LWRV1i{B2606m^j}7a2BkScF8p*EX?G#^ z#v+$lwvB3mV!BR!%oYG)|I}5@%TYeLK)Vq}1oVnxXE(Euh$zCkZhj6qGuSJ> zH~@ROW%`B5o#dF9@ zf17zCur4OE@dW0n`_ih~%a`kMlIWA}uQp7#hS2)A3iyFp%xqmD$h44@4(nzKI*EbZ zSq_3~bBq|g7T?N~1r%@_QK8>ZQz_Ucu@A-fw4T(H=8M9$N()cwc0&Jf^WQPHL;-78 zOP|XzmdZDlQ)5`d{3Ti0c`~iU1G1+WQ3=aQB~6;9Y3-_B6R=VYC?-q*(#k%9>zhl| z<>JGDTMXZ&4yeg$q-W|N(mw)6ijK(nbm8y@Tr$blBl6%i`wu*$@c$69B@ODzK&}s%E%qrrmpZ)R(-YN>CnC;c)eN+nI)_z zw^OsyOxDgbBdR#~!i#iAzWMqaZ@tSgupb=#>MWI2xc>Lwozo<*(;xA~pWE}~rYASN z29r)tm{Cnix{&i1?00d*lxadF2GR7~-Fu~q)4amxUZ{WgB@UAP@RP5OpXO)%K%wBr z9~m?>02M6l?R2W1V?Nk-rD(q@$8e^@!qrdi*t>V}TQPSQ$GDR6#eX>Q#b@sweroTIEgRP?pHGYpk5QlUsF5kAfqirA z=sPbR+=m!!#o~Fsns(b+O&L@>fAP}Qj78hT`7efCv}f1RL<#PZ$piW<;br6%+ptMA z&~Lkdrol~52y884c$y|y5a%FoCzPp+l~pyR%2Zv@EBOpgR8~pkd-`yrSQS8vGvOEv zQw+0G^jE8eSC^M%)Q|NEYVkQNoDl3G_)n0ch&HUuuOMO}*~4Fi?MV6(E3_%iMEmtj;OKZ4aUj6ina=tWs|FRTGQi(bxe1}7?~v!om0t@h3BW$nhIq- zFYd>-YCdL55q1=5XldAGikd)MOTYj2?3t5afARTepMJ_NfM*?f?`@7Vd-bIk zHEU8a>ofcJadrih*S2JaWVsC&8qm_ZJf`nC+ zf{W7wQ70%Vq>oZ3Q87BVrzOMEHWX%lb6+~i3y^zRUX<>W^)Nctnm;`hOGw?Ie5o-g zA-JIhne+y}5x1N^EURe_UoM|<|GanO6B9;{4>|E{9RCL6>*CGioE0RCBoeqd`dxD6 z6|hlRGa03lAMJW9L9uo|_DXcyFU*k(OSAc7Z2LT0xm2gJaddud3|!^c<=G2PhEr%2 z9J~^)tp=qm7CF=JFcQx0qvVGy2=BO-?abxU_=}YW-T~oMxf=GM?N`Sc9uR}@lqdv@9y1Oi zI@-L3auR%mRYS@v;}xp=#Ys)-SnW?A`^bx)dzeMRhY9w9?%$ym&5rP?{|H}XQ5*|I?k(a{a zKD}kYe}>@6@X7p9(L?e(Q3y-i#P-P8RB2ga*kDXSzp~bCTD0znAb_o_)1R>(m=Cib zz3z{iU!ShDC4xP>$$}>wR%#@i2E% zv06+w@DY1_4-=00`~7|CUd0CCF<=Z43hqqY6>Kkz`iy8s@^?47>n>(3*k)Cbx_vvh z?m!6RcE)z4ch&+-L&AP~$y~1-p)QJ<52~Q)?(@K{Hoz?i8F*_~rVkCirO+0_wT5A5 z7!fPhYB;?1GTE2%e>7ZHSR~cLZCI|&o=k~v2`t;bwB3tq`%_$AOeY3JsF?^f615Hb z^b>24eD7V(M|)dv>-E=dUM$m14!z(HHPGSdFp#Gu*|J7S)tlYEMyjhFI1r&NEp63D zcxH}>)dE)2-#VDB8xY4u6j=nS&CjmS=C_AK8}bn3F@7SrwycK-?ElQ#M))bX4au$% zEo0m51gmuFtARpq+Zz&v$(%%HLt$==A5$OeAe*L_ z3Y%tZ3uB;W7bS`3Pg_xH7>s2!_jo&gnS_U+58J;cSRJg%TDvB-_9C@R2mJL+n2Q$g5~yvyMtY|R6^m`qaMW1(6z8J_JrGzV+EUa;o90fVJdViLvbqe zi8U68TFtkCW%EPEGm&h;wdTQJwMe;ya|-9;LUozrXXnhCJ)5bVh5Cwx+^#xKj9Ax7 zmRiolMdp=tFf>_NoU!Pfyr|ZcuFR@pW_p4=e!S+Wk3#5Gq)LYUtxQ#9Rf4cmRlYLdj5?iDm&6?e=@?ETh78!3 zr}=sv^9y(d*1}jz_k;0nLJh)FJvOtLZb}Z39U;YqQTanTgr0MCwY>_wH0=TdDYW2K zF$}*PfaPg(47yf!OLa|m$roj!@iCzBF;BRuOXsjltZS-^N9GlD&W1u&bjcC43cFsc zI~s~IV%4o{XKug!%B!xt5{*|^->ps;rtf#66CF)#Cot8OO?=bT)v-Ugt8@Nv_0@k! zay7gTM}WzLlaj3q!BP5X z(>iQZq}gPAv}+4fDs01Tx?iglcl0nP*E-S41GU`D_zc%74%$+iY;7f!mcX@a*^)-( zX%)1Y#ajifv-y6B!DxxBY!^qIRna!V&$yVk0NJ2oZ$&@QDq?Fe)IlKiDqarp?Bdy2SOYBv0L81)q}>P;-@__Cceu4ly) z74c1p88E4kTHC0ys?tQ+gwoAS1dC-Rf-NyV6^{p{MFa(s(c+83;YG5}k=?iHu)~tW zVU&c{)F_3>iI{SFSDI0GZUEWWmT`CnM&n_gyu8-i~=km z9$iNw&yLp2C37Jt?6g0i50 zA<+!CGIR^=m9^f8TG^RDsIrD;;~3rJ`Q{;Q4(jm#G;b?5C5aS2oNwlTs22XUU*F!n ziRz-FAXC5k7ZS!XA(l8U=vSQSJyg2pm;+X%iB#z!6F5Gm=mcWMgHw9PDenNOXd~je^KJ1+haHw(sH}vjR_xn?CNScAE2$mJgwy`l~t%8}sjBFm8o0)IeU>dr~n&JnxZ_TN=Ils`(oj+e})i@{F z>H_^0Vgt1LmG`lDDLpMlucbx3(i%=wcYl%@{yXRsWQf1Al7kG{e_8X*Bq=-c;gJuH zetGijIYg#Eocs0%{eSipTAnYzczw%)nakfe_Uz7QPECi6&08Rr$F^cal@j}~=E;0W zVR_khqEy?Bods)SoJ(Gzzvj%*ujq?A^2wK{ z&Xu~5(O{EiE?fy1T(@f3lKC^H%$T=q#p?A>Zh}pb6z|v#twPwfebc%XOXqVK=V&@n z;^$6(apbMH50~!WzU9evtCudUo;F3p5ipGOB?a*xzdil+C!7YlZ^!2KtCubi36`pZ zs6#$s<}98CY)y!Y{j2RtR;`I7QdLDStX^Vpx1*E*RRgQ8?X`72+zPt)yGeug*tKk`0{MBfN> z%E$k59JNG)<(JT{Aauxz#mcl|CJw@TV(geoHpAh}dlArMafMs9)K=?nHI zag(OXdJP{*4h#q7(RYn4@dHAJgbjQoIiS#NmP+ex@Xv*(?7$J+3n|1RX2^y>gQEzlQM?|-m75w)i%<7< zicc|4LSdwcR4^|#-_2{F{cf9I5MrS)1PjzHD`bsE-YHz0M@0n(=hns7yA6$Oy+)d2 z3M7~ZyCbPfTxu&ERIt)(%pjyHSX;8rG8uWdP3lf8x5>qH<1@UuvEDgt6s0_51?&eY zw@8ZAHVE;=%`M?b(?v-liDKLwatwCdEDYLT6oDzqk75!Qm9{BzD)}?Bl%!$EYE0Cp zqzsrO|4)J@sPxlfH`}U~-6R7f6sCm@mFJol5YCmnL%|z+Bae%|FFvnxq&a?mK+?)J(~3x{Hg>$NwG)Y!zI9* z=ICyY9>wUbmq06}*~7Z<56{TtMm(w@F*aTpJwqP73+pNg)o?OAS(@~Ni^=jc z_45jXo?Lkk;zB>FeN?j?OEN;WPEpSkxUvE}2$eDp0w31KB3m0KEB;?Zr8oA;%&15! zQ0&*SHwO@+@1EYiYUrS$BfE6tbT%lJV<1e>T5|FpM?9D-$54ij5OH-;3?4WKm zYUujbQMFH|Ne>#eXs>(SJ+YoCq*lcY!O_f{JF%>8Q#RW;wK0!(owq%;DfdZ=FdLH_ z@(ED24&3HEE46M5wl;`@o}EA|J($dkSJ5lQPtN7VM9rrYYM7b&r@1Xuto zzk;5zPU?(d;L)_HDiN{KBMAz@8Ozs10dbm!on(~S!nU^)Y=@t*PmLG~@7Vb+1FgAG zZp^)1_!h1OSN8Ht{xCz^59c0Y8Wh6@FGR}|^%&9)v7cD&fXxH}c6by%>T7%9K7W5n z#*3VP`Qn7J2?`j6I0qt6)`1^fpmXoVq&#hdtkrT>WdL*57(bib2Z;@>kx=vd)I?hc zvPQMTma@U90j_`0uSA|n!L0o}njjvd{>xB*E$~d7ZHP1p8upQ~PrEGU?InDd4`l;ZwVVJqbSbd;Pu|d@J~n@8&1C z0}TH{R`pEs=|ZmXj!{7Ku&cTvjQkA2Eq;TTSO83|*jWM(qoE};Q`xPLBQZ;@DMUOF zfhjjHKHn{ z?q=2zHsEp|PEBQUmyTr1!Ff?Z$>qPvjLZj2;lx{;WI*{U#*_d1DN=FAriU|hMgYNtCH^RZ+O=!f zHr39xuh*e{hYs!A^TEabwU)Pzp$+Boo%5J_4|Ga(iFXaV8{AV{PHU< zzdUG=)v$qU$dMWKgL>JBsM2*~bw<|>8)skAxUsu5`?AX}O4LK1uYBD-?3$7t2%s(1vnTz{ZGy| zHA|}{t^cZM0*(>Z#aKlJe2rL0Wk=sSOW-QsU|5?rA!oofj*cXO;Wh%ThP@R z@{-f1n0J3#3CgKc_6ZZUkXY%K@J#%)JLR~c9(?QDjKYcxSF!>)R-R&Lerh64fEFkC z3J_le>5x`CvhXyE7<5IV%VaIXR#N&A;udR)l9C7#v~X0`NWQA0e6(880sfLNT7nL* z;t5-@sQiQIh9p^Iy*&g=Svzr#pOt4Ud5)i(J8vHGj$e>i7%oask}Dt#U8Zn1V6^>; z5Y&lJa7MZE|DUr<(a?;aWI4YH zWPnvDJ!oTE#yO}f;>+EN%ZTPF9;0tszC@`jJlTvA4Z@5cG@3-TO-;Iip6t>k3o&&{ z4CeDMn#QIW z5{+<*N9G2_EvNG&k9pDi&lFXQ`IRv6j)%juMhs8VQX}1>qeC!N_OrNReTDVPTnJ(n z)hncj{J5&R%KD<^u1s14H_Zf*aCA-0&C=%3`e#7;emvK=vNJRs82eC!ft3A^-1ZjmuFW~tSoJJDXR*8L8ay5LY?Qu+3rpwEo5K+=bLKBvx&#j(0Y228J(>cg;>565`bkN~i2-|uDZlv5R=2uT0 zQ#G>u$J5_^bNquhUV7=(=l5;hv|-JP#q(!Rn>3z7>7XcJ6rU*lw(iLBWy4Pe1wW^Dn>p>Z>pP*X~%>@e}T3P5j9>XPLids|usF-u_c`8;D*(i|+m z*+MNtnIsKBja&=fMQ6fwAVwB7*9)vsL$uQas*rFQA)_VngZKH(uQ9CtB|cu{q^}na zY1k~YFqjZ5UPTltT!#2`i$*c2Hu#va{~BDn7V38v!rWdvMN%{>xt+0WH?Jn*2@7<5l17)w*Lui6oLEGEi= zVmVA=iJAom$R5ig`+-b|wnRvCZ&2ODhoY+?;GCiwYT9}N3Jg17797V@7vKggx(ui_ z)wEr&#VRX7T}~%ZyV(sCaEmHxiE;tBvK50xwHM>Rj7v~YCx!xn^2TMBEZ3cAq1F#s7p_mQE0AN8Fekb3 zk|#)44e{dX|vZ9gV!Rfk0mt~mCS37zz@-wuPanrN~(wb<->84b2a$}Wxw`)0h|kzh09Q*jUX>y z(U)bbv-xH>B9F88hFObRX?>1)v&@lyU|SJ$;^awOBbjE3OTG=B9yUB2Rs?KOK*PK0 zhG?u!>`^}?pOjQSHAzNGlb~>=>51T2{76^knLSZtjtp0(bLLWsSiF))8jzvdgUnUH ziEoQbFqw*T$yXGLjd7_$c|83!X{8^TPrQTQqhYAgxN+mGNXNdVP-miY87@Ena@@h< zCA^WU)afmhpdzA>46MV^;R_CAP*reW8nsFJgN3#QSpN?N57)uh8?j|YM_b83sJ^(|$+4^0Lx$0E@~E;tciuZ<&_kUE zb<$~K@!S0!i97vWzt+esgW%l_z@U_T;K7F&nWg8XfCbzfV?STTgai#n;FyXYOg8QT zvwD~V#QyrX>u$V-M!#FYP1pbJFaPt`Ycx5FF2 z;qKefW6~qou6;WWo-|tZ_gijqH(ms(y5V|;Ze0_p;QRCjFNs!lzkB3eg($$HZbpZ( z3mzzDz`JHx39|*g3QPusVUiv6y=z88u6o_8@4fr(;4Xh>_8oWJ8Qf9pcBvUNAQ^w} z)_A~$;?h-qb%Nf2#H#el3)r7lXw@RnIuNefM2X35DUP@WvX$N4$MyI}_wE^7U_&o} z1at^m`@AT%HaS(?jEHIh9wZafT75&6*6~)vPuyH{Dv)Popqv_k7;EL9Qesc_|7BmnWBnzcWV}OFE%`EW62L4e&G-!4m5@y zE=AwjGl{2@Pvx49$~{}hP!*2okhzivk)WYegI77!unBOLqu`*rh96jq2z=wsb82xMjL-9S;}wO->g(ysxm#;935GEo?K}Y*!tqvP_t!q z)3*L|`%(OSjDvkImPSe{--8L;2d@X$zj5dsHHxJ zKZ!5(%W`FPsad$?)Ya+WOk%vlmBj>SkrRkY7vY9lve~@%Dn;nccbpojX;~4;62MAr zb9RDB&KBNwYD=5Znsc+YiO6dUZW`W-fw+PlOhJ?;)6r8X=Pu2j-%*{iwRhA(O~mfP$1HB|g?Ue_g+ zpw{e;9UX4si=hj1*8C$J;A$N+oE=D+qTo+c5QvT zoc370RJ&Y*V48)V0Ck0(g3gubt@1i`>fE_g=b)2^VR5<5@ujeHmJTY9b4Fpjqr0uD zW6^E5X&e;)c68iJ)GND7x2{3w`dzwqMWn?)Krf0CfUeuSxvuqf?T#x^YTeP5^Fi8n zYTxQ#ZPQKSO@k(}roKt+s>&ugO`9}r5;o0l(u5oGn7(!8l~=m|N`SV4%iZs?8q`lS zI4fmPD*$Tg;_KF|Q@3v8#*Hs&d=wB&PCT2;-6bzb zNxUJIw0Q`><*W^#Y2wSp-*yw3E7pEFH3c`pHoAIlOljovS9gT{8X_r={n|NHs>w`G~j6zW~z2&7I(q?VD8W6Sx#-$ ztB7^+o*4p}INp!V83)<-V{1p6YZ)%=6{|Ezwa{8s!8*=gD$XM~!UcJOjj<8{>&HQj zB!c}ofLXy~|NhXfz7&ZhS5`nt9gq81BuW_S1~w!mQ(?*yLV+&%bPbKaU>H%m3a3P+ z1hKek`VI$jvXASR(}%&Oen76U7DcFE>Q@cu--nW+RSYdQ)^CTk@!NEIWBE$Mjim!sq%U?5IZwvMI*xn0T}`wm@#WsMzm>pG|2We z92&UKDka``lZ&*GC(%za5kclflbFdwm^p63B*S{CXgV?6eS}1a*gOXOPT*nDDo5+UXV*8$Y=6Qn27Z_~y`dgYy@ycs&z5V{t zuTPx8>|p}WoCV07K7ICEj>7oihm&)Xt6ux=`BmemuuUwo029xdJ=1DrwpW%gDwe!> z&AJUwZr;9U&jGp$U##=us~{5S7lY(!4S4m{*W9b6FTe82E1Zu0ESTi!7hXN`>GAK& z;>oHB)8{RmKWE0&DHD-(lvj)#J)WmCt9qU~h8Hhgy3iD3i{?(7P~{WJ;Mf~)y!-B( zhxYE=w{`84PpnPp3){oljbdeV5!&o5_3faAC}C8*joz{Hzw2E964UQOidxjK_q{!P-uDnf zuVmk#&(9)uz|Y4(_IW@Z*bmUyB+&(lSU!w_6VJeU@jgK&8_SYoj1P2akr16v7URN6 z2sH-)L>cYXMx|6 z&^LS`o;D(CI704(d`l~6>9UpLF6+Y$zt@k(IkK>1eC!AEbxbV^4;~mQ4|B5fIHA6} z+Rcg2b?P>R@Z*W`)I3W+F`RH|6!j3JkLBoUa)or#$9cOl&_vlGyU#I`itxadWn*ex zkmFGn65Ev(<4+Y{h@Ayx**FmIYJ2iZhRn;0WW*ynJxEap7=|H%t~8sY)qGhTWEKuD z#ubeiF%0i{zFNm`Ct!qm1svn3Hae4U$*qP%>Z-f-fz78-0aZ7fkI2Oj zk>HUd9tI`B+HOE?gUJ>~*ls3Rs1pfl6gCR45wf@eC5nI8Wr}tNqS_1w{t6*G^YSz? z6yziTK2$_Af)x-)8d0w_s0LpPqzM}}b{yP>C(O1|L}2>2meZz=yRU0sKe4o5$Ih;+ z1|8=hDm#`M>`HS-bfbNxiN$trur}LEEmmhWT7fr@!v{>#wzIeDTlpC|=$4_6{97cI?o$ zRg2awZf$;R$$2RlSnj&({IwTfa}Dip77#wH`SbUxMOsIa@c{2+kaMH+kF>i^x&W~0 z5JuRV?^OfNh8d*}fK3g06q`lmHYUdV`|5DuBKPVAkCV3S?z`@Ecl`Qxo=3MQa1(%r zs4anwt({G1t(b!ThMc7oibMY6e@C|im!-jyV!mcL7E|IlO*Vq+&o%yL_G zB1M5oh`=d++pPp%a2Hq&N>P~*(}&84n0F>lGxsFtgrSHmg&>@wBg+9vr342Et(E@Q zH~wbZT!ID}gEG`o9JUI1nKyEkqBH>-;c2Qq?|GjslfX08mBLDTWd#RpW z*r7vkIGm~c*uiHHx@XhR#GZD~gwGaG0J3ui-Qk2m%mVeaDu7lUCG3~#U;7co;!-ZE zR>DeknU-V@pnMDgnO3jVkTf^b=lE#cv}6RxZg>vs8Dl{E57ulrVZ0GT3NHgLl7q9& zCGZw)8H@MT0+FC8vT*q0v|P+OtVe_?1%cXVaBvVxcxfqFXO z!y<*PG9RgQ0k)fjXz`M8aeRqeoX0h#T1#?ypQR)42qsFTC=-7-0PoiZ>vA+iAc^>w ze!z{J{KjlZoZB31$=b}pT=fBQRO*O92)mL0L)*4&bz2H-0q`}qHMu>{lv`lBx*RME zVcQ27+odx=0b*`zp(<)S8RxYtz1#08+PzaZ>x6 znVMCs*lTvR=`}p9YjvWOU3Yd8aF2VS0 zb_R#hfk&bQDJ<8p?z#*>wRA)^&WJ%U!l$w!{y`crZZ$CmI88nyIWmUGEC!Ct*DQLH zD^>RV$eb$DEMLW7u5!YbR5nY+p(t}Kmt6TETvRSB1n0!5dHO$aVWCo8Ru&>NXG7IaDi<4QW*#sIDkrdqp=>0oIicI6%N zp>wz02AjL>`i>nta;?K{Vt(!0-_}v5BHGuu#%G{D;XZ?Q=+`*)v1@1U!tsf^iUD<9 z8=4Q18@cliPJ+C>b;}N&Z|~49-K3yt6OH}4s!4cNtVwWH5!V?Grkj#Y9Lls3Dbs$> z$M3I@H0^gqoaV^K@BXuXecvFP7E7D=g-C5u-5PK_KI+2pE@|v8agAeKvM+7ixbo6M zG-}P7HE-6udC)A;ysBAN^JeMhSuL86ZsD6JxOfO(3(45vdTE%RYwnum@g00adXgFe zl?d^ATLzFEpDVXHAvr#dC@Y3eP-{&C*!2F8BiI@YCMS@r6>GI-sFRziDX@;(uGX|# zmdINz($gFhrU2SXg%xXs(ZC4G%Z8CKa#(nT<)d{&nB!7WEhR;W<~b=>Qy);$1RUj) zwi4!0e>xv zD#}0MP*yjPUi0m8=gO!A>h4&OO#;WX?M1Q0{}4DieN1;4v_z|-WHB@8VgTiv+Ps1J~xGg=; z@OZ0~7Ah*`y(3mvxK3zZM$8JvQ<6e%tmZO}=^# znj3klND9F3P=7jE34t&6Sy_p!FZvMHyakKn=+x#)I93MLkHHXDRk0#mI$yWs9tKQnO#7wTrqPML@UzRS_;?g#!^5dvOb zX~Iy_4=QO^aN}@iiQYu-2ADuZ`7QY_ApqalzdzG%Nqb%Y21KU@?-U+qa$hOdvbneG zH>&@C*thjjMk`bo1?c_kx?mzd9syg{z(FDJczugY6ou0!s?*lgbP+0&pyE#~<#i^# z0;*xf=T9~w)N=8LL@Vc0D^`NWZR@r2=>qE8mWd=)*g@5dQ*xXR?5Y~*W}qEJA7}?M zl~IA(6${0P(L!R}tbbK2SB2KhU$ktM+GYtL2q?GUptsVVxSz8gH4z>~8`HqxD)1Jj zW~rNye#=wV9*5LOD^;a|9RBA@koXVcpHhyB{UJl`&I|DLm@H@Fy&un@J{}9!tq%L~ zCo85B2S>*wuw{RZmdsc-KLAdOmIxmSAz6uSCa^9-b{U$6>te;S@aFnCznaRApEhfu zM#G>jVeH*nj@R2rEV7$HX9u2U&S>u!UgR9bH(q^(6B-e;9c646_6|EIEcDGO=A6ML zzdv`pI=SlAvj9)w6Z_Bkjs645EJ_y93&--}L0R-Fx;wbMX1YFTO(W zoq&`$-78Q#_sUQ)yq8`)^i0I;-amTmTq(?M{PejC=2!DvB4$?wv*Y=w9oByILf)Lk zOBT(YDrOh@uitq6op;`NVb6}eTh=0ETe)Oj^^7T##*U%j0ZMQ_dJB`seOBQtIVuguYzPEPNYY&WRV?{x#Epf zuxQy3!Qs@OyfhBSjiK2?Js-{FPjOF%>mrdYc3FwUj~p~fBfCPFhpU9}mVwlHQ92DZ=YxDjQKw&hdOs^KcOEW&u7CSxJD+(f%#(An>0yv4o9AZB^Kk>tt(GtSCYVutYv^{yaDT;;6b8IZX04ysIHO+#mTGV;Yv% zR*7rb3Jd{xzAkQk;kq@NAjCHF%Zrul<3AUXf%|zy=*e-|q~ddYwV&gvOGwArWERa) zy_i^oSWxjG5uu#rH6-UFNfJ^?k7@+EW+lJ#-V%=~U{}gt<(=$LHYlb!3M5Lg%T!i~ z^^~vH!eW!5vUn}HAV;l5U}%dOdZ%se${JaU47Fo@2(IZzah>o`{Zf!#X5^!85sHJ~ zA$-xS`?Su43m$K*ygL$W>AXJNFW#5GI6gkZ4=b^*eEiq)#X@-!v_zsA93l_coSh!5 z9HKsPi6VgqdlY3O6Zvw7d?ASEK_hq)Ne`7u<|({Yti(AQL9XHnP!<1MSW%#y2!4lb zqS)5cXoGid^v#j%n|NgWB!xba*n1AvUD1@54IV^M&T1BmxGYI4BOpx-r$#p#sGfb6 zDN^@k^|~(r;njo^-ODD2-f82w2QPfc=v^j!VBNDr*{f_qkEY#TA2+ywm_R{6)Jx44 z4k!$&7${J#Ai_{P0ps9nO&=dyg-U(~{}R*;?5nNcj{|>r7Zd=gNml12 zmhw{m#ghUkoCM;TA@^JviI=t9A<7R~bdzwOQ>TpW1&A5}Ao(Ii>(<3} z{RKdeT@Ymv)1}JR3=GqS-rd*L3KAqj@*nESh(1MDzai z|IxhbuD#|OckLxQLlQkk({2&WYuTbz^M5tBfn>MbeA7+H zVRu&DQ6HA4foYP<{Tsn6#GF!^pe&LWzU!IkQ03jLC;KOGXCzRP5faZQg7p_{*nsO0 zNsDm2Haa_b$zs1Gms0-{j^6N#vz9DQE%_M$Pgvgq>Y~{`?b#l2HL=L__Yz z;!FI5B*_MtZ&h!dp^->Bho@Qt8&O-gyp@Ts$x&FE_$o?DW+{|R;-%EhBcvd1r;<4S z31sbQL~5iRkzn`0?btO&;<^|mL($2Y*w(D7NMZs2OqqT|9*$E6TTED#p2*S6`=PY zVz-$I%KpjPlGJUK%-*WzPj2>G>TMPu1Mc!ALUC2{wguaBSR5d@Uo&%dw@Ks}BO$1! zo4Jp4Z9;OpcKcmfG?4Dj-?c-sJ3wFzv1SZdSZpXyw{6=NZjWtCZg(2?Pc$6tuX#Xm ziTXbG?B2b5m)q_3GzH@61T*{jnX%6>!7VIZey@Iv3NHA`EapEAQZLsIk^sp;_dcHCU(uwlP*%QZ&OO7wXf>Dwn*BoEY9DX}{ zgtJ}3PBDRWWd-502rZzFFOgG`s_+q1)`Z+y+5*kvE-qQi?nEMk6Jfhmfmir?2&gz8 z9afe@HL}4R6JC^JdteUM;z74z%42aiD*&yFZG$rHa6 z2L{9|A6aDSlMy_Rp5fAn;Aym!QaWBMWk$S|a{zW~XS6;>-zI3wtgqI*lC#y<*f!ZN z(cX7R-IhQvmj`hJyoH?|5HA}{=Wok5EnSBWu6>@tIaGIroy6(@ah+Vp_-$c_So^R; z!NY}`b1YU-`}MRATR7%U!DWkaVG~9L-AU)@7%3J z+sY=%tKwItuF4U-3jlYCt9%CB{r-vw+_~SC{HM4bM^Xyi)p!4g-Hof8Rj012lLx-5 zQ@3&Qk{XEdA~hcL&RrU7oV+v+xyx;SYqMszCY!}>bzH(`sPdXM3z}!QXx==DDlcd; z(qNuG4@L5P%e)p)Js4gyrp=K)@xfn&cy3aW!ZQ_D$HVRlxylvzs$<1@;KHdaTUPOm=~Zgen8AtW0cy}V-KtrN{R%TbIKs{{?Y7t|i?ndfzOxot zHvvOeu~U(O=iIPVS)w$gR-wpVR=x^DSMj(SNkMlu^~asaJ4qQo>!19HO}bc&{X( zuns|%^9afc;<#JItNwhE89!`;(+EG+jZvTHFQX!MId0+PfgK zxB5nYqM2rmf>%cyafbd;qM}d(B1F<-uNWnlpY#M`*ING~*i3+&P{@9mK+SvfC`b81 z_{q@}f1x^YSQtbd9Pd3yQLKhnL+mtOmmrNBRB5yD*2H)N+`vne%L<{v z5(dFLvIZgt!P3VRFHmWV6nJiMY*6?}jRBJK@x8>I5IdU(l&{#C9M$)4*iXl@8J^=` zUEvF`yFOvxBJQA6nTzjFb1FCY?GtFakTrM|t6z&pqv+c|5)RZD)i^4z48RSfhTxLG3vn8?e-?eh z4cZ#x#*O8#$^kes*j;CMnRu5>{j6CS`?(@R#G%WU1MgsWL=05_qF8`-RC+ce*_}8G z{itug_4eEEGBNFwPrnepV@#ricj9-c=(G;!C_Md6DHT#XrA_!EJ!Jf$)~Y}|98pG) z&1q zM(s}oEz+yawMI*EWwmi?T-x>>lr8rkc#1(*Pak|9aQ7NC2^PuoIr`;s!6BOF-8X+f zqmf-d{P_Kuqc5x*SN;6XHKTSYtD7+kTOguF3QtOx$>~V{H8hPMzh&FbJ^P=2{?N;> zy~$L$cm4aN2*=QVefZHwAJKmL9?c~0y!pzDFTVKZk)y{s3X`KL$4{TPblK8HbO=nJ zICk`eX{hX$aHy+Vy(NKM%eI0vEt@-Q%IM0<^tqGYocikh*A5?g>EQ0oPoSh*ICtih z31c-%Uq!;um3@Ea*k>QT`#RKa>qaK{=c2Sze?Wa+R>K=G{-`^b7saivjY-f>T||q5 znS~^WHR`n#oQ!5jUVunw?(CVs_X$Y)tQ4tz>0Frj1G&IY)CyvU#7@J?c&f#70bryLK# zvI97o_c-f5je+IzA0+jC=%I&P?>Zbm842ZNRb}9xG!o6%}Bhud-UH437 zv@iC*G-3ke>W>MD2(k?0XkMKXr(xQfRYb<>?k<#ihHU#@#3nT*kR#=mhz7gn7zBwO zM0|&Aj>iy+wmqDU>27kD1_j-K6%pF^~Y8wcvQv49fS_lWap7fjHxKpwzo@V zh4qQ(bOt}tMy6r4{8+~SW(-p~=e)}s=URQu5sRzSC7cz`EHWRZJ+~lOSS(W&rNs=( zfrOpcIIMO|N?W~xn!o3O+ZyJtBCdwct{`$#iz!d#l5a0vnp{@2d^vl}RO2Co(>Uf? zBcR>t9FDwMpWILac2kU&E@~vkrqat)eM=2%b1_@ z6DiQLqTJY;V@6kH+Dpp}MqTP0427`E?7Nl~H%Hgy_H7iwa1=5%)srZ5%7u1QqBBnT5>E2WqkgLx^8lArr~ zStTt1TLF6a$dLgesyIopq8Vrm!(<%MGtV46=z8T#LdA!GclrT$UmgpZt>t^yKCh$4 zY0ER?lJf+_v~-EihR{_T9~@9yt;MaNFx>_B&HV<{5G2!$iYbCeb(Do73_mbOJ=Z!! zgK%PqzLU^n5R+Za^AAQx)KWkJQfVNRcT*)ea4T*d7pVwWX(W@;CRk-(F~73UNt1|6 zCsdB;b7!yN1ABKH+)+9PhDW1`OWfh_{I#|*ACWj028G%Wcm}qUUBGBiWMpW@!>>;}o)=raA& zAO3jtT|l~S%u%tT z_aMPpkhwY*>E7U;0BdJM^woXpAF8Du*i3J#W}f*w{T(@?g6{Sb$cDiIZOAp@syucx zK0RC+tjggE`@5FHTg9ftpkk|jLpHsJZeyG-!x~~A)~~m7*X}Xh+hUHf$J9)aCJ8-2 zR5Ij2k*l`3ImFB%l!6J`(uzkijLZ<3LT}|F@(Er78!hTg7Nvd476?nTMwFJ1$Wi{} z9{-PMpNWlu#*VzNP~h#i-@<93JXe|N(4p{!x+?HIM}>zE{KwPG)A9!jAu9HFzdO)K zleXkqXfTD7y+DU4RaIfK9MNG<-GsLrMiy`+WF9LNiWLkgR?#}z>CE}li5;G;uKE4U z{d<%iX)^+u{VwRJg<-&>-fc6BM6q>nxhBeww6S= zE@}ec__bVC^U768j)b{LdP{r`F(Oop2o#SqUk+$4xGSF(%FT#R>Yop1W)k}oIIoj2xrfRC}%@tbB)PnbeNK-B(29(Umz18doguEl2H^Rlc2E} zUrkr!+gDQzp7Iz&`;7mC6f1c#Cn(bB$P~pd*zNW1zyZ6Jq026SC9= zQC0p9CW26je~g+s4a)^Uxym}WPQ-ddEA{>+ z8C;}hEgdPTHi1akQOiD20&#*H zj~`1O_e`^q`b;3opN&DG3eIH)pSe;_%9APv5A5=YPAtJLM-r+0T0yHz=Wzud!8sB- zQ$q40t#FpR=e7`uOoI%4g3xJOpcB*cQ#UCnnEPpGko77{cVmj!F-m>eQ(h-dklPA@ zOq>Yl%gyBGqJagfLbDa81)S9GA=VtPQ5~?=6Z8E10;5kvpl(slVw4B||7gp;L|1ms zT0*O734OP838l2yrW$~Xj|gO?hbau9-WoohC)=&S&<~Ak#4Dv7yj6TydU#?) zP|9#P-V0*590hQ+IVgVPO$&G_wC7NqjtWNqMo)~VrC}fuL(b%o%95?XO~8hS)*%Ex z$4jG|U@kZ2i~LK*3&EKrWT=^!7B8bDrVBY~urS8+%Tc)Jmp8LY7y%#Qxsq+HKczGk z(=1FU!RLQ{a8bcatcz%Uk;+{>3T3!5m`0)8j1pGqR95L!i_wFLb>Ix@>x*>jwnj(( zS}r~^Xsl9<5QXs(!v^CDnKf;5JQx~1kbyvTO`&Cdp#6yx2k@6LQRGN%oc;ShViBQ# zGy(j($ST@+W%*-XYb#h;h>3W-0pA?yz{u4ejAUSaiQVc5JQ;C9j6q#gjy~ueCj*P& z@M-c?&L*8%jAqeneruA9jX7yxDt(tHKMNnJrw~?d+yc@_o$d$cs8FW!qLbtZ4)Qb- zH-53@4f5OPxl=@)qQx9?n1#mjD>sggRvncb-9WjrR<{;7w%6zmwzsoZvau%9JSluv z`X;J@j4EpHq%?R2z3wdh)Q=Ag1eoL?! zb%2e!_U4x^L^YU zD@Kio*b{ZP~taD?fVc<_)WtE}AoC;-$FJCx!2BIw)IQ3bE%sD&x)zSA~eg42szKO32#rXHeS~*%bJXigrC<8Bm6Y7WqQf~VL!_MGMXQKX5W}Vp&H`oNnQYR%t#||H29RF?- zitSrBZ)O@lq)E>N^QH2nEDjdVVlGx(JuNdZT*R611o#ZwNotzDISQpBM35-^QA5s7 za73jl=`gM%@4xe=T1O8(M{Yow{8=ayfN39H62_OdAWI`6-cVEELN?N};*IW!9CjJd z>1X6Y1hqfqi8hvBok+kR_dvme;!RkV0E<$`NRy#&UBiaC0WoA&app1dzmSug2<*=iYu=@49RVDZe%Zdm^3wrN!Gy~d3WB0#^YY!D@%EK_WdGEb!6+X zR!UI?q8@xOe5iy6!!7y;W6LZXEF)CP_vH$|63th9U;su}Dw9j)-+b6GO|dD}q2xpv zG)jac$5dr=Jv}l(^JaXEgE%Fq6$KLu@x4U7DCs@o(OelRh*JUY6v6at!s&bwW-zm_ zu4%*>^dRiJkg9#L5R_${TDpE^0+L#j%#)QKiI*ALu&9W;F1DsCdQwW1n<{PP-xbRP zqfaaN3EUK{sEmlZ^a?90iZpk#uHrA=S{4F8Fqz)abL?s9h{Y ziRu-ajYC@j1(l0OTh(GbvU669`~4?~S!2`($i?rmm`yPHc)u$xdd;=olBz=E^VYQxtXKK={7?f-H zN$Wl!qM&kULYN`S>Fb){Whk!->$jt z#vAF&yya#t%;Fc5(zTmzxb9lSTd231Hog0fZk>?`(28j@&Y({>-4xu|K;kW9PXj>hCn5lyHN=eMlzv!yxxjwZqHa49RMlML+!*>tv z_IF*xvt{THl<0iS$%Z8G*HsrEbImvZxO^Z!Ufg>Q1da?mtb@NumH#;+c zPA^x*Jy|{P348h;Em6nrjCcSr07xMa6=CNHMA5>Q@gtH{Ydfn*p-rsf#80_5xwC}C z4g%$Tkv1a)ik<6AN5X@DZ=25M+Or@yc-T}~kf%4$RYRYsm>kkH0)eOJ7{Xto@&&<5 zB;|2?{shs0e28o8;VdALjRX4+D86AiL#hl!9Xb@PVY!fqt-8J%bf(IHdKT1P3|Nhh zk8qEb4^=SCMmGzfs(2CCv~F3d?(sY=Rn@?2!=Th&DF($dQpZHHPcCdTI=?nUvMfVc^u*TuD9=w}8lntCDQBY>n*qSmVF3i5672mvvQJaVXdt@|7EE(8*wUq= zIV&w|1%sOt*!FyxW^6NKz19ab%LW^>Hf>DnN|5b#=j;MKra?y*^H%N3#eMJEIeAC0GtO7@;75EOAe^EDQZKe%Zokj( zjqh>0V|;;oF+krCk_ZwP&!NIK#4(i;$yK;DJZz&!K4PQGiM$q2)i+&_n_EX>;kl}z zstBe8%+D?Xi&!cqI>cb$O8Ue6^aR`}p&WEZYh<(jc0-AT#lQKJ<$Dw)zst({q}Nvy5v!f9U)1Jby0eL&JLo zvMcHDst8HGbMY6z>x38CI4u0Rwi6eL#YmJHyos)=8s#8_x%1&7wJ5@-&)UmQt zp|niWDj{78xI+wKQ}JzlE((O|shn>qM7)HK34WC7+<-Y^)`i#&{L_t@VuC?%p^{FW z+P7)lx?QI(9on_;xVWYho0K$ds^R(ew`o&njfio$Py7mhc^=J&P#@nQ zZbv%0dKGnxz&&*!KU{p>+UMyH0H`rKrb`^;r}#34iCxB-ye*nH_jDkJ&0O;s(xn1! z&~44jTO?X0TR2cqy5;CriIy{3#1X{Vys*kiF~}gJtoZ9DS%WL@eQHv2a*lwHpPEA) z)iP{V&Owf?+oW43TiLm1zzoJ>ux{L>M$uXk5@LC%#46o_MuipF+smrZn;69yA(Kl3 zMn9y~Qz%=eNFsOW(9@?+yOZ(b{+K&neC*iQg!#w#I2InyJw{e=EI3}2xs^}-@k;fI)=qHv;Fq>_eG3QE9*Q%k|)6@^VHg0;JX))M`iE1WZ zu{VJgY*J!5zrZhyqZmaL9MH@E?}DS#(4Ldfp7n{D(4Ir33!yz>=^OvnLl`E;0MdME zk|-!umKEn|N&}A-#6_4X`kEO;a8bOR%s@NkVld42-;OBS4qdyKX{}LU4I;r-G^>K!WE?$en6c^_ylT# z-?5+!t~02Js$W#`AoeQObv5EqXbB#>kgHL#1n6V*2UtT~_aG-k2lvG}Av#8}J$--t zf%Jp<7VY)!oqRYzLG-_(p`^r% z7aBHlc$}_@EDb~P!MG{Yb|M%$uNaDsSd_ko(+EHK0EnZk{Hw2{ ziAiS-Isnau4l0AmgV`v60 z6y(>V#EQ$i*-l~?DK{#SXop;hK07imx3Ux$X$3zmEU32sH^dveFlZJXAwT0DQjl2vQhJ+TE1_x4>BzxO|VV3(>{JDyy(YRT;B zlgCt4gr(0>U8`msfJa0Dr z;KB5!yoyp!Emt!l!Y1}6(FKF>rG~J5DE_r*5!1SO)mQ`@p70x6F(gE%DJ}zySp%SL z!zfn8%v-ohxs<&Zb-VqD{r%wwL_Io$_j}|$EQKHK1{wjGqvg-!ij|#l-{b-Oc@=_h z5@+4Fzu>ESfo$EF6*HBYR*b^AAXS*D7%8D8xsA6ZEv5hRJ5eKM)^n!fXMmhfG*LwJ zxQK!c;~aY7+5I;AiYg!=2fM>lK~4h2QIr%_f$?$l(r22gqEs3i6O3*wA67vGV-<~% zdWM%6;>UB$-(vQdMvomi;@+?Q-aBstaRiN+OuujMUbnA~o#SY)FUAgXjRqwFQ^?is zBJM1VSkC`r>n*_SEU)$bYmZM1NJxUUJr$s*?U5F!ot`SRXgmQTgb)Z4oIr?>O!j`? z@7ppOSKtm6nqY2p-A^YA>c*;{?%jK+p06R%%|(w4*eLForDJRjeR>gndXia~ z6+mezPqnaA(1!1`&yWgamNwIQm*Pa1GuH-gYk9mZMPA^a zZY+;wB?yJ!Zc!sqpZW9glB5=%Q7vU$H8@Ziq=ve6MB+MK(ZqjyRKP}+Gu6!u*61=t z62=lMvKy&lMTZ_{osZ!iMJZhb$p)Nq$-S`oF4>5$^1ax7&`fNzoEhuq%2HA$ zR16`aY6zWq1WAx`t_X=hl3to(p8dY$X__dI?3d;>+doU9=JG_wp@@M(Je1<=u3siE zBS_N02fk6Me-LvYG8KjJpX`t_ZjQjwpt`~I35pBl84Ootl!;5_k%;xGGDW&vE6K-L zBu9vKhdHRA1CoD|FG9LXz9A=MjdgkOGR=UTapb_`7KoJ#q~)E`N~`vhc7fx`S(UI# zI{`Qi*wf>O-JPZRgf)F{3wizEUBf9w+Cw%O_b(Wre6oM0U%|uuYLK>thlIzje`Y{a zWvog)Rn5_3pus*&vE@^)e*;Ad`m_{NrEmEA?plh)uov~A$ppBYOKy=3Kt$tjJIC~UTydt4CN|JW z0RAes$PMU5Hf%8p!HfbKDkE` z8l!lfq*f}?of}-h#*ab2;o;XI0BH~+T40Fq2TkmoujgCZHHPsyElZ&lZjUsh@%AR$ zkc{9KHkw{!eY7sM)~zd*ri5NCzxjuDinnjy8M@^5in*BO56H!#L=PtzL+jC)NA**F z`!+_e#+jDsJ&Rp@ENiVMiBF-=APW$jc_g^FS6nw zo#x?}1?FhPQP+#7i-AJ&BTcdAW{q^=W1%eDC|0UYavtP9sj3)AUql#+aHDX}+&Phq z^IShKF*ieM5yRE}qEb8}m-JHignP0Gqf0@s$Wnb4Ls;xEt@>z0@7$FC_S4qLY_v%XY>iwD`QPpliY-ft+_ zxS?vJ=K-%mzLVJGH)c1a*86ouP?t5)>I6I|yXwr9^4TDlAQY7kk+<**T3D9DF_LI! zCi6|mQV2%fv?f#amV`y0nM}Xh>62y2^4LYj-!qb@g^ERDeHc5vj2~}-Zv1G`1U`z! z(WOG-I2!H}jf@%glO0xO5j)()*EKNLDcpkHbalSAG>=^zJ@I86SRL9-M8;P{bWMD% z<(>MxA}3Us3G!WX+>upz7^5keDZXFA9Zy4jCer|$%?tmb+AJqt*A);09z|U=ZK{!i zcI6l{;f_o=O^R&l09qKTcbU^9T{@VX!l#>m3LQ*q>#e@YHU*s=NTonB#`D_2*MgPULC&_E1uK7i# zdDJ4we5cZ8&6+iB+7yXR@{FiyLxC276<*!XB1ARr{P==$7|JyuYW0H^UB%nn)s?2O z8QQ9#b*swO>>O;v3PRtyvQ?sWx>a%O)~#EixbfFC6hj%u1H*If$JGTT7DewO%*+u=vV-b__Vgx*J!7t0#xZ* zPQ!9xy3BSFRxr)k4@my#t4hvxDQGpE`l!6hgum` z2ziNk-+fd-AK0hoS<}}Evb!(8{5s?@>J170KeD*Q(WywMeWsxfolYKL&*x}$%o$p# zO!77bb*VuQtYgHev$AUNp>BUQAwmNS5k&Ne3(L5F+)D)3BT{q|l~Gd_X0bRi8r_^n zO%G}Quqip@qT`@V_0!6x8(^6UVkw$6d)BOYc9~*Cg^B6^!&yFuvm71r0*eMG*r4_8 z6^kG(iHcW@v`jEvjf)dePEk$FOU%3gc?Irhk>f7MKH+c^B(_?D5KBg67m0C66)GDl z6<4IgEqCyte^ZJ(PP65#%tWzVsVmS$+2mXdjAzex0tIX{l>+%#Z;-oKZ0Tm7rg%4$ z9{I|mMe*Xs283-$I$1@$v}ImG17%s3Pv0eF#M`*FplJyq9cJ|^e5#^b6+eh;36u4A zxC!`3Wq_(qsP<@Ktm4?o)=(kqWr|tsl(|i1N^ZnY_}>yi!C;+5o_-@S+Fb&Rc~H!S z8TI$Od(WkViv$H>OFlACC5acD5$Q`IvxfaczcOD&bYmk)fiPAh(6(NaWQ*-6+_}dx z6W9AkYG)v-kRF`5niQgVRRl#ErFbxhLOex0n7*q>YMWTIfoXftu#t%O>8~I-%sf!Y zFZK5~C6~!NRKFc&JL2@s~<1Ik<)*x7uMT$Kr5ZWA%}^87Vc8xk<(5 z#4^ksNleX5`JqmLkes+&U@!{PXUq&ISPh1S9AY=G6b`6pJzA2W$-P3(b8)~g0!jfV zor>G7jb_u99lQ6cPQ~4N=DC+%d+&qKY(CuA>J$3rtB>E_w{Oq(m2(%aeX*i$SZ&=H z>(xSUq@lUHWly|E zCLcO5c;nN#n&D#}o%Yz`m790%-mz)Taze+a=$Bi&X|p=Zwr=0KZ|~O4l*YDhSozeV z$EHsjRg?1-Uww4w;46DKvl4L8+!+uU2ttdI!|SS1(tP{*2k*SRfBX6sOXts?KAED+ zg(QN60Fzk_$`ZxJD0EgZ)JNe90qaWb(z6mFoPa%Ri!|aLEWnl9Twh-C)RRjVKwyYF zj9Kveev}ul;}S?FtE)s{NCfkT(or(B(us>3asZTN!YxkvZ;QVXWXYW@5}ENQT}6t- zQftnH6OAWkGF3Ke$Eo%rd&d`(S1AfU`R!LW$cQ0M^k}`Wnj`B0nFAr#LcqI^*InCa zjzUhoio3)eQtOTsGu&>D&m^Y3jkjrjEn}nacfeSDXC@H zxrQgP{}9E@JM4M14TrR4J^RewU2Fl=pCV)E~U%q7%1l{gBxu&+UBqr-Y>)52Y9oI+C5DCA=@VB)utnT{-5 z8B!3MhSoY2g6Z@_O%-HATgZCyTA3R&-QA64);U3%=jfIwl48K$UMdqtLgnvhs7c3q zAqQ}Gog3tWN?^@0S#YlO)rz4Se32pt^%Zae`C>hf;fasO6GKMKIzWSpy-_E05iXNj zPCPz^B*srnPimlRI>1yvBbr$Pz`)h`$C?PK2=fOii(gpGWxRNC27;9Z@)v8n<-BNq z`Mml120W1i{1;OtU&_kwVjF^EGf{Y$pMHv1nm4#3MeVAc`qjm&a71Y1i|ylRB`cwf zwMxLqTtiV3jxkpV9ZV9z=)uA!*g129%Vi<-Sw3CFxo4wZL%vMjr81J(s*X za10_{QHFT%C^Rk%{-ZFK9h_v^Qn}qK-CFn~;YPW_bYeXMb_T+xUHM+&)nnb4?)o(p)AR{76!5A~X%!z{u4C^xte-{q3m z@-%p|ODqt~l>{6#hB@L1(idWg`6z|eW5)<0jUF{L1ELx5K<~RAN?qOY+72DB@6ydA zEwm|_R)nifH(nR8>zy)fnq67Ctomx!S;dg}Z_!^%{_>YU|M}1V>;Kg2fBxr>fBYY4 z%Af!G_e=kI`PHr4b?n%_O)Kr-yZnkPu3%{ERlJf9w1To+c@WJ_&F%j=dQX69d`AQ|^?pkX`b3xZ6)7+#&dp%*DV;bffDLF~g{gNk(9n zwQHj_#iA%k7t(7JYofKThhzN$e_lqAn;`6zwF&c%s#bi9yP4a@ugVX|tEbtabjQR` zf<+Vv=%l7=`L(V;G8ILJhBt}r!=5PPDH&hl>|*mn&IBBikO*Y)BHThUX}{TjCY@3g0KHZ#a~7fGeg!j4ip7LWrDUOth>{2+A1IK}e<+Ne41X zvW7h+K0YitJjI;v1QX-Ruzc9Q`SUXK6ARq@w4sy6T&MD4PvFN8D?L@n1?!)76cP%S zEzcoeDb=-0-0#*V)@9)#xz&x)lgQ+%GfoCL2|S6ICa94>JceWjo=78tkwhCCZP>^~ z&!foehV;e+%%l)<@tZFnX(fG5* zE3UeAhl^ zkWN7-X7R+=I*>`+xwcD9=i2KVcSdhQ#}O!mSJ%0axAFBU@JX?KE^~b)qLfT$`jpVD z7&Xy5?%HBQCcaxs=B#z$_4;c;CK$Cg?K}O4w%EB}XMR(B(M70ICS6o|@x_;1a`7b> z`*Y&6{aL=HZ&BF11!9zf7R_CY1}$5*Y{6J;Bq~{EV#kcmsk$J#W*8H4a;@kXqR}X7 z;}DB9Y}*C_jQ!UJ#R;GDyk=k})vXxG#1lGxd}dq%{FND-x+dK!&DW#0we1Spwu{>4 z+O%xlI;5Ofl`(>2`G}EjH32ajic#H!lv8~@dd6^tv{4g1DiC%?UmjZ5X~q^3#^UW*& z(c8`Ur8xiEi>I4g2L^1c3^HW3JVS2G4+EGn$U$(KSB;$N?Dk8tOG{f@Qv2}+ggkfumh8a zA+j2`VoD5HA&ZwOb} zSxYl6g3$00TOz0S@ebyZDRQVch+>CaINn9{BJd49$EOH31zY*kn2YzPfg{n=+35h-K7iyFRu(iF${}fB(cBk_R2dly-RUyDi>t#O58o{9+hIE zy9@3CZaDH0M|C(0*7!e>8L7j7+(4~l95`?U$}46D3~GLg>MQ)U8Y56&YoclFqzO|K zR=sMqL(|l28*j3KR^8+W^gs9?r)CQoq;r3OKIp{ESTV?J7~{F0Iw$asd~%1rou z^|jaEeCut^_C2iSTc21z(AUxeSmvExE%l#FE9$?J`fKK=cF7128d?!!<4OtX zw%my{BX0UcQXFQtv)lY9Jo9rxf)f%Le3SW9sX1_}2ri?iDy$eBR4}wy5M5|3t>Fcn zpjtyVZr--jYCO~)_dN65%Lk8q^qGd{d=0ty_T)F8z5o1y1JA8ny!^S3vm-HJkc<4~ z5FiieLP*49)m@tuN&))sdKF4G7S_^jI9Xj?g0ueN9T!Hu{?m2?B1knB*92J*j zwo2Gy>g@SXZ`gg{#pm~;K3MP8T)uwGj%{1EGYn_vzWv)bF{gX`#x=_p&7C!QWL0Fk zkyrO^UX3t>wTz=Ri~!l+2&hGr`u5XfZ$H0l)2b)t&zd@MJT1gOVt*UZV%ki#{VaWI znQpE<4qLV$bl8Y$_58I;_5q4UchIUR;M%p5+piPj0k za2ugQY&Pbl{*Y<)MO4=aoT2p;QAEn)QrPhd#J&we_(U!Sa0N|(38J6mPlcSe9-QF0 z^Y$vRaMED~o=D_S%>C))H(z}AG0^+?u_H$gG1cbXgKxe5>Ps(b4fK8uVP=5k?j2h< zu3NK`rXO@0q`GQfl6jz*U(6anEzQ!p2D1<{4%7~PO(Swl20myLY6^AZFOx}vTvLjC z_6ZG4@4u^&*Do3+VT{er?VC5QTdmd}@T*@^Yy{RXY(lOp3M(2scP{&W{s6eJ))4F? zc2P;VOy`qNb?g4UtfpQo0uilGAGq+{1985&=I;2ehC&(`Ai++rFPNob%#}t9B<@Y$ z_fr7|$M4dSk#a;i=8y@pJwa$azk*UeCz*{#HW)>VOL(oUkMs!k+{hxV zG|;U?BllQ1I5vfFBsC!o-AJLj)aHiLX@OKmI7hLAaOJysO&}Lym3mNlO#RaI6X~Vd zB}I~r*vuI{SM4ezT!D$Mt6?EtG5JzFL5GUk` zzo}xbIzv~8DvMHc!xs6CjHYq?ezgS5$0Pk@4lYR!iIi%l$f^~pr{b1Sa%-9qef{IE z;oRi|AyZ($ULx{=^D6fBd2Mrrs#O51RX zha0M-(DF(WEd9X&t;_YD z+P6`&&K3W1|8)OqW@O{9gCFVt&;$2sz%r}Sq8?`f9gM9?Bq9Mz{^}>guI*E5nzVjM zj2f%Xqo7ATr{+ zdcraM&CxBcSBmf`b9*(~T;Hoen3cvHee?fr5SYeODI_#O7vsZ(F^B~PsZF>wZ3>iH z{Wt++KoGgY7dE<3;gLOKc2VhCGeOiNHgph1U{o*D_X3Ojpc!w!WqQOHo_p@V zGb(i89RV4rPi=@;2K@mExI^Ng=_Ag1O4cy($ZhbOeh}Jnq;TS->XEczUb5vFb9aAf z9=bVH!_^O``o@69Q}m5T7ZnJIvF`|a${d=nz%KM?TM3N_^RD>LB!j?;^!xn%=?79g zJr@(7610XG^%Tj&Ov_5^xEg{p^|4*BN|m`%8Oj+{$dr~miHt>yR=!O@Gibf3nqRO0 zeQsiYW>g*tWHHo7?J;eIWm!D=6^r2RQWr0+D&RQ(Zqg+ElAVS zkNz70gYqGPN*QkA2K$I?j`)Eb!;fUInA{ls10%A-Q^TU6#i|)2KJ~TQD24*HM&lSH z`*3x%yVjgupN8av9pFV7p`fxfMyNzQ81T`HbfPA zo;a^YN#5q57uDpfp-HE#Ug!})q&!1bo787`p>FBM77<`WFPd9TEA&hXUQC-dtzElz zF;b5V+#+XEkEpZnQrR`pt+s1vm#&5$W_2m-+_{VEobD2LPCzhH*VlAz(4|Y4&QQ~9 zuZ2{wKkPaU8%FVg$fK*fp;@=CL>}F`!Ymjz+@Wo|PS^jZ`*rp=(M8GM_>0C}Tmq}$ z#hsHpH$KN1v8ZYhwJdHSOp!S=-K@AN@{VS?rlm+aG$_TNUvRr!MKl5)5@=hjk6IDsX|Kw9fVj@X*Uz{n1fu1AZFJqTBZmYx+Kpb+4b5)fc3bM%L8U-@OsU!EO z$<+aOlOQy2`k;muev_7QIEB2DD0?#u=N&!*XDx-0AANd27@-QGGvlVD&`%|&`x&X3 zZdSo;A~g3{As3osR8;2wAdC+{7#|N=nMW8Wneg&u#p?zzCK|w?MMr;G>&SCe@YGzX z5&}J{G{87`g>F+UArp# zaVMJq@?*}3U`j%JjJv0jdaB1Q;pjYt)%1NefDG5C@u>twa`s9^VN~N-RuB!&l0P6$ zCW6I5xl~JeY2vKBhqC-q6vNdON%jziRQeH3l~yQq2!=UWwTeIv;0ECwNMkOsL473o z6whN`gRFwXcRXXSZNk#VBF#5>8)3%(KhLn6My!k9Cq29`TQ%&c@cB# zZIUrQFHslQ-eiQWrgr$K@snrFS-fJ){@31qgSLvj+kh?WH*MR#Wh;1N^NwAcG>&)U z>g7x4GS#Fe`sSl!2VZ$^$C{@WJw9{t*b&&&TCVV6Lu+#IjL(j~{pvH@);u|X)}(Qx zNBI#wM~)i9cB|=+FF-f4!X`_GOn~a zCeCu7A7fUq1qQQejhT$L!N3NBhDM@>D!qes~B)cvun59d1ji%_jum1PT6Q645 z)$!v;4j+bYyz`Eh!%Lg7f6p%Li4qE&hwX3d(7-)#E0p$#bsb@7WAxy6kE={7UQxJ4x{D|*U5 z>7R(957E*x*#>zjC&z}HS`i_-M|i)&1J{d4l~-pJZL3V^Hn@$^Cbu!Op^S>*I-C)q zbF%>0%^&3h=O?12XMs~VT7vC{HcVEi@Y&C58l019HYNqA;m0Syj4c%$hv*3ZEIAYN za>W1quS}-JxkH-)aaa1mLrA*JTheFCN%UEL6{$o^4aZg65nmu;M$SRi#GY@=! zrmP8Hxkr-p!=x)t<5ub-373hU^2FdQgup>sylZF(RlXOjj9H!k^vsR92i!OPr8kG7}M;E;rF3b_r zCBjvqqPJ$^HkTL$Zo{3{y%ONCW9zv6QL2zfI7@wN7%50TJj}v7P5KYZaD5vS#l13A#7d2tPmS&@*r1rf=}+FUl59o%nF^)($k2c?GV@q_wnOX|JM~) zUDK95z};!gzphg|K@EcU)&P!c=#Y_g68Xd|#wYoJO|@&7Rxp#DJ=;o;zF zY7X1B$i1;q8hF9HBOZUoE;R_@(Vak#_>Q=Du{F3zsGPDI!R+L|A8jgAN zGN=F+Py6ZAsZ8jS|I#cWf<)6zsic?VK;0`V>t{>}w;d0>_ArK_fICA8u zd+2;7l%Whf`1TvGz9RXC#=KuGyFxS|=!fAsJ?=8Np34^nM_)*=OenQiIqr8^)@L(vlk%2e!P~cQA9aX2rfmXA z(e(_I%@BF`E~Q<&@ULsvs9W(3-RR8qH`H`X+>q&3L`2fncT4bE(6w8ZReSmbuW{Fy z*KC)9u3gey3%YdmT}lv#nBt=Z#Rn=7*Qp`cq%*%&Gil>)r!%FNZ|T&b({=yx-x^3V z?4tC=1(#er>XM@0{`Qhfs?PN=l;|wqG6h3%XStR|5_?phnQ0a`O`PunJnEU%oOlWv22Uz&0(P7$sLaKcjdjxW!Yl62 z=HrxrP5DSPh2|}-^D0&qgx*n!!^-r{q1x@3b?5W_()HUF+~{(HD!Pu`qi2LRm?X1)|oIo(+D&F}XTxp`rl*E+Bybf>> z)s))XS{6y?7@6YjhPk07A$etpH0cA=QRt^1L+g{S0Ry6r*!3qC#AxUyf&UyPVOmyA zj7sPtP(sL=rPc2=BeLIFnuwWPXDL_}ndJ?2b8I5?MAbGmx142b5|!2F4WBIJMw$Vz zd!)Dd{@`7^N$A|}24s0?2{nh^Z#@rtxCsx5EnTmu7At3x5d$o4Ns1cXPgSBb+lFbA zZ4+Mk?sS^j@}rY*+%^~`#jgRcD0h+vjeG^FPgH{sKdjyrv>xIrLM%izefkh|JxJQ1 z3JC2nc^OE4I0=O)(i?}Cql|g8^0cfXsC*!S;-n$J3Q-BVbmE3PbCTmSZ$HIm%_hCS zOG_Xq@?Q<|niNoszo(EtqIJLN`wO`lDhHoQZlokhzEt{U%Ul@lhm%Y)bR_0L9$hcK4R1ZE?6AqvVxEJpj$f{?u;p|V{gegjCqDn=7=oC?uf6c*r^%X8NHGF$vByi&0F^d%F~Bjj(FtTj*NgQAy{zFZ zOlCQJ?8A>gJMs0&AxKEFRkg!LjC7;fV1kQvqXx;B@ z;`IYNHgYj+*tB8Y`gN;Ttl6+)A>&AvEnYBt>ZGw%$xq&X`M{oSYnD95nxav4Ib<5Z z94kXtocQ3~m-p}3yyl5{(NO~5w(i*F_B7bb&D9*; z=U;R$6~6GoOYY?g>+g8w)mLA7ZvXCWo7SzinH?cqov#zZeO|=UNJ`~2!*CTUY_N{H z$dDA7{eH>{+vw8q+B-Z8FQrh2G^gEVYc~C^#MAKfR4JRpv(2L>ZHtt2&ac ztgcDd7S~jB9mnZE!D}qbGyw7qGeEwuC3p-V!Hclp`}i@i%h4m6RLfx3gKq+_p53<_ zth9a0Cb#i?mHUXmmr?%bj4xe05A=c+VWqRYTfW-p>bl5$$fpUsh|H4Mo}>%rixYH2 z*-#bS4MSCs88JrYvyYD-di%APpMQ4$o}Jodu5K7YGYzcOW+b4?7J4;O9 zftf1di^^#pXbS$7F=4&1#pit=Mz`)BJd;q}&@i(M2+8|fn&}3%piPh&O?TejizO!A zyM>LAojPSYmUgn9-_DL|k?V3^=PrPmu0%bWm!R$)(x6ZQzwP!&QwJn}k#t^WwLVgp zEgPsDoz6WIxd|a)9%LW#fS6}m5uh+E1|o^2D$=bI&mfqr5z58F|hP!C)Pv7x8qq$Ba2}D;iKBP+tpB>5>Ok9swr(I=zKNKz9%svzp3O^FGxzv6iaDiiz&G8AJqnr>oG z44=pgQOGTowx#+Fg~>z@tFEo#B&mMGm~5br-9sdM4?mn{5Q6B<@P23T13FKqvNE(8 zm1xGQS$SENj0vU6>gkKZde%``U5EglgaJ)>U4?lC6^0bUtEB{wrO*YxpzNhyMkw|Y zt`-xR1fRvTY#tylO(lq-e!qd}W6RbcG1;?cZxCsP@;z5ko@yAZnM74=5m>Zjy$F&s*JOCFPacW%JV9yBv7PP*(5VjRm%`nvery22EC7_ zk^t14zc~);yp^PA-XES|hNFf?--SbfncaS6y}0 z)mQMtSE!BVuYdm2?=SAjNRn$oF;~-Z^DjR6cUX_R?0@K?5sT5@v)-_n9^Flgropus zt6sO=e&;=Q^{ZPrk6**><3Ws*g*1ISce?%;JET9^S~(nj9}Vo8;CXnESxO~V(IQeh zok&T>B>yxC45lAyjs>%_m}**gf@f&mW9D_Q2B_b9>9yA_zE|O`v>LJTJ#m}6y%5{! z?u_m#()XrsZxFh4dfl>pyW3WzNuYl7)w+C%KS3f&uQl^KuTPn8^Cs95L(Iv=skl=v zPY#1*c*HPV1y8=hO!+iQ11a{ro~J-fs+2sZLC;4XLrs7I@<-B#FF3-iET)zme2ex? z6D6Wb32W_iE7pn7a7)BxQp+>Tit}UpqNf{Uzm^+dROQmGJ1>OWdG)ILtGKJ8b~@pj zTVkh0rZ{GKR@67g11NP^9x|q}%Ed-%-6I8qXs%AtTIc(h+35$axIrzkBeDj7v;4H- z@Nj1UUZwWOdb6}HeRqj2D2)?u@_8#%TtxJ&vz2?R=halyjTy8u=IJhG!uQd1$)3~YZGYIvS4jnpl?BF{3 zPHAS8#Mh@gXS>8*)7_#Q3cBBr>mJ{b?OsSY;%-QE_cs)Ew|7(B(|lNcgX^9Fw<0=jAFXJ^M4A=n z-=@yZoEM$z4A5j+HazRBv(7%7|7ggGo5yEXHA^(jobN9vxKPrTpa1;A3oit9yH-Ww z-sx-7tx~`i-!{?Cw@tRouo0=KJuA9BJCYJ&Gi^P5CTdql|51ky?Q1&}wC@nZYa)h` zl#7~66$9w;d|%YQp}vP7*Keq7-(WhtZ`$;!1mJG!4?`58c8UoTfPDWCy>U!_^EE%H zCdduL^?1fmBU$MHFHL<+HY_zHQ;|d^T2|k)<4+_$k52p$;fmM`AvfG6fScpTg>7Wu z4!c9e@4x^4q4)iv(`(Osb z`Ett&OhFM3VW7p8YJl`7NXf2+iI>^+i#y z53SW_b#hN?9IZYd4Eea?8v{9yno6b-*3JGDkb>5@Qo!RPG)!_r>%xSOrS?uOc8N?iSq6f>kqY=kU>=dt73}y+dq6YjNbarYHG@DKykgGKdAtHOiV4jn9K(m=e;(#Kv`Njw<&}!8FqP`%F6h2Ay_6HXC4rta*`sY zPZnE5A2U~wcdTSdI|E0!F;{~8B_bNmyGE+JS`#U9bU7s!FRQfY$CZfhOk{jW1;<3W zcwQWmuS$~+<#kaZh_LAwJl|@o(Nk<2sZA~d6tFEpufOr;TLL_Xj~qMBMwm~fTlg+tuuPi(#I22KJdS#-31f*;Ybt#efO30Bzmq1t8 zJmqck^}1kzUswX);aD@RQ@-8wTyA-i4%_4^x8~eHA33o)={mMnZ{4ObZt?C4ieB3g zj7SNyg`L#gtNr_79WT7}+FS1)LZBx_-bWu{z&o3rUq=nLnKKG3$E2P_14=`7=7^ZrzgJr`ecRFh(9@c;juFyAB0%mq&)M5XSgVml{qd0^g!FCfy8|V4feRJN| zUyJX5g{OeEe9p=s))8rU&wKB^^+xn&^VeQ^{+T^Hwjy<6$gH9*SvR-*Z!kG2Y!=L& z4Sa&}SiBw*XyA@wO(Q%C+PP&&YrbJ2k%XLRt-kt-Kk2@{ht?G?qu_ZwJel)T5v}llae73vthT)`^s{8hWaOw{iVk>;psP&1A0Jb|H*=aJ(XJT3n)$=>V5kN4W13H(X2sjui!oSu8MNM%bm*-vR4><4xY*9Y@qAJAigo6&9J z=N0D-$GO;zJQOxX2GrBqgVZ17*Cr|9TEjdV^ujfY(941xl#z!kvdarrkasoAS2sw; z=*mxQj5dVS!F*~Kjl18{klX;PspLK$sdahEk?5Q9T$2mP@(+6q8^t(-hQE#<9L+vR7lKnSRD~I>RaL+LLDME zjf&^Pa1hfFQ8=G24Ojn%c*tUXl$P&0>BGC0O|QH6vV)}Z*oA_-Ab?red^#gqiH zisuAc=my-IaG%Jziu6RC>YDX+Emb;|Nu+yB z(J$o^DN?DEHw1jwQ7Rb49e1O;5dMr9S~q;eu$rpcQLQ^^v`Sz^fxaTuQB!iT4rUyT z5NU{pq1XDw*eb`QFTKnV5luy{=rSTTX?)E!S8JwXfJN@I3IGzrYujJfja}BgZtmW> zgIbNQ(Pkj@J^#AwuYdbHdK@OL{PB0U-q^WQ`?hUcU3K|CFQcz1SuqGrko(8qrBoc$ zzi%I{4WbzdX&-fTVJ(Pp&s%^*z3;wH53&u^Wovf`CN%3(&P;vqE_KG{nv_uL)mh@mK$6A z9JCm=sf?j4GdP#i@dwJ`xoF+^^N4};JWAO^(j~X3Qn^yCB-4<7XxH3#svh{zAx%@q zXA2v-!#@Wd9Y)sk)*G+C@)By;y}Ng57|Z5-aBYMEld^1C1Z_?sF)Ud6L~f~n;_`a% zt*d|tA9JT5-yn$9^mb^dP`&G^zYg+Ofi421MfSKy5BfgMdF*vrScMWpA1r;ul%#aU z#WETOyn?ciFXlafKvd*)mvb2#lnqbN@A1I2I>tKsT0IPDZ^P!KwPd}@AfL8O6NOl^!9 zr=%gp_I9b~*{tJBsiSj3M?rk~`DnPN^M!XS}PFTuB9Sw=2nO z(N4lvzq1$-kiIpE^C;)ngxW%c?9;D54_~AJNBLX63qkEtfJ$Pwm`b^aCpDMklVZ7v zKCSLFi+!53;c^yr9R0*bfhCbAOc*~Q9^a7v3ETvd7!2oGlPmI0)Sg2ri2T)!l|Iz7 zr-tL39?6!!;Rze-;%W;ivm-uWj%Wdg8eIZ7U(hI*%0_5(h9amSp3CGSSdx~$C0OBG z$@Za$?L$@7goBmYTtPNB(}rHqF~Ws!NqWrpHpusr7&uCz?$LrlKk^r&M%83|ZbpfzG+8s`JGpBM=xAb!i&xiE*8)j-vN!ndOK&Xcfv&hm56|K?cVm)Q z*P}@7ozaa^_XGr~faQueiY+1dfgS;j-1P{2x^&Tsp@zH_Jd%BjyOng+`(0g^qW=OO z`HN~U&Rr7!w)S_$zyJO3e)s##dF}`PJZIt_iF*85(b>gkwQSJ>a^%mJ8dqiK>I(jA%0OPJ<6Mu4AWJKw&j9kL(SJ^@Ke zb;x!s>crQpS*aa$D(J`-Z7-1I+84BI@7m?smb7WBp)jtEYg^u?ZTNttOiAY5?-v%!e6lF5%rEj zg(O%w?Hh8ae+mblIFb20al(Cm9vlf0^qC;ihbEhs@&_}A;d|e`SHiy0_uhLqdaqP( zv4xrUGl!CBf=Z7bC4W1P8YsbZ+(P=P+-J?SfGCfX;7KRtQXC02(U5b#BmgBf=Lt}1 zEN+fz%%$?an2iXcsTui!C%GUK3Ji%m;V4!)ViiZLp0aSC6Ax`3tc@a-yr6+lg_JkJ zq`x01=QXC8kN>&!RI9Xjg>xxQkVg~b$$7Qz$IbsfLi!klbbQF_JGEA5M@&jc}Mkj+z?XD&dmh!{ZU9!2}}d`x)sO z-&UWFE2^H%jnhrbht%LLH~T_DYT{{0*|h+=o+??lRGtqB7XZLL&^rm|ISuO<1Uy(v zET&uiE8Yp|n2K?MFklaN?2w_`MNu9Nh9YGP#iBjsyD^0jrG5MS{zm)A)}MLy*=HHw z@tl9&y>OOhx*yOWvi5)^3?Ctrp@;kCU+F z6-4Hp9mz#B;otBJr$TBTPaaGjI~GLngagBe40Z!cDOC~q_VsgJjdcP|Z72#G@z!h?Oo0K&|`#tJ?tk*ex`zeGRx#8m8~yNgu0%Jla5Jiroe*M0>Y zDXp0i@_zol0<{E34GgGxhKZ?K30AQg45SD0t9&;Tm7 zNX@23J~_1o3P1z>ln%$`*(a37jjhm$6=PJs%5mjLSgBR{swsm`odnypBl@zAKK`H( z=9x8k6q=2oN1BfN%B#XhZ-@OvYz;Q}%V-&mZTglAl&UB4xF2xLJ0q2>Fd1J@y!~ItJX&P0uMt_&V2gK`{fIrRa4_&RhEA_k*8Ra^~Ss z692e$MS?~iKKkE+U()G|Xd(sL%kd+=+Oc&LcM#;WQv-iFi6UYwhJOEuJ9d+%Q+@dH z#~&R(a^!=LKRSBk_~#Ybnqj&q(FjeR!er^$3~Zre&GbQ%@aUsYKmXz@9*&fc(>W=G^gAY^4}s#TebpxV=@(C$_SmA8+g>{I`PW~5@b)ts zmoJ&m_`fNWCyX97ZfvfyZshRltQ%5s{J`o3v!+a%G^#3{{PgJi2VZ-MKla9Zhu?nr z`ThHLZdkE&-i*oPM-8pYFhR*7riC2Il1!X3b>_S$SFRKV-ne!5bFaL?PMuf#ad(d$ zJAC*<$jGOk(Ajk8oi|>7e&5b*+ct0B2nt!XY8gXXmMqo;jrsHEkcwk5*ju!8!5p?T zX^R!G7eEwR_Xx5=oQ2j900~p$@2z-h>Eea+O-wWql@Jy2v24n&b2b0KHrLcvS8|S( zn9{?b^HG^e4*B-WFTYJ`$w!o}sT(d)5oVYOqy~nB|Ea2?mZ5u>BALAh$vkBRex9V{ zTbiZV9K_-v2+})my!!IXue|o!D=!?_zl+|o4FqxPjg4zOfoS8CPpw$GWFZ=j*$m^E zIB^{2RSFDC+xSE1sx&XxG(rUN72kdZp7I}E{>kTGfR0eXAsae*lFxqf!O_D9Uwz?O zI@t6VP#~c`Vy?{`;iH+-eaO8^pB+RW7L0L8j!w{n)J!6QAcoLYz-2Ibil6#BU7eWh zS%#A+Vu6zshlCu9yf7q%WVd877S-Qv<8!mOHMdNWC_6|ALO@SZm{F-@@&mF1*~;Sj z6(HAt_!oT#433$YR-I*GU*v`iV!}ed2k*b<&f9M8A(ap_|2wp&Ih(Rnnr`h(+ve@s zsT$RxW2fsn8{jf*6nC#6!f#G7K_K9hZ;TjV11S(S-5jTa2HHCzqJhrBmzQf`2osAzUO- zVBRg?risD$`C^;wBWNIZ7sgJ}BB7EV`Ef;nnbyHp+S$Z3eQoiD3Fq)T;H6Jt`fMN z2Kq?X*kGhar2|Q1$pW3WN{bbxI7|h7nNm|sHYpKDiF~OfMiJkXr%1R=dcF$z0pGt4 z6+$7dGaAtJ`!G?QN=P!KWwzfiGeT%r?Wv0fOfU}(vce-tUqb2Sw* z6yJqwd9q{`3Ij_)XcP_$Sc&s8+mx}K7F;0cTY|Fh#HL6Llv8s?jRY}!z*u29(;kxNL!duS<8&T@==8-B<$FiF=QpU`c#{l`TGv2K_Y*Dg7!P=4aPl;-bAj**J!y4y zEsxJ{L}9WrY69Z=y_`qk@`oM*tMe?0KVTbmN&z5%w1H|}XlxS3z%?p>nk}&VI`~O! zqluY9f0@6p@ZP)c^1aWO{bly}t+xhc(yb!=8tAo^=4?J-mJSF#zNehPk+LLFpu4N| z&d_jHeOq&WuGbDKG@B`H*p&5U6duq!<2oLn%}lhZcn)(MO5jP-e?!_q^hy<(?lDXz zg%lyQeAAdBMJ~@lgSfk#I_~YU!-vxET|{l~D6*u79y)x8%nQQAjCXeF?Uf*DGf{ng z?bae{vp7$9#*C*Hr-`!SCBLiJ-2~}%eT)^1CU$V^*6pTX4d(~TZ^5prqqcdI`M*VC zdX++YhMRaM6y64_qiIz`GRZ&6d)JE-ACaPnTALF+Gd##+uPs@yCCHvY9SHB{n{V!U zbI+bVqnjO&$%UPIdi*Wgt}mgu2Tk`!PwCJ4_viOAsVT`*s>Vt4J9f3?Q#~@hn5)bW zPm<@kQB6W@3fD6x%?OAE3=_i+FN7}@Qh@O6ElM%-KDERzZDe>!qYa-{yKjl&A8opp zJSj_8nO~=A${RM&j~JWQ9C*eZ4Wx-M23bBOLN}v4D8Pwk+@uD?Da;yt zln|EvOWGnju4*i+bO23mTyktRDVtN z*_dus?NEzCkUWq{%XJgHor0tTv|a^PDiTj0Rg8*BuhZ1d20U2X#tb8A59cQ zoN@y+jR`9yN2N6$#nc~yghrIy#2;CHJY~wM+xiBu_D)aF^sFMj*2CYF06#TB zQAsB}Lxl}8dHTtU6xvna&_wZ_Svuh*_)-jCqGRm0m!yB|ewX`w!5@Af{lT4A{R4NN zKeyzZbIv*Y?6Y%cCC_%}lp;|QX!3xjY%_mB5{Xjs8s93}I@2a%T~cA|*31R=Z6rWK zk%a1~WAjeb{%q${{;il2YzUGBZ<6RJ+a4Jc(5Ofi!|b&UAY<3^y}VXlSB$nweQ)WG zD_nTJBfqYcN!gh=bd-nMrGS8R4@ZyUvzVy<|FTdU^;3p}ags`;5_&fAPwE!|NlNoI0lTR*1Dxjgq zLE@C}%eAnaE)X~AO3Pb9WNt$LP}0TR)zxIv#N(Xi!H*0cGEhVM@RLL+4=6ARWiMcm zg)0&^p*l+OT29-xuAV;MF~l!eOT$iXc*sk&KN+qZAyOyQa{rG8QM_T&OR$ zP#ggZ47HG8)`6oyYS}Z0O@d=pB+Kims%TwyXoc#YBFxHpEh-n0GDc})rpIjcGnU9CBcc`jK(8OgA#G#cGc8sR!q(t;7 z_rJv5FsVG0Qk)Db3)Lh^t&BV|;v=>Iaa9yDk zQs%O06TNHtLkOE*V5|6>ObI&r1Hja0$eO-I*5nDDt7?ZrrVvMo!BJ4EP(fh4rs(N; zqIqrMitVo)`?})mPY&)|vv}r&F=J}7Nc2+i2S+~s^2D)&z_YDO9vx9l#+mx+#L-uu zr!|WRa~l(qcWhk0dc_kAL!K~tcpYF$_2X2!vThWBTd~!I36p0nS_!^eyMD{gXI^>h zeWv*yJXCS~(=WgL{L`<#r4j6t<44|o?fL!M8}&5(T~93He6X)cvcehDXH1(ulSp~y zXrOo(-;6p+erQkZy9#S|MxFZrIeK1#@OiXI<%|6UL4j z#d#bvVyJ9e4fN-H*c1UMmj2sszfIEJSCxxTLVG^>Vu+6!cbu-S8!=*-t4j`bwG|w6 zevW=TvJOd~BK|RC2=Ez%x3F98^~onUMYM zw_ksQcjAVh{N}{RM-RRG_A3YW?%2G3jY*q;38CjfWQtjwJpA&)K|`#z#e$I|(!(<} zmIgdK7Bza2;H;Z+9!_Su$drla2nGU{5(T=EP$)qteulu5qt&G(ElzgP`1NYp~ z>n6|?ohu?!y&O!*aqtil;Tal)9>Kv5{YW+306ES~2kHRW=F#ZHKUzC9a#8 zlAfxbH9zw#{2q)UR9henMPzg!wnsS#{}2Ec6IT&MzL^%SeYfRn1xB#1P* zEv3QtZH!o~>R2Aq*b*><^LR|RtLg4gbjEebeMtoq?pD7z?MaO?ilNSHAy`9C>8at1ENrC7bZ2h`=L z`V0MTo^0Vygn7t)jZg*rIf1#aDm{-@TMa(2rV{KYIUsJ3$DdBjB)K-}na*`F&kLN2 zuq4Y4XzAM!QhS>BFG*VRX41ax6w7^LZ!-=!D?L8f8K zLtM)(Eb_@i$(e3eE6JA(Nh7v8khK7r^s7|Fz^A*KvRYW}a2!uG_Qnv7j)Co4I6r<8qc6-j zoFdlnVRbJB8xZu30WqoEWmlrSGq)D&NxUBz(v^}iwdUfE+BFo0W~h)5Q*?RfE3Ukz zO^41sZoTt&y>GjzbNg#9zx3~a`}3dv=MTUC{U2`YbzAQ{diCtyz5Dg;uA<%T(o6q7 zWXK?}BOw+M7RcuzNrf~>xfipB7`#s5ziYP}d-UWc-ioRu4tmrz##1RZ@iZ0Bb0iFaT8|;G$AUuttz(9k~4-w&~D36U8aPO_%yL zJIuMKJT*L+lJrSoO%+-)C@2TFQA#F$Uj0}^Yd>?&=^7rs@NDg7XFLzs85^o>9Be6ZRtytovt?{ibdgUlwxIIOXzd5@pNta5q?R4>z$~qS6ft5l=t0)Xnb=Xu<`mwJjtux@|n!|LOya6Qjn

eY9GSwNLGzRZ7 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�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�LOExPnR)*_Sv--f7?Nqo%qn=|xwm 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 TZ%l2sWzG_0xLE>x&+|iSbnhj! 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

h8+WA@Qo_)kU5Kh@HV@%qyc2A5-kzjEV|k z_|ceI;EBa8*j^H50KE73E|c}ODgdu(Lyi0!g6h7JYtC-mss6(Nk1o9UIcC!5x?(hK zD)OPa+x0tL%7|i#8TM$&)wo~b+?s?l#rY5_d|)4mIDgUOBn~y zD-V2B9w^~?LZzUh;dv5k1uc?7>G_=YD;e2DwnT>P*Z!Os7VtdcB0)rO9$1R^^IQRX z+G|YiXFw(c^cZk1njzK}wnN(Q0XT2Wg(y(N^Q5*?^`T^%fd>t6UPDrDZOQru=hewKzqC=UOf?)ZFxAKUOJCEG`uHviwwZV%j#VO-MKmVMX z{sCXnJmo8iMPDh^@?ZU@FTebf|1d~zi7Ck`{}1J+nSMkBCi}Rho|p6^dPTQ# zQ}@T{Ewx2waMz9;Wz9dAezavXaX2Jl8#e;xm4zugbsJ7yM{c^7=}jK=V(l^=S(-496K?&VG;){^u4iV=YF z%$<}cR+R{9Ye{f$jWR7`xEDuDLO~{H9rroClPJ*vL%yLecYx+g5Ovb)`xAcnh8I6G zN(}v;-3Ok>Sku?gkJ&>A_?_0GfE7&~@WcVp#qNUIw8X%CQH%e!DeW*?0n&F(_0;gE z(;64_Sd%|lc^XXKj4#b!#!$Z8W_z-{Z?if@2* zt(EO*;8%UMW+lX)Hv7?w$qN-=mylPy-mfdIR-s$3YLudMuEGYmt9Ll|X{QOCxmqYrC!TZ+m zTgo4$?PdRLO47|0(x%`c;`givAvB(T_fjKgoUU_YchS zS0PyG?{4oe0I|WMzbgQHV?5k7_$D8P`&`?fgpDT$1wok z&K5gd+Jq))jbLjI*t199t9o?WV1M zQB9>2x%5v0+1Ex@NZm*A_7v`)d~*Gi3Nn>`Aj6;5lHm&^#&sF@$&k;$xL+b!9(_iQ zZg7&Paq!D(+c`a1Yt=pS&O z|wLtkfqxgjG>mwS& zD-z&`4j z1VBP);a4^)0(7q#0TU;>NiMY24{EkMul@YA>N@$slMi*7QC1!63y@BQ-xVVQBwHZhuGi3+#9Q!I6^QiMH=?mZ%~W`8}AC?9?U@ zwxhmV9!W0n-@{H<63G_l#X-xQCr(-8ImsoTTV;D}CB^t*){|RySTIj6A>T(lf!(yE z%RTn*k8)Cwcs;Dlt0kk5Op<@yWhvO5cN(m}?N$}DLoqW6nfUh~HlPm$-V|&aLQBO4 z*(;A!7D>S40ZR|HY2pU%g$)he)3mRELXuFCpG>#H#*0ZI%V2wOl%G~sYltaRXcBS$ zc`Uy3{JAB|BmFt0v(JXTaR}2ziSNmT-1vAxZeq&YPw?7#BG%M>!;hKBz78muWuF=N z!SzT)kQGwl<=}^+n5) zxG-e!U_Ycf`1&Cg`?aA%V%qrChN`_^ZP?u5Y3K%`;e0B^x$LsW*^ zf=8IYC6SW1xTpAn8fN_}Z@PP%K{rOz6tIse*LPP9xS9~d3#LNUh)eDqUP#-TB&D zQoXx~iR%H{JNc1``RuIA5lKDN1&ET!Dy821`hhgffIVYM5b70O18+)I))Qf1 z^pm0Il+skL%`E%!4{YLMEW-AQQaede-+kBZ9VG5FXlo(kMwu$AG|GR`iMB+t$`1kk zD)0WEe|7-P!>PKD`opFQ&4+x{@69n}&!&^@ayui+@ip8W!1VV3CUs1eS(nU+3F9~Dl{i04wt0MU)rQ%#RG5S3xA^Z&P#z9R^Mn$gn88~ov3(6 zxFg!>#97Tng>uQ4BK-rM;ra7 z91Rlb3uhDdlGp!ZyFE(LB66x9sL@v%_b%|BERIo}py4dm^Z|TviT?8<_H{sUjuQQW z-vIBwvtIrN@YV1xM$HG)TjZ|-?Y)__I47G06ff6voke}b;<Ssz$3K=T3iQ6|RpGXc#O9)pnsVq(*Zf1=KTF{=m`H-ZP5~Ys^ znj--%o^UCuBL2GaC$KzZMe=RQ7>oKhW$>zg;ZJQ}%Vz)e*I)au{Fh}gK7m#?`{dJu zKS8CIcon2-Qd>%&+6?RO-Mh!V+X1bx8_AmN*1g@)vX!%RcXS3ws}%P&zq#GetdPEY zsXfG10;^j$z~U+&Ht8)<$FFEdwKCZXuo{XtmMoU|?zxt?qq(nq|2o2vM zU-|oT_c}EEGRG*HuKT^evt-n%yRAroLdJ@2rbW(;CGy?t$#~sdisxp>R1q;J*!4sv z3T#7yB6(*MA{_n-If6$!$F*-6%~vKhS>=(c14xpr*fxMQ)Lw}%P#WWg!j=?Vzj$q9`U3uMP#86kkY zP5FM)l>Wx4`O|1&UpVzNKsaXn=IO~99f0A0h{wb<{Ws~YL4q!;w^H{W_(=EtZ@*XZ;N4by{IweDPQiqeP8!AV0NNQkm=J$jgd5+D9yDgmm^1Ml zWR7;O+0iG=O)Mji^K$1DIqC7_dz;MEPheVj+N7=vBXZveSu00vY6m%B=GOGr{4cPz z(6#bF3FnpwW|^R1c7XqLX3xDo1UfQ8(|T^hf%*&7i@O2=ApB2qNWdel4f?)&>|h9h z`Q}0urwOTvbbDrpfE1w5NPse+(5`(3myR}dUSKZ5Wow$=#S*0Yrs=72U}i=GphIQ) zJ_IWp9wGp4^+yBs;8dYhB|%y1tK}J+Dk8unekuG$1Q2gKVFEZy)Xjglf2V*76~7mM zaPU61{62Yj6dFGu0Ds{2wF~=;4&Ceal;7pNd57e40B4YSdUVLEJx^|%+j1CGpXHoZ z2M79pk&Khg|1<1c>pAwwIhA&jk*ODysYveWf7R(}mN_Z<>QX{nY)Sfn|3@ByVR`TY z=`Qa6!%*~r{&!m+Xr*h0{r#kJ-z3Wq*q=m=JPqg% zf+hgw$j;m~OgUB;zKR(^C9IZ_k6>fsOAhAqz<95QXhAZcM$vvJDc9sF$mZuyJ|FaP zuK!(x5tNP+8Ni+d#zy^ysq)OVjB(y0gR=u|f<{rGS}pS3=t+kDrGOh?h7=S@$gN3L zy4}p7^zOfY?ratCt2JK(^sgB1sv>Do^|@}Le`;8#PdDL5=pUCRDe+`oAL+3FT_uzC zH9EjyFR(rzp<&0FXC`BA9vz(#Q{^*ybUda5UQtW{3)Y|278HGT|0r@dEm6Ndv8-F0 zz%9k&eqjWFEDFZgi2&&HD2y8AXjSS?s2=Z*W5=WDJKFOV1^=B5)APe>L#;cXbbU7@ zKX^!EaQ`8L?FU={-_-eyZaVoR_z%U9UxZ*};9idg?lH%c>=jH~vOJlobXRoIp0B_s z8PkkTskGYk)d05@tgnI=@r({jzxgtgLRopzW9An1Xb!f_`4v`%9&g>;`3*|=%iv$} zMYVDru|@u^!wFbUSq+Q^?@M z);m_pFJqH~|J1Kfr9*cSK7i)jHS+$1GTrL*+NJ7gZq{{wMFD+ZRDiphIshJ$n=w#; z#25f}2M+{M0P!1WBbkR$YK@4>g9_oXhnJJWA7}tNuMsK9KW_9lrowP9#t;03?iVZQHta zN*XsHh7Ib&|8SaM?#)I3PznS0d$2;k?Nr54albgbu2byK+)@w#tOV{8&?#mW20)Pk z0zg53_MAD~$c;B<@!qPh)Dh)=nzPVffWWE?UaaYS5EW|Hr>nDW0_N5~5L?v@HH)n8 z_;-J`hs<1oRKgqVDlEW$47QoZub2NEkfInApXuvTJi%v->24`5B&jd{`USwhRY3vwh{CJ092KQ| zg;B671??}7se&*ucp<525!L%K_vrs?QvQPk;QQ}4@E_P$9flxggZ~z;B!QEUMp#ST zoRV4dU2j=Y7!1*B3#H){Ld_joU5aL`v}z~(oba%=roXO5;n70{T2DPxT!_kY=lkhh z_+4bRvKBqCu{jidH~CcJT`0~s!qWmSK(06CW>bkSY`2yoZ4Sp zm!nN+j_M#$04@v|Y0eboQPLl$Qy)D#b?+%$x z=f2(40y$3?_nw<_%VfTv+&!gD%r6H32L2*pU~0`mK-RINc5(BP5+{ZH`uR)Mwqs2@ zi^0Gsg0q*{pCI-pFL=cMnwjeEXdN zsDstFK>^IQBK;m|{cm_cz1wjR3zS6~zUn9cMt;ZkbVu%uo*mX!f+G7i+48{@$O*X} z^8WknJ+F807jESTFTb_MzpZXSp#Ks9;FVWA;6Hh}B)19#Ky04jczub8v38w@1W54g zr@#%;4XnZ|Qt-c;e@9QbWh&n-D)J<>0Ph0%yTuhl{ELthqlH~~ggqYN*(M=&VGFK< zBd`E~^Gk;5-13N_-Kw%LfcD~5(R1nQ>YA8GNx`mLkFH6Hec32Wlkanz66AY^oxSF^ z;7<^r0eHf=u;bra(tQis@7%QuWN*-ZFZ(`35ST!N!~6I9j|UMbK7%a${PWL+h|%ud z*Ci`Wci*;uhoRlHd-vCf5_^WeaL~!KrG*N+n*-nuT%6+9X$>k)! zKJvX1Un6rf_1;oV%XS6we<$b2)lmj zKRHxBeQKOQ`kAE9zvABSc#kL=O6uJ^)!ht?ghK6n3u`)nRx#9V$GgH(v(EFD%Hm7i z_zyy|e2&JSnp>Z3lLb++i?T%dX9_F|x2)add|6c0Q{FFXBa)KNO3rtWN00eO`#)lG z{zDHvsFG6mKz~J5NL9V>o#*axcUSJhS;Wgx`-E9ej5@x#TguY5ZbII#D!|T-Fc}p% zg#D~)Z-TBLq3e4?`@oG1j#F#9#Ad}e zk8h&;=jcz}JgIk7Q4l}TKtF#=gphH2j|ivcOc{--5a;it)g?scJ#JnRXb;rsODg26ddB{&8GH)kkwzziiqQ9U?JBhIgZ82%5G#=Fl##;ehb!eOxkjWYC89uk zU0%pS=fbcWv`6E&m>W`1uEVhXBFmO(8l~!&RV1MO)*|-Io83%ukqA3c3Rq z7&6rE-6;0&?%6{g`koynIP)!~>~lH2f9iYh?b)N9&zEfXtK+7&|67oK1V*FzUgywK zEH|gn8X4h|^q4|bPhTd5B#CtAR)3fLwqzQT zl>B%?fzP)wJ{lK~FNaS%fjg@}z5$l;%#7xLY+-}HnUoKi1(@ef2<1ZaT)sT|P!n^2 z^D3!tO3P1_|5izRGmk!SK4|&Cd1?8YIo%&Le;~JYzqM}vVGy8Z=26dc76BqYlTICM z_{Qiecs|GO!a!u#Rl_mlLOFdbRIk-Kj$5G^KgE=ybz7U@$LFmah$utc7@(k`d(v1z znrfbMFyRY|PE=h>(09jHQS=oks>4$p`l%3nIyeW4kA`^O>ENPZ{M;e=p+o%8+>rXv zGJ%61P3zLpGrSyHeiCVh#{hb7iqxg>bu#bQRb`*x-`9{bkAEK|P@~|!0j5u{tIufT zp#c_VfaGa*g?LdEr9&e*m-jf_+Cdf`I8U`~Tu+KZ@r|@7Jl{ah?_|H36wkIx5V(ct zSwp#oN9K3+7;x`+&&J)~+lcBZKi3;w^_c&A0o3Ry!%ciUnUv}F&+=_xQTIZ`{IYQC1q|7e!q+uz(bNLDdmX!e zOuWl1O(1!jwHMQ2+aceT2_-OvF%PKsiF4=r>vK0GHx`JC{+2;xeiC@(-BdaPn7^kyZytHd{qBJ_ zb3G9m-DAHbEErg)@ko!t&~7Dqb`&xmlnWnEwHmw;)O`Yu)!|hcJ4x8TBoFg@y=n zK4{*I`h@b}Jiw_B-GHDUnnQ(H`buaH^}nD>rMeLWcPc4IA5x$sl#;Y6Z#6e9czr(! zr?e%x_pQd>e^Qhw-+g?zl2A*rl!^v1pM>7;J(%>D(5!50w;(-p%G}%kMdFGw(l_4} zU?T2@$$HZCC9xdP^v!1KUp!p6K2(sdF>>`es1s=_?MNrf)rcPJ@yUw2!u6JmBF;Vj zmVv1j`Pf-ulUtDyx>?}?;$K90er$RaafF39imJ4 zUX|)4Rv%OgShoteRsDHWlZ4}P7nCLIYc6V)h+JjxNjo%o zn6Kx~K5NpXNp`}l=5&F&K-K5|lx#yBtDgYJiQUsf+!93xx*LnYDmVbk=tj5?n0<&< zZb2Lc*RQH6Wc?=ja|Aunp>UzYgz)T(+T?g*q7;PQsmwxTB0nXddPjfF#&wz?E_vV2 zjArx#>w)tc!e_oR`i5e%an}sw5X!t|oI$F^inw*v-dC|RxC>I4<@%HaC|{pkVINFB z-?qZ}+7dAxDU}0(@Oe$1+?*oHBc0j>$;Y#bFUV(Y_-hvxAgp7x;%CoXT)U)!{^3`5 zXkDyf@2!DMivg!V{Wh%`-cshCuOmIvD(A%)Q&7L(nBN5EuaMe9AgQ(8t12(=-dthv zar&c4msyCs+?L$dbW2_wz@Y$xt)O%Pb-sjmvaR`gZhP%@&^(>{BSZDc_Co~lfr3)B z^^?Bq0q@7Wd*!E=g=KrU8ttWwsY|!jwsxA=T>}ALGc!N<-@Tf=(ocTkO>6`0gxX7m z7YQjZB<3d;0kGaY#U276!AnfNu%t%H?9J1!so>220?;o_O-<}toG$8+_&|ck7q>_T z;@cM%_>bAv(`!+@xRXsJSw~q+0=_7b(=f!sDuq4ZrOb+iW-?LHt*owcCMd={bBDbm zqKYE2p!X8jt8RP#l}`0M%ialfDkY~ z0IE=N$9;M*@b~jCGLamB3~1J1JO3T+>HqSV?_<~iM-dlgjfngX#+xP1so?EoA--BBcB)w&Ec^|IS7F-zifUL z;oL8L`Q=xQFRNeRYtSA0&khdbqX@y`P8DuH@=&K$Ab$}^yVvh25@z3VyZZ;~R1!8J zR;467YPbE@0{wK4((+b>ZTVLX_6OAO*Z*QII|v8IbI&Ql0{XS00IwW$L?QQ71W;v# zSe&&bw4gj+9#(Mwp^p)7Ei@@Qk?Shxdh*>v1^VxuckjG;S>z>Lq4Y;geit)@WackUbm;{G|PCPgC}`{v;eedN#uR8_E57y(E3VENWRQ9~CR> z0_InlenKmKFp8(YCEZ_E-1%~a>9%*0G`b^jN49U!` z{xPP1xDV5Rn_>EWLCqi0ovHcFk-eb#p5toAmn_>&PAHJ}2F<=k@4OuE!pSF(YMk7C zN*7i6r=FUeri%O?P1~!{Xg?j(2{1sqmU=y=PT#!TnKz7WH~22cepC9q!FO_ZHQR3j z;L~v>hHBH>dz=@(7vPt^@5WYu8TyO-nCfT`ig%~wfY6TGdw(+R?@t<)Ahh`tI#n`n zZrkIJs~=0tJ7oG~WStV)c8#|}I~#^p-zDSiV(W>W;;i-jQVyqnV}v_8KjLUVvH$}R z8)|2&7Ci|%PdbUrUo{IS(<-mSNDIk)*b*YR3hO$+B_AXREMbrX8YT3cA3OAmI>ut1 zTDa1fC2ifzE^Z^O6A&ZgFPTW=u4-2jYxv#G{67N6mb}UWuZ-Q~@4g`+5}hC^A;kzx zN>y8#s$x@SJ9YP$4a7g}9+{yK6`Dj5;mQ2isiG|>&wk^9vn{ou~+3WTk#;yg=^F2R|NhQ+liQjea{7<5( z4ZRhBm&`BzPQFmZxGi?zD2?2-iF1esd2C2eJQf(0~eau65W%Z;u!z7dX7KaO^Pt#$KwZqeggnDI}G2taS;TR+2O}AvQC{Yf%Fbp+_BUC z?bK6Ro%Qd#595LKA&K+1Sc5!rNHR#WNASEU#f08}h-Q)=>YCLeKyaRm&CtC3s>F9<+i8Z!n!@6I^V@Vwnp<~KM1=#Ry$bWFdI(0@n6;su>PL8Fg{ zln~>G3`xNDck*_F>A4TEcS9n;y&D?wuAtCMq@P7Oet}riJt8`~I=y*m6VG{3>2C9i z1o&RkQ^BQQ;_;}eyeOQU&|m*rG%_mjn=_j7>dz!YkvLze0v^b|<7$DQx?IB-NXUEQ zd=g8Z2hOKyQx0{a0}>`7Wu80jMXn90ltnJ>)(B z6*jJ?3ZQC5w|#Z@8j)U-`e+sRxy$P;y8`<@p-ncqb$W3fS-y*IS(=h{>(l{!tom$u zLsOEQ=O%Yg&8uOSGXM{~x31Z!_~hpv1h0B~#gXJPhb^Dp{D9i4WK&0xuU-qdFiR#y zD#XAlv4!z|gh58{szIR87IVS6qn@}ovaxyXpm%YaH{1~4cti+_x85r4CLnlewRih_ z&K7=Wt3E(f1i?Q7rzkPrcuiwAiAjozi1Euz<;J(Etl8i(F-n5>S~6>E?X75q98da9 z9*#Ch&?0I9kbN z$0RgZ3B~rmC$LK=QA`KKnB*@ zprR+bI@UVqpm0U^E6<+}EyLRn* zJM_sTZz9-AjyEMqgsIzh<%zp0MsI2I!n*GFhgpOQz}*xh0Iv$74iauBqgTWd zbxQWAj`{6u6kco$%3cihvKiQJWRPy=AVap-UCRaylol=Xs_5};Y-yvPJlb?9OKG*A zpf@~KQmIj@9m26D%R{Q3+tTGp5jJdS9W#>7bhF&5Zj{?3Wrmt~RQIRbyZ2sNxC9h0 zvsXazlo?PO1%|hK;*Pi_(GV>Ze~4~~{X*M-1RT!>ml)o}Au8NcVQE&%AgXk~jC#D_ka-T~>O3lg== zgUImM^hqFUlS@j2Xb6*=TsyxX4@THtzjFR;brc5KH>Nns^=r6y3gCKY9Xc8p7G*(8 zFY00kso8#QdP&9@pk=%!zt%=ex%CyHc?fuq=3INB_F^6Pe!Q`YU>e-xY z_e4)E^4P)f+8O6Cpy`Z|Ukfw%tbYvruEMEOX4CZr<%7$~Y)%h6;2s*)Lh=hZ4S2q? zWj!6t`yhGcsKLFDux}Mug7QN0+qa0UAWfwipA;v{Q8TUS1OMScx;ar4pMLr&`n()Z zHQnA9U%D?!U+QQ7MFHBvf8P0p@F}*2&p`d3=05SCMxP`fmxNWBQ{wi;9~`DIycbZ< zBNTTUg0S0psN^a`^#)yyTmriu%IZ7->jQLs*}qg$(o6XLHPJVOUqkgQy$schIt?+{ zJ^7Qs_$Ue+H$)sJeM)2GLtf=A|S|BPf}JSx#Mqt6QUQS58d~y{hnF&1Ed$h z%%LV&@U9>|=ToTDg-{lx2L}Wsu$2uvFrz!b^c>+EsiL7>=Zoym;`8=&9Dv@f^=!=a zxenWxqCJ50MREdged!rdu<0|o<+W$Jmgk;nF7FALzK(Y9pUi8XrDKbxi`>Gl1zq#= zPt5OqB8L;Ag9pe-rmyLIocp|M3rjrQMGI?e(8D+h_+b#u=r%rpCzs;Zk%Z{5?i6JY zXm#gH;N3`4#JdG2PO>U`?#Gz_kv`1-RfhTZ8|GIz>e1l-E+)*4967Sf`ouTQxL-Ri zLLE=&&WHCsp^zU6ppKyL5wfFE{-nmJF5K#B&{q^jXi~uM=%KIT{q*#L3Hn{;t8I+A z;mkG(g^~+BOn|C?YpD7OLcRz5dk{!6uF6~e^9$(u&9l<6W%7FcAI5mI=DX7d347a% ze~(^xs<8$9dz5^2%O7yuamO7m|AA`rk3BXyCJyDc+@Lodza$1=xF6Otw8UVnp_JAZ zH6Y7}pPDFi&7o~l_oebTX?&d@G2D-67Zfm2KOI@4wt)r!$Ga0sG}J!n#H7_m{}gv} z2So#?K@0Hqrg7)zu|m<*u1=?R8wJ<+yf{Ob4_kg1S882yVHJ%OXL)o9lrhc$g?G zyMZ!tE1!~(Mhb4>cm0Myq;7m=^JWG_b7&KOx0ysm{QD!D9hHg*EPIur<2!ra-P@t^ z9VM;r?s4yy(3{?Q$M60nkwIji zIR_}O(1=6wxI4Xinm_fQ*@{BbB5{?ea!+@_5O6Qt#q}aP$V|EZx=W9Mb_dj23;m2D zxcqWJk-Owj@fhMSln74I)ggO1HRYq2m178=FFLS$kBDUsHfO;ISxm4)hF|jZ@*hYf0ER*mio8U`U%!3Cg>-}JFeXWNs#J% zg$5`AsP#$_E5$r@RH@!oTZjn7l8#*bvpRC=e0QzCrT{eeS686}KSJbEhec|K9Ym%FKvuSv9FzA|5Kc=%jbXn(OichZsUI!WFgvNQ zzMoT69CSBy+?b_*H`9pk-*3C^Hjx9C0~%)N+K-jPY!TJ75v0fWFH@>d2`!nypZkgP%CCx*jkWCf^d zcWN5{h7I_ol)=ifzxn4|EQQ^%V;gz;TMD2%$(jhA1kSzwybyNCS(u;Zc%@T0i{w3wU1Fknt%8q_h3#aWhxF!XHHd;`&OPaDCO)f2REb{7_R2P42|Q0>nl zHq-J@&R#Gxy(zE0nqBLzEU|~RR;!@ktYM0FMSM~ILV8hps@5w&VHwgrN;WvyBJXdk zX$sNpoU^Ib=WJP{lZ8AJWnam+*bgWH8>a`^{OG?uq73`N`{6ruQ+EY2HlqZrS4uF4 zS^ZaUFEz0Jy8|PDeTUN{v>sr;^zi|jl3Azyr|w6MFnX^ov+5uv{k0|00nn0;=K09` zVgQ_+)I=i%h8Z&x{QY!6zpje9@5L2D7OEGY;~7+`+RtI{DXMPFUl73ps3mMNrE7B6 z`MLAvo?k%U_k5jvenZ$F5}?7*NyL8w!a(cR$@a)%NW&&>5?|^x>Wrp$k_kM=N`?Xe zoYnxRbg&aVUFQ**)vB-i#pI><<)W68+t@)~&q~)T+0=ZcE|7|iztd8GzOeq9ueFN| zP*1tnnp;Xr0O%l}L)Hi9)6TB|obBG$#){=-$Pps>$hy{AQ=&l z0Q_xi?S%)(Z+@+TQ@_IU24X-1c)a=@Y(06Y`4Q~;WqtJP*SmFoZAmKtxPfqvU%2*c zL>aJJebr^yXX2fIvXf;`j$w(J*T^l^QX4X(xfdJ&L8=b^U$}7Yf;NFPK{coV48vd! z{)1mxFuw-ksKE^^fES375OEFH;RFWBpa{|c^gaav%9j|^aDro)I&R@Yi*;)K4O6kE zv{vyhURQ;5VV>9vVb;OR>Bfp$kG}dUMt}d>08|`36;t)8Yj~rdGBx6iHDPi)|4V3O zM`E^TuVj6KO&}vJ%21{LF|b*vSw{a>H+~8G?wiWD-+qUk`!DhLMc9D9#YP7>qsnzG zM6pi}GtQXvPhnGZ0HIS8r>+yXYRY~v!IFFFFlZeGItP%d9stpjidsg@gH!kyApkL~ zd{m^ck*&o07a)RPlGFc{mbm{Ke5(;3)@#ZVQr)BUst-Q+!0#(?e{O%LI04ZD++y-s zQJ|lRfuF^nivX#AmS=z5oZ!U{m50<3l)bssL^ z>#v~#zW4&}M8*3bf4pC{V@H^yA1Z*HKcfPW1pn}sd-EsR!(qc3L9M65!{MmjMBq@r z7)Lt|kD11=FLS7~)ZLnRbxDU2n={7D?^ZO_A#?6>M!RI)_H)Z;JzYRJs4vSuMZtcm z`kEz6lO@%~vG_S0`ivJWvLzR!^JhO%;Q``Adpvm}_jn2~5I^CO`4i-QwlEJmUR0-( zW_>A5{+=poKN|4IYVmYY$6!kNjayMMg@Oq)&r)Q7oj=oGXnykt2ILN)j#xfkCGJ=RJf*yTOae#HPUfzEiOB$` zmW&|qqtcTiZ2r~b)8qWHwALS)Kbm{BQF=IThnH#EXOuu$uKuCJnnRN?L%VlK#3ZcT zP;b4s)Q)TR(E2bpyr_v-PQ*YwVjvF>p>U)?fgV{3IZ&nm0t&+8n>hZ26DaO4;TUF$ z_oy}jBz5?6rw$UnfGRj$E&O>H$dY4dJ~+0@t!Wy;gm_}fptV1zBqKfOy5qdS50E>@ zQx7GN2%?e_M-U!Ro0R#V`pluEB%%m{wA5k<*gT}kiK`t#BqR(%iYkS)AV}%zPXi}v zL9i7C?^e0fJa=Cic7UwIJyf<>_?UbACs0>}0pg)~@t-mke>v=c;|@@9-Nb>q0~iin zzsLkJjC8HGWsKi563rPYqcYbJdG@HundLaLH4!0l=y9PAD}z|RN`;kA3` zF2pe+DRER$!u(Oh3AerfHl+t!w`}HbRfs5~VPPF`FC4sK{qyVBtzE}isQ9Vu&96N2 zS>pxe0DhW7^yy{fs-&t*F#RuDv;g|=NCM}hk6QI5q$w{omJ(|^?_TAr{;txUcMvt* z?Z3L!+yheEC1NRH&Ye9Q0c+N5$vvd1uKAA*i<6SB5~8G#VTh3OX)1?Pmg=smP$EK- z3Og_eW(FJ@TH%A*q+E5Vn3Q~r#U;U}4Kimk$r<+3=-l{sMX0LZx^t@N^kN7y3_d=A ztiwsqUX9Nxu^ZKaL$&?!nN`#5S>o=r=v05o6qf%dv?EyvL zMG=f1J?D&wexe07ox?xixzJ>6g&;z7VfV%33pDTVnvjl<#|<=I0MZf;VKlqcoi2Lw zAA%QxLV#8!0Hh;ZKC}Z3?10AVdANbvknX{`qx@iZlpB2TQTPRpvM<>;{6^`h!AA|I zQlJ8N0E;kqHnE3L)4-cF6at~FhN5B+Dpn>if)*mVqx~gCS%zXpO&8D~V^{>B2h?DE zMd(73PJn-VQ5yd@wu(_Af9N2Ii~1_ll9bXF}_@1-&xjD)X%!#d{ML^JrB{Ejz69)CDa z^Q!sRUm63^VJ}b;4N`@E@ug zwWxKgv<~AJES?IShkz=C4&_R+L?}~o3EwLCx?lmG+n+1}u1j}n!G6F!cLaWc zT#8Ts3Lp4mCCVhp@C$ZRG9M^8h9{v0g3v@_oCRSB1}>U@0M=_Iq{L?9TBCX_Ge&IO zC1T-m;UOKAG97`$_*Br-@?WyEB$miE8*e)2(n--iu)t>)kVAb!6}e%nup8$5)? zYQHN-c|eY$e_E%9YE>0V7nR@otw#ot>s20vaS5AvFyJiM1Y8==!zQTBn_I(EBt*NF z17Q2P#-P8sA$g8zikZ_8DA4wMu!4wY?8P+Fuh{)4wV#0?SiG;q>V> zEM6&m8a8*82KZ?uPSL5XYx&_dSS7Hx|0aSIPXT$nokFTS)9uMZVHAQ=_W9HXa7&Lo zLVK+T265D=%uIC-u+O(?Cd@Cnj~lWxh7aH95Hl43n^^X$3py~eI`KJiB5L#(;}YPc znbEk8p(3&q(7h8%pbgu_|+T)pWj@v#aE|0V64G@lnKaj@Yil!K3W~bdWM!4E{#ES%F)HPGMk> zxXpNR_oDp5MQNxrZkY49mo6BPYYE6i=%g{9?(70EZhnbx7R+w~R??t#v$LRbDt+Ewn+1yev1h+xVaDvGN>WGn1wm z8ScD~J}^+7(FcEYZx;w8Zg+tY;r3KA_P~9R+vh&)_-Ow}MjcQU@LAcY1LlMN>Z`9n ziLw)X`^`7s0UOmN;QR08C-@r_f*p`CT>#mh#QruNehU4r{`VI7Nt+cJ4~)M8z=}`C zds)w0%9eTD+@u{;6wbRo@L{i=!s6fdDk z$VHWw?so5#--RQ2?>+Z^0kYM77(pPok87XApXNS`KOF$<#nlc`Vx<7dCk1!~|8bG$ z0C|vn810Kc=rmy*>i{or9IaC?6;TK7?IOeh6fKh{-k@W}K-sqfHf9N{t6l#fk-uyd zEt&66tm;Z3hnOSBEP<6x6$-C1nwFw~cB7P*7*p#Ow%OX@ymRu-Le{#6-9r(T0BY;+ zjWvkwj$sY{&RB!n$rFi9=6NE{5@{unF-r&IfaagJ%?>3@vtrx>zB_dGSDaD-mX9Ms z?Y|Idf6N#J_kg+pz!^|d@dcEDx&XNSM`q-T>H%7u0TLmUibO)j#dOF;%yMKqx-A{X z7>L(1cMs2n4-rZ)V*5qw<8=|+PfVU?SNk0*XGL{GYQNcTO=_b+c>MFQUFMRav%U4-wq7b|3(S$n^e$aE8tz= z|IPIJF)23TvIgXxe!4%cP5(S^s(9VWrBUK5WEn_Lh-l~6c5KMrkM)!bj66p5y!8=< z;lt7Q3Z&n4Yv@-)(yI-9d`P#P0z-z<5rB6a={elN@L|dDWJHbThwaCVt!e;L-gI_r?nLIAW;v_t{fPXOm5H$lw61%Did1Hb5GgS3pSATZE z`&_<_?4x490Kb(w{J;%xwXW5=P|NXZ*H~+iV6+siOwbC!^sX%3l-X5=0J4|>`dQ1y zzpi@jXRAZH`2sDdBxr3Se!ljK30iK)5oXE)`2+pMj7r+#$k^p}S_dh8GeDc$SX2HC zHnlfPZxDHz3H7UORQhjLr9T<04t;4;+Tf}-UB4d8@75eaGD-emQI8JGA)n;YxTlW5 zLd;$aWGUI#eB=2ZC*TbXw$2AIU4Z!Sz1Ph<6fNg2DOAG6%Ec7${LMd?6(FQza|m;@ zaCr8HF8Cm2CnvYe+wDL#l1Tu+pK*vX$qesbg&HIOy&6X`%vqY0c>yHJpvkxk+Lay| zl1{PXmtdGAx6^at9A_xsXDDB!jywQeXY~N4lQBg$E8D9IvUd#SbSIxUY81$xeDWSs z*;>*+*FIM|6d9z_$5yewU23TIzuKU^65Rmt4nTW{MC8xy{9QoxXk(MyL_fh<^8xm| z$AeIyAV{>IDgRAiJ>@tw%|!Xvq!3C6Y>$=2D5^XFTM;WY9p9e{1HHic;;F`qCU9ea zW1$DnfLizypG44Qo`wwQ6Xb;S4d=U&5uHIiE&O8$!UE8ps{fk zUbVO);)r*e^atzn;tlK0PXYC7x?LxUP=@@|ZqWT)-kRL!C?$wlhz%AZD^Y)?we>5= z?E}8)B&RZMkxTN|_9slS{}r&f{utGiCBPDm>GQ2IWwCk!B-!vT!#puv{sH^ES+2cP zd#5xeGgcC2YRb)%EBq|?aL<$i=)XqKfNAs$a2G&j0hbK-s@9;y!e>ID9;XPCsudf= zSCw@k*ML;~b>?&+aL&YB0XC!Bz)@|W`!zd(Fh3EB^rEN4CY&|P&#r)viV;`wQy>_Q}=Bru>@x+I4Py zQC0%~Vt?{3l6)ongeA|k@NJN)fF7ZI8Ks$d#?j!Ww{e^BL08Zc!9uOttjw@cD$emS z+mXNxk;wLh1Hl|vR;DG4ABLrJ(bB$x@&(3UB;iYmE3(&0Kod-a)fj;Cxh|8v$kR8= ziKURMwAH`epGa#qtPJM&1LnUcs4tPvz31O=w_hNmeb4Xpd-}<($)Df7Yv(Q+Q$=sb zf6SrN*sL=r7j~9-2}aQZ?O?>3;M(N5NKt*k#2R&=R*`C7Ty`r45SMje85n*NKW2wX z>KrCev5)`LV}|n$=8J{BAC!OZeZc&Hj#cgiK=!u{5YP`HnYz2{kvU>ujiMJ4IVfVuMlC@yDGaM|IM2B-_F5x+3 z&+=y(0Sm~-B>T}Gy>%0zfBP938JqRON+C~}|wfzPJQvShT2TVQLoS zUZjaZG?B2BPktJ!7wtlstUn>q63`(MpltXbM?qyFag1%`7be;KaB@Tk{-`e<2&?cE zKa9yFz9sY?^P%Oqd)BXP0V3)LRY-xN?lRs#km`2$4|MQP?1%fL^sxr3x{r(e+Q+s1ZTfS1CLUg(UA%yC z18%RU!>W^WYxk~rXMv14E?AJLq9A!9|M(M)$0LN<0f-6q!+w4|eyqR~?S(Pu7c>Ux45IS#vH&IQTF*QW zkH;WcT7NQrik=`(SHu9$85o(KDJ#E8IwxbXu)F#&$V9-MQ|IsUh0 z3JORW+IlIXfXOak4VL+vPC5gz- z{~L6C*z z8DYy#kk~}-f$KlpoijuHfe{E?I+v|1{-TSxU{w>~8G!B}iDHZuqLmQ{N@!b#2J+dt zbFWu@m!j{TSp#b&;150+s%0gzSuSfKH?s|J_Q=8|+rY++KWllowrnxa+KwG`p|V~y ze@NeISKKweAo*hlj#foudIP#QfBnV|*@<3Pe?Z=96=LyGd4W~CDggX{5@^WY`1e+? z=JaFVi!RNCDAih_L=hW}FeT*9F$4hVMroa_0{2S5A-5w-m57t2sgMWm z)E)kzy;LQ6;CI zHckFQ%}rx#7IXjb2UMXAa=-P^2JxioL@#gsIGptzTB4%v#-7zRwug>-+O(i^ z-YjK*M#0S=8!_5i1pkxLs0iNMmDG-;An*~AI)csYvHUmzu(6xdVEGpJcY;2$W$ z(7G6koIHbAkkt{y_ypR-)+u(>$JMCg89#xWoWNgJq-h30rXRmeu~LX5?u>q-5keio z$rz(lMvyzf9e-$`5JIO>IMorv08qbU5MaBJ0Yi*TD9R|{j>-+5b5zNggZQY*;6Nr^ zKR7>RuxBhlU0nrl#40dsXiWdnSi=E^(Z{45CXRMrQlH+<9P7HKeqQcrBPhU;(nj#g zE9pZ}ySnR|E?RPXEWGKA5=%hE1v(E4JlQn#5=^QQ3#7{>W(pu4c;CcR8O60^pkf0Q z!T(R!dw^S2rhA^Vc03U=Tj_Rn&%JkQx+iqcJk#^co$34Zm81ej45(n0pkxDJA}H+r zeQT{9&N(Ej#GF7SDxxSsK?#z?oZj z53~e}Wx}7o7WGPV!WuJ5>MfW~2!LLJD{EKSO7FgDWplfyPV1Z6M!_>Pka1yC`ld!x z5=MqiMI_MWkWR~8F|B?@NurmQgT+iEXy@@f(iKo7cOQ}F|7xks+sr~ z!iMhlww6-h?)i`R-pidV(uwX$sRAQPDae#pRV)iy2`Z}dK&5kF$OX`V1dTx|07G|B z!_=P(b8&kIm{=fQVwl;zSa_LOfYTJUD~c+rt-*pSthR2Y|2d%ID)q=Fvq~i5Ggi}q zQUPHkfnu|`URM1r6_7~=%WV?Ys#U}p%8;J`!sKp_yX96cWC*ngNKf$e=E3q zg0?cd{F``CZ@=T;?GS=jHsFH~k`Ipp#DDaWP%f4X-{TM4KltDS{RZV;+i|aG@WiEY zZ&k3bO0QFhHO9K_6%17n8DQ0--k?><1@6G{`<2~Nmq7+sc~?pX{7=f18>yCcZU&YL zG8H)tZG|UUMRt!IqfUd>JlaAyKqc8NKQ7c`s<0OeR$ zi-x~w;vW0P@T(lU9JgGR2Qb=Mo6XOoHai@3$Bm(Vn5}p{Iw5SCnin%ZGrlTi&wXWD zJaym{c<^Ls@#IN7M`a~Us8E^zAB6*U?J{9RPaTeMvvvUl;Q$K9;~AuA;Q$>Dl~}?7 ztz7QTe{YI(b{LXAf^NVCz5tXBGSE?&aFD46uq9tstjIDBMQfOFtOA@jFS)69V?obv zwv-b5Lkx`PMst$65u!nSV?o+=!|t`4w5=ov2eAefn5b<50UJp|UMQz-i%trJViG)} zm?P-4@spT<`rBfjPE+esa+9YlW(p2xW6|UoQ90oyv4A?!H??lMVagOi25nwhyQ+S5 zb9y=>*5IskE91MK$v>+h1AcpbN4hiFmFEn?u%S5G5?I^Av^^6D_R(zM_D9*P&Q!aK zy%KiSyMw)?11g7727HPy$<#hve?E_MScfNw)5kAB^$7_mD4>ag)fbW%i~RJ(7h?N) zm0v69|8r6S9Dia7YJ%j16rNFizJ544lsm|OsoN9@$e8%p{&-)C601ONl(|Fv*kY&vTzLf=NifjCo(05>JYvQ#PT->7I z$;0v5B@gGJaKV(+bh7&T++#E{`^OnC$dm!c0P;<+3x^1x83PXOr6>r501&Hq?F1R| zqJg6Wy^}9E6UvL<-w7zoLIKDs19h5^8bye~XIdT5M&&Sv$Gug=$id2f?;oN6AEofCqgna=USH)W3a)A+Np(Rzjjd|tGJt!s_S zFFucdQTj}D|Fig0_w$m@$tRyAA6Gx}9}eVHy$`45>%I5*Yl#9>$XIn@coPMnmf8rs zvei;#suxB)uS+>duPy4oSGCjzV5^vB)PI{Q4FESQr<=F{C^guBSxQE*T zxiHt&t7#_qdIz9?pt9UAYd7{Ur0ebpqXGRL6@YH_R=2czi>H;q-K;SJ)kX2b>VgMf{#_ot!YAg!AKf938X~MJAL+<0&39 zQ=t5mohnvzxXtaG;NW`MvW|#wKsQf*3bwv@d97Ip|AL|tA?!u+`ni8u;~78RhN_29 zu>Mhxz>=;jK0hWRC(pk315i3>0xL^`}`g zh(3@q^wMfDYE%#mYUdS=t$UdA z1?ShK7^E6Q*q{M8x;R*Y$;Dlg3WU!20?jL;+|Ius0D#&15DtPSFqXW5EWs*}KBDdU zm;m|(?!)*3Z44^~7E`;hAg|C}kdstVv~CA?Zam7dFwmWqJM%1mCXAjr1nfj)2BAN- zNMPVpgo2_i5U3AZ1dMk>JCywe_wy}gxLD7S9(oVF4Gd?r*eNIn8X2D0$nZFH9&qOT z@Z1P82X15sWI`tnjfEy<<}|po<4ilKFeEX=4Wt@`27?L>(8rI1Y>yY;MlhIQLkQGr zJvmJ0akSxq5dn$r>SMshfDD1e*5oR8L)WZXvti+CFu0Mfz~ivZc+i6s1r@=HfJFv# z{mA43=><36+&^?hjjGZ``#TKoyYGItj1iy=vO1;3aEB~RA1t$1~}j!nOdQ&@&MeUvdV*TJC6mo{U4+h zKGUkH%6F=yQUxFeQdA!Ypsq(1Jenu5-QlZOtpuX3T=|fD@Pr5Og3JzrV&B^@8TdO2 zV%l!$cf_^%q;6Iof6<~vMDhdcrjoM!-PcaS5RR#!0iePX_9WQ>&hMQrmNM8 zIPOhz=jxprvm|x^eAd(fEg3jUB++nlnA7DhFPdoJ#uXG6h|vt-_@Q1%-fORIzeQbymoJ6~qYY6k`lhBZfGfyX)vipa zcKT!S^rAJyq$s2wh16Zo76!+3LThhkwIcsj#hFFT;`vpkPer^{hb+R;0XBS{)o4w6 z$0>nY{02pG3)uum9dt|DtQ3M0-7R@^0C(FDC_1-?YKZfG4~ta=7OnM^0_0Yn7{pT^ z+B}v`2(Ws%!9CFp3Q$c9?Ak_cKU<(m?DV?|lngY0llJY02?#lZ*FugK2Yu>PEluZE zL=Y}ZTBX2iE@39G+JKok6igEV=A*GvGp)2+U6%%6MH3BRiM%e3BI^yHyFtpYv{tK} z<~LBlRlaEtc1a<&?)mp z80>=&KSK%2vAl5u{y=24-wuzC`jh^<@WBO zU-`K%3M+LLECvyA+sYYKb(;sOsv7S%o61ls01CE~U%i^d>VH~6!xoeILP?b~ML})R ze)0a>Bwkunm7+>Py4fv>m{}ds<9Y&hDUjxV)~xO=pLTHZ3!$1fRiG^gk+V1-)oETF zc53JboMXWmH><)mPn3ljFUrT4QLy+N(PvYexu>2Ot7ocdcHyg!OFC^l;a_;>D@G9Z zB_Kp2c>vLo19Z?&SZGa~1UOvD0j4NZN4iOKN^a_uhGmMbm{ucCR95(iS9(<%1`)<&isGkIx^1=E zqlQipGlZbFqqeiQiwQwk32t}vT)aEav)iK*>_sJTRD#|Ec^>kM59Xyv zVdXbb38Lp~hjY&#UPNNRX<#850k0RHPhZG$|1Ll-i1|M>Vvrl!s|SE&f%*ViuL2O{ zdHp@k`VnXjI7C*UelR`Y*bgWw67S8mW)85R&+jUVt?l$Xs^paYGYM@m9%UeAMWEl5 zsDs%vl$=z*jU3Q6H_b9*Jb41Eh{z^0X7G_@UG9-}{*exI7P)F3!H=Xd+z`ma$=WK; zWEE#JT9d9Vz&qCTuGLaa3o*wJH?bk>*pMtYd)#kmS7zA^kod{mMl=JrDYuyh0>7mL zr?+y-lWpzNJhj3T;j_9Urs!2T=~Yg2XeFTVInHa9lf#6!5U_y12EE|;mR=B| z_2SW3>F)gjAG8DmGy`_!eF|az#V@`fV&5I)f?xlN%z#D^v?Cah82H0ie{g>s_@_Vp z3B7=^gv=yFF+eiVwn1I%-hUU)X+pUk4Fbk`G+@I}McsnwfKO?uLdUm&K;@fc z`=~{=5D7@ZuTegrB=XRf=iQs^00zZ536F0l2M{ zK-e3YAQbq%N^jEB!AHX9qTG|V2%zxbjj{XJa4z1&zgV^6gC!!M&VfIX5g;UB5drB0 zHf#W)0ChzJa6bO{Bc4)9vguUu5EJ-6k#l4+0XhNNRlhyx4i$JNaeH1dr#rlx!{P3|We&&T>FHcQ$V7+qi($ej?)T$uivJNuoB+wgozF*l-^?X?fbh z$leYv8atPq&y-yPF^XLYxrKjfYYK2KPHMDf@#-!KFl*pF`Z2NeKoezv1q8%?YV;b^ z*4NPVk`1{h2n-~w0*$#pZKt4r>f0K?hW?1a+nEONhcI>E)S~)XPwm6{uAG)wTwnq7 z26`d>XPn+VqnC_8@7Z~LVMLWY2!hh73V zwrGUkjp-EHzxZN+JR8CfsrQ8Ix8j{&}B-7trHxnhKb=_ zn0zw(`QcR1dhQf70D=On12fNWSkKTr4;=xl_m@i<1aH|fUk4nQ5A+U9HJ8wNB|8PhP3)njc)Ef8Cx(%*VbA(ON0r$Pr{g%MH91 zejp`~e+^^m$cd1CioucBCc3MluqJ~&BoL8Pl@{2+*LMD!&+v3U zS`R_$mRJCyWE}e?MG7; zHA9+?PYfMc{}Q*T9SjF&!O(GRcm~1Y+qUxrqZ|snRl0@Tlodev!Md4Uf$?`;FTWK3 zT|SJP*&#+PpH}UvTFTB=r##KseyTQEr9jZao-sf&qSE8O~qD5H+XG^N12eIW07(Jzy^f!{tZzRa^Q`(77Wh1 z!Azr>Aub?w!r}tJkpUB`ggOlhg9i^DQXd=*Y7QS$ z8X-V06D7Agy)h%Fomh1l-AT4=uzp?R`UXt}Y;6{0hmzoM%q3YZfSEg4in$|0C5I2w^^^@ zs{GjML8_!%SY6~6)5*x%LHDzN;dZ1LwT4q?I;p@Q+!}VBDFY9NzETy-HDo5a>nWFt zH9Zc7KCUH}hLVZ@vUMwiyazl>9RVOxQl3M$bO2>Qvg84e8~Flx+R`hpC@A4*Cupm0r?7)>9DTuNDy4 z$f7JQE-(xm>Z)W_4byu5(EcAvyO7(bswq`f`?HY^mOqs+bS-}+B-YY<=g3(U}ZOGOR{umhNL5w~ZppeX39rB>)!&tVMVGMY1Ir~7EMsaw30zA3b$5R6 z4$h2FsU!mFuGB4a)e&CZ!lQY3W*R|LRSd7OErXzOJIv5#z(m{SKyO5l@N7Z;2-z(=G<&!J1JIL^2dprgJm4Db z8i}C0o!CQx+nXD^U7`oIy29;UnU~yDzcHQLsY^~*9e%^YIm!+wEICI zhF>E_knGIH=!A53t{-Q{tGgQ|8xI>JsSM1`F!? zbHLGCFf_QYg!8OwSwaA`#moTS95Wu{T~%1VmaTCdZeNxC4&AL}0B3`Z3omvD_yzLf z>oxa!rxKc0DkuZ*c2Olnd_Vl~BN5-@K7r=LbfNj5TP#2UdH<^}k$ic;zoRk0eVJ!k zfd6AblLp;i%HsHZsmRA!33Ty19$!4QYT(~~j!!WZ3KqwgSZXX^`7Z=hQ%tSZ%I2w1 z)in-g1+uA1y6~?#Uy4t)TqmoKl1_K@7f8*xI&@&4aOaCZq(Y*fw(29bj)Q(j;;9NF zbku!V`3N5WNjFY52mSL;evYTjpp~LXJ}kf8eo^22CuKz@;IZzb_(S(W;eDi6|6W_D zs4Aw8a6mymmOD~;&G$EEWg!-SxV=9b;P!RvdZUPjXn@<%of+TU8GOc$`T3w(wrd@$ z;u1V8tEIum!nP)B;*@M(T}5}TtZ)zc2lG@^zr47NnsdLStcLvp6?92YCZK3#HMu1s z6;MWRUqWH^Xs^uaSy133VaEX4ysZrMwW`oZT&4C%ZS{bP|H7whGX?(y&$ng(YX$gC zm=Hiyg_;5S^8iezc~3-NfdKh??)BsB>7v=T;`u?VLwg=5?U|=6*cX^GP;e7$KM(y$CB@0*PoFGE`0+4r`$^vu%?-@$WcP>X>61X~ zleOuZJXg_z)m_RE>Lo7F1G`UF7sL!|YkJo<9FjK8MXhTQTxWJZP}`Pzr#aM-1V?@^ZHilPoOgXr2S~p+}*rt@x4=k=9@ne`;mWCx_W3qwa@kI$} zzDV$%S^nq8=f&ricmrbCXBW>3793gyRNv76kc=n|A3prF;lpcK{3S>_CchWIPplE3 zPmKW3`=RUM_8xOTKWrF-1ZWjF^%S}WPK$?^MvNHF`SBw?d_H$3>jkQq_<6_xV+xGY zSI_qs&~FW~us5g~iB*#GIEI%VHEvvH=3|9xM%%FXgRB^{bh9{T%G{} zEiS)9sZ_MLP28bCVt2Sxj}z`*?%|i?R|*4Y$+}-%QAxJcNCHq3< z16c3d@AsDYD}j%0=P}&gh8>^TrYD=gqubmTJSNF=Cj|JIxi0F00@%xEDzA75qeS8-AQ zT|bKlPl21Def_veVvkYzD(=0z`g`&|_>z&r%Up89PvE0?lAlc za)rOt*U#!xh#{7~SbZ20IQxd#v(O=U<3{Uo^tEVEZ&nyj&@SxHhSrZK`NBOTUN29- z%JfjjypWt)5^|$2Y>aM$&fA^eqZCnkVV(D$lAcK~$^F=Fx&<6u9_i4H)x;9x@r?A~ zNCpI_K9q{H$pGbH^6vEZQ2!_r{!mVv6`Sr<4WUdG%VmuyiLIH%?)()?frFqx3PBe^L2=TeA|T1o$v?fdmWZPPV_7 z6vFgODr6h)*iI5t+bSGNAiy*Nh}=gEKE(N_8o8cIZ`@ZD^kX#OcZB{j+h0^q^xjPK z+ua?xJMVILpM-IIZ;RXm1Z}vUSh8DFHV=Ir>$_O>^*B<#BYG$C-);Uopt4{x{DSsD zX8Ld6L3lQBd(g4pcOpdyP100JRWW&Af!@!vY?p*m2tND>>tE(Sq$#VhE$`n13_fR` z1$q)>h1L*lcnmBx*)(Li?iIuT8pZ}y0tr`672z!tBSi7HZ{P86d8d|eCE~hK4N`*c zaD3jSG5~;B|9TPF{w7HCgttZU!Lfi@UPLeX;oWy*VCes+guq({yZFr+wO4(nIvclF z{2!|&fUv`sSnZEixxHORffSD3wF?K-JsV-QL@az&*W>1nO`8JaRecsd@{d*?@edD? zwrbwf3QGWJTEKGHy-f=+*9mo1%}daGtIQb*HhOO^xp=T!5D`&r>*+xX;*yc;RAFoY z^U8e%UhgWE`7z!&Yx%e@oT;o@Ea0#0)QyfFFHY-OE8wmw+FXqEiWDxN&>Jt0zY2?I zzmVd%JJBt8^oYfOy;8t!IF(@m>$GMNe#V1lB?t51gE|flMC}WDz;F!N5%6@8I$^Oe zNIcIL6=L2!+Jvi@YZl~z#g|nfc)-MjbwW_5%Yysp66*VRqUdwx_99W#xZB;Fh@(>} zs%Z=AjdS~`M@`hmxf&qAZ*+6ovIi3?bA>4ZG%QjJDwZizh3BCJ7pKg}r2X?&0czTK zJ9+ZYCPfo}HYrctZ&Cu>WE#~PwrU_{)c_U;$^XU`3$E1#%0@gf>SRx2Z;aJn zLIWXGsmw#bf|$>FS>r$;UW>jLxlOG!;23UZK43b z9XNu2pYeCUH{O#FTruz7an;7?3ROsZX{!+`_q44g^G{W_B%6!Shp=0`#_)Er1cvlI znp=neS9_!;D;1#ONCQVC`4s}LnFq)=w>2@Zlu&S<%cH?y@&=J$hL@|)zbyS{J@*5d zV59&BjfufKlE9(~?dH*o!F$*{<|Y2T+fh(yig&ehvk7IXL8)vSM>bLs^Mp?F=Zogl zJ9aUu3mL|NUZ9me55C)xi6jqcd=zy1yT^nUj{ z=zH!fviy--U5_ZRnyt~GYT-80eL&Cg(-bIUA z394p;2G^pOtuqn?k`Pa!6ukMbG}Mo& ze!q6V`lnxh@de!vfwF({31{&`Y=@<3?G*>s*Bqpel<$r`Z9Wg@y z*Foj$k2bg^8;EKc^F(%}rogsp8*`g*=-uXT^Y@MY{QcF8zyHPfJ2}!*+XYaqhqUjs zBE0rA%;pL&8O*E4n+X60o`ygjr4+cOncr2Z^c3A(G<=h ztMAV4qOU;egU#z>yWi>E1nNg3S&ZZ#bPHg6PV)epr?e@!KWymGVZ9{x{m=#2Zi|ML zf$#dq4XI$lwF{(MoIeTEyz9eKQGKL=aAMtXW_%6zri$=iK|wep)@lU@=XZ=lsIou7 zaef>|VjBm*DHsd;(2Dk=x!-P_A0J)jZ8v~6?`d+IdOMGS?eH)Zy3S7U2)Uc*>tzJ*|1wke+N}KLCC)Z{Dnye{-4!$PMFu-t*j+UHkSE z7b`0+2VhQLj9!XgcDCS0TWnRD`O&?UGW3MHprI%2LCm8zxIF`@3ySDtuk9dC`7Dp) z;{jXzBWV*DxiN@p8#KMc9-@y7RIx-IA@8ty<9fBQc3B)A3GYKSL)pFi*^v8*B`BX;=lQ z>`gX`&yDUxHei;cP{r^mppr}6dmM!?w;Ym$F&o5!&Gd+~dP(mtbA%4B4ijtqXsKSJR!12#L zS9&D%O&nhmX1hwF6$>}KN~KUge~j37GZcOhd_El%4NeB-2M-$T^&NU24O%c5JAZIu zA^kE1Lp7t%#KFbG7M|h>qRY0MUYpTm;y;#qZIwBU5l+}w@y z^B1_Oq4IRK-NeBEJZH~gq{Z`#FpBx}o0TSHp0gS|tqsg`v3MWRC70*IanSjt0HHz* zm3Pp0&r3h{@T$>1$1n5f+C?>bKD9yRr_O^74Ktk1m2^s zb&1$gPBcM;#D3hDr|$Vh(PF;@^T47@?w0Qb%B~uN-l_Z&=+8X)`2`qsWg@d1wm2936FQxQ^xRjhs2F62i;g_?NC=t0YyRsz({PbRzgf?vj5);JL!G$7V+Ko?cK6Fj1|x#b&#v01vdh?R^RY%MsK*cN`P0{@^4oe z0Z2|1w;sc&`bPYEL{79MFscn|nrQxFY_pOg2AGFkZO|sSryMx>F1M47R1!|zGZD6= zEn3BOr=&v7)$@e$ZX2l#gvu&%YflhAS4EX>+G6L+?sxZf+-t;E?A+Z^1$Gv0VfzRR zAw_LfRfRbRircCPsSXhzg5Fjstrf_v18_1Iyh6HHX>_P-$86{+$|+a5H+CL$xO7I* zRH{TOmAjJ2Npb}fE4jYOK&kIUQT(Kzre6$87peqw^XPaMMMr4c9vgOqkFhc)v)k9K z%9#2C%OwWihu^L_17PW;?2hFcwIqQtb&f_v-DN{xkQp3XKYg0#7Uo`eMVxkNacxpi zsTP>+?#8AFIs-B16lc%jnySyv^Mjx5=R~tpWn1V2DvGG<9+xzs$bo2mZVrE@#Gm10 zc0krL@EerX}G{D^i$ z=668biz*CE@+fl(bs7`ebs}Cp7Rg~12n4=19zEI#~t=m{plL?v;It--u*mh zHr-L!jzm`5nM3N?)u4Mn*3-+@1d*9yXzC4fg1^YV=$Ozz0+`qqmpv1GD zFVXjuOnC{x3JRa%t=|DdsPn4Xk0f~y9$Ip+L7KPBpTxr7U*DH-JtwxH0 zn0t-*ZaYPX%bstGR+m?;T(+89ps~7`5r#7V*J@sM3-i|2<{n;~7@<$;?oBPr>zMo% zZ$vLZFo-u7coS$Kye$(L<84(l;EOwU0B}5G61iUe?s(6CrC4#06fBjjuYGt}e5U4w z+Jzt&Vmp%b5bXMyynFws4`A{i!eZg^fykFbhd!D6zfF}@2kPrTqio0riVDyM@i{!_fAlu4XSy{KD4tQ)a zdi?lM&qK4mF?vyYP^5}De*9MDmG~%C7_Bny*|bZUCFSl}C#ljX6@!we%n}>tR2knv z$8_(}&xD5IJ}7+1@%xV|ANG9I_OZx39KZ2l`auUN1tk^eOYradcPiwUDsLulM6dfJ zB?+9bz3N_}A72%eadRgMlm_RC>rQ+%q&(d26I59!E#DyYy4KuN-=V}<9aW!`Vm+#* z=s6n4HvmE@+Z}aCjNY$4iMnGo^`Qs#PbjMoEMLCdEi2uxLS!C%_uXOY2?dstA2a>L8L{tAHmTB9jMsl(yuN?GA71=dU)r?( z-~I+O-u?2w%8bv5Jtq%dPf)?Uc#Y=E6ycYY!VSzm6N0}!S8jj1h3+NXc{Y1f8>kbU ztoYfIw2!ScCFLZqyyg1yBp5zUPTH1?}~hMrqhhL>XP9NEKdLq|(!I{mo7Q#RyV)qM}+}{vahpflU?N`#?1CYVTz+-lLU3e7MJ9ye& zFl=o2qM_{6tUhJ$iO&O@>o(AgiK$(E%$WMcJxsZ~ko}mo(J^rrN1Ww6$T)PIOC#V&OB8S%0Y#eKBLpcZtQ5V5 z?!~6JTG~{6T&o3mr!%jesT{pr6wDYm?P$Q7Gz4&+t{u{(etb9bfk_88dsBn={Kah) z4@h}ty1UU8HO^B4jF!6#qR|a9J`@~&i)u_l2ffq=>)(m7;+f~k-&RwiUd;n`uuj7Q zE;=#G)T>3uL`S3QV(J6F5v-?vIIRIa^)z>?cJ;C6bBKxpo$`b8Q1-^45(}|~%QsvnhH4bv&5maE%{)CSuBW~yP(4dv&kUUExtlUo=23hE^aofJ)qrKqutFFl5VflsJ8^+eGPaPn5@ zy!bpmyomBH|J-qyJi+1;Bm@%ziC<909x^|T0V|9lRIieo{(smbz#6Q~f^P+~Ea;?) zDn3v32hEx|i}2|doJH7)vah<2ICvYX#9epU`{(VO8k<2^-nHJdOnBz-!7M1OQXbSR zDi0n@V-FCXqUsKvDBQ{d!I!0Z1{>ZQmy*{z7+QkA{syUg|7ICv#TPw|176p76Wo*6 z!1u4cn!ZvpyPdsA1=V18_$X*nFx&$wb$cUXk0o4F5sB?ZX{9(Q-&G=tQfz9eHK7|I z6&!Wze<=1F;3!}eCZo1b$bE)FmoIboN5Id4P+>JTi40pY_Dl2NPOX^c0m(#Y#xWB8 z4Abg-^B60})U^;m*Bzn@i3S#KGIreGRK+e353TkcJfx*Qa$%x2>Dg@^<|)KB zr?RYh5*`ILlx78^=1Gu5LZt>?#)($UU?+Aw2hGKzL*5dU44yh1tCV3&)!QMiAXN{- zhUQBU*0EWrVCikzKmeS!hm2GU9R<5sdjLCFZozg`osM_ zr8YS?iS;dT{GU#YCiPCdWzs^>PsDwnPVGU!E6B8Ov;y>%tKCLziR27x7D6WpDjoSs%_8h*p|>|-(VKsbMW})?ge{FJm6vQDS`0H-d-m40~2DV@%51o zkM`FNbOHhn+Uwwf1PaA&b7?7oCe->DkpNUNqJKzPz(~0}w@~v96dew>tRxX7RM5}7Vb>a0*`sR(Z*KIDBCU(cze606+ z;)(i`RjN>tJ9`t^g*M(5I)a85maHBbZ^x?KS!FJPQ$&Gt6*Gds9q7`nDV0(8ynFGx zFX2ENU58v6Th9i~z5TX(ho0~E-lIRh&Dc7wvt!hJk=VRu%yoS61)=$0{qomZT=6Ls&|6_NnFWwsC^)Ry~5~^sL7S+Wis*tIC_l9fUB$BR@t#Zw!-Otfg;ezxU zgja!DE7HP`X1fP8tNNT3XPBB*=9bq(RaUj*GNIZ53ssRV8TDc~Y?D}z6fJAu-YSTu zyLUZ@oad11A5=f2`JGqvzGv)+doRxkiQi4&Ztf2-3f{bS-h|(Mw1H8|AP84ga2xt&1TRMc(ucXpZEOp)oQ|%?27pJ2(CR7* zarg*Q-nI%JDV@_jios#&@{eOFZlF@7&T(RL@q+ zk-yn5DXNGp($qZHM{KRfH$8-0UGN^!6Dftysscdxe^Ch$TA<@!8|`0-kN=)NiQoQ4 zP4K^jkE;t_;do8U`$(%>iN}*mIO%OYGQzXsWje1yI3BR>o_h>oXlhy{GtWDPB)crnydr#Dyv#KBJE29;Sm2E%(zE-YiuH=OCfAIg- zxifp$lyuRpUF#o?kkb-d#g`I~$@5Xg+0eXpqwA;wY{PI*6zxNzRjhlrNg5Uu{FxaBZ?SJBiX{&F+wJ_dGYnr8%)=i5nn$mcQ!t}#!c54 zuz$`uqZpN!oLj|!OU`SaA74-aU|&!VjjDYY_CZ^NeRnb4s<|kYwK+T$!UmIFfuocFx$yEz^H3qi@pgkB%y#y==Y4;3GhIMEZ-YKUj zWA9Ea$WV_l)3tCQW{w~yLw0(Cm+m8QfFqnN&ZUO^r4wCx9X56R);3XVE`{y(W+ z3ULzA#f?@1eS)7@L3z$k!Bw2viQEjp6;i`&IsvvmGs{Z~$%BiPo_DiPMKkA#X+7ov zuTk986)75w`bb&p?Oh-oN>R(~^re9g<0lEa-6^^bDF(|dbIbpi2OdCXz^?yio%5^NdCaRGLS` zTkPTO@%|R+?LpM7-rkAN6%+)UK*C+HiowpUet1ML`tr@s;%ylA-M)Qi7=6>hQ)Ulj z9a)%3xa`GcSS{5ydExjMUpUNiKK@NV^1~r%asJ@3sFqTa_wU^cOj6ss`eJfBNZ7C? z#ALosAneew@41vB&Nw80k>gf`(Fv5a)?{ zBp1~gDTxgokM>aD@}3UwiEgR0Z>>#MwilA5ZG|iAX(J=exaCbN$_q8HUL_G$0 zy*%~r1g1WUY9&wI!Z;+02pYMORpaTlkF#n`@QI4UAdz$E`4ZUq&4b!uQe^ExsYtXC$_rmmraPk>5(wQl{FWfbChTY|_zqYkluVKUSIY)I%d^7e=eWuK! zf)n@2LT<`epNFsB#7Qr3USZ)CE|EMZxd8`_m^j!SS1 zm_{o592p2y?&s%dx`A(KqLnj04gOuFjn(5R`s*tAXoZ>F!hU8tqe@;QcNGJ!@fG7M zwF;ZfSg8eH8&eieZa1>cH{7*o@?DeK;ouXDiT6xyLb$W_*fr?3W0F;ZY0m6F&O!yl zybBW(Clinl*w>6Z4cw~I<5;QqYFFUd9FY}%W z9U%bZJ7_ip7SG%mtW0xRQ0`FoH$mNNej1x9RK4S?=Vh*WtMe%wspgo3riV(#vIR(~ z0XFO2W|#yRYS~YCHbs$AeJ?`6{l>Emeo}jEp7T1>Ql9{eWSLLJ-H|XwwRe|I!rZry zK%r8fho5&Z{JmL3fNtn^K;1{+(xTKyjsTT}mR_f!Fg|jUL2|`7l?4d!5}K~T_El)M zZ6X(fB2ByRe-s-M+Z22vtGFv5OgN_u4W1cr1h-|dYAHqr7*mQT>=V%w_{`}y=f|kF zzz+EGTRu9KN43Yuw!5=<2V5JQr+cX?kdzgbRk!#%Em~^4v`1FDRaOmz(;P_VLvS&1 z>vTxdlDL|y<5}IPW2&)140YF(rG#?xy6Np|*tnX=HZ36T3bs0kciTLN zc(N4Hc)|d6!YR8%A3JBk?Hp;WJIuM0!Me#zFO=SX*1Z;K0hISppxr^=4emORj@xeg znUz@4Zacm%)mf+trM4FX>zMG+NZD?|{gFutEiIvpFs^h=EJXoYEw8))pPo~jJ&?PN zfB4Qfe#UK|;JMG4-Q;)7(P(`81K95H@Y#fPQf-bBWqrI?w`?hCNrr_mv?nrj#f$nZs zgy&t-NATRPH1xVhd+MU0T%ai-@amr4mhT>M?JglI4{F%ogo-;}jRQqp)(00K(5k!W z;KBn%Nmcuk15L)+G0$#)4YHo%ugCm{;+<|svc13!$J#pwpNetR-ImVHaAQ7km5~@b z9j_aX9+QQaNvEB5ICb&Ec{D!h{aUmW(a27}@tOvZf>gXEaXUl`fMhFIEKgTfR>doG zt5){%|HiBG(1wPny5?o2?B{-%zFyR`b=K(a4s>uTGRE#+I0kmf{jb`Ay(z-ZaG|5#U?zqo z$KQPif(m;*@dN1VM<2o1Gk+b<&IEW^d-;pce<^?6{klM#I}`09lJdu4t^eVVeEsRq zHq!1dfBo0L{!O&qSNgY}Sg*UHQ&uK{Ou$=97=?_{qJD^Lt?tx*AzXu!=0+KBS3{;M zrv}=!n%zyKM5Js%N(w#2Q-wau9Z5`;RCDMsMc(>_WUv#K#@gMxDXcwt>sZ*R9AZ&-{_qiLnC{goA^CQwduSSR&(oiA z_>em|kZUe*cPUL=yY9IYsI3z7#NMA3eW$jXv7V>Age7;jf89nVuJ5+e%B6;m3}v)= zYnZ`BtFAE-`2ow9F9+A%ufjuxb+GrM>6!k{Dpq=#M`)n$Wzly^tp?tEDlLO$sYPx< zw`Mi>^=9?fQNd^p3w61F z##n&=3m*SrFxF|k(y4{W+i5$3vHrXsMqGzkhgGZnl>kh%&+R?h&Qms|dUo}ap|2sOC9C5#8XdTnP8W^2XMd%%IVE7q zLDT0p)rLLhTNXAvzJW11$rI_5m5tvv*1x9e`}?W7H>yrQrvK&=rig`b&C_}a&U+X&%nP3I3JIwj?}U{XFT28*g9tEonO+}y3wOOZo1fp z6o>pJwAs?<&QdX`(|C`c9^t3Ao5cjzW#g-!dcZspUL)y9^WS3Wfu#TEIf4AbenA}l zu8LK%T7xYvpARAk9Cp9N}%nKvI)bG4AUC zT)A+L$4k!;AOKJZki7eNciB83iJr!Rqw78EEnD6lihj+tK~GRGz7PZNlAF~KH-Y!? z_7;ev8$~CMkKb%?6g(Z!D3N#i+$pMS*78ha?lRXgPaL69Bz3A&x84mE3s6W+b-Rz1 z9K3IziW_xRmGuy0y#yx*pQeYp5Ap-unLL5{4SxTz`}T?0?~yXDO%}SN-S!`;`aSau zuu{+x^%5-(WXW0~ndw4UhOy{jWdkK=iqj?8lF@Ws$`LJJ7NU%*ct6O(j52TnQ#Yv+ z&?Ro`7FDQo|92lH4m{aoh_V(22z?E?fRh4~jCwOu9VjJe1-H>QG5l8zsH@t9@D66u zOWNU6aKw)*v`#uao9YC2d7HE#k##pt)9Kug8MQE0X%;3&GH9Yki?~Ry(~`&#aX

tTWCAz@a3dt$%b{U7J<)BF?ioqHflx>= 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 z !TFoe_ZHS#A^QFZz5A^43-@{F7hinwOA_?r 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

%P-{fw|TflO+AEruv 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

RcR;tK~n;qL)_{?i&pH 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 z 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%0DcE-nkCea z(F5KWs-krAxwGzE1Fs9n%L(q|hH+$EV#WdZ6A}WpaQ>pGT5B9>`dmT?m0wqd=c6** z3r*?8Y0B=!L2KEJ=+d&63H5$CTVHu)g9rB4tuISAhE3UKFYvzw8hdL_|7DLdFR0h( zyF3YX)f7Z}zVSvNv?+hP8Knj9s5UCC%MmZoQz?#*NF8f&WS#9f9e$lqeiHugRO?UmN0wqDE3(^PiE8rINojFvUSlPnmO$Nbq=R2h8SKPhk z2LSjOWd`L#Gg@en03M;hK3~&U`VMOyc|eDt&(LY&9_n-m>4jHtVE7v10M4m}b-#Nz z=jA_bLP7||lYIaXuMoIhZf8xR2>-FN{-?ak=yFgrkznMbA?t!9xr64&-tWDalj$#z zp(UjQ$(0tAj>2yvP?A2GlF8X9M$eWG;axc$ac^S*QXgACNKF=Q3pa@PHsbHwg6X<@ zkhc}2anI-LNZhyXInwuyJ)5uXK=xD=&{dP$zyHi1^m1D*lUiWCbR5DI@$7&G+*yq5 zv-b$0pVbGCBM%vaJ#p^zAjbAdV)9SIK82IyEC;tc1io@p%3oO!li$_@Y)^4PzD|3@ zRY8OYKUdri$dX)7tb`XPl%0 z0hs{Vws47i3DdE%v7d99)HiSa^M4d_M7Vydt_|N7F{(g@I2%|6F7HHvfOaI#w+!en zn8yQezIXZc73>Q*ACI6O8{P}6yKmsTBe?%z&bFU0)}S&E0|cs zKv1DPO^8XbGtpK%D^9nf%=$WG`S;0iD33o8_3<+Jn{&)131Z;lFa|A%2n*Ob{W06yIihL`z265aja2s8k!%dX>`6ru+eTpyU4x^^9L0PFo!|2nSD>-aE7 zY)>HzHURy5Kn<`z2aEav+n~^b@&@V7sYW0-!rizuo(xr8of%?#Dr!GuJPIfKH4SARQ?T-UOci)D3{>=xo$=ko(hQMxLmn zR5AWFA$dojf6{Y>Q=EU^uaEVK^mpSm^G{Dy$yx9ArTgo^$^%5Drw3XfdBW8X9!w84 z4}(I{zlS3gJ@*BqR+SeS@p-%>h_F+eB9|_WECJt&364~--VJJx8u3!dPA6ylX@917 zws$T&UpHTTKoxM27eaE$UmOs+X8>sX%X66+)K&(7D<(hl#1>?D_yzhI$m<94Prvq8 zJKv;WcPH$B^=gj^(}}NV!32~M2rBV6ZX|&)ynxHEgTF7#*hjOnp7aB0CcDYC$wcvJ48=_3F?w8IU|4aIF8_9qkpC5lpf9(8_{@9Lb z|4<6_VyzB$n`E1}m0&{8pcp&auWDsY|; za|i_(lUPs!1h6X@cRt_3{+2C{gI*)e%YWa-U}q5!?zcf52z~31&6*Q_2Sa1vQ|-&< zaw*64Wu@`+g!^OHYjCgKU4G4uW~(`ZHt;WWIQ~yM^DkJT|ElvLWrENHvx4&S{>v`l zpK@|a3@|g*k0F#mU(hdS6coL#Ul|v<8iaL@wr#Vnj*^IzDm-PSlqthNSdu=HK1vS2M;}d>ItT!_488h__E}5s`I2RsScmidH?hs;-;0RJxOMM&!jo2ua=hE@4Q~?Dm zx7{6Yvz|3QaC&m|7?rsXIMo?|88~O`eSXB|&3;ouyuc=A+{P-u*Fg_VSV|}dJs{VS zv=*cm=n-x}#Kv#WRF9BA?jlkPtmZNo#2U1?{3;XpWV(u^0;@732imYS`m9*t zjUwp44TM-9X>pXkgKQa@YWCL{`MiEta8DS+a zWn>7LqA5@T@0xh6?41tmK$WN6t6HWM1s3yBMegC=oK-dnnuYF_e|;En2Xoe%2;f1U zgq%lBKXx=AoMb*q_rM|-&F zbz>IR*q^e}`d9WA3GR;!%vi^WYb}}1P-$$N!CioUgZa!n?^#*q5DH4A-5~^b@X%f} z+hwRL5MMBvQhL#n7ak{ffg}bZ3}ogDhrQ^t`3OBXave9pi9=gft5+< z7kM5#Kom?Aeaj!6Q-0kJVtaZrKE$ABNd~%b7b?>Lt?_p{MLRv6vrhjDV-1*p}&|*Fkp#B@F%Nx z%wF*uhKvVgMAxw~Lp}Rb5DO+(3-8xOMcT8TSn!9yOb&rDjAo$!tyPsE!{b=3zWVKs4m#< z6ukfGC;6wDxf}Lc_3sYGU4h;g=-=_(A-Dx*;02rlg&QmZ08$5mAlncruqJJR0)`MK ze21V^RKm`Jia`o(?Wtv=PZI?n*b#Lc4aiVC9r%T&OiBhXDT8A|f&_Smm?+`X-9%O( zd!QQPuKocjU!`ed*4=+oUx34#5WCR;@$?!^O*&0uWpFPurb65@Q;4aRgc%bwFDjp!Z>cV+{wjJq)b7xMw zGhMLDUG{XA&*>>qU*MXPgXmo%8Kw+?RUY;fFht&gFYg8slqEuG62u^VX>mxNR3-&| zz&vX{N(N$W*xEXX!B{y1!^t;s*QNZzo;u=Ifr~&}_1#U7S-Jf9=(Fby(=lom#ue;S!%>ZUW zE>#ZhZq14sfim`))hZVtH>3e{?aBVC95@tzo?!~46J#+LzHm40GMHhPZw7DNC=^^U zbzQs-lmlb}I}7drPW<%Th;f8tjBa2{b{&Gk7X0-tK&OgaAZ0o@b^TgY4qONPKtC8d z5>C>0C#EfE zqw*~=8g0SAJGX&@{&w}w?K|lYR3$)XZgTV4QColl9ZacAb72p-lfltH9iUHgaGk+b z)cFt<6&Z*$8_BawB!mWya?3f`cNU7^36%Ha%?aY>`Aa9ddjmP~hG8O*7VNVz%KH3Z z{g9xuJDeQJOkB|8B^W+$^3KugCVZKHRTtG~r96)x4=4JBCe&!Jr(&%df2Ml&%vpD) z29Q4&&dw6Lw>JxoT_S_@LWf*7m5UcL)Mytk5j~JV4b+uYfT96yXoyRf#6x(*0BvS0 zdI51jezgvv@b%YUU2Th5fP47*>)zEt<0vBAkY1T{71n_@`dm>;LypoR!(n=cA@2Q&le z;g($}$eVyUsIPuOjJ#6Tz-hK~|{igS$dK{R4DX@=BNfzT`^-kD?B0Ri~J z`1YJ9cKY~~QEFR?&8#S~orhpY?fCGjQTSP{vpdepVSp%;$;WCkUeG4<-N+h|U zfP(gL+uE|DYzI^VL@>lHd?gomzz(zRs75ic*8ZP+bq>>Vm7QP=LtvFwO9R1~$I^|K zjxYu-z@!kQVf2f^$C!&;a6^bBy!sDpj#oohgac?In#Hb({Xbn9zAK*x6&Uo7C}GGC z;lvE|GULsM`a0q+1Tt6*9J&~}Ybg$?;ezp1x* zXbXtkWd2*W0@3FvRzVLn7n%o?XIRis={I!gx!kJ$U^mn*u&ytg;Gssipn9VCpM+H%A`)tJgCMt>p0JEZOle)= zw1{G?Vg&oi`53~JINN0UMw?g@2R=qMtDPp%9+-mO3}?CRz`x4nl_{;4eCK~M=71M% zIhFY>)_{?0c)+;wc9UX>!eEvMpry6K@aEg+P3<8UQXsU78+yw13EBIY{~%Ryz!K;m z72IcccdRbl&n{#*RAw>&H%^7w+A;2`gMZGdx>i6cq()_EKek6PL>KD9{u5_0OB?v7 zIyie|BxTStS4QA|zNY$3aUBx@2&4pd8Dct!`)r*&m|Q;XtE(uKakMAKL6;W^2Uk^J zLXDt{EgvYyWyLIZ*PQ(yU0oGQ(+S1I=bjjlh>18Y{V;xl|NL(`T}-@4D~M#^51TJm z7m!0Yd^y+Tq-OtFz&D0qej*{DGn{OhAOU8-da$kn8N4m&k7bcpEsoWd|?4xFOl`2uKwXAuiOVQ@5?Ks zI|)dX9Kl@ardI4=Hbb{|C}%nlU*+^ibWg+{ZX;|@I`zPzawv9SGrL#VG+*+O>KFvhye+Cbv?jdss|?GE^nqg4JFm1KfbiyKRUEz6%xM z80R7-IFJJfbVyc}@PGS8T;x<5%yw0GN`H`koKS1Y7MbCt8!YpHT%L(i6E4 zP&?V%5%CkU4EG-L48;JtciMWN+FO+}r}Q}f%_=>O1wsX-Pge0#c;r;?YXU<3Xu7qs zMI5nud#LUN!GfoEuWr~t;934kW&JDZ`YLP?DJ!H~$cQvECLu>h_gk@@buCdz^ziE( z`V`{$o^8?DTON!I0xE$%7Naos%$%stH=JnMs;mB+? zcKgtnXga+SYP6MptLhAqul z^d(Ni7icxA2GtD1oOd_xi=0AaAPk}lmJ6Oc_Lg*5KplLb!~n_7K1=`yQ&L3jBzVij zV6VINckCu+!Tgz`5SW`;qZxg#bF%;y8B}C9tTf3SIpXHbZJtg0{j*wbPz_$Gp z{R}(vl%GI-K@kf4dQP-6UGVFN1y+PZG~(yotyxna3(o6;*+u&cumW(Y3t5o6uqKp| zPBkNca4lRSPEVEEL=-@FP-V^N9j;5ut`Ap16b_4Qw`-}W4|$BgCl=xR_U+rZ@7!Sk z+&StK%%?Pga?=3?qm%*OfNJ#+24j27S*^ZkoT`PXaAl6>DN9@M2Fj!YgHTunleDOU zPP1MUz=~>t@&p6pFa=UBOppMv4W_k%df?l}{(bxSAd9DzVM@}&${`+Ay^B!Ep}V8_ zhD!XpFXutb;jA~0JtMt1jvw!zXwdRt@={70R%w+KDUiM>KhuRc=$xH6SDa5sNRnO{ z`t^Om%Obs4MY#|zk^1mbGs+e&6_@Km{4fW{kQyAkG62kHkORj5^DgZaW+Sjke#|G_8*+T zegnTk+5`p>kqLZ3lOL;}tmMa^lNgB?zuvSOG7C7EoGgenXdOCy7}>|6Lp`X2Vn5{} z_hKfN!8@TfU>pnXlvB3z#x z+Xo9G-j>g0TU81VcO4FZ!bO;!}GKR_T%>mu$ ze<{c{V?WPW(yZZVfMMN6?XT^?Y_k6IMpcLaW;)tm5Zk}j0^ebU zeGIhCEZCQ1+zWogBM6+4n}7*BYp1boiVPrunO4~dtKM`3126;SVH`;q2kqb3ckn?g zOn?KpZS&&4wsY1w*mr)DRFJMA%8vDmumU)D`$g zFgO(^>=BPpdmL!$9v@tZFafPR1JZN%{|S(dqG!t8N=afEA7sdk}97_b35g3!ok&apEpbKhBsg_1Dtd|ZUtR6Dy$7)^a zr;sER)H!(4ue#@nC!`YL#*|~-BC;U*m33GH@dq{02Yy9$`HB^8Ib;F}57K4GPL%H; zdDJg;k2ZD3x$WsARl*svCBF9tOFn5xM&P@~=V2ZfNS>A%O;ET4AdQ;t@^`(C6d?Q-5xP?E}fZ-`X7E{?W zIxqUzFn;yH4CVv5fTI5JVT@-K^@`N}BU=p*o4qWq!Hj9y&VtGlK;xd|3RcQ1;$Yss ztq6#fRXm0?KpY4Zi%Xct8=4vR#gx}t+4K%fk7M4Z9ULM5g?854oGHTPh@ly4rI0kM zHIkcN$AB1sDNrUuZE=VRD3qw62|Ebk{^Ao@2nZxdXP~wE2TU*)s{8|gl$ZzMcuuTu z@IslTTL$Ynb<1c7$`I;DWnjU}x&rP9@d%MF;IeRO+~nQmvIqsOiy!vX!3=Up*rES} zphKC|gD4W5*5^Pdpr!T%D z5uE1C7{m<3OagexAe8y!Pjt|E;(9rC(w*|B=bSlx#?YGl!spJMkuJT9^QeK-7+Z}9 z2P6ux2N%0A2pPmdVRUMsu{Y@gg(AcAbwV1RN0!h-k`P|b*EeEFRp%L{F9YpC`Lz*>G`9l^Y48-e`b%fkF zN)fod*wK>YK&k`3bIvYc`Ock;Yz%SWKk1SyvHNMd8})%g3hM9%yLV5JB(aXkCIgOq z0Y(`>9;BVN7zF)M5FsIJc^z^<^UjUK5)cGII;$po>f_kI&UZTqRR=i~roR@*bLGT9 zd{*Tj_&q9+XsHvzhsx?T!%DT?;{dM8FD&0B>f*ES`>c|fI zYdX((h~Qz~l&clrAR)`@;(P}eUve%x8_vw-$$}K%@q!D8ynwTWhVDe=WT}%8G&w#{ zTJ`{z=m~7__#!h1UskNR2jx&K8wnhl;*sXlW|`4~8ixLuRdr9LDva3&CJ<4%$sFKM zgHsa}^k<@Vs_$kU9r*|%GhiFl`AxFf`n!@Tpj+g7v{ZdV$2dG$nYzBW%%z9jE!!KT z8Y~MomW_Pl#@O_HFtJcF3#?3m-Ze{H&T0HS%FpK1*AI=Re)w$8Ttm|Hn9MEsl_J>u3fH&VxN7%$H{1zH-)p%CGoez{FjvT)*b8*O9=P1jT(}S}c4DO4C4fBnZ7yBhPmP4(OXvwo z=zrzP7|_3V8Cij2#!=7q$`w)@gv(V}==5?z!htT|Q5{5ff?Z(WOPBT&EfFpbD1?qa z1O_`hUxUadQlX|u1rsgtn$jD}pGnTTGyZe}lVN!X3IqiC@rI>dAeUqQWwU$>=DhzY zEgH>?oLIuchf~XJ=np0b(t}m94x|U%{u)=0xP>ZwfZN+97liUbOicLk%2?zDM9?^i z3VP52QWZFA7giA!gp71HS=E?<81|OH5LA(+Wq#Zh-7%B|9_~2XGuJX!{DO`EjR~v( zq(C45MiK(k5kLkI!f@yI9iFM%*`4lfPYn`FLrQ*A2?q$L5m_fG5wSz=);(&(bSi4; z(wlr>SRt7P6*o|wHg@8_z8fVR&%;DKVp_n z*arO)&U#QreY`ZFJLPU5G{GjOxZroo7ywj24s`5SW=4wWxcYTU?183fN6%8Mg=#w~)nr?5DIrWfS6LZ>nljO@nJK^mL`3_AK@NckE@bf4FwbXGNZo-Na zu;LGc4hM;_e)y>J;YZnyDi)mEIVeNUKt6e((Tnc>bT@?%cJCp@VI4p4f(7B>nq0!^ z!ZGlEb&2Ew*(2`JD(Ej?T3fbs=~Ax=dH4m|Z#3gk~1I?s@3iF{ocIBPRJBF{ZbZayh)ahzc4;vjP`R0&S-FW!SVQ*rqU z&6ktRJn4AJ!upzW61Z0eN&tMt%$4X30>uQ1dF;LPI7rZ8_@{eM^_~o?T88gI_hXM&RzB`lj-v-yzGB6S zf-IEFmT|{gOP4YwiX>gyjxZi1pCJoqEnd8so4k0DU))~=if0%!Spd=i(0uyv7=u(lEf0JIa5otk{(^^`mv8MiFk zHegNETC+4fg;F=2 zXxnCm=!bc+$vD-=B5*{g7!At zPr!gx5#*aGmC1y_Rbb%Q(XnGqJAyO@9=ML0Ko-7cFy|vQjz{CaQBcADtBilc*E$gn zEX=GKi3sH>36t}6F02zspZUomEn-y&RX2;5Fi2{wt6^6p?yfCdIYSP*N&@h93?ehY z6eIDNjP>75VgaNlp1}YKSqUs(lrj<^?*zC&THvq9zrguvAP0AU_Ej6#hMYDhfapVV zb>Q*9@o|c{%=w@vKEhKrm5=1?8Gp8hNd#8!FsN+d5T=t{{dig=zpP2z>DE-QTwOB; zdpQetzxYczefi7RwFTbI>7P@+Fo(gkUQ8@zN+>}=76M^+)h?{UQ)URCNTRC;Ry|ZK zpv%ibm4te)x5WQSDpNrEs@&eUENkfpmS2g*KRW0H~v0AY7;PaQ|go;~|NYYA#&RRgz^&pua%>23#yey7!y zrOlr!GlF@=k^LP)sPC+R|=qh4mR*_)2wM`0^(WulMH9CAaJ2D)5JNiAXa)&J%89~(H z0ku=>4iER}1Z}rNFm%i@&!AO&VW2#gEs#ws0O$=n%G)gCRw`REZB75q4Bd!gSueN< zhSZ3}TqxD2Rqq=tY5uV(;tR0K1(qZ3*HjSG->BRK+!H5oV^-t>J{ zJotMUAS&P)k-NM3kIYHK&sSzfTBAc41rWE2Gsrodobv|kISR{s%Zi#um;ltT+xJoh z0oXa{G&sY#<(bFx)A^H>q2R2^8i*ska)Sh8VXDiZqG&hlY6)!%21Md-HuQy!pbM`+Eo6!EtI56rE0=Qnt{zN=Fb# z2|#KBm|TPI`K5Nm;K1;VR|PoST^?e=KEmf7pkBFDMhslK*t^srQDN<(b|i11pt`$Q zTo@E&zZkVa?n0F=B%BZDs`&P^v$O0qC6B(*3J$M+vwVdWr~FB=5GnZ;YLY7irQXfx zE)w#Ork}?`$raJxRqO`hA!)Mdk>25OC_gw3ZXXA(*96wni3W@a(ura$@ArFEAbKbq z2%YD*%ED=uUw@9L>Zlp1$sh<|Zt6Gn{(pi9@B9@s{~yhN|34Tkuj8)YIy%PNDBTK< z09umhN_Hr3C_GKkB6WZk&k*EHluuF7*80YPS+{1s78K;djKyFugSRJ5>nQBM;c>n3 zEcupv)@0wuImM2Vx^|=Yf^RUN`LbbgZDAYBJy0|ol*NlJxqz%*p&Vman8^MZfs+Jn zf&1E7-(;OWwq!V}5f>1`m+Q4JTf6~cr2tSs0V(35hF52Y*j^x-pJ{mu_1jo9bj43V zy{{FvBQXe?VF|^+Xwxo(06;5Vi&3Ci+cvTbmseMWz0=V_ov7x41ri9@F;oUkC$9hO zUY%#ZLol7Q#V2ow-Kp4-tctzVy?f)$J_(^lw!+L7o1SA=78>-o0SK?oUzi*U)Q& z(hHpOVR2`XTRgbLvdbw2J>>^x;gq-H^-Gs6TPm<#S-vb^o~~#MsRP$nqU-NHUIj3^ zCu(xfd!TxCmGTDor(5_LREz+m-hIZcNf@%Vs=A~!$*SEYL1VEldtPPuUL;WyW^M99 zMow*1kr~?6+6K&}03gQ=B58jMZ~R6XS9>?-TNHIK$7qX*J>Z1r>xt*dfvNPG>NJrHp@Sh}97<*kjHSVR~n`R&W0T#l3tA4Ihiy`8r9{D=d z`&juI{+ej|A!2xDO(Aa$*H8HubRknXkOVJ$Yn3iFQV18N`zl1ZQgsMt3K3?Hp`Va$ zAHYrohE*CU@Vfh@-ABjpwpSJ}adx-+ivqrO z_xleFfYOx@fCnpVpJPf7J!blV4ooon55^H;OPe_z)w3qrM?Gw`lEAw%bF1=Z@9h!k zOQ`WJDvA%e0ovww$M-Hh3aB0P`*m=;v*g{q*DDIUpwg!ScdO}9wj?}gL$oaG5HyA` zqd(|EnyJmptJWL+J32FNrk)BWQZ{K$&kA$gQBj#KZPV;t`o-M(#bh+!+L9HDX#Yq! zj9AsIQkk^Mq}2hrOWaQ$Y|L6#f~HxKf;NMJ_6}2R#Ok%W+)4}p#cgZQs?U~BS$6Zx zpq*GqkIrK?8*PICs{OfR^K6B|an0Ed6y{T2zoVbCn;`j+p?Pg$Kg+Mr3U&}uH+-HR z9br$cumiDLp17EsfYh1Qt(8epm&qUi z?sr-4A?kd&NU{l(k_<^?!)$vLe{Ghv*AXt|-)lOv%#0mH$J4BKJ7W5UnS=s5KUF`| zX_vodjQom%D{{0mQkjG=uu@v`Ps&TF0#Xtp3b#8{&0Vn2&jZR1VPob0CF?zcO=qMEN zX3|Im;SIe5Kzj%ekf3+4gvr`FZB;j1Hvp0#2%rIiJS6W>8Y)5q4KY- zJdlFrTXHuT!)#y6=w`SJYx}B1|M1I__snsTP=K)icK5B`o2k6q>FW*MFaK(UV=zVL zH88Z~&No$=Om#y_dUkWLX4{ADMPu&Yty?^lu!7jT%EwLw9T(F5d&mjGqv}6fdj@q^ zbE(ev-95tWgTVC=XXkP0@X!F)$?^ZR#RCM5)?KLyvb*UzXq_rxW^e=8{e?RO+X3!+ zAQ^Z}nMuzt6kOM`9$du*d5(uQ5$w=|?atjvRtgI|_V)Y(<5|FiRcFyj?9Il?3 z&>2WcqiLOibx(4<3D~Hy(bm*zL$gz>ZK(~)r&fV;7KG9#{pmkUO-)+AsGgGJ2xrTY<4lcd4{fdX@>2ttzp{Z9QU``_Q=FeNWp-o`^Y`D~9lnk|w3p7R9fT%LONdE`;yr=4O+*A@7wO9M7Ylz9{py@sDE@?@DyvIK#sZZD$X-z7o?Pmi_ki^c?1R*l zgsriC+^r#~{68sV&j&`fRh$FyCqK8z@s>h-DN&FdU!nS)On${!JRs|1oNEF5!TqT( z0Q`i3Q8i&r_2DC|o(xD|?_(2Ez6f8)yJg@dp$H?OXB#94B_)K5+tR!V@Rb zlg(2qG>}drQ8+m{H90xydHWam(^2Pv{L)avOFkMjPM5uF`X9GL>z!Af$uC$ezaT8m zJLb}*-gNUaE@GSlr0UQ?=rwcYgyrtItI=o4)eL{}fCBEg1f*QMSWaW+w8Wgv@Ja&y z*Kr9H%=yo2@*X%Q)VGlb;Ipg6XC0=7{@rK!)rPtyFS-CTIh|5;Il0n<&OgW{1^+da zGv0>@8Y2VrNBS>+H@`-n!}FyT;5k=(RQnLhPmfB$%HpZhzU|3i!$#c-f$A3LFc+Y6Y$TvdEC~k zgI7g%bmB;dLWC+0K%W1A2|@gP`yZ4DaCiXz@sI4MKis;-Lv&03nbW+1e?3|52Q()1 zyy=nqKE1iHdiXRkCjgHm$tBFvPQ5krZ|ETIHt?^8YfZE2lN7WkqsUgNBB8YhHBU88 zrL(Xmy}nrMgMZE19F2^%+H> z)#=UwO|d@|%V&!j%G!!W9IR&9%x&9QWw($Ccu6+2_G4wJ>uo3us~amkX6Oi9%V(g7 zH=ka^4@U%RfZ7! zEx;`d9_k=k61}Lotf~DQ4!`hwxB|lueB&Tl26k!U6Aar0>bL1vvQaSEM=mHh2h7RBE>#Ax{f6p$bo9XdyyE=)hEco%I*nl&We|oshCm)dm0XvC`@1D= zms1B%$;}FH65ISIsYw&ckJ=-p%w^l7w` z7FosWDx7oBY(IB!vFyJ?SYWdL?mu*RDH79eX$yzJ(q&7tWwqtY65Ixjl`B``JIGhn zR#Rm?u{TH$c`1=}5wJwu%@d`%u9t%T8~U{gT>JL=r;63~D8I6fBTKj3hAEPu592!5AG z9(h#R5u!^x{IEPS3G91(Gw#9B2OfMt9}Tzx@^#tTXkD_ly(YMH3S-_UtLiIPt@11V ziuy|B@sBUhm$mchkFMh^LO4!-tK_-EoSfDtiSc<8yToSdHvoB@Y`cL|GdgHC+!#&1(W`J^;JvO zuOjpyez99dY0Kt0lk-f>du3ZJ;;*6RLhrzYwj*~RdLpz;sf)-9+ERa{<`&T@S-X`B zRD&Z~DY1EVW6+L-`sp3(JPf^^_n4iEwMsUc%+<=I72m$0I97goK&GrnsB#0GDRBps zr|$rz>c6%GE0<&anST*-Wm#sm4cZMun_WI_duNEr z8`#yvR)u(VD61#5ub?_k2VKo1cf zLl@yB`AnL2mz4A?w@D(ZJvWF0^V5Txh8qPQ(K>Db%kIp*T!>)4E{0i64fm7QFA9Ri zC=-e;D1eC%K-}ZD@DLn(ckXWE8OkJsa1UOx&?kNXe;)lmFcnr!9e`B?_}|6=ng;y) z>CWX#(?mo_a=hX{9U$ha0L|y01^8dZVLD%IAZU-aQn?Y{^~PKY+Rt{u{>gK79DJFo ztY#$W*P$K>_tS&XV|BM^NJ0I@_C%t8>V1?Tf-tYW1bD&|ijt`KDUd&-T0lZmdW&TA z{B7FY+wTy?eun~hAtfJg96I`HoXjaqzc=02W(HipFWcX)i1zNle^mD_D!U-Q4MO(} z3g0sW`JJWg@UZ5D^&xc~2AV^RY#vqM-7!z-od`_-C`tHO-HfonqxeKsz3FIv1QHmv z2V-*oqa)ejL7i41`orQA8n}-SCGRH(V{~PT0})g*zrU%p0NzHW1?n^L%o1^c3W)Tz zx8FgsCiEwG6#bhK%r$9=MljkE^4L_mN$kt|uj0)mPG+pO8Ypji)}ThaQCnbGW*eREfUvckK;kPa9g<~R7BYTYuW z=g}n4nOVcnhM@(|6RS3;;60~MnQ%qx^KWA|G;L2+?-HP|v%VA%)uBny3{N>h&NhYn z2}#T5*ZBeFDr2Z@bRz0_6?FQOrXMiORq28>2DT&6FB!ZA_A|{}Av<5d-4oVJ;o&CN zfd#q=vh4xk+%>Uuf!E1gLo2z9X8XIj#w-9lVf~oG>bAS4!r_7ht=ZWbRu;kybLDJX z+c>k=?)D8F0)o&Q2oiz}1%HeHNeqts!7jtD#;#vKOGusj;lBOvb(76uA%6vTB7h-t zo!Ek5B3vZ%(RoGa5$*FoL_a1!ECR6uv-Fv#*gLe|qo4fk1!7QJm=?IMnr;cH_wpAW zRke}=v>rkJ$y~>{|j~E(oyUD$8TH<{jR||5ljFM9lz|Vl%knlh2UOoO<{CPEqffyBu($i{9!+#a0OGb_QTg<0D{Saf&o3t|FH(Pg8RsCL0lJiAI+yf6Lj)pE zF7ye;NBFNtLJxwATQ4?$t`|5wA0P#sVno1W=5z3Yp>&?L~)GUgp#7MX9T zjnNpjQhXOT7t`8mv-rUVSrr;0Yujp`9PT*E%|SStyQkWy=BKu34Uoz2K>62)+PwPo z_WM05|K;%iYPkIWFkHTfH`IN`+)Wl?Pai>y#VPVpAD%J zJMTBGR+_$usVp$KU4IE@3s}btVjF398O7SFBbBWhYW?kWA|UIPDQj9Xelka7Q6D!@ zJ^(5LQnMW5rpy>jmpEOiFt_aR`H{`+BCPuB>WrwkEOy1_N(+^90fP9cg=0Befb^c1I7nbz{S6ICn!dETeL|E4J(J(jFM4HE|yf8 zSt{hrW2FTF=6Cm`@6|02va?sI%h+jt-v~5H%rjyx1UL?OGUb~x!;WG!EtQp(E*&Qi zx)j7-L1?~!J70%yovf*edTnHEx2^@kBgoqWWamiucOUhSG{l;Bk7bY7!PlM)`REDv zWb#x)AUj{**&ySEQL144)5?%fpJ^x-4>=sUJ&)1)Jk0szg~55syoz17L^OSofOfv= zPU2RZ6`O}GFUYN>t)Scy>?u)D6+PJs^o^mS4im3e%%1<-MP0`L%XW0(vUhm=swaJf zzm^_i{mJA!ax#QPw$=mQ)FTg)vl{U1!2%=16~l~ngCM_ad}qF+PUI}-3xIJ9z3mHy z{lmp@LAoqQc-{xPe7PkdM!y-N!5}|_-$q;x&w{Br_b>vLPg%zZOr)=eEw5a8+z|@y zrNRDl8=BG_ST6;`?o;WLZCn^nKB+|c#^d-lJXHD?LHfrYMZ7BBu#^(edW z;G*zX1DLO4SgVg;8?Q+S(sx#`Uc+B`^%@_v_F|GIl9ja;VDxxpvLajFAXvY=T-G#{ zUXUB#TQYFJwDp$UcONLdE#?0Iao@hw>}aR`TN(<&SV`I|_TV^tM}a#E|6c?;q+nmt9b zIB22v=Oe3GN6SuLz?>o5u*OVh(Cgi{k9N~Wp;fcLfvcp76C+3Z2P4D?gW7zSfH~C! z1ExnWKQQx$bsPr09XwBhUt9ry?H!QrSu))*WQfO|9S)}mK0$6TtZrK9UTjHb1_969kCKRG~cW^{G-ghDQEW^3gf?EE{E4)-3N_!o(Fi~Nk z$5?I)B>aYSE0ps>3&o>05-48pzN_T&_wqe=8paPJ0e$iE_wRT6(*45+jF4|Hl><%! zEUfSc8w#ZNkmI8&pMd!L34}rt?GKNHT=y!V@2KNP_B(RgsOJgfw`{}F;z%27UFN#O z3xMr@L<9g<4{CMDmoE>uHIJF2dI5(H_bqR}c)yO9!7kt+*AwX_cc4?f^}zh`KDWQS zFUNBc?e%-8P#|gougYQZ6*MRX%>^Y7af?jJgCe;S?rk=wNe(2uK_fwxzR_c$TC-_Xk~eX&4Sm1?!t|2tgH z8U6n_wOS$`gOW6Q1OC~DL39~;gNC|+{{l(tv!_1$Ofmj2Koe06j{%%;`7%OT*|bt% zTNh#FUxHpDT+z_8>Mpc_8|N>;M){<}gRB5Qoc>n>71Lb=@2*Doy%rxGqWYgMB5a`XYpjfH3{g&01BvO zfI0gE>5lfY$*v>9%;~*;4B`MP8=^!5K%rw+I%#boXU9=6W%Y9)&u7X-HZ5wur0y&rrs5X@BPQ| zxfFP>8hPhSG4eenUoJ@IG5~23W-Qo^r_Q{-(-8D)m#6*ZcsjY9U0FaRUeWmZsJuY` zmGMsp1L&u{e|8K|KNLVcZbOz5XnH=bS0>%l$2% zx7`T{`2`Vxvwd9b=~QnrKPbMeIP0XX0Ac|N~Q zX@L%3BSd}JL)Lku*M~yqB99j>=Wgq4La$`qk`|3&E9K?M7@{fM4}%AZPNXV4k%K?M}++llJSQ-_a8a3RG)lll~JE8 z&sGerT!CX?<;s<-R<0~pQ5@b#`+|^$@#%!f7HU#>1fcH^i`^;*fs8Ga)gx7XP_6;|156U!10+jgmTgC~zqLc^dN>E< z?*jVon6Rh3DfDkGAh@wCvzl2@AJmjqnDf$CrWvUubh-lpr5<_u4a{&7XT)IMCX_BpJ07S znEnLnctq0nMSGKd$=)$NSY}OY@-Eq~ir14+--HY-ef>HQV)Az5EgnY?-~f6!J*{}O zP{q^J3u_j>zFb`isNcU%p)6R(ucfbc^z7pld#woScn*n4>LL)O{{x|Uu)l$R8o$lk zA%R9wS5e|Y6*kc4ij)S zAgeu?k=FDgcF=qtMe^kZuy0h(Lq{+}yH#=f zaELoIq~Fa?(LG4Wt;a)*_v)c9R$%( zL4N}JsoeG9C2Q{-^2>rFoR?y@TV7@SW*J#ul4VI>ZwJN}ez%5b{3(+AEf6o-aVbiA z4GFP$((q%TvftZffcT#8tL;bAz7E_k4gjE=sNPXzU-A9y{p?Un0SJld4QQf; zLn(3jzGcs67OPJW=YW3@e0I1YNbkcWH7uV&{P%~3jTxYq5>9H5s(zjGC#I~Q9EcB= z2m1S4hyvh{aPaaQ@=Nsgcq1n$@xWQiJ>GEhJK}TXZ8#7d9=sxz8>Eg$d^H5}UPs2G zP7fpLjxIyFd*D}JA`bgqs0-8b^_FnF1LOhRQ3CFpbnQyKA5fo;hg$Hytxlc65#INI zO&e2ko+3v2ulf80f0^$729?QI= zJYEfg@L1?M*7(T93&QTQ#2IH+2uzP_hPO)Ko#z)kLP~uLyPUc7Lvn6DY+77D#rc)c zNYu792)|q2j2vd_Wlosut?H#{kLtQY`*c&(9wjQT?kze!p|+`hOF8o~q~uX80@>AL zvEC8MXA#e6IyWq{Rrp(mY(mV7@RxMkJ=#z(@f9-$8*00^oNqx^>9B#+Nx%P-AS}=q z7&|}FEb~BGmCn{22M~`(NG_mVlEDSAg_4DtDN_eN*ODX1k3_s8c&w;UIQZJodkQx` zL;KCJs9F7O4q`8WX+yh=WB(`LWZ(Wrom`*!!M;dm)Qo)*(-TN#GvSKd*AQ#Z4VYH|5nSC8SeTpZ39;L3I@>V-F*5_O zh`|sY5W5}5G2HrD&$@`=ZmqP_g^^%|mb1BGb~9|DDJjLXDnO1p7}w5f@D5{^Dn^Cw zyW@VOuwZZQ$lDsT#p5}J}Wo~jl?eNKKDROpq+D~a{#kLj)Cr_L>@oZY^C+y7j< z{j>X}6C(CUelBqV60>JWP|t)6MAW`;bueJz8^VHVg0xzaq#X+eXE{RbQReenLBTy= z0xf?N#v50rJ&4my)J+yInn;eN$BPp!u>Gl1C(Bdq$w`Rylc!t|$4hw1^B~VMAvIOJ z!(??qw9n3U)Vc(LQ_}6zPdeaa!DAqPN8%Si=L`N~Q|N?g<_`u8510W_cF925jOvx5e{lyrpARS=VRr}1<2&h=B{lWp#WZU~hG zPTYI^_=yuR9pE}xI)X-06;wWbQ&kAYb1SFkdP4wr?lm7F_$Jt$`wxhh@Lit(ebf9b zDT4T}+lu43+m+nPQ5TP!{%MMP<}XU9mj)il9acS00~HkharE&8eMLttYkAm6@5D`E~4>&8M>vw5PRN z7@sq#4O=hBsYI@^Q~n;jckETk+w$K=?*Au)@Bf!Y?$Le`G!J%ZLocFq2h#6aAqy3# zj%{kQi9o#USk{IYml*dfYcr{5Q0U1$wX(ljIX_S?P7GrNcvK!1G9V0J;a~;(f#0DhA2`_T^rR9b*CF;H zXWAsnfcMEROc_?{IIlBv3=2xPUC2r8YjmA^oa_iQ!tgItdeKXI9i+f<}Lb zu9$;_@wLGYCm3j#sZ8vUMj!=(mtSHbkP{Fu;4r>kKjBXM#`){fI?bmq$AlwQ>s=V$ zt4z;s7L!*NSQti7hJXyvMml+<9}gOpUdZS5?2Vd2p%L=EF)`AZyvh+``-;n0Yy$eF zSvUkOlpEcV(IXQm-M={Ccv)kD@tRtH`r(J7^utnI8@w^mW&b;$#@2hqv%4@D2A52YY_Pn17;G$-f2L=WFM^ys)P zCh>5+p?HE6>t)nz*pP2@B-{(gC(n>=E>>d@f<`ykJs&e9FEj;qk;fke&nGI%aIR1DuH@E@0P-9q5gaa*p6~jY7+MGJNvdO z+U|E?E(`Yi9bFEO8G74W0_&{WHYUe_LH6x}@Y_lS?zd7HuPxh-A>TZXj1rg4<%&x` zEQbUG{}KIrEgqSmVvbNNjCwBOhwvj9sk-576B{bjd4eX0&E!V|S0lp}-yK2Tld z@gi<+44WbXvAc&OhR#C|i(-$c{X=&_v48Nv2Or?`zyliav+xNJK3nV8G?B+!v!+}< zj8g^>Z$N&PTN&}Uh0w8l#R>xX$CuT449cZ-Y9kc)*OuIWY)N_Fm@H^T^_WU!%k4EE z5t>zd>Ll4$I6i$>$sEZ$3waiK8U^1)I(ZwZh_}W}(483~?hrNNe1)~`V& zZoK;H>*!BMP>bs{3CcsLA(XJ{Yibyo>Sf>{v-*WhEP;mRKd9D9gJP`Ym$o%g&9_5y z1<4PnwV<_5X1fr69_6hn)T_5EQ*bVuh<+0k z$EK)M;ew$JgPv82l}C{6wF!8NxIPG4aJwLgFAQrox9sv#hLN>QCTdmMDH zujEW<2I!j^!NBAE@;3-vOFtl72@6!cGKN8@ewC70AbVYdJ53%!STeI-XR;NRbTFAt z4H+o6pM-fImiVC@U32pWO{szp_dZK z^P8!5$Iy|BPoEU0pGUMaRreF#sCri#$zCiK9_~AW$0|5@UlE~&rjP>5!&^Yy7aGsM zs4dZ;@aZyvgHKztkpMdL?|{-<;f)~4N~%&YGczvuSbY}zeryP z^nM^1UJG&Y-oc6YYlnciue5l#@{(14j-$4Ty_xati^WA-&tQPv zMc=MoosSLnI@!9_;fa;AcneB~n^1sJDLjvC0)Ox_h`2u2<{@~N|DlvY&`U8+7BUMa zo6^T=9c@gZ<&RpLD{NY*`FMF8KA+;s=;dhk2-lkpZSzVdT@*m2fWGZxDA{VhS#G(YvOZpUt=b3c zopgO!@5IXuZUaBjur^f9+M4M5GV#l=7Y86Ncy4%Hdz%vdH(vt>R6O2GL`xxc&Ow4d zHRpk{?EfoxSK+LL3|nnyrM~1Fz(egi`+8Ucx{gqp4xDUrTrKFq^UKI)SFkT9U}v`i z(?13XL`ZSLsTWvxvv=xF33J;DR?f|^q);C#(%CU4pbAFX2f8q*-OT{}XPHfGFK#?6 zeb%vKfFT^|3ClYG3kT_F!4ED$^nTLkIh9=x^U>Gi{D3jt;_%b>c?b?#xA-tb|!Qsd7 zi-Xt`|C&Ufz{ZcLp-~4S&THQfI49u9f5n3Htd(bq3%epBQV&bN*F`!nswDK1iTIeC zNRBm*16keiI>^*pnU5m5B`niTPg<);_wv|9(pSCl*y&Ff!kT0>8#8*1o58FQKv7ev~Rp>_8uA^bXy z;PguG)A;IH9DH4R2RQ`H9{}kd#~;ptzQKBR6w&3rDRtyfcVf8rqVHrE8bsg~iC4lv zalX!5@fg}N=II0AlM>&9k-!gg&~q>gk~8DH^Q|c-lc@g#@a5zXz)w#^)C5S6m&f`O z$#}Eh@ApV_sP#~?Z8ngCizlC|uHQ2-`b` zM0$CBz`Y1t-Cz9A(J$%GErI%fh=$LEbotgTWo-cH2Mo;1CFFke-?x#;BX9ou{ATU@ zo9T^V#pVMGUsWimDq(pdOiEZap$kYWx((ItX`yr^VwWIWuLoTYD+ST5HKrCTmxR3< zrCMGJnZ*-kA5x>zUNj^Ry2nK}m(PyUfI~+PgK^9r8tfwvu5k?}7tW9>bZC4?8i#>wr zMbEcGw8xGq!j~mRa9Xic+1(6dA=wN}obpzL2@A4U=t~&@Sk{&CY&*KZ9R$;3uMl51 zEE`C&3k)jD8rKJEEd=_opyc@s6X$M$U+q;H?DKQdzLN<%iX@m;mtyG$_}&7>^Kq{)K;>Sk z@Yp9Bq!(U?q@TP=$N`H@Xemc*NiYgYR;t+k-RwQDoe z&YPFH&mV3pdz&GBwD*{MybEKzV+fSkv3s%(n>=}HkXXE7d1&TTb8=6QsHhzComHOT){q|Y0NpXJhXLwFc-5Me&0)6&hi>ZwvMVsB0rdfVU;@5?8nQk*Yf)~xQ_xzG!W^qo)JwXPotitDCNS<#99Hh_1 z+ynQl5Pm@dJvSzWpx@h|BDzWIv9GeeFH~d$MoAULKZxB*x2h z*1X#@#A77Ry%@U*QTHKvj2PZ#?B5>N^Jh4MN727I7{XwJ7zjNgXFp&bDB^-V$%7Jf z&||GK4uLsL;Lt(9e-*wxUx-*S;WX7+jW3n|6HP~%L7+%ZP`8o4s?%XlNs|}>8 z5%%hcO&Re~aH@-rt|IkQOojMi@+n@`o($+VG2_>rUM#FD3t2X?%_)c#!qQ@-OK3)N z(gv`d;pPCg9q`v=_1U6$xKhkxAb12}U!w4=E<_;T>j+rDt+KC6xho-kq2k`Bk9MgZe!Rhz8*r97+V7RW^SFQ@^>8=L;T_erc;(pkGL$V z7=JZbFY(L*pCb;xEt~z85+x6HCfm%*$jgSet+;Lq1oK48CH?XOJ^j`SK=I7HlD|p} z*<$Pdji&j+ywc|>Q#Vm5p^#ke@uR8hkN3Fu7OLl$f-0z82zU<}^pZzetagnjP6HTT z!1;jVtq>nf4zxtDSB+Bw;k+V_32z(EUZN?7$aIeZ@(c9h2q50pvO|1Wn|g;jat`aY zk{)X50Lkq&LF)1X#GDomzg|3?z9WBuzAQgb=K{v}*SVMsrcc{0m3%Us4sK76&Zc~) z429?PW0N-)mHH)hcYkng3MiJpMGh(l%GoG+rY=J&N6~$BRLanTICdF$WXRU-3y(JbB7WkD4Ef z2h;!p3V1QeuP8nkPIqWOwgkvY8KKm);c`+-B+-RIj)P8)yj+^~pz|?f$ygh;c0=Ex z_C&MI>0Y#+c4%Z6T4NM&3#~Dk8dfJpvs2GDS+GfgcaS;VoSc_r8mW`hR{E{U?$nss zr5Li9tysB4rbaMp4Ft-n#fT*&#hf7eaWHC16{i?T2kvEUyI2z zwM6uuMeVV>ldtd6o`UHz!^20$xCE;wzP{Uxbw=|$Xg9!lib%VGbm4A+^08pnYj<|O z4$ijtyDa&y@6`Fi|LUt`*vmPnBS7d11aJ$JnWo)I2NWL#n_m+?7swWD7Zh+a3&QT#W@p)` zo1TlhtK|76W9>KZ713I5d&2F`(6zH0ZNCyPh9d`npRZfOZBTvsruYe@Ae;7|BmjX! zcLTJK#D3F5Y^El?X^{T_rmEk%^<#3YK@64J;+>#ffBUxkd4!0opt&W; z|3;B73AWd}aqPQ`0ps1S1BPqxUQ>`BV7v}DJIPdr&gU_lZC?y1OX-sc9_Ux8i8MNJX2oS!>*)Ma}QR3|SwrTnZ{yPvq%NO0Hl&+$C zu>_V!R%s6MnB3JGWfasix`02|;pM0I-$yxIv<|#8^Vz9%t91)T!71!zt9tYX(nCG^ zI=uPpL~^_#;eqs6M=^K;@#6_)>3ty3le+*~Zz%3w*)SGsR;q)ybm_!*HywCn>m|H=Ks{dBh&^E^1Fte^?L9f>6RA9~+6$dtzk z)aJ?4W0&1%8$eg0N~{zYrVI4k()w(mk>hczR4bgR&TBm_mRgT$0UGo_GzdfKv*R?B zyI4WfqPMa}XA86$TwiKfZl*SSEt%c#cbNH!1zH)QnwqtmP?<#w!tMa}I`d}C zvWDtR+MCy!%-Vth`aR$idlm(Ez4*$?)E(wzw#H7vc16KhrH?r9VV3V(P{p=%Fc23q zGAYWks~II|$O++AXY#uM@U|E%Z+7Verd47W?!5NYDHIqNa^^o^nIOFYx5E1atl_i( zW&&wy1ViE-igF|e+Za*OvQwC3yYzvGQs!-N*CR$m8k_K3xgfkKJK zD-JItzoFRJ4*K^%c^OA&z5(N(O`oe{1y4LbAcSig(L_I9j4-cc2`4B^%ejb zn^?HnZ;`B=FuURE{?4~jJUoLOh0i3!jK@|?{Po06`{ijboQJ4 zvxC5NvE-k927`YHQ}7wxfu}bX&r9`_cNFCR@G$sTS9x~C7d^e0iZdC#Bc0iy8h9w^o&l$m#H-5Q4nX7w6P!1Ak; zRUN!CD_5>uMZNi&*z^&9@??3>lE>|PVWN< zkW~-B_eA5nP+GeHh*1H1;rcLkZ;!rXJ|+T%=4ndaT%e$#&^?2EQIK3?lIR=qO!?Oq zg6uKNX#nB`GXmVZS0d6`lTgr+hLS6(emA0!4hPr>EsM5A(-WRAUiyPN40Rc5t~5t2 zS_@Z)fg>%OuTZC*tbJ==`arkCY<$uvw5+~x05uUodC7hbsOz*P{66$&4M=$yv3CGg zWzgy~KM;pE7*82nt#?zkNrL!R*;WCo98>tLky8bKEnJT}4~8?MG`wX4mfe|lK>T1Z)7*TQ5LOOqa5CUrSLw#0tinVM$twfD|+i7Nb4IKa>`vj&m_ zP&ROk$H1oA5GqS+PG2QB5Tx!9st@~&<2)z@xD9RVYRn;lW1%Ws#ZNKsz9Mr~Ods@s zgTR1-F>`frp_qq^EzrCDs(>?u-cRF>5bK^hVfhDqvAF&@WdXRXT-FKZ2_FI_!9Wv~ zX`VR@%rP@f!ASqn0!1JU5-|}Lar33$9%(-Wf-M^@BQG9Jn3qL6kt;WQrFeDN@F{IVNY&B# z*Le%*6=2N>SDDb&1`xAg~aQva(`v})*1+jCmxIY+y$Cbn066ROn zzRt9&F<0?!CTdhayUH8_Z4T(#a^`2OBPnZBwApV9@igMaU} zbiEC9ZRyb00-gNXiwMOc6%#{ADyu1Au`ylb``A#5C z$U~ao9ewuMKFXqPJje9B(B08k-MC?6u_0Uk&+2j4qhj|t@p4OJ)l^IkJqDi=25azS zO#90gFo*v>4Ja2ZcNg!zbU~~SJx(BV^4JNPiwfcpRkZMVa=t0h@KI{Ew-H~PJd-lK zn~Xo?xg{UOe?YFx2SXn!2*`gP@PsNA_N=S%@$@TYX7tzgOIuNkjcG3_qC88E#;opmng>DIFyaJsbO^kP{mZNZ*3p;;s|^W;NrcS@@>7$C3IH&ZpG# zM2K8`{yJtor)ML~Y=J6w~li>n^3=4_2P1S9sNgSjrpgaYRJX`|-4(0$;)Ecd%H z>V>@RZU_s=v%&51v)N3f;hLMllQGiK!7il6h|srh-_C!|f2l)`?^E<5Ba1z8 z4L}`r$_7Dp7KqhIk@5(Qv@GuzZJ}{KWJ~wTer+5Ad_xlG8A5gm(ce0Vyhn|>=wza=HCbDfF193wg(0k{{^@#DzV$0k=UmscF<9KW16T+F*GC3~j~I!X|o z6HH$g&QHaq$;>evUCb`^O)s7+P=x$K7L-+ywD6|7$Mv7{A7vq3zkvOYbUv?1fVP$Zk+@4l#mynEbqmJ48BpTAyI*QQgTNc2N~E{{Eb0V*bqMdb z{{aZEptwC1Qmh+-{H}009v;hJ?|z@&?A*912arlRMx5>IymqT@*H5Y!Cir4~7VA$i@Js?-4??Nyg zS$EEi#e9!UXog@!OR(OoYkf@wGLBvvC&Es!TzhNBohRff-^r2j&f^si9}YeTYKL%H z$*wa@2u=|kcgA4rqsw5q$H}rDIBR6(iWMtX zuH*y$Ld;GPa&H9pfpzQFtp&HOTi1Iahg{u!_+etQ{^7*P6V>^?^tr+;BUadJc0{)H}S z>jT)R3SdxY4!G@JTo@wI*ixIGQ?z{ZrbOaSSXju+Z|Pa+TH$L_$+vB_kJ~!3EyTCA zED%k&8|#ep_NHb);mP&^t+5D}Q<@^{w_ycS@(H-kj$K5c>l|K^CJ&ZZ$V(ymI*>a< zq;3=1@pUf7fxR7--5XpmQSt1Bm|s+rP+jf0=dvt#U)d_494!6wobi<$$ z`{jsOzdn~3;FGZ4+a_5j%{u>h^q6SxbsQOqL;{jW>Zr=62+HI7c&Lu+BYm(TeCC8rVNJ!!uzsi#Zq^F z1mXSElDh%dMAY^PW5Yk4kDrrCF-Qnb)#Wgv{d@Nkm6Ke89C8hJ5!hZHF`w3#NlfL=r|# zdPJ@)wJmFJBE~ZlL?lPl5aoZfmMt<*py;%$fve-Ag?mwX=+}~+3u)2n=jI2gcC^BB zLU-Agw~-?)=f|UwC;-mTpBx2O%VrH9>{%JPEV-#aYNa*_pW9BX0H3lB%XXNtZI)>p zqEo{ac(t88K=jWT8d}g03~8asITWc*pH+OjIP+(-*@d=c-*dcXZ6uRFfw->)tuy(5ZuL3*W!#7sv3fHPD&|XQ9_yf9F@L<5Q1Oim|A2bwSa38c!GBtL+$ zcYpE4mtTDO6+!lmUjfh|)&Hxy#f{n1NL2v+7|}nZl#-`!d`_WSPhpLcoFDgMOT8dr z+)Z`*KKdIlyH{tlb&ChGXA;)rSyn~V-b)D78$R`LuzIi7X+{3E+Uu_s!1NJof9CDN z>y-p$i2`>m@SNn8VL58mjMcQk?1bIjo<$0{@7=R|FQDCqeS1rU;i3ZtgWF#oh#<;$ z5BdW{#_{Jmuy}H?rrdVY&Iy+bpJ(rnDr|0O9ndbk9v}4Y5Ab#pet)0k6zraHrWgWz zj8j;#d&2n{k@S6xi+x?*Zhmh>_fy+Lfr~nw&-i;IMh*kP%g^vm{&ozMuf6ql_Et@F zG8E|C8!dh=JTsMRRR@E^+LG6EiDU+k9xvf!cg+}VNYtrLZAye4USCdpJ=q@dGN|)< zNVnm1wFE1?uK0H4;}yF1RE~!kD-aB48)wHuOc(!c|nvm}3jnftf~SRc)mY!iS7_!rkl1ZHhV zrtsO(fzzU`W$*0kg<7f*?{&!W`aYzqb&xjn`La|h^K3}3BNvxdf>mAs+b#*JK`J1w zh&xeoGHkVhk(N=#5)!a<^^C29;B+87V+H=M&A4lwziXLKdM*09yH*p-PY4Jiqz&BA z;ARGd`nko|u0fJlNIsp-IW>`fz82^K6+(Aj3tVR?nf+gwG^RXe5um~HKLh6z zK;M9r=|zYCB?r@|^M&LZ4y@>01hlVv=Q7^{O#OfhCNIkXVfVJr<{N!=7Gw@ z;LmmOpy?e!>na%_zeEfL+;iM+J>Y#LlFX$6HC44#=F{o;(uwJN)tc3q=LcqNiO70- zdBm2g6)aC0l;>R218V=Y{Y%pxsu$-ZsIS`f{fo-6w@x5PSJD$);9Z4R*%axdv&RMc zk0}rDA>=ri@G%AA8nl0Yk5hp>8aw%KXAzgRcRY<8AIH=&D#gQ?5$d-)1RcJu1a}5c zpk3+i=+fgf>5ucTpFxUGmETU7eViD3oj-v~$CH+L@EV%VIp+Awc`F_llj9B(-XHA< z@9RH>OMmGy43g^p3)~AR@x|?kczXmR-rXAfi6;hZ59as4d_6*pc%c0E-JAaV`c1{% z8#ivEsPJ7K>PPxrL*x%fy?7;Tz@wq+p+(;D!ihDb(0hvKZ{F($9p+90_46H!wF7z- zN2^rxVN^^u_Gc&># z`_NivA=RjK50<~O>X_nO(wvSE82r9t~vS?U1zQ2}e#*jV)ZN^D+W zUQu*W-HkXa62HxAZRK8&^$!Jh*MG3na+>hbwHQKR66VFU9SB#!c~g-OcH*T#2RQ3bJN3&o6|Gr(9e1kr`$&eq{y>Nl>ry2uN1n7D_0Q!5si>*)4@G#>sB9?RI05 z6t7TYTWm?W0>*@fECz|1J?2aD+Coi0PNoBf82FnYs{)TeO=`p@84hK#VX8iR{#isx z47YuvJ_mxNr4!0CpbrrfIE{54A$RDXl>Lr(z#IhT9Eib#A^V*a_-uKxB3ap5wF>CC z(yyYRT)G-`xn}ihzs9fauWKsBnlOC&VDZq{!$f~o^-P7&@Dt>Z*5P$0K-d^4n>>*| z3C6|LdCITvq2=reeP9z|1N&z>0V7js?b)DpFY0OYd3gq)nk)Go0}F($Voec#fpimW zda1-)gvG4mmUyWEa#?32oC>Im)}C#Rw;Wd(9z5@Cnt<<9=F@G1Tk#Iy1Hhto+vG^d za3aXO*5J4Hw{#R>4`(I8-JB0@Q=6|7gFjQqeN*;g`PVkrrI35}!jN6EM$bRziT9Yl z<2g)0N)jhVyetI$sYwm&#|HH4>tKKPRK%d1_mYxw$>TBV0p?$EkEM?~vfXns-3K4y z?kcYSAjJ5T(0a7aLylkfKmzDryDnc_uF2uXH&+YoC#!~6np!OOO`CTFI`ecuHM}@fDcKJ%)b4}zBa|5Wc@qLaF6Z%9>D*e zfE5_a_%`4l?C>BT<*lw^L*X?4=7?CXR*gZ{xC`2KuM=kPg81*?@doAVW6!$T<;ow4 z7#g7cm($&g4B<<>4s633`hn!-0mh=Syo|zS%pe5hDFBEb2dy_~ZL*5ysz$7iC>867 zHFPzKqW^h^whG3F7HyrHdO~J)LZ~0$Xe~&*aL_tF+xsriJc!+lTgJg`RrtLD$j4|k zn^s%XNh}Img`ORDFw|3~5vGN7or6ojVI8wtptw4bs@ZFqwS*Xct>$ z2KRG@W1Kz(A}h*WpnT5-5|1xk^i&7K zaC6fmSYsA(0f`CZF9hooh6Upbv3>se=YMmQ`2FGw_qTh#_yVbV`+)d`_LV>n+|QqG z(9apY$e~{cw+QE_d%gv?h|U6ib9Hy>;{IB`*sMxuLNzkTpKob}F3BUNrtT^ibBK2{ zetq7n3Azs%ZKd`KF6B;WQR1r%s8xx?@>-8Fb*Y$I*;~UF>?Y00m#>Fq^4PCY=mZ%7Vid6#hwx&wnibY{T)I0706@cx3a*YPv6Lphmk}~onM<$a8B?(q2QbxB61I=;Ch85@X{+Lz{@*D;zVxX zZ60)=Q)n(lOhuJP5E$K5dl7~ga`T}2!2D8YUP7XmYbG=PRAHG-iE-%jr&}tFx)B)@ z>5TdfZAqEn(Dll8+CUW&%1yN_gnyN~Q#>)BB5Ktkh|i0fS`i-SofE( z?%Uu7h4GUMcM-W0vfxp*2i9Cu64_cr4zAP~MY7jpO$gEf^$F$k+{3D+Y8^f%D~G{p6S}sY6tc zCdm*e_RRB1Cn4Zyt)ow5%_&MybHoC+sV@!3kZ)Tj{G89+h0!akHyF{HH5=Ojb+r~% zb%n|X1xZFx6jQTyS_lj+fo3+93xRI<%@eG@9H?Vi*g{)Ph~j{ zW*=S@JC_lZ{U_tBter+bZHmn767%qi(=G}*&i_d` z7rFVmnT|^u4C{5tZjK`J{3L#s-5Z;-kNg{WOWZd@cKd82OHiFv!>?vF{h;jMVLD`0 zeLHy(zWwgT4S#dt_YkRJ?1S&5W)ISHKP;5jfat$LKbv*bptqE1ce`$W0~p&s`(KdE z{23~MKN^up--wUKM|1S?QrE>};C$>7-%f}^^8vGFg;eo;Q7a2+;wAn1_;^1Z?}Baf z33n_*<-Ui5z)zBJ!lRq<-qMRtZ&p*m%g>e|=|obJAJOu>>Y}I_rXM#yl7j&3eg5M@ z>MXo#%1@eV$h7Gpy=G|M8pbc4xMZa%Y5Cy%VjBAXH1vHIc>TD`Ev=nK!X@U71Wn*_ zIo&j0V2W#?CSO1dk)V6gU1|q+19REMq2L&R3Ura`bb7V5_%3=9kAJ`g|3G%W&SfPg zh!cd9+815#T+ zlEPL)f)VS+dL}mN!++aJF1Ku^qt>LhWv;l?I5?^viBBNKUBHIf5(jCIROGir$;#M}G45Lwy| zkoP-=*oz~!YbUp(6(GOcxhS|2>_8pL|76FVGMF{Yk7Q(HVYfBKxP}XW3!n=aZ%?)EwBGL|v#tck7hGXbv9|R(#Byu(BRHMTEVe?*K!kt;2s8fr zg)fnqFZ}?g(+Zv_JAljjEw^8p0HpDa2)6{o1nWd#$L}6efRlAX{|Sl2e4S=7Sy6)fNxfdPW)0-~Y;A4b z+I(H-0Z{*gjIsyoVA6~_cm9#uqmT3+b&pLv-g*Kuz!PY!`zLEp0s6b^-G&yxAE=v9 zrw5XwjAE5l&!4G7L(iV=JvSmcfH>-A5i9-`q3Vo;J=of#DaFhS&kJ}f9wz4drcINZ zYg;yFTVf*gF%opqR==ff=zYtUV_O^Bh}RTg`T_@l+q!tm7J+@maQHC5A4p)-Hx2CP z7TfomBTPZRDFWK_#eA8g{7@QdL{oyuGgLvI=ZfbCxmvDRBPaDf!aV6SUHLMemZ{G# zq-H#3A+a9Cc?L~0Kva6F$KM0gC)h8_1ow$4911=vP*+%iI*Q3>FzQjImpjFYSpU$& z5*hU5#h2v6*M#^RA1g8OS51_M$1{jHKU%ulrgLmkkKEb z%^9?*RigvylEA$R8c?P~eU#|+xH9F=WT3ySx-=M5YToJuQ3EltM0J|@@rg}DO2 zGG|ZsOsT&PNmJ$M&wg;cRLZ^k@UAN4iIG-Ghy}cKj;JX{TUC9y_6gbc?vpyUn!7M; zyh+R`tSejt3oc&59GfO2Gi_8%VzqU=0uDi9e|4BR?o}KE<{ZfWmVM#A9RBKGzxwK5 z%@^?W#vTm)K90`f`NHz+5kW8MYeJO2Eq^23Q%3DNx2>^#`!>>r1o+*KV*vh;jaEJU zB%dG^8Si$l6vF%A1@T((diqAgJZ=cr(+=HR5mEo_ZHd=|`-^vg)>NAun~(X6$@AWu zZ#V<~C#7QF+gImJk?lt&Z~uW~`^$@WA0;hC9N`QSlO`p>GA z96KL4a3FyxkdO`^(|yG7{7iiK6w=?|Hg+}u@|gqP zlP(3?PuG)zEAwVDU==v+{-h)=N#&*=6e3)Qusb zWgbryv(ygfrin$%=B|uxqWG!` z#j>CKlU6d%R+;EwN%&gkdp0+ugR}%PO%2s6)^3RbrgO!fg84xLPBCt(RO!TqXA{sq z*gb$-L+yAD5UVz55XkpN+M zB33AjkA0sR#x_)dr-K!27K$HbPUb%&p#kofEpU8#4gU!1(rcq3cI5Zgz#$(dd>=DNGEe9~z0{@0V4j_hE8u_O6jXjed2+>+Q|~|N zGL%+#zWBJIj>DguAR!?_?XGFKJv~cp3-Wa$yygqSo6_E%)_9Z2I_5`tsyI0Swf_Vn z1Sd}9@cJ9dq)!5?KO3+2`{M`~^jyE);|?+;Wgie9QB^?1exEhC-B2%Ta4;0|C*Gf= zzI3BdHC$K!yD_*vkJF4D0emK&di4HA^QI&oD)~G4k5pr_&GV)zlDW{n`ZRk`&m|u-k8~p5F)Eeg7ENvEC~k^n3p<)_>-3LmU9@^8XmpZv~*A zVXbDw>%$9h=T6zIPSD?`H8B46+75yTO)Oh&iFSTWg)R@!=Lm)Jjq~rBX|k*pvXt90 ze6g0L8mkvHEwswhJ~?5wHeVf*c;egBc?Ip_WjrT*%ILu-(Gp#_6d-YCn{z3HwFN~;YMjVyBItG?3FZtd#-!Oo01$Kq1 zAXiJ{Sb_fm#=`rG;$Y8VU)f0H%{_kaKqZd^{NMl21pYDIu;j4V-X}mKUS>rj0sRC2 zn~ae&rgbKU|BK~qfTO@;Dee1}Zk1mhuS!>^YZ}r~_h{$22bu(+AE0=8{E&OFzzdL? z3!nv-B|jj0JbwbMHwxVMHgq?-r#qm2fnzGO5&Bo`AGN9Yx#C&4@}67(2X|6c>yK>E~zC!gZKVgG>t)5oJHoE4`B`HSpdf8j79L+;`7A^%|8+%1IuALv=QUmSnaFI+Q@o_)}=UkU6di@wPp4Y`CB{pAfY{9UMJ zuymPU8ZAqf4j^m~Pb#Yo=f8BWgasa&2N9kU) zm!>rdzk4LWe42>7VI_+91pNKWqZan3$y(cj;twpR$-R_`1yuDL^beuTMok@7tbz7y zGI%s?g96*F5WNBU;K^jQQwkJ)VPHb3|4T@PQm?0)A<=e)@h4AZ7_yXpF{@Sua5}6t zqn4C7>;!KiE>P9|UCKtj@#+SgR|MBobBaY@6x+N$F1&`V{%6=x~I- zcSlK?8vKV{f}sBa_;gO7NodLjjfk3psf-;h<$UlxMw)`GL38{f4F8J@F3AG3kufxh z!weAoCveNif4Z2sF0;aV725yX=jq=TeIWt>3VRxVL00}(|C(&<;~12z2)@poE~Ftx zr$aPS-rQZkmBBNFPy>w!c^ypT2@on1cEf0KZD#xdWqm%~b1|rK~)3{sCLT zerN#1xEGY2FBK0u9g&PuDz5G|Uv*2IfIZLUa+@+i3W?`)`nn#qgZ8B zwlwsT$>(|gb^bPqUJFJvFK;rAc~w9Q%YEH5&>0rW0-nzuoOe>>)_my^;T!v{#$ z4@-e@Jvsey40#*{Rq3ka(>m0W^zv9>09=+=Ne`a8G-lx7k|KmgPoanwQ++6{<<5`s z{F=i6Hh>;ye{M(*HV-){0J2MsAS8leJ)8qWGzUmAf-aDK@1@2g|K%w&dcS;THW9rbBOw*G$&@s-B))qHB|-%fLgU$FI}daTr7{Kwz8~Vl+mdIrWCV| zVq&%{y(D2np%1xD%_er3$1HfMqu?V1l1U0}8( z>Pq6|nCxb>qoSo5Gwre7naAL_P_|6^EuA~=k(Su5wk zgtCJX*5k&^Snj@DCFU5ATi}nnS+->O!mx)Bh7dg|#T?_V4agfHN5KE<{x0}o2t>=; zq%C$c#Z{IQVMHg=5&Dam%RsxxIndJIMyKUhp%9kf9`LiOpU2-rWQ@P)F6pN02FqEX z`({&SSj##wA+Ae&T<{AJmPkz>u%@8w9l$nu3nT&%7y-5KEN zRPTrZp>$CK+)u?n7TvyWv0=uVQN^_5NBq%av8SeeMD#!M&b0uhpwm35rHM~#8A^S% zP#Z5HT%DG6;BC_L{n~hcobZ34d;#188TkSyQRj0ZPoSLF(wQL9tgyEabh8LYGafp5 z<#5SmA9ZMpXC`TrC9dUj=Sa6dAAOw4IY7vLf?NS+JYYV#(8VRtkaHkM%09n1D7Y_I z^F^`Mo&D=L5{R}xlBL1K#hxbtk$g=TGisJrD;oO zb2Kfv;nW1PYaMllYJr~CKCBrHYM-g4@34*eWab`q1a?YB>Jq}j%>T#Mn}1nRWpAG= z?tF7%)Y7W&RNuF{y5H6Pd#}~2zbZ3`2qKf9IFTUADBy^SanCssai>hkLZ-MBq@(e7-9Oh4cblKAKDD2)dxx1!?-Fvzg9ZSYfVx$=DpLOwo zE@%4vU|#M49m|_mADu9Mu)!NTjaGR)1sOv>vUVLHys)BF+Cfx%m6j#`Zx9~)-V}J^ z3cbXY;4fql5x&R=Qt-F0v#+;Jq6b^tUR%&AwgcopQ0Y6nIwy_5c%tly-ww12+1c^fok#gYr-Y3Z9#wucP6py4=67I1g5$pADZjspn%Ta6`GE%B z2ICPF2giiZ6q$`F+3x9@oC{(Sgd_RU6l?Jo#dhUYu$T=-qGqUNK1z%SbZC(tS$hP9 zUPObbF1chrjzUPKmtV(SG2nctnTadHcq7x#~BB8JW&Obxgu5TnpK zc?E4%)dPl$XsaQ|-mc?O5VgQPSk>G^4t7DdbDki+xfz7?cM^oFVSi)ixrc{v1t`DM z>~ZQ9+g$M|icaQwC@8%bQv>ith*8isk}k6jZ31o4RIY~3V|8;mkc|MnAmD4r9;HGS zxdeO~oi0k@gr1)DpYQgr+pA|7nQ@sN{i(A(g-#U8Q&5)a(* z{GJ4&L1XP&lU2m4qkqcU;_iG+b@l2s5*MhM<6(7s6{QeYq_~B8%WKP)EnB*5S>XS> zR4jwel9Gz(b?)?cBzNX_R3R1IfpXt4Pl=ux2@7P;iT+QPNl$(J8I)SiEM&-u}c?E~_Lt}zHd?ZTAbL|c`qlCsFQaEJ78aUkKW=LoV z3*>(T3220mff+~R5lh$zIR43bnxT2g=b*I$3beUB{U`oajS{EkTq9Q7wFR|$Iw<_5 zYS>KWWMqZ9$wGBP@v#!St!W)S0maW6bfmW6cQ0Z_eF&pCW_CnIvfiiiGC0c8#7G*P zSzfVN)C}6=wF2u|-Uzd}Pm`=Sx2IMIl>23U>kOsWz}~mYI5%@#E44*qfO^yBv~L#m zessR*qDW5nVzhoPn$LQ6w`0XL&{yaz$_P+Y-U9R4rP6i;wyFtFc!43}L(iYf7YiC`r7z5$8A?Eax42;O}pyW-d2jE4} z`Z#7zx67X{b104vTWc4hJ#e)Aku_$>@O1`#IH6scrm}VPt^5|CkV&4&`msO|n8}kj z87L@*nm~4gdL_ zciwwX5n}Ta`0SvJVq%#T7s=%?aqkE(a&!F=-swX5D@P-%Hz}p+W4Z*Gpd0yT*=xl&z z-Xgdg5+d-~0jgoxTjb!ui9(Tt!A~N&^+%=Nd;mFhYAfBnp zOa08`vqj|pNARCMH~D;3ua)Od8sFdrlm^o0!wVxY5X{Y>e#5;`)k_C=c12SkkDxE9 z+UrPO3TORF;M8qW3-BX2oEa_nN|fx>m2^ldXiD)w{R*=D*^#;&>I^~h0X|YDx`(LE z**}OL|A7OY{VBh@rq}BJeQme~RlSGd@C~7UAuPaUh?UhS2{e_ zrG#GHUMUYh+>LqxUD68VO5U+UOas3i*Yft_fs%CjJ6ro($dscd>gN2D`Nk(ONeTY@ zJORar^LZ*RMqM!61Q*|j7F-eqxFTf$|E^#K65t7tVhE3x(pwl}<%s;kZFmZRC2=HQ z0S~9>%0?(K1ON!&`Ss@$s4~C9t)^#M{sLw#^eN|o+yxGHfr@jE8o6L@WHO;5_(*6| z9#3@xR(ynceI&*&JwIqpv_I>=Xs+t<@CHCJpn-?!`RV}GaJ71hiJPYDv1KJ`SG5=C zhy}Y&pB{>qvn*f*v7yN`MQR>f*-yQ`xZ=$PtA(F?d@Pz%1A9i3gJ zPP{C5!?{;afpx{iZ!^umTEt$4+y&Il%%4j;u;TJM5VdVw2pLnH4?4LG!olp1lpZS_ z6Lmh)EG)kPaY5fYFJC1x9pCJWBT? z#eZ^(?t~zR-49K5XWW$${aRaKS< zXvVdFs)7{3h(8Y#a0WG+!oNRJB^G^xz_fq0oGLXvL2@8#rOvl%z)wDzYvVe=Z4gKq zs0gDvR0Jz1`?o#3f(~f|yHC%_Y(XA6?p<2>lQ^v!MpSjI1J<y& z`|TWdL1Dt7Qah-r^Dq%xIn;|c+UG^Fn>g3yB}hU<|IE-JNI+|M#x5wP8@L5<4V;?l zpQ^=s)0r$yOp;!q;(Gl)wF))u^-guUmv{p5ylF~-I06tB2%#*62cJUmsLC1OJ)QuF z1g%oq%F;48qk~i6RZ|VjPZYmY*qL-9gJ|rsk@&mqF(%{I2CQa9GmL(~TtQ;4 zwiqCGdxkZy1?*#I!dnq2CxHEw!SA>io5?lSw<{@g zk&e(8#B*tuYi>U=Pa#Xg30ft3@(<>9*3|_5?WZ?Ra<&)Nw-up1P-tA2J>e548he~EsG!L-=l7X`w z2?G5oykHNePvD$l3l?YvkU`+Lj6gR9)9bSZOkc;@A%};_22hmH;SUj}mwRO6M)C+K zTc~@5HY4@*97zSbjoi<9nnryF!~4B^aJSrDw|~anBo?^UEry9zZe_A6tSnYcNR>Y< z^GlOu6H9Z7?3M1kt9$3EJL(b$tIaJV7ZKK0TJfRIw+F zr!0GV9`kzg1mZPhhvv%>B@}NQ0Y-xI=BC1H74}!en1SfbP{E4@l6OxvdD!uJ?W1D& zQz-!D_d@PkCF9%xeQZI4hD7^vDx#%&9U=!kDe{mQJ~YySWLAnOXk9;hAr0xLnJNOj}ZexSIkY&^-yt_&_N4eE|W-W7}!#P}B` z#Uv!lVL^>;H~_!Z4-#6pD+7#ZL6g@2Bp~wFduMMUsEHbYN8#}GGbbk|UOx{oCm{Mi zDo2yFXhvcNU}Z4|mc#ug9RS;gXezc9dDRN8nsl=nT0~8-kHR~*U@5(K5mo?Umx$Iu z>K{1jCsj!6hX0>_7(Plr_TcmCCzl`s_)q<3^TY%A{0mY5zW5v;9Su9DRA`5GpU?&5 z4=t1j()^Jc%lnAHNkwi#_h{)c+=$8s0HOme-MHB7Z5~mnTaez8?QP0yCEpbeE!BJH z)j(YrUJSIBOl9S0J`}g0VdZlw9PLA8+`XRc0AO!^q-?&mGMG3gHy}CUj}1KyJwW(f z#rP70^MTXPKGS|SeJ*=8e{KY9jSHCf0fUF$Ujvu(cM1$XVd(>&;`PZ3o#(~fV{M4Q}hOVD8x%fQ8%yxh!-yxF>qwy1gy9iF3s>knSAs?8?a)>zRaWc%-Sj zE%F!X0Dk8}{t+Ue4P3_Z8|PAUb%Qwnjvbw->X-4ZvHxUuYiCOf-?KX9OQ`m{kJC^5 z$3w#E(unv7#O^<+UX(M(U92m}&vWD6L%93Bg|fvJ(326b&pX5d-P<)DKb}2FcVYPZ z3!_T%7izc1HI~$~6yx({9_c`eEBT;p~5JEx;oC2H2z9%G!;!74B zhv@><^0htCoLgYUlvpz|^w_Axm9Jb?G&%x7QDT2LFluGznyDL2V>5IMCAyp0%TC%3 zd-lq}z{a>XGh0%D$lb+qSH&Pm%@#wQGQqnT<%+>;Xe(YP^ohAHbT8bkWo&g;m=Q0% zeBpIMc~M=!%y_;`PJwRx8oLBtfT3^OHYZ%*ufpZ$qP3M@r;38QPHF5b8)D3UhklEW z=J&t=)(>QE=x;YdZjH9`_h+*!>8vm}M!&lf7$opFrUPsc>?YLToH6{(N?^W43>nSL zXcJI^eLw~&fI;*CKI{j0usdu!<42&FAJ<&iHO9hz;p*+WMDEo8`qh_TUYYs7{`dcF zmcTxD>CY$vwgiZf1Ni3Ou6;}5zfhBLt)r53iH)1 z)c+TN`-p_y2y^Y? zQLi3%rq8>jDYuw~$o;u7oMya3&e>}OIt?Lq(uHqiTrZx(KooWb(`YlL-xZu2q)1X%6E{!V?6-xcuEFkG~Ut_$^B)l z7=J1yOTwKjPo6y4C6GUlyEoCF;4b#;ZWc%YrkxA`-vz)^{4h(%@GnVZp$zH5`6T2d z_!q4-^-A!6)u&w&`^)_M+%E}P0ROH0GW=^bXhsaD-eAnMc@~8f5ng8w;iMnaGZw$p(4Nw=ms|2Hz`CnrS zba!O^3)yRRj8AneMrG;z7Mo(HaRvqZ6~Dp|7OY1MONYzoQ0=}w7`^BZVTaVsB9_ry z(;ODH74Qp87jleYWZQ)~;eWTg!A^q97S*2uGY8!0tTWiG5$8&t=5dl=iF* zioC}i83Vk7N@|G@Fi$72BjRSir^>fW2TYX;bViEkaWeT4454dZw_BC%xpE%zk6TfGj9XNLa0rv>fHN#Ra1pw_8_ReDsCI}laMleU*-o@A@F-|`K z@J}La?w|T+%rzM;*f5GRXriel2~dyEc#QtwZ3H7g@D}SN+-Z?dt6k=a*ryC53c`Tl ziIg5WQh?o43wtPbPplfuSBEggIp`n~>snE&?|8|B&9NDe@@ zp|pNOdp$P{e}`rM+YKD$M(SqXW0mzfYqPs+a-FOJvFEER`aihUVO4GAs#U92uIdn& zZ!gc5sg$08d%kqo7#NI}EV;`QnJ+Ox12EiKC+VLY00rv*Bizw=@kJ`@F@zV8{!%c` zLH#YBYl;D46kG?icgGSS!iYkAiqUIA$WP8Azy#Rd9z!J_3)@eU0br@gJh%su{Zskx zLZvSD@wb2f#6Bw$&T~)0FrO9ywtBSR@pQ!un}}_ks_MyAW=+awt;Jb0Z9nlp$MzZ< z-xHR`!`Rv}W9x;~z!^A{u{HNNmGH@Yy0+Lw(dB7x^_JGx1qJNmMrE@KzY41Z>oH^( zn&Ha=mMtbPAHwxS@CVi|8>9%p(v%|k?sU`klsz3z59uIndrcvJR%jr*Kx?!e*v}3! zwPk$^LjTH_pVP+o7$w5}64u6>Fc2Zs;YwZfpl=<-8(kKR6#@kE3sx&C&j!|7vM+l{ zmy4*H9ZJbA!ua6$SUsE2J?o=yKqt&BQ-L}AI8eN@9fSyUN_}CQeHJpu3R(S{u!Y~R zpP1qR$zC(}hbbztS7zVz?{+ME>bx8w7$Qg#VTsLH4h0+C8RZ}gzi6}J7|qEc;9p-X z#ILM?*CqWA1`_V^XX`O@6YoHFE*A6B9H8`*Qi_m)_j>- zH~@&CG9otOiK)yRFffU`zNa94cCqvU!p&u}0Nh9J!&{+rL+`eH04W1ry7URkfS+cU z5_|yJ=Vc=FT~tp<1=x;jQZ?W_Zofd0K9POsQRr$sxd5d{9?l;rJxZy*1<;91hSa1@ zfd7ws1WXGH)a#|3;h~b3%JgPX!=xQi4MQ)QHhwa>%jP@)DsRaPBmkY6=7)L&?v=Dd zp$^=4ac_{Z=zJXkuTXOay(pe7!CqVVDP-z@qgw zwmP%CgB0~Y=^@cSI6f$J=kIIQ=gGRqncfuS2M@^C5VUGBt7#mRUtvE* z<-rr&#q5foZ3;GMaR$M$S$0~;20NE-bHp9_>|(9ao=mUegV71Ok$<$GYgcF&$vw6E zpnrw^F#R|=L&iW%peCUx-8uI)sSgU@qx}bMn(+O#YuPtt@Rq;UWS$_Zzg;_3D6|mT!iW$H3OvM2DTGl`!C;nFkc48|6hd%0f;yN=H}!EFtK>*1pLyW zPylLwuL3Q5trA)1(EfuQ0>Lx&!!Z99zE_ce33%qH{uS+hC&wd@^nEYG7m$+k-kR*6 zY@CuO02+Hf)#SZyK75=4%Iq^rU5<)QT@6Z&=JmQ>GxnCbH6m>J2MCJeA~<{c4dz6u z&);a$T%*gmhkGE!JupFJJ)>+ui-aDvblx=C+b!7osx!l@hoywJpV)Mgsg(V@loYgH zz+3_3{#zkgUR~V_WnN(&V)8=##rZyM|J=mc9=M*;zh|Vzqt|P$3L9>^J5?dspK5-k zlc&N-sw12{=_cz+`^O(rOq7B5zMqMxuL=rP`A@o&9pA1;sy@{GO3qF6r2fN&2w6f2 zhAf=&Js^H9OqCO_ zG%D8QvsDB1ZuU2E>s)KofwskqMDzDhe%j*k{}_v}zx*;W`j`I>%jdxMNF`07=n?!D zLWgDs2(QRw^}8YOi@e7Q?J;63Q<<{t*xCJC9bkWE-pZbpy&I2A*gr)!K+}?};lN_p zUDF|o(n}7Y#n3dPSynVxgYB`1lbSiLsjO$Fr$E_OZIC5qtd@Y*7g0}3h`%WdTxPpL z`G}}FSTS@1&zhNwyW2cu`N#n%-~kjiFE>D9UWQy51bhQ0WjDaP(gb3v0Qvj75frG~ z#yz_y5dsr_aDa0!gNc*xoi9vbKpmJ7VR|h_4^;nH5ryQ*AT?n_=-%po%cu(b6NZvv z5dUh~`v7uF;y-Y}ILV9-9Fz(ZInamU7@8Iu^5{p~lt`N=@*&uX=n7`fv11-Rqzs5Y zAIL>q{dqtb(RIS>{&+>n`hm!L-2nP4uY?m-`nQxGuC~NMtY6}nHkOHh4aeRs8(MBK zU3k4iw7tA)C2+m68n|ApPS<$Ay1Tnc&c4$2*COBN?x_e=cGlGua0jLPd$aYG4fkzW zj}je-lqhlmIIo&uT|p{;0++ml2vUWj#SgSC=$>1&+R|Iy_KMhyin_Z88^lgbAzDYanc^NSvUHCcon+ zhRyt75)0hsTFf#i?k{iLh&Vra2piiZ>c^6N6+rs>;$BaheppxKHm;*IUui8GeeUiA zjNV72Z+I0x68=`L1f#D^R~3Ns%JStaRunO^-r(P+e;w@krqU#q2 NRPG{6KfkNE zGr7Zo(t+rA-0>fsJ5+qD#ZVWAo*_K9z|3p2sD;w8q&teG;r^+E(2rmzyCVxUM}W`5 z?s^grDQVUz0(iK6NJZ~qg)EYPiNTyqgJ}l?x`rK%Kg#V}C>IrTLg#~ze-iZ#IKm3G zAx5@$!JrK>iAbGx7ISQnDTf)amS&BSdLV|>S+KTCJEg6vozr+B1sSMkT|s|DPb37c zzK8yaf}gvqEUL$AV!Nvk+&xYJ%FIekO1O3-*q9b^k{#-%7wP3~n`L{-0F`lC(R?-y zbQZtVVat}Lr_kuPU4>i2v;tpocO52l3&OTJW@Fl041*cG#V%+F18c_&Nb4=QJ)$$% zc8)2q9ttuCfvtR<^5w1mwcxsH1(?VH@97wFi(k&`+R!jaofGKO1uPfrZME&W%z>hw zBIa=iCVg^p?RV-2Xb!^#IRbqV*J!7Kizp?-IVNq&G4fEzfHxw6N_e$!5J1*t&X@%! z6#?PunkLC7;2n_V=gQB_x8VEPvtSA=A+UE&*(8aI*JTG`8ToUi^H3a#PfAi)rO3{M zzekmnF9;*Mh-gKXFy~tr9QKSOQc`;B?OaSo_wKNQ?Qj+u!F3)cf@;xJNYMU+1}Msi z(ZxpQgCbTlz=p?;1fk-=vN7XH3wk); zSyO)`rcURP?9nnn(4j5r5E8ZGpfzA3QFu3A)yt6=p}gYp1tTQR%Y~#7y+F{eC_VLL z@l;NsS5>x5V3AA7PI2o4RCGxX_9;`x8{)9i_6c+^P|Kv1(rD$zWnN7B!w1xYOGl3t zM^7H>5r41hmBIU>s>c3YP6&OT8oqF}tx-u>CDK2K<1P^fCt6PyJ%f90f$hm|ac{;2 zY5)G&3M)YND)B+A|5*1Ksqfc+x3n4X#Q?k+;h7;K zA3m&$N>5US`=FvpcCn&ID!gCj33G^V_n^dD(9V-9OMV8ywz}Lwpzq?sZwbefV6TUE z&YpjRIJ}e+_DLDly40bm2c!2g3cWBkD=hpj%q=A2riTZhPeyB) zgP0)7Tg;$kCEGO%BxEGaDeKj^;DF0v8Oqv$U95(jGRRqS*v>-TQn<#%mZVih);4A3 zIg_kzMf<6R#XdsS!0iYoS!OXOuCH|pylE?kCj_4fyc6FKSFxuf7Bx7|4)&cw@6ZO& z&K8u%XwRe`sMAT_&VGZPTqo4|RCc?Fj00Wc*x(9uX7($jl0OTYP7FgE#Fm|(&yJYw zE-RlMJF|;tF!t>>aI@k{-ASVLaiyrZ!?wVQ0S0q89u>aXl%+B&{cLh2v$>3a0jJ@M zoUKE+&#;0x5tISY-N;O=PZ!Bx;YO7P6OM^Gh~dxkxNZEwnFowpF0w;^9~=Z*e!d}b z3w>HZ{+j=G1V*z^xMkY=>qA1}H*NyMNx84wWG1^ADA-pKBFn!o1H+MGo73U@`Dgdj zEy8a<34H^{V-_~(u6-iBT0J2H)nTDlTCG;<;AuxBp1CqS`XCq%ftwK@7y4v+SBo6R zw<{9D!+E<5rJm~Wi1a1h&>QOadOZc|`>6Fb7!!4#oCuR`g7v3>tf#6d)=i!2OzHiN zR8LOQnTJ_#mNy&TSES zz1-fs(6;J-(V>x=Bxw`DVM_fnU!kv^zyr_?<|7J8OrM z50mKiwUOUX!R=l`V6UD!@$Ue3`{;lCi~iU0z(B@`(Roe$k5$Fzf5^X2sLNLayMO=v z_r-S!arq&hr0;mFc&?mr>m|}BmygLj6yG+@C!}Z6eN)3t#B&?I8RKbXhG*9tOICza zwK^oGfkFlCS85-%*dO#`PLG-y9~unl_STH73}%4gQqX)!e^D#dF3hOKUS>Xe$*k$o z8k^RnwOd9j46_aGrgicMDEZ~@LHn7PORxL`fBt8~>VJuG_g#9$In&y+V7Gu(-_W{yssVSR_Um~85H#{jYxc4@f#f=<%66>9_Xa_;^sFxk_ zwsKrWq}6(;^5FU0cGh=tgaG*zf%v%t?F+RDM1VtqlPb8*UMvr@JTU#a9P$Ay;HNJR zu?~PvLN;znwXY`d9XJ7`Ab;O5JzvgpVNpYa@Zgd@@IBTP3;P;^FW6$@4^tjFp(rrv z@CvCPq&nG<1=R)G4+oHuash`TPg$l|CKD_iMeSV39Y!R?W*CvrQLgB@-^W;~2#|`I z3c2%v8h>2FOE10jiZ`|fvG$5W?GBYam)7VS)zX$$fq%=EIi&W%h0B-u<@t)SmFT$Z zvvSocM)|7l>WMWOJo$U>@oUk62WIB$6i>G@am9wk7Cjz_$cqHNk&t@0zarEg$c`sj z9&3m}S@P{IwXIU3M$x!owTnQ&&LDhEVJV67B@YxJc#2dJnxYKf4#L_GjgW^f2(JOc zYPPdwVRv!q9|pb;3wA4lMO-|4c+BXOT2@dUWKYh!BJAt}*U~*Q#)3ZD$bc6>^PC1u zPx!vr$qr_P#}kqYPeJU5>Rf>?LLqku{SSfZQ~V5s&@ke|_FA;;!}i-rgMWa5A2ygs zkY7K!K#U)NzbR~Xn}(taKX+wQxF5d!{rB^^-*2p=#V?_OoM60PpTeK7ZCHTvBB0Er+4_C_CwG83zipe3GL|Baiu_#L`j+5eI)luv{uHcU^Sly5;x{6bg^ z_!xA`U_5^|#DjJEcqY*u#Q*@0C}yD0x`_8@Uhj&9FZ2SsKU*Lu>_}h4XeltTYRmxj znSok=US;=2Fmaf%=;RyW&6;G)FJN_znw2HHNSsAa=%e%w#Co)lEdx=yX9|A4OFZ;F zg6tRH_ZM&bz>?sV4X*+4W`XvP$%Pl#w^;k9{*%_F@TvQ(^|}9|4C>FfHRgH($lB`M zJRL=jV^Vz>LwKmWbK>Fbkyz0k3<}OKJ^onsc-U1P7uP-@z{fk+RB-H3wfCD`*K%98 z_aZ;9r@u#jd|hrbnu%a=Wj~br9AsQNMDacJ>3E?KoIc!r8sR#Dd)#v1>TooHsFkUu zssvwl3{CuJjuo`u1t4(?x`XKz5T`!hvk61ffW9K+;kmj%JWxI(zui4I0gxA%&*9S- zI0-lboPDL@h*=LA>~GO@USWEN9X+D{AtMF87X1z4+z*+bn%+TTo|Y(f7#Cr{%RPc? zkWN8bwfmtIln#)M(-=_IAhF@|pff1Qizl;&j-a&HO6^rKTx91o6{?WuWIXH|ewE+4qik&;)p8|ZUwo+_$ zTbf%32~wN=mL@N}ONjDc`q+JP3!oq5FDgD>06jZAO&^30D@vnxA7mF7ybqN_;rCyY zIvg@w-FK@-xOH!p-lm$idyDcAjOWV@U~GIFsaV!xc>!p6X1$5$$QAQQ9~ z`VXe0P1QTDoV6m;dbG6IRogSj1zpU4)V606aC<{=UJyYU?K1j1v!k;7XV_a1z;*+# zbE|a70`01eoGs#ZVR=7WGp_*fet{hk`-z13^e2zFe)da#qVehpQ2dD#@Ifmn0ri~fd8EO& zT#Gn*1r+Z(z6^@bLNBW;M;j#R@-9#^hiMPQ%(|5x5o2`T1m9ghnP~R|sJ#-!;8Kdo zmrk7w!1k`**>X?wmI?Thr7_u1yO1N<4gAO^uhLLkQiF2mOXr}o=jSVOySejyU_8>7 zG(l^K$nX^rcxwy?fP4VV^&8f3O~KMSA%EpxX{ZA7+GY*V z8e?3i)sqI^%QG{V@oZWPl>4nlBet$iZFuC$T+5_^hS?genFHw(XZ{}IpZ^DZ|J~mN z_an$(ATW+m8o{~7VRvV|YAc-;+0&bk)smRbY=d5eBARMF0GJ6jZBNlHR_z(zrTD(z zUDYC%?~uJZZC__*h@xS{)OXJ_T&-heBkvyXnvRqi(tjHX;g6d=%`U*}s`h4@iZQrb z-gq#*+ue~yJ~6kEcqHG3Z8IRi3wPUB#iaI8Y#uXww2nhlu7@lDf_949^CiH4J4*)Q z&-UCJ50;^%FSCQ}N*XeqWd0X>{-7JdIoYguVLZQWwu3aMRQ^cVQ(8YV-|+lBBzuDu zesBFrf&M4=c7P+q=;P1^^!J~l7BB!M--nPmVf_8n9m8^=c#y^H$D(AILZ4J9Cl@|H zJSKP~l`-jzks5hq7z+tYNyZXzN>s!lk)UObDSy$USzLM!E#u_Hj2!qe;J&2wrGR%_ z`U)w-FhP4r_3BDr4QX9+cuSqjAZ2?>vgONLD;(wZik0(Ltz4;3j1{k5l@X{+Y|CWP$#<6_#&c35kdZ z@E_Y6EhJ&#ty`g@BOnL%Pqzh?t&8wE1N{d~tpufNsO%!#2a;4hE`Wp@Nhw2r=Pg*! z!so*C!tuNv3JP+zMgIGL#(}H8&m`QgZz~vG`PHfD`sl|5iJbp3B8(g`HO;K5|H?pwX`x0a}YXm!gbk z&=H7+iZFjdz0HI!4 zJqWr#_SoZ(`^R$h_3Og;4Egwoy^igjsv7b66CDUGbp96dZhbUpxdIPqZhi;M9DnLEfZy4*wWNH#Hlr@?b% zd9vACql(bWa<{>eHXluP3)Pbfn<1=3UT!AeA+Fy6X?o!<1XDi&{ z%YJ6D_SOBZ+ar9Ga2u>8#ofZjCfvqJ9K_pKkoj}-v= z&z(W2{bxe2{8^~|1YGy*1S)m#-OJ!}%Bs!5^UU>tgmnXmA+({ocf@ngh^lu0=cR6^ z=oUTSPkT91brNOIp}Ql~F17aQY>F2pp=HtN{OO4(;P_hS49ad@=v+ubl07w~aJ7U^ z&z(DUzC#w3BXV(n-`|u?7jgAf1@rB8}8)x`KA%;@v8CWp-#POyISLQ)TSq&O)fQ} z=cvu7eMTBhJEq~8|3A?Fl+)fhRUwW}LVIcQWDmmoe4`d9a^9EEqTkO+Xs>oU9TmGn zDNRg%=1k1e0pND_`3rF@8ToRN_uDGEB9*yeH?sJ5tW`I$xPr)-|q zcA0s$g_-0sp>`T_TztK3~C;{#f6-4 zH*1sDnaRm2@Gs%>T6~?kapKGI#m0dSb2RSEaRRG?^Lp_SbJ|5fUK@3;U810}iC`6A zzHX=2(GeH!u@Fh-8&ZFQFum|OcpU-zTNV1lo)8%r z)F2`I$geM<+4bb8Hi$>8febzI1u?XS1VN6aGAMN92%w0_hCf<5Mr@@b4WkT+p&>xKc#lvcrC>LR)e}xVe*Cz5v3VSt zJ;O^c<)mZ0aw5EPo1u1%Xv>P#w^~bDQO3T5pq*b4R<;Q4hE=82sMnX*tO2s;cQXa8 z$5QRxbs1#(T7;Kw!{~iVduIT5-gjTvm@-uE+j#%R41B6s^kyIB?8+wb*4Vs7)#J8o z@vs`n8_%{8-&R~Z-_}Dqs%9iel0FWt`CxBRc%xZV&6$f(K%LLVW5HQiR z+L~~wfbT8+&8t1m;swj zr+BV!*9zMd4cEWz9uNG+hK_mk(PkD-9^)7tsQo#m`~|SpPZR8_X^n7w4C0ND5Eu%+LXi zgVk%6)N56K{p<6wh=4K5MUD@;LHQp8y1@d`vN-tpSFInZQB>ww$cOJ`gCStN9jR`Jjp`^A^FlyBx=mw9~zWG4v9&FORKd?<*eTIY8J@9+ug24xqi&bwP z*i83$|O-owgyQpwME5qYGNT+EE^Z?xyW^nmU>40Mr0A<6on5QERncfiez~f3$6=25>R}MYt@)+03|He*-8B6S0sp2DM%?pGx zI5J-qnHSYxX8i4QCpDYjd<5~Ufans1&&*GtBmmpSfwRcTsY;a~0_b?mAi}TL=OD$~ zo^k6x#SJp_?JrI^n8W$@MLO%?mkoZN;dzDWVa;<7-0ULVB;5n1_F=J@NoMnzGy(}l z^w=&+!|mFMXrJvFZ}iM%!H>&sMxn%{Bq#mz@ne2*?)m=Hhkh| z$8^qL?>;yvxjF%%AY54pf)b{>a#d7(!%>0qf{vPCjju##hS5xlyv6RRIj-t=gzdw% z|0EW^oCD?;7)&i8o}lZEn>UHO-Vhys6i8^O&}x{4K^)&fzb2N8u051|CCC5#*Fi!& ze0&@Qy%QB|Sk&=~v}iR5;ERmk@-d2^`I2hk6Zl zEyF{QyxGA8U7J^XgPi3bX%J&za z-kr>e#mh6I6!@M+;$5#s8ax&2T({Kex(N)LfP$vh;8PC$Dggu++hN5GA6 z72WHsRRKF7csFDY0ek{!+J3brpTLP%+b6PL5?lf)rR!??=P5p){LuL^rEDEJ@i+tI z3b5q(@BR|L3pdLIY*6;0o?Ub%|)qt#s$R@0`d3?E+?`-+}ABC)WM&Z4}iK9 z6`o8UN@K&!1>emTAaw7(8i_4g&3SegbrXX}s3Tw2xZ38r|PV;@^C^`U-*6e~8ClH7~#~ z<^`}MbL?9D0K&t_+ZE$ffgT4&3-Ai0%gWUsYilxt2Qymb$H%m+y=-7b)fOF=ur~is zY>pf440b*{g&kn)?ELX8wk3YAkaGf5R{^LN1A#K7%>$;f&10~CAfCr%=7i=Yjc*n4 zI5YeBL2y1{!#sY6eRM2yVK?ROG{c~g%=`hNez1(@9edTaJJyj>@wFcZc{v|+RNx!J z?)f&alWI@kLr&U2#Qrv6wV{5o{pDYn7LYLPKL8$00KV)mssTd%Ym-?I*7tk=nN`1n zd~*XB*2j8LR7EzLRi|q~$6sLKNX1qx#$w?A50Pz%;iiCvtRsyhv{FnHxOEupUj=hL zO~ge?M&U^1=_4w0JYwM%AvgjkFd(1(7ejYOo+L36p<)g40e}JdxZ}fe0|5VDCV=l= z&ZS}hYJdf0*q^czqU)1x-||b#%a*zTSs#V96~jjBUb#y2Zoks4LI{sc?^RxsY^ztJ zrhYd$_jfCje0Nw|z6XXl>Gp*1!@3fs)~IebWGMJvBKYg`4f%Z|fMt9GjQDsM{0##6 zMpO5j%9}TD$~L<#WAX{eHvrd>QBWrSR`7R1I6pivjHxDbO=?6Q*}R0IF5qr<9eMCn z!>h80W}X$ZSB}1zuo!|V5&lKd1)wmFnEqPABA1ystXZu#!%?~Q_!LxEkGY*)OVVuZ zY}>9%*7Ogy(6z4V>@qHE(M8eQQLzi#QQE$v*q*{O$YFBIxD*-T)@WMl=V*nwKbX&{ zg~X5Lw{J=}=bQ5TOO}aGHhu+f%7#E7ACZC$2{QLV!F>Kq+MZbcy#;~%+}sM`?&=za z@Y`$JtNW|UD_5?{khgE>KZhp)8b(z!%kyQ)a=)xbB%e>dw5AyT(xqWZSFHRy?{rM= zlmdQs$I$UR_&d(?^FnyBqNmBd(8Q6z!c;a7f>7|lSx`(j%~sZy9G5{p zeXCpy@({2~JOw)_BVY7?3~L?9TN`u3_yQdZrN!KJc<$^e(mv=~b41%X7df>YWp90D z{mVC?y&%SWc2y!grKHRzP`qBz0ybjHkaL$2c~6PF>j>6mr{~+HYu*N7_bA)P4q-Yy z-R5lBAbc;+hKvn%=7QyyVDBiJWo`jBs0_C94s`bH^irLbSvz$!QtW3al5r;fG@WDs zP~^{$tH5?N7Xf?u*Zx_~0fj;2C6JSVc_zlFlw45)6enOgDaMtlgQn=jXz>7^#&CsElL9=uR zVa6jqmmQXzMtFMSNbTs6BX|1vZ&uQN`uj8J`w73j5mS5iay#U8pgv^=>J(7aSj6>nc@ zJ&>L|k_u%(4V(@FU9suYQ`4jB3|V0lU{!@Vda0TUl<>p5bzZsw8bh)RoQyYEwnjX9f5+CrecG<9UK7&08R|+ z@^n5f+2dINe&}K%{D23b?0c92%&-AouU!v8!})gcgUjFtLJ$yvfRAR0`OnUFW`;Po zemXbG&6F!^5B*jb2$vuWR;l>N);jK5r(;hIWv4Ui_l&IME5 zaX-`GK%ELMLX|^wqyI_YtuNGf+wHMm7JrVvGG8n0ehn@M`Ayd1HqgL?pg~MLQS57Yu7s8RxK#(Zd9+|xOoFw!SKx+_zt22VNek-`%CG2 zviX}toE2~W@kjSl4I(&M0L4$OpED%bYq$)4Iq|ADRrcPi?X=MncqLO67z?V!bs%~{ zB~#Qp8_x3r^s8|miZV+38GZwl_B$Ql9VTuLe_g1VG=MVxgMtM9w4YCO$lZthpPgzO z%};)VX@=K^w(K}45d}i@n-U8yCz>RPhVy@|NPV&Rr3H!1 zo7Bi-(6l`m!kZ~AJEa0EdH?L%g0ygo@|OPmnDKt%2)9Iju18CrRB;>X*5>KCM}d5vjZe&H-Z!7boiaKS16Of35!#)eim7*-t1i*#GW_pMLPL_oEQL z67EsVgErv)l2XeqVQ7A*e?2~e>+VKHt^t2N`PN;ZC*HpKnyjeZH+ht0lt&6jK}9Yq zhZ?^BdY%ylc>LtWvM11gHF!Zh@ zWgdZ&a639u1Pjbim0XXkRzJSL@Hz9lFa>1AvaT*$mszm`%yy+tGvojc)-iGwKzswf zBaO#-w932)I=36A>OHHpC+o*EV+MHkUS#VyEhpw9OB%;Sjae3gy+MsD-~`e2EgTEr zXE!dwsP`_$?^zSKCLr^+BL3prTHs%m`J!2_op>(`%L}@50Lz@yG7MHA1SRmw3!pT9Fa!gB0fLPGj-g-`Zr(kcH87Dz6@GRBEpJgg4faOgpeG)1_(`pBU z;$95Le?Ra7h{MmIr;2?26R(H_fU}Mn_bSSk@(TD?pTc&f<;w~a+6$}F)y{YTt5=6L z3&j*Sy7=8|nF{|?N&Oyk0F=T1K9;v%SKM1sAUs=Ng~G1_cLPLQ+IU~SaqRw$pnrwW z#pOpUzJ?+lpB_$t1d;sy)&Qe2zy^S5`9MSIt>_`axvXx-sKQ*9uyk{~A#X;O&%dMd zVErNS1s=kJmMWebNMAL~2>@IV4>in4!(fX^_V57~u#rs~4W{nF-w#&(-P&l}>H7@z z`@e|?Kouaoq^sf@-S$P1yTF3Qm=MS3vMGtB3VsDarF?5uz70w$xy>nJe3S-2F2BKj z5T{^MN2CHO+ie_^t3(cy4e$!?gIUlrAArg7`FqoK?%vY6d&9bsd)D29*M<8|!hUCM z!v8|re4W*$Rjd7~WM#IhSlL@qUcP)qw!FMdK7d-3XP|2ab^_1|*JP+ozcR!x;5u&12O2 zqa91b#gO+;|8sN%$b`pik34?!1gL%^F~Tu>>h<88b1dKyh;5^cSHSJ70$=v+>*5UP zK&!#oCTTupDr3>Bo;}6y_9jpICt7T+-ZdefU|+Po;o6IBQk~X|8DD^W1a|h*o$2}b2teAL zQQyX&_yl}kumkv-EMk2SdrEjOV~|ij#<=nX!2G&kh`byy0Z=DTF`h&_Yd|93^ac%- z%T&nW^y>Oqp$W%o7mM)A&7swbBa*fde+P?NtB-aMmc=V#|3IK{k?o+J;-E!KP_Sc! z9;l$FZ8`xXWgURt6zNa#pi$OQ#G%& z9dVM*j^2ZSO6#OV7Lex1XcQAcQ3S#O%K4)>03O8)@Hn5x9}AB+Z~{CoM}Xf|(d$2( z%k3}rNTZJ2vUz$<(LNYxHp0PWylNd@Kgy1wO)&&sKnc11Bi8)PAAN{&bXD`!bq`h4 zW*vnvs?0onI76X6JYDC7B(6apu0i$4QE>a@(MIG3sO6WLbxez62m#1*EkyuLd2_YQ zRiJVkT45`XQKBz7(q>TZeoFDaD!s-La)QFsEj;0aOR$=G#i6?VhkT^+ae%Ca9?rwk zzWqIf@u5dNrL=uH*h24fbu zm;z9s+d^H_&O@Y)>2;Ak*d}4WibERb%>(^y&FI*LLm-~mmaPS^G0)&G4R8K5X6WM? z@*h_|`skyN{YN#Ec_0sjG<^y6dE80mix=N>?~j1=^)&H3y+^%!mAcQVRQ)!x*+}zU zup|IrJxE@Io=weqbSK^f+v`bX4T9VR7|8$tP&gwIYwp~+?CkA4^F03m{D|_^3Rt3< zNH1SSvZ!2X7@>F#sZp91jY}=e3UR1KntPGPNaMpx$(CHQd}^Xye4TThm2AKO*3|A zJU-5|E;GYl$X6w;GyxjS?aMkH&DW$5^kMnCE5ka?;M3vabb+1dqF`6McE-77-OnE^ z+IQ0CCpznht_y&~A)G<^KbEu2UeuMZ$Bhb&+M0Khatx(4{?#QWU0We{C{eS~Q6 z4I6F>{nw?Ne)Hx{_uY_K1170XmbVnzsvv)gsQr}wC>3@h&P@GZ8`5`^)Z65V;?*jE zUs10z=s&~OEeK~PE+^$bfMCnOS(nws7@)#lUc&=`10VzZ*E{WYyVL2CwB9ZCfc?#W zuNOa|Ux7M6%0U^Cy7pw9XggW&r#u<}q7P&;4aAnQ3K6uS93ejm-KG%v+Yok=v)Sw2 zvk6HE6Xycp{iH?ty@d46!yaf@T93`jS?w5pWw*(l2T35j(I)}On*W<5ET}ME%1Wg# zxHsnMeP-^yIO?2F=^dmoP@F6C4xAwO!7Dk4-hc|TbORk+1d_#t*Eczh`k;sq2~Lgt zWbKswwrsK@E&XC5BauJpI|e262SoM~lKNGfu*i!pi3C0*SsohRE17`7%hiGyUj^3- zJ{RK;1k@DyuXz1$z#lp31n!sH(bNCyUw`J0vDgDY|IC7DAnwNz`FN~w9{=y`hkuDI z0`nBeVPH>$_#~8G{O%?RC}THn;4&~LQgj&jZx>v@c3tizOE3_9<(ura2|TOwKSNw>k7}kxJEPsH5i&a1R5F%9yL}< z9cQOBfX$3A0&99$2in2oI0KYsFvlLK*?GwHALS^%eqe%oxe@Sc z>`6Hq=Kbz;e2VXiyU5Ehq~iqKh4RPZ9A-T$mBHUMPl3$;eD|$}0<^-M6?O=Rg+2dy zZ~~zN%?cJUVJWT=bg&I}!nv=IlOgP`*%xtLUi=02V%biw6W3XzLrrc_Fa%EmVg#_7 zAxOwwKxhV+#}iPW#dyYXfU|=QGScuI5ZN?4O?XD?1a(^Y4@NNG6gN=}1#albQJHH;85lXNF=W*u zAvCjKjbgkgF~z7adI0l4e-H|ezjU0@i!Z$#UaB02xe{K!?G^k8=G()MfEd6D>tNFs z%BamH4&{EL%*30+vUIsy)>=NXqOy|Ebhfgr0(+}^t4nKEch=P8O;`h?pnynFted>I zx4zg=+*g-godM!-e^cH9m4d(DZBpX@CL9Kv+~&ga;fbP)v+0SoSAp8wNXJZp-4zi# za|E)m)G`&N+R-z(Zf*p)xe4JJoB}%x*1HE&Z0}+71IQ)tV60#-l_o{}$uPjPFi6$k zF-fd0e-N#Gv3s)}=nKjP5J=rmaRVd_zcK4j-z-;vr~vjE)XIyp&c)VdPA>o<_71h6RW4^$nL0$A+UluwEKF?+|u%rrOVn&dpH2nB?V4^LKy`p z^_A{`6ObPty5qRPe@5>4A@IMY7d%JR>rp%a=7f?L3J<_y#%9qoK4OMF?f^&rZf;6_ zM|cM9IplHlC~hA{L~M-M9nU9Eui5nB;6ff;qLWq=auBLSwC_N+ziC(nS^&?xdy2pw zf4J0g?0pPYn+T$ZqjF>(u~8nR*_vB$thcAFB%d%E}t<>v5-&4SQ!_$H4 z)O@Rfa~-UGJ^P^mCZ z5(Xq)pkJu0$A!hPpO?2nyZY&ccBkyDcFp)T zqPl_3Ly7_4WtkG>AS-bp!H~M$APOVm(zW}}gKClNq{rvOK zp$~*Fn(zih8Q4aORIvWVZ>Qb|eNd2>6TbTdDkSyjAAl%Ozz--MFYns*c-Msfc!2Fy zZ|<%5F3O)M(>}7jma6p`}zT&B0@`&~@UtM#;KLFkr2z28b$PFkWn6&Vx_EX^0|vOp&oS8$V|GMnoK0 z_1dPh%IRPU0_?{LPEuiubppxyT6WRzQzrh*WzKCeeQk>GI{aVS+EebeEGa!{xd*F}TaMFSXy7VJ4ODKzGtBBzgHu9m@yN1xOY1>=s|X ztP5e~m;Q3ozE5B1FPFdk5=X-ybgi%l;$`Ssw89o`!63f_+KlLKh*_aEK^h72k+`di zXJ^0sayHgA05~b+ie4I$XbQcu@b%X@Wy~@uqyzsE6CiEiTJ~)V8GnDhtmJ^}IRLKo z-A(`90stMz-w@vSNgpy>r@U$=>1Ja<&7!PtO(S>%2=uLz_gbgK~D~ zC&&_rnF1-={mGkCLhdxxrtPO)Jwkj5N6V)NbgvnejW-qY`sdCTc=jY;K+!%qwQ17+ ztW*UNvGw@9d1s!fT1K4}zHgHlAf^ow38gmF6v$B2KcU`08?F5my}n|iYKj4QzuFVY zq223rE07+#Sw~ce90ovwYCs2heF6L|Sh9t4HP0<}3>BpZ%V3zcelq$ zn#GQdc?1N}vVw`^YX>uzS>FP#OC?}| z4z#tJ!PExw!@bvz3>w*~V;+IuUDaM3Ug11I>PYU_iS3)%UqGI;UY#nQu(P`bEFT(Y zn=E;G0hAWtcB_)T?PuSlZ_}Ucrt4vDl5F7J=mWMnMw|llV zARRzM2*nfpx;a$CKoGK<6(C}k|Y2~EU&k&wm0CM32dS_~ru&+fr z^Qk1#hleq(X}&_<&GYy!|{NZO^u#lw~g?Efw8tu2fva6DuH zD}w}<4-cfoThQ-&ps5f$h+9E-;xM3ZuWSHgUbbP;Qc%h7kg&h#m=yUk`FCIri|3x$!-SIN` z+`mxe-%ddO`2-#P6dmmv?i|*@y?s_}TzBj?LG&1PGZS3KIO{V!(kR(_hHEZ&kC1 zNP<30Q=>qWECrXVNJcKP5j8(X3e{_dR*VCX-h)lC&r$DS-Ni0?2U8eT-+?D?ysExx z7o}gPsQ_Cw^HMLlzYXd1$tjA{N1UlQpn2v|nwui^-sq^)y$I9oVBU+xbc+?LJcX^A zgX;}B^9mi3#Vh2hz;DiA*cuzgKCF$flOjsY+R?*5t@z!m{@RPi{c zd{bm~0aoG=Fq2znRjhu|+|^9Q?JROeOcX9m7c({0G2E@S z#;wJGkrBXI$=wBJFSJY4sTo+q1$e0!3ueE`&>koZK<`~>5kUX|(*YIVy*3&n?SNGbn^E0TgIJG%F^cY3ARZ-cvck!HWLYh;x4dsW=>quiZ!yETBdJ`hp|juqJiW8P-oo*aCuG1NTK!S;dDex4WO z5OxR^jHKi3+Sx-#rt@c58WSUKmjWJkb?)!&?A({{Xc6a6K2-&0Idoi#$Qr*pQ`nWo zQt+=Lhm7g1+_pacgYwKX^tM)DS+=^1$)$?^`|jE`_TcYuyTSChH=1xiLf(Slh(lg);)oBPdH-6Ud~w{fufBr+E#j8; zue7k|G16bDVz4V7#cE1$^IQ0CZuuu)L?67+LR#oUp(lxz%1+%FkcB~Tx#ZRJ=>AI6 zIbZ!yi;UH2>9B)J^?BSD*hqT%psA+-p9yxL66xT2&diMX~m<@Eb2CFu;A2hviH zRH)91kfommE6?`HuC)Q1wls^~ic3o%RK_n&i&<&2bDNoco684HOM!BU!Zpy0*<7a0 z>p(ePe4%Y^C>uNbs4pN+flC}`43_+wqbuLFwvtiKloa+1i#fjhZDzO!!Qe(#UYu7#Nu;KN?KZY z@Em}Slipc0e;sfxw`e9&zH+d6eDhx+yO#7?1%Cp= zwDH8dPTH;GjTa`(dchTs3%-|7=RTWgj!zK7j|-lFcdMkAO!5|=%;#Q$$0sc(Kku@E zKoN^4K5=qfh4tuo*<3(BIrsqA3brpJpveK=yq=gw^k=2U*Ay&oudDQxxM+0{Z5ra2 zyClzl`IU)~JfA*)3@3l~Qrpt!^ZuJFj**c4M&)OXSfej@c}W{WSM0uE`8eOEG)|F$ z?pUdZx4nh@An*E4gKy7o(9sV9ARi-FqH^f>5=)(*qHA!z3LHn9?@BES;C12%>4T#H zUi)YncU|_v0{!$q^M6oc1w8IQ5v?En?0$^M;OBm*z_XA>KVj%E;5cq|QaCn)>Vour z+1Gtn?H_;j>#wdPUzM(WnOx})N_>s4xG%4lH=Xhh^0F(s+m zKaauUWe6eCZE{!g=ZKq0KN&E`I$VPkllChQ7x#QTTM- zMre|Vrb!oq)Uw{zC_3ziIZv$)gqgY_S=TY{b(J_ROTzmY;Ye%*s68;%&`noGiI3?X=Bd1Q8}KpC7UVGzcRvB zJ}CNxhO63gL;!xF_78`pO^0H0TvWK$S?lppY5RFJ+d8ecmZ}cU8p-7~zh@7=cR)4g zWfL~rGmg7nFJL=9hPa&do_DdbZAmm&gx=dxl(Aoc-i#Y2N}f*+K^8f>foNB}&AsLF zFSgU+^+h?ZGW6>hb}42b(Nr^AiK~=joXzx+yRK@d>fucnID*Tcq2p-B#ZLCQl`9?ioV@R=$@{*hL76wH$Jca#=mYqX*RC^XvQ+y@XXn& zZ1-5wih)GHk3&4cL0*{D%Es@MjbGTi190!$6@$GKbFG8fDUnQL*;c9+UWEFeWZ1Y{ zh?NZrOc;O`hjZJjc1FLw%+%k355B0NgeV}S?@LUaIkC09rMJ1XX|o5mD`~zXi(hv` zA76RH20;7z^%Lv5Ydg1h)|6MP3?4=CR`;k_psEGk+d4$puUL^TFRdUwes8$K&p(_l zE%WI+v$vC8aF(+{hAZ#Ew~~)Qsi|4AkKPq0XJCSJRV~Hl)3~rstF@f0RH^ zJjQsUQTLN)o}Nu3RdLmm9#G$A$fqJ+>cqS=ZDY^6DZ<@pPYmQ^-0I^e3jrSTc=V=7 z^0c9{^4SLXnB{ruzyVk$djs6$veV8odW-N>b~3~-OIcc1kUeucferoms`bY@v$zTT zW0fpuTLw$ZWl!vYg7;Y?bgj~S?5!~T!k3S#mhI&5Z-eUP>IbE3BhO_>{4WnY6Kd>m zgyU0V?0AB&BAUTY&8D0N9WKY!e&&S}yPz}xWGyJRQfWT(m}3FKfWTCogj*nK{;88E zaQ4l!;Ck6avW8BP>j-TkSRM>-pdH-qUW$<`{?@RJMsiDF>L`{N?EcEDxGD&%*F4dR z4F70w2!tdckMlfaKa=yEkFdPP6dxw<`HdFZY_RLhY0Jk4ls`*OzV_MVTpf3*aGRq# zUgZL=RDbdMfaTwL2Y)#b&m8CAdH3E8?-OzV0U7x|c>e=wZ|v#7)CE0I&qD8Ws(=FK z@6PXODDj72WkQKIV!As!NCL0e`=0A*4drHfZU;kh~y|3ts2mPVG2M_FfV6OsT=&ChSz>qYf zkMI~ia(XA0NJE4iZ~H8v;6tF zdD8tOF*^DP_5PRz&)W-2Y5K-U=}ECn#vzeD*9W;EdT*SEfv7zzHj{?1n`~ccFGVp+ zik@$%*K6RL(`o6l6@?<+#-5P_}~Brpep*-bu{Es48DF(Mib!DFb7tDnKFCj~ z<8WSDli6lC1ADsJ`8u4g$9^DIr?UhG6jz|{$CpFgP@JV`;5_ZImgs^n;&eU^OQC-5bO^Os*Hh@OYOFhI|u1y84j=!dT0O$E*4R0Yys zP4T{G-ws&Lw(r680D1=`^gmqx<4=mUm-F2e+CR(r{>#tlFP#^_9J{vbSPtom@;p7#KtB zwSo7lm8TbP4?^9^0tnqsj)e%L#&q_bV||m8iXaeykxaxSBy5h46Id{gM?M{^^q@JC zUTv(0TOO}`4F*I!NJmBQ=Vz$yEolKW(lq$ALMQ`-K$)L9<(IEAIG;PT5OLIM$7R@- z9#p_l@*)tI4+--E+IzX?`9DGj1dc{2{pXqF9?|^|-@^%fuMmB*`6b`|R*C(gd+g?b z8wlci2{nk-uU@_S_19N(N<);s{3^Y&K;C&|_wvz02XGfAq5!xV{pVHgK#A?CIHAN4 z#y%-VWZBOn6LCeVi>_KYp$At1IcnG?^5 zWQ2wbK}Pi9qAy1V>>UyqR`K}|+6{%hNoxf86NY@Yt{w_kAfA(l;k2YT{cNvJEpFl0 z#K5J$AqD=Y=j({2!El8Ff6RD+GDdAOT9>_x72yT2N2>zDw9c2gOEVK&y}LI`n!B)^ zkN!)U!=ZhY7pz{mMT6}Y)`VlzJ`#>==UB)F+A~aSoRUu<9GGT5S~WNxM6QDVa=l4c z&q_?37K}wj=W-b9)Zt5@7+5D?eb|JSs^$^Xx;^Ccce`t5=7;0Zu1#_2?HSu$n%wIzo0u4(K4v3~Flo=mPRRRV}~+uz}W4x(le`9~e?A zz(f=N(B4A}#0;E9)qGRTHID-Vu;TVMglIG*`(jvu9LuLg%H<~L{{X-UvxqRsI#VGj za+V#c3Q0i&V4P8Q9OtQoimH*MoJNNUfW{un9;IwC6hKa0Bmf?$KY5~|=zJEQ>O9?g z#yuOMsIQr0{&^3lbo2%Hd=)YM3l!H|1lkAjJIAnOi9vnm5!4f+-yN&yZaN8DZ9+wMFmpeAS1^zb% zKyv&9Ilh_Sj^O@9^4}Lx^0MuK^k90^)2DadC^7)=K4bgSR38vOTikhP*GK~gPjJ1g zM7id|VEfS!a`?-1lv?(fm;p>jiUM*`4t}Dv4S7MCOUzX`5Q>6tK+z^9Zc9X1erYq` zF=pr?QiwLC&;zL{7xHyg(IoH#+3o3?2o_~xbwR9HTK}JfJMKjqK;}07&rRNX_86Bw|Guzcki7z9z3l9KK0NihySxYOT0JH(34}vxzpSl4nn0GKcKn#qJ z$zz~--p4`De@)nLkXshAs0TOor#Um)cGWK0%MN8@U4_leRr?eAUkGB?$yg(6g?S-* zT|n@(Nk-6-blxsO9D$J(wlz8gIrEK-z|67K0a~G0TGcL4&Mb)#kPL8aI}HcOOmnZ@ zA`VcT$|MgdQTo5SU|CM#+TkFiNybVd1@sC0NF`DEwCp^H47Gye;z2OBp`@zWbo>eWUB$#es6N}(#S3kWni!B5rhHG?(99gd%TcR69bg# zJZ%^QWvt5y=Hhjuq!-!WY5@ig?fN&oa1I^V$4f|(`~(qzBfv|N{I)9F%l+>j?pMbb zDb2?{QhHeUpZWkTrgLt40_zE|f8;Pt8Q%P%!^SEEkN#mABK-Q)-?KrrXmIPN568In zTe$Yy5A}F_Z!95?n!{%7-^Nd)A-xXUg0? z;tRN+;0wxco<8l~s=yYI)xY!xtW}wNkaF83jvSIq#qLw;^Fat$9Ikt{`N}J=fgE7N zyvlngFINpkINkH;c2%kmMvcOJ1usAtZUgvWUVo4OpQ4qgGD9&W+<*rlv!0OxB)y1F zPS8oqCoCI3xL@q1vT|ss(50uw=Xe1Ck03pCVq$w+JRqZE|CL}U2CQt~0)U!f zEK}I5bDVcTT1x)W$O?Jm9Z~`5{u71>0wNJPAu^xFJqSKhsn*vokYoei9|sBSx2BR8B?q*G0RTl9as&6m-tHQxfm1B}XVj zpJw!ZM2WbMn>H&*qvB(;iZ@olLVys6=u`j6Lg);TP*BoatTLW_`Ri+7D)X>j54MuG zz5x7`>HG2ui}{ry6?RW!aCoAI897XC?MaJWF7aT{LHfS##L;g^38GiZpONk<3@b-^0ICW3Z z{Uj;&r(Uioa|Y%2NF{4TH+l4u7YUo^C6-ZigO?brcycO!ahyS+GLUr&P$M*Eq28eS z@Vcb)>BZlf8b@Rw@pamW?8zJmq^}9m_r{b_kOcg_PS$ScR*TPNb$%uweU_(H{dNfL ztDawyJpA7Ec@HFD#<{VU1I?%L#L+4c9uFb^4o~|1KK*<2KN5g1Gn@Qa`T^Qzq5iE5 z`uFO;%fx+Km&P9So_;$||NL*iX5Mazud}P^SMEymWgBPy0)@;2)x$j{S$*<(iNFmK z@k1?HguIj^+=zb?j>nPDVA2x>$7?1`xTm?1y~=hfG`sgb!XXw6eHU-QpXr4ZW&?fAnDV<$?8eKh`l0QS8U)`HNOBd$v z^4|jZxomvdud?#}x6Jzj#7`QCukqT#{&b*sJorpyj$)P8Y1Ask)nm4@jXta&;!VdE zYGVT$^y<^%2=j_D9jUSkZ}(_{kmOdpn3DA&%b4g!S7of>I#gJp|A;3!Qy1;6rM^ zV2cymPm>)D3>ywEZUFb-~5`{{(smf zmuKPlm(g|Lz^(@Z+LwP+g~f&WTZk9`zVMzFfJx?$Y#>Z5f|`Y>u(TFQS83jvBLp-u zf8+=f{eNOC3ILBSUR=Do8VU#p4s!fOEIa=z#maqfur9IQ?FI$!_Pgg(&!P(8dHSmW{q@N6%fy@Kfc@5Hw<*R?o*3BQns2EaRNeyUuL?F3 zaNjTJe_m)`iSDCq8IJchLw?7x?c}!JK6YnKN$~F4K52FJq@%^FL!y3QdI#6PyR#|q z&nA?)zcaeSZ;$c!D4J60+nV`(pbla@`U?rEq!mIzm|ZLbz91E9a$Dmq>DDTI#MZ67 zEp>tkHj^lzvnkq~g5SaM8+$|@lu1PB)>loF-(Kg}_8I?SVe`rD6|o_HO?@?C3+N(x ztHqjRt8yadYgFjt_wy+AmoHyo9|Gso<;Rx!;o8#SrNhI+ZGLR0$oeG94MIgTSRU^;7c% z)%g>c2iwy^peWXARTv%X6@;yKszW1}gX`HeKz+5!%g-BlQVI98Xnz6BtHn*0*+i;= z#HfJds0nIzCWFcu#DTK<5!{ZDK=!g;-5}$joOj1tpzeOP>GBwdmVm*9#S^wr8wz}# z4P#u%t+7r#B7)=kf?+R{-rE=9AST!6>nxDDz$P}fvr}-JgUGVSdbcwwYQIm%;6Mza z8lf@`urKKV)Ech#1dH=zfrL}q23B1F^CUzK*h*O`!s`sC6EHL{SwO$F;)w*oCqxkf zNs#q}M;Ny-cLstV(~vwCQQylizVuAj+#zE~0RBm4l!X0E1>~jb|1%Q-dLelOORrJx zs9}-xRvIn-vjfmK(e@+o2i5zxYVyyXKAoNE7m8=VfqSk^?lhzT3E9+sYf%2;C1E)* ze1YQyvUJY{MW+l3_az2fR*Yhs~#C7jYrP*9@~d&Tv{1C{QDP(B<91Q5fgWC$b>d@M5Yfu z@ZT$XMk1UCk6CaR^KCkA+X!Td__K!>7>R7iU2hcteELW;NX+Q*UU~3L+8@@;Kdje{ zZO4=ix*+r+wdkW24=I^H&k08mnR}=a_`XBP@?(et#q>vn_DGr!ub?8HxgvVt{*nXr zpoZI@f#H=KpbW|9_x14-6-CbDA+bQ7bS|e}Z+CYzC-i}zObPXzY4>+#_m|O4WIH2B zkP&xpgiE+YO8qas#F!e1(eTuWo&qz&1N?pVw5*SRtF08xz`sL(e>Q01+*6nl@Oh>fIAvUkJ^Qg-Qv!?f-k=U zjOc(88iEEQx7>?Wfe(^>QJqsU!Zvm%uM?L>50ks!ST!wzSWfh*FVdG;+2)}k_Rw@d z2~Pd6(gL=< zJnaJC3WPNf4Acho#~)cVJIFm`oHr=o!P|1-hck;o&~@u@67)v+>YH{7z`?BQ#<(q6PHPRX7F6bAilgeFWGC5b$eM4J?QPAjyCMdclHewy6d7!wdau zBS%{whtLA6{Os>^LjO3>=l?2|rQlB%CD=Y;^U;7CPzZRz%)2V%h5 z04`SrMKe~=eS@hop?#TLDM{4dhx4C5h=H&D)tE$kRk?GS4hSMb3s~W{x zhwmlo|Bs_C6nj<5nzO^F;eQ z^&EAjJP7@}Cu{UNKI5deP)Q2`_(_81+bVbw-1nLiNS_gs<6dr&lRtfl^!y1EMenn& z&GrKQ(Wxt0ofeT`CDnY}LOqPyK zc8--Mj&}KLx65RW}p6|v;AiAAOh;>NXB_-9Hga@c4q5=4!avuTyJFfPl)a8l;@E)+a1`Rpl~n(8Zl>$FnUu^?q!VLF`q7ynI#G11ZU9Z0*~yZknP|ZF7EWh5Wdj2T=4UBW}su^QGg%dK)h{RW9frtFY`G&%a6Aiu`Sh`xWZ92D?w|NC z1EL4V2P|($4}b@j7o2}qpikah#oiMk;+~z)jRdT>?0NF^$H~zJIQsR8TOfM4J-@`M zWShkOerY1OIlOFmxVvl!1iF0r@)avI5H`NT-`2w6PcFS2p+8W+x2m<;uZeL`SAes? zd`B#PLUMjw{_E1U9Yx}=^XtbpAnM=H*tl`yCWP=C{ibMRXHy;Yya|=R2TCLL-?Evs z{P`C08gJ=Pl&@*X8%xZx?bT(H0m)PR>MZ~}Mw-0&87MwyNVgwHm``>*;rN6m0eZ9S zLRNp~Lx}Ai6W5&dEs|VuSV;%&Xm5+Rj-%S&Mlt3F?i(Tet$s^I-g*+{ZR&vVE4p^S ziQ0Kx)y>;L-MoB#LolBY(f9J$uO$Y*3c@G0f#0HfJ3qz< z!OEh%fm=!V#BD46ZP7}1+d_V1mh@BWqhG$WytIrmd+{(K`@`M>FOXzpOQKt|B@K%K zK>Y7+t=_`K(&?qd>sN5{-;~@uAUZ%10JAC$moGYk;!zi#2o!@UnZwNqyRbf=$VV?gTNs% z07e5aN2`Q4eQL9wuKtZc2PMCHw?4mC{hOjlPXglvd5q|BW=~ZfISETOo)bK!>e#y2 zvXhd_0f$2-o|r}X{AqVn4Uq#v`<_{v1dwyEz2;bL-mWpr)~AhN03Zpf+744Wn(RO> zuz>sDO6qCnDL8--bdZ|60biS$*aO-}m!px=@L_gK>~HH~5kj)7V4@4ebB*Q%u+4N$ zk`c6zFV+FVVZ;j<+?T%|;=)!~3pUM=*6C{a@E6zs5e$?AurKMR{tMO>K)={IT$~*O zHbJBU7D@P0I=7PaSrcngC4mzQ;t2zQG9#yG6 zMdszZ$M+1WchE(Qq*g9I2>_Jt)zi~N$kmNZPz+i{ghJr+_LbohJZ~;#2?)I! z6klgvOW8wB>+|BKQ#|#O1Q-VpqYtR--3BetH6;+DH6j6GbL$hW4{@LYI^f}^#UE%t z_i*>2G6xh*0A)bf8^?hqh;a5-3wpf4L&Io~Hl$*N)4!=_2oH&U``i0^d#e^9)U}*@ z8Ky^q6(mZQ8dv7_jYz6JMYi+K?=yv z&)w2KGao`gpD=+H@Nc!=^l$tff&K&nSg1;vvzt*QmTt&DQ;e&hdAog?D1*fi{(arm zy000#mlx=!FC2)W_=FdlAnc!xf^#y$3 z>ZJ7sh?3zLkBzj2dnKC(51uzTOPJ)O1 zY$JeF`Lf+iJe$qb4C(%rD=?&LxR||w%L=;x518h2_PGuwY%5@`Z1XIdB@W&2VLp2U z%R;sX}^7~U2o;AKybquvq*aQtv=`3h+=J-%=~{(id- z&bc5Q!`KNnGVqUnpJ`fXfV<&K)5Ly~>JJD!XmJ{^z5*gXoSj1JPeX?j8fY+-pUkMz z-pq6|yV$N>1b}n^+D#Xphn@WFknN=3!M>yr%It^sLr-%$Wlyk-0osQ_T*fSn24%?L zGYTwJlqpD5m`vEeD(@+Q(*Bb=kYB23r`&sTxuX34tf>%wgJa_=ttY@w*mX>PwEE|! z!TvJ)s&wTmca^y9tB3%|t0tU}+t+_n1`ifaVY!FDUw94b|DaTR0*>y-s-*u^*Q+Sc zo|5i~yjG_rDto z>w$#FTBP4g$4^f5q0U2}H+k$B5%F+bdZ#;H-ny&XdO_MdPW^+=xRs(*SeqxTO|YCC zmNu2M{`iX}32y$WpyzlsS%Mm4u{9r9yU?f&E4;8mrVa>z=;f~7W~8@ysZnqT%qn|7 z8UyY864YPY%KiBl>*~zB4BJE?M5o#(7wGbg?6Ypnh4~X>bIE;S@stab_=c(Wq^bz; zU8%u0KH*8nH$FB#?#CkZ0$H!3(t{lmAedaD>qyGi=^P6r!Bke`H|BTFB)EW8alQdj zpnri+(PMOA3t$dfxoQ8Wj&@$Cn(p8ITsJv~5&)D}UDo2n@VNYkkD46Uy$H^i6Ol{$=)SS9xbY5BfDcJf7kAP96He(s6- zZ-^}rN##EMy-gYEJ}xu@CKiAx_|$(Kf8x==h&SNFO&(+dO4Z>%iV+WZ<+IcSg04dE zVOB(?x|*?j2!=AA2;%m<9%%&QG}RNWH>R@*54nVX$^p`uf2qA}9le-&Ix^fq=(oo1 zsqJsH{_i5#evbV5zdZlfzyDFC`{v~S$BiiH=e=)eoROo(Y#o3uSk2pzv0VMiyvIvX zN`h;%T4Z4DK!EeSI7fHxN`dmcL78X&MQ{on$qrAO&H^1l0za+h*jDgQ$^cF@sSjZ>ck=@_!&WuWuIHc}wu=_@J*Xj2ZHaMh_L&eowgPm4hc zUTOPn8%ClWL>1@+R*FzFSV6l92Z;8xm8_q6osSi4r3J=`YWLYHOeQ|c@XvnM1W^FI zP+@Pgr_`(>$g-`N%`MBAQubkI37>eZ5t&>b=|6dgA{2@FzUySEXfT{3?tqzO|8M6Y zQQ^>$Psc2t2M;DDbaaP?3{eSKp`<=^$Uk(0r~|XO%+6v-?ipz;-QmuWMUNg);I?^p z#Tx+b%nm|ys5|4c;XzIk%~i!l&sz#WxQsV{mVIa-AzXvLm_o9fzb zN!4Nl+)_tO`tZ`F>2Q77vf*KdWLbB48j=BY$<(JX_Iy=ubs6ZJuPNVtJ1P2r$be&y z4xqVq?b>zbB6sUb>tP7|hG>0zL%OkF1?fZ*@JaEk`%O)e0}LecBXeKGP!T{+RQCv{ zJmu}S)v&=J3fkLBVhEHI*&K0Q^XAl{1Td{}%ayjn0>rQfltw1q-dIuc56fHjH=C%4 zUWG+?1(E`8?=om{Tajlu+cvm$8-F^RMrZ+Snvi*U3v>ZjyQQCN<8ryc&6`rf{;3_n zb!VG$GWNwAvkjH?>(_7Stsh%AzSiAdT0@#Xktb!ylXSIJCs?(*x2nBz{I;se0kReO za#HCpufoGDTb{xJRG0B%GfkF8Bm~Gvr+@2GZ>jr~3?PCFNJ*-n+)_s6pWf_m8h{Fb z3=$3S>@(e`7eEdbrS;$eo_z92viFh4QB=|s$>TL+0v=BvixB%u2tXcyBg&&)K8!Hn zkuumn#lhENAURmL0o_B91r!?v;0`UaycM7aKms7bkVJa$_e{-nm$*MT`=ss{_E%=E z3cUi?U(IL$Quwv^#^CL#=~DKPv7&vFC$5 z4jjr~W>liH1sob1t*Ynp$RKs7`o3)x9s&X6P7=tE+e!gaL3F@wA{zQ^ zJJ}pq(y~Q>^QK6U|4l4{j1oEGSyUi`e0GZQ8c26kp0ZCo(+i;Qv`H0P&o)Cr4? z!y4^KgTe-F#tzNyRv<9!q@M?>q3{-_EQqa8_JEMBc&;pgBmhbYsMKH~SD|DJ*|n4e z#St)00^|_xkm_I1-=jJ9CkD*fVGTq#qPKKl|5|Wvs*;#LMK)rqEJiNzU=@LYU;va6 zDSf$tF2JY&(j#x<_(= z_mTP|4qzZliD}45BZ^+>E}%YTL@6tp+*9P6^9cPxqhx=-FWmu1MetwRd0%g5BFVu0 zJrF)xfn6Rl9@T)|#Ck2Jyp70Ai#De7K$k8=pCPi0LiE66y4HL!{{H<3dC>^sGo%OS zk(9%<0_vL#ZRP(HZFi_5gwI4&b#5hMnQK$t#Vdy2QKOH}PlA4=KuvoMX{0QC39YKz zCnZ2ac7b~FkPxlQGX*>G62Z*2vWVhzc0Kn zr5W=3dOQ+%sgmSVVgMDnQ8``2kh}3QB%=%MCt+kCaUmlUl-sL-`S15T$M35VIzjM6 zx?_xF0FiLV;T#lELLb{?m(rx2g8<#FwHh@bGL4dzl zeOpl;>4gSz0MS4o{sy;(Apco+E}>(amfKP8hF*2eg55hl=L(-ySC^##&rJB}!8-3Av30fW7^m)Y&w z!0^4FjoDWRWP5}Nc3CDL2n_=3Cif+?9v4>}RAPTSP6*%an>)2Gdmi6|tFx=nR{06t9NUS@TIpk`?5XRsqE^ccb;{0C+`hJRQv zszAgF=>a7apaxkP@2fYZK;ef4QMpg3WBy4)Oo0Lj@=vcfeE_BTz-E@H?X%CA`KHeZ#3Omq8e7uAKM9I5}^05iV-D7QX1aNes;HW%S$x#bJ*MffYgg&arHwsxJW0Cp2KZGuBV^!&q;OagSh# zh%XzV2S_{Zb|r7;xkn6O5dv8jr=BQ(;wVz(QxM?q7uiw({>0TSHt65AxQ7iQT?nz7OKPid4g6R9W zPm%yM0F2y+^SFn(ffdnjBV<0zS-<9q0Deb0q+Z3-#kw`Ugl?2b$*=BYA3qb(z4YkP zLkOmAt}D9mfMfHBPDd&Ldfl|1f78>*0_dFDlSrMvMfm^qbM99{0HOT<=J~4Ou^<@; zN&rXHzCbH@o57$nLH!{2J|MK2vP883=kw9JECaUjqcN-heph%ajt1~Oa{uV)t`XX- zl?}Dm??n}G6buX7N(Kh+P&1XUVSOD^TL7(Vb2DNO4C`ytHs=$eFqa-MRMgX9y$KAM z(=mu%;Ltju5^~vjJ?dT7g%5_hjv#9tmz_{LW=`EqeHlCg{gMt;?RpZXnhAR(md2k= zt*zh#B<^=uNg*Gggu$tl08$A6B<7?9em7VHKtV&pz&%!mq6k&FtHO5RiwHncr&&PX z;ejmgMWOJ3TAQd9^`}z6*URG~0i%fqq#$5W#Q$P*S%?WR1cZTxaRv-hu3~p!k(pzG z128csVbabFCB;4_)J4MSD$fgsmb|eKQ6E{@AMo#vv>r_e0~j>yf86-a40c+Mk z185{Vz>3Nl8?bim#JY5SeFMIAKFNj}Q~(Q|jb#V{VD!dn&b&)tQGP*hW=mazWRNYja!EE%S^M5R)Np0IkF3 z#wOSS4Q|sAl!q;Bg7?@2Sy0-ru}x;g)`o0-P4a>b>pig(Ze6~XSchSQe68`s==1VHKKEGrsWX`RM zBJj6XZegZVA<6p9^p1*beL&!WWix0sJKrhcF}zD@Vp=*056EvdYG_+Q2dL+ zlDg+BA`pZJI^cnpRS_3|zz5Q-0xF;$UxUfsP|i}RH9!c--rvo2IuUT{q>}Ok@qnNM zvVoF;jva!lz(nFw3$P7?fR4>pXL&CpgANo}GVltT(C3zP6d|ufPN?C9o1g z<;u>!Od|ID5JfK181;q+z zK>-XBEBND!Ckt_bc9-kXt~mrcz#w4Z2z-Q42e~9wAP^A4AVH>(iz*4G78ltk7YH^I zO&x@p27&UEeKMb9fSr;*^i=1?`G%O}nZf(=3a*yy<= z^W4pjfF>uiEpI1*!S>e-Urjzd4SZs ze9<<7fwp2Hsn1upA83SM$nC20YoV~%)xF;lS&;1X_cfG$K{P^6fj+k*yO)}+_vZKT zFSzHP9ytZ;{6|FX_&W!-Tke?)Fw5I1*+->VUJrM4O=$*!eaUTAod7fg>BZ*T7x_ao z0;NOgZYXXihPU2QA&NJ1_=Go*5HzJ9F!CyY z{W{YOz#^Dk>HfN4kY_2lA&5A}T?hNuWa+ z0~0{U@3dfqg83TN_cSBiW9)&1Jb3@Di>fWx+$I^E&oOUHg8ZQ^=yijQZ#Wpi@60%Uz0Mp$2SH2z3rHZ-9!D^M%rwvj zlHk{kx|ov`C&Jib7sOqd7=YCxF=CD>e_@~D2D@a>1?oa{d^zj+P8nDs5ms=fkl>os zs+<6Z?&Il>fr+Zn{$)2!xCK8&zZd`xq(;xL(3zR1&1sx#&1M!GbzqJ99=1*pCz|Gz z5Ha7UjQk=DS(!09F{)9i<*&aU1-dd1mXew zC+VjH^2eg(R^R~P0z-g*E#k424>$c{9=_bdu^SS+f7Jy3g-@Gk0WY=qHxc>&E5Jo4 zfHENh{yVb8fhjvbHiR>O1a#)V#OTxW7kcOfO0Brt%7at@Pj&8HQdO~d+}CX*0@|4o z0j?e88HM@E5CJ_B|Eui08>`7TK8AiiBBtI?C{th!?>TrnJ64)RXU~htG=u5Xklt|W z2lg7&JF6H}=O!iKjTC(%xtWt};1qluFDP{-CBdCI6~CC0L4aTa3EUj@0`$%b*k3Xp zs@^~r_)~qn#6*A7JBy+MG*(nY)18_Zx@PF2%zN50r~${&P;b;rlPW#-(p2Ui#|zkk z9(k!_W#Nz<&8tklCaWa0L4Q%Qk8FTfdIX^8-XbE! z6I6g=WsE9)?$a7~A~#`Xp#<|y)-o41Kv@fiCO|?M?q~mT^hsK10u)CiaR5vK=$|>S zAR#)C`UEs2LrCXG-_|ok5*$5m;4PJ+6S7S`+~_#^oAf>`ETokl$r`$;#v<(MjMa_Z z%pWvoOX{{ZuNBtE|2C-L-#!U{(G8)_xZRH z()w%08e|-(s$YAwh0QQetN~3Uw(SVi0OUilDXV`MV7*#^(J(ZU|wniH8H1y+sH0}^=6xs!T<_HaS@7vSfp)q zjAF_>W{$E8ids;s6)Dt#0>MCPFjg)G9T~SOnR_m|GB9J^$e*Ez#-BT^3tcq=+O-Or7_fYa%-??d?Q8t)oi)c+cUM&uFp#W_Ay(=jd&LR3713?I72V}-S-d=3 zws3fO*|KHBONWQUz)VIOz-VcgBmt5I^lqtIjR1E`a`Vtl&+>Qkb2mL}u%1*9bMPK; zPiem={ZsDA>z{Z6rs(k}NE!iigg^iS=`pcM5#{|Vk39<1e{}v4MW-C*o)OkRa)hFh z1EBk${RQJE4_6fzj3rM7OZf${|3f%TdgwZditWBM_anFgwktUpW4|kzxhi7l*0wu3 z-QSP#E_pz>^$8RJ&^vsb)D#!NrsSHcab`fDvfH&ihWX_rq|NUcpj(OQQ}?154qAs* zR~Gx1p$Hm4g``I7sF|{jh91uYh^=@y5Wl1uT6u1jnezw=76nkvtI{yJ@Hf`0;JiL4 z2;-?tNS`Gkb~9w%WS?zkd$cF}nQHT}1=+P(z;@8)QX5*kCV?rKXW~TLpBJ=%dy#KX zpg#uuV=3pHHQ}tDctr&kG$)J0kgZUf0gG&~*npl%90tQVuvIuY6%MZB?EGmbYbd@85Pwmce}+py`FGxt7{I+7G1T7!#-j#EK4|>Kr2hi( zU4eKalaq?5`XK|Wx6!te=2qgnJYtJixhqSp(4`l(1TM79uR2P*l|RM zqF<`E6nc*?pC3f(Ph=3@{(fFq#wF+#w!dnfzZYVH5HbvkMh}0?C40N{aeGO6i|bQW z-tO*-I;b1%;Pejx5fRlC$m~a$!~iK1EpH-W6D0X7-@607zq=>CH@l}wWrll@0L;^` zujBxd`vc&|?raFaOBj|*3AP>nx289RFnqFg;2l*3cz28ar?ZPyrWer!xVIaD(@`48 z1$KXc-VMV;|D5q>tK33o&$=`IbOm_{YJh)`%mmy{u0Ol~EDS*D0d!}o{-5qv$AB&X z6c3E|x{tZ3UsI0o7*Rm`7=-m@9kbGm-!|$2i37Abtsq-j)CR;^ zW_Q`y!p7{thDtghgBk-IliVV5Ka@X?2F`%#?Pe`c zzdU_8pB~Uv*uY^OKSLkw%uZj%)5wn|$30tXUsfA77g!HyU>p)8M_&+r4Wl>s2KK9P zOmB%9J_NO^dRZv-XRc7`o6$Ox5e=_BaHlDEsmY`r(8p8Yuh2~6&PP8juRbHh)ck?o zQCdfzwE!jV7A?uaK5dGH$=+V4`>52N6Q@o2uU++(Qck&LUjIZu?-Sem9*++*5 zgwJ^aQToClwNN^*q3l%aW|qAO!)&l zaAa+j(cpF3;jP@FkMI(2Q&cdTNRKHMfw2q_4J0VcxKc+(zwz;m3VnTJcirkUM?h4+^f}1LFSW7l;#m z7~oJe<9>|!C$xU(d|#C~|GVtlrn&3CBck7Z(+C;-uJV7)u2#@$0KG}&$I!N{4^TN@ zpwF*|43VFwpOr!1?(;f~kM1A;X`g7JFr=Rh>Bf>CpWBNGuKQ2A9}nTDzvjGGg$j$# zQF;!Q1|i2Lx3ao%F{t8woerdq?&-AjU+cn5dNcE^XVbZiBAcdnRt31}qwSfdI*oNm z^)K~6^{=Y+%7p%!(%1eLZ2!CGqQ3##zdZk*((qf0S#! z*N@1Pr1>6s`ZOy$(~p`1pH?Ac;b!^y{pfEnL`Qb*)DGI#%u<^JS8IKXVUWE-8)Hrs zAak(`madK;PRUHM-*4HJMq8u3bU_js*gMtlu4sD_3+jBq64qSEuT^0~Uc5;E<^9Ju zPkSv~8g6u5q;^sMz>o;Ag^s^!%?ZclI8KKbBsc$mu*6v}6b?)WM)%2D*CvY9t?G1a zOu{d$cjOQ zUY^gx8Ud3u+c!#y?0#5G-pM%i_)7NIVx7YN5 z>B-7I#rEIE2Y@b@Jij16C}2Il&94|+-doB*cW2^>3jd0w9iY0Gntw@h zYjiZbb?lajo0}5t-~1f3N=lY~2{klIKaI6ZwLems4wABb)!oqNbV zI`7C4-B=9VVBB5_8vZ_RJw=S@&O^rEFCB^gxJ|Q%`moatl1u&@%7+P*2PZtR9L2Cd zm>>8D0rLPJ=mZ8T3`nS(gr1^G+rs63Z$pS&k{GIxGo+!A7cB^8s)FR^h)?#k(AdDE zfn4b2r18|$`m|Dmba*PzkBdRioSGg5dg73fL~}f<+$gA?g|OA=2(j~+ngOC>f8ux6 zqMIDV6%UGr+n$=D_RZvPf{ALt*k;2ntWA{g2RN-lK=ZV!IAXUgFg{-g*YWKnjK~iJ zCMV{ds5*>dHdgLnVf24ut?c1zA^5PD!cVxmY;Ae3#_!%oZ^URQoDH?@!!`~GIQ3#7BJ+3F#P0araNfOglR*j0H7 zBK-4$O0unj2cLq3@&{5&kiYhc2H--V z9{fIs;mK@N#)!&JEyjdmMiNOm9Oc`fLGjCA8fqyuEW84d@O5PjZ=x z0kWNQ=iP;>V)-v5ZzJ))1ip(dH^(U17-W^V{{8IVv*wF=})|JVhp>uz}t2{EY%Z(^( zU7q^R=rLqz#tthTMlS9Pzx)J9KHAp-EUQQQ12OtBXtM&!^KOdK&rm+*;7L$-MyIYC z;g<4x$__P!%Z1xP?Mlx#pMtYmEhJB~-eS>%y+fskOnf$GvG`LI>cguKOP3rZ;SHy( z3bLckIljMRX>VZ~$gv}pe#(Us{R{RS6)SxUSR!xbApYN-pxcba-C`RyNss z(-tV0t?#@eDn|dni}=|uUeXA$1w){3G)9AQ?kxXw`P)VC*nOb9{O8UlXUg0i?)3HG zbYXSDb?%>VE4_jCBYr)TjQ`I{HW_pw!1acqb=W3PZhnbKUS*uV(jT%@aKD1n$${GXv3CK9?Ea$W#-f$$g;h0J(psj(%F+;;HhBdjtcEkPf08LPV zor+E5`Yv7OsK28{;M!K`JLro6!8PZn2h}c^po81L?ExzGSq^3=;wUj=GuN;)+O`Q@qyeyLD;MaWEH{_gV#t#w66 z-x1&6VrYNquFR7#8=$WdV~}6%>ea6i@28;q2>EvZH{U3opCsPqtp_qDB>1mdbiYHg zueqOo@;}!B^*>u4xf&QBESiKs|K8CawWx6-Wz^_Pe8iwketA+)1H4Vs@hk=5$N5;{ zwa+MBA9a1NB6v?Z`|+{PcpU&O?S6Nn2QjaAI?*gawts9&E^*##>Lz3KD*6u&bJd$s zcY6`l82v5`65QiNH|M)S`I9HdPLWAdYt=hDlH)UkJOC$g?dKK}*!VenZg&8UM&;6uVM2PJ^?p^ZDf(E=OboFlnk6sM&5{)rs_ z-J=yDhw&FGQt&%V@b{DZxyC;VP9Xg$=Kt1W=>PtE^7$dXuz&9Lp)#MvXIOOy^!zNi zuL;>tuEt+w1af?JMQ(X+l`GsbjQy9TD=7KPFa+5beT0Qru>NNR?qC18i9^IL=^ivb z!0tu=$vhS23krY6AAi!JiiI&%+|Y?4Qn;Hb$TvF%tJk0#=mXP5&zLR3aOkjYlM(Tl zkZ+!Th2BLy2oeC{KYfgjiRdVFHj!?GDzQl4C3lG)04&&cw7TgS;SHUhR%W0GrhlE} z@4tJ_lKTDCA^*$s)^MKaeWI0SqJ0keWz&$Fi!O@0tQ2S}5#UQLt3e#NXcrseoNHm%aE zd;stqb_~C}W(VRYknTTYYvTtvFJ@0fmlgES`&r(x)$Ls0-*P z&Sy*ga6?#=&oVcx5`OWr&hqk#70cTz3Rm*V1aPl_{cKf9O8qL>e$5(BX1_A{-T~}e zx3|}l>kj10;MX-m<-T=z-;)h>T-fXJz~k3usK^JOZp?$XTLtc-O>Ol0NhsuZjGX@Q z7P-k!ZmkK?Z^a`Yk>gK8Yimk8zXP)yVh6M*rmC;Vm{YTGyqxX1H4lmtV9}1UwYx0? z-h1Wehd}U@*QBteW6dN4i0=p1+n3s)2~i0t z-g&6n{gP*=&Klru$>KJ0guZmDFjIV6pmf@Ut{Jz5eD^~dBj^8~|k-p(& z8kY5jJ4@S3nv&mZQ0V?s{?_s>x7^yjrF8Qx?VA@q2k?LP=9^7Z@r)sVr}%wQKq};* zsm4!so^S-~_XnW{_s^q`C6s~W?jj9@a&|LQuubIebB|P6I86RN_t4@%ND2KPdQc&CW0PB~`XfmShG$9=Dl7yyklAuahJ{UxY_HEkor59$0#(?sS_3gbhx6x58`(Ir za+099$J9Ahk_|M^+#jYPmh>Lq$O6F|L->*y6TA%WX}*XVbwZKM?&YS*@j>`tq=6v9 z2kbM`rDWd%K$d*>VXQg#di#yK>huB6k~brw_G?1;Z!zP~44yTwJ#JV$_h;R?s)4+O z*nJ}RqX3+2DJVdwoOCkOBDLP)nO8L5Ofc|^*- z!QwT@9nS5Zm{=^O^CS-p7>OoNKE$*G_w$0{71iF~r1uGc@891+_XRtBkoo{X^hvRG za^W95W&-&d2|4KA#Mgl4Exsnav()KrkY8S5X2xNwF?;a(@JJ9Rptqa7>+~p)=U%C4 zl7mA*X2$DKZ$ust@xiXK0x3j!LU0a`0tS`BfmYA=HUk;RySJn8{XHSDj_$24ZrOfh zSztnp@ZujSLw@*OF~5|*KcZy980Gn3l5iFgw>AS0l^hQ}VSy@v|$f4)x2dnrs_ zBVt4&;s5N_GIw#CTz%0inNs6!xA zc(CYsqQ?$#K}_r6Ss@-k2JnEeEe0~a=vmBY;Hz22A_%%h5)5Dfo9QgH>!$l{wYH)( zz;uADr-Y&-u)8f!d&1Lig-a#n{F#L5KJDH~T;mU~#pv`fz1$JtkK{HyP z>U-G*YS~Yh`8gb@oa6EZ9C~|xA^WBHwfN5Ar>Ten$fg(BVYIt`O0|g~;iut8O`uim ztX2H`m%$U{4459`5O!Y1e4A8J#57lQDZb!9rXdd$)lV4)`zd;}LjwQ6pTaR}5J;ls z^rHnI6U2|x^zuK?T>g*5L@Q-_{81vwe)4hMJg=V+yWjUQe%XM%vQHOUmOo4Orxff^ z0eJfthERUFc#&5V!T;r#>6MCtwB42FSC-=c>eZ_$Iol-AMz$Y+lYE7CV?z47Zo>CY=2HCob|dE((T|c#B;d0?sUu(s$ds6+V@WAZa$f;D zkn_I+CxAddqQqj%P(S*AFg+TNAML)-L?)o-4Se@) zs_=d#`4<(Sl7Gy)Z)!|Q0qL(Ugey`J2u4>G+W+xDAr;{Mrmh8dv&maf3AA7Zcxo_bR6xiV0xM~~ zg?2qAcyi3MsXb-X=jh9N)L7s?T@D^Voi|4-pvQnZrJMe(dMt}{W3{mmmT7BG)8{X< zO~bnI|E~bx|L`lFenAVoVfq0uUcn5!Wz0Ys+cq)4FGw%=4oYreHAKuS>7Ss!Mr}xd zFc+GN1uyzw*L^zy^d>Q24^atv)w&TB^PUyd(y_vUtO}ozky8fqTf1MHixW(Dmqvl? zE!c^g&WiayTIC$ONv;(N1xO%Y)fz1FlGukb+XcVBdGXDB2i*S)?X2xWgW2_R|FO*J z)hgUSU`Jw^76Ss9MrQQ0%*Ip(pjDaq1Rw&2fEb8r?AJ0VL&g-|MS%@I5CR1H!VUBV zAc8OQf!VJ4Mo1R864w#PGGex&D`AOKZar z0!x?X!){rNfiQ8)-p6!B_cpZVx82rV*_XBbf^K7PnjLNboN7VK!DGt95`N4-T z-CbLg^M5V6hw>Vc0^^iH;3xAa0pgWzRS)4rv?52PUs=9l#fp?)xwX8#%#p+o764+V zvUKV2a85jak;;F`lJ2ebB}Z?820#Fi-b}>K&4Z!=?4PXY3ik{N{GVY`M*QKQEqUT1syQ+u79{lmkQoccD8Ax+FbvwEM;trgBM zHrEw)kn3xm(6~g1GScOWmzsg&>Vic!$S>E>v9you^knJ=_OP{VV7u!OY=U?|mc--) zJF!*Rg%vtlI3_kfM1kogv{rln6%ok%*8#+9=y(>iZ#zgo0DM5A4;!G9b&0`eMt*+$ z8Zm%mF6*Bo<}kQF2tORaGCHY65e1q2n%GMx)Cjz($dQsLit!Y}$@z*u)?WZcFTJQT zNq9;Hnn>+USwzq6~@{SnxL(#S3;|3l<{7c$=Ss=ZM!I9_x1?wfnbX_`GSv3GJ`8K%I| zGb4CxxPkp;*n)`z^FkM<7xQ7r4_;r$*aGW!4evW65mM6+DAGPwPFk3PGD^2sp%y}h zTGR6P;2u)+LGIw#ffz}E#QS;*I0*F$ogdY{R6(X)h&{>W-TB|nR`@7(R~ssZ}%yo;dw4*6W+jrBv{vHg9I z01T>Fm0RZv?DIZ&S1JIdRIplp?&4qo{6)k@b|F6RFL<&tl%@JOTjo~qXCel7Iy&Rt zDxW^Xz4FIv&VN$?yh*S<@gfQu5$q>`q^e{P+;&v~ekA+oPwb|AC4IGmzyH<5GWgwK z0szTZjQFxC^W5Cz_j{=kXn+?9!bb;?oEkJnAh;JvT5*yjVdjqv4n@c}p?~nZIujB0 z!WmK$s|V8$aVbgyq&_S?k0sn-X(&7fknyM!voST#dEOxCQL+(x3cv=4JvbiWmTp~^ z=DY>!tjV&KO&ftrt7g#R5M#biX0KrGG}|}kj9@Q$`}F_&KmV`)NmjJw!jfH_n!a6D zGS={Ab`aoY11JF*)7NWvGor8A(pr&XbE6|L=eb$ea@R4`Sc!c;VWI@gbXS<@!SW8E zJO=bP&7$W(zlxtm^S=d&}K>26mM%^a7o!M>GFXHZhK^cZVOaj4|2+JO3 zVV;l)m#7gt!&&6B|G<&~`vThsgm11+H4FM=A2l_nKXdIX30m@T;}g)4l>M2NMvw6E zrvyO@(0}Sbs|aTK&-;oz{=ly6iy_e17eUJ}SfAj*Z3wh!NUzqvzRI7H`8R~~q~dRX z7ZIIZlZ5~K@6#WeAba3FS>KYM(w}keOTOQEVLr-p{8q$!gXbBJP7t0SW2k0?=2wy= zA@g1@trytTWo2+`J0HizPriSo?$u7G+eONcDgcjoH0~@m-;Ku;0T6d5O2;Np(USlV z35&>nCk{>gnL3r5Y*|7+T~iIq1InQ{Q5ygM*m}=cIj(h0 z57lu;W-6R`@0s~AGxos$Y{P&dO5B?{h@^BRDvR9Qj5^XGsiSxps@GaoopxYQq9`$w zl1POM58xk$;Xn2d!>}=c0mJaUGuLyto5~WYoc+At>gLe_jNO&1tE+q0s#@>+z2EzB z!bw-!-%@eD_C&K?Z&jcz_=4?bq0uCLfnkE;d?8DN&sw1b*%2~dbq=)d)Un5Kzfmh2 zH{xrFuvP!mwUjB<;cZr=YWG9#(-5C_wzjigl!C`@}8W}qD2H2uc-6zAk&ZPRc zarW_lC7Fqo{#=w6(r3byYg8bfI6gC)v#HGbsNkm&S{1SYQib^$;QEZ``T)O5H5RoO zUZ`MbeeX@c1=_MiGi2P*inQ8@GiKGMa+;g&2{*A;ZQWLCL$~R&$z8coYt>@AO}>J^fPPh&n<4O4+w7R(5F!B*9i#gUzrIx~%eHHl6&u8c>DtUlq zeQ8$F?T1Y0*9m9`{Vtl?384-aGcYcEpa5Wu9?UUxz^+0K8XB_i(~?pI%GN#dzzy_> zVQas50DHM@r0ffQFfsx_9)6l(aYqy5qaD;r@>n0SXpn{uO=boE=t}um?k};ZOJ>5z zB8VycVZNd*;sStDdNGg$Ah#o-EHD^GP~lim*`B?7_Uzrug!#w!wus;=pc|e@ zp30vbf&&2mM-HI=bnV&fndI5<=fUXKZ)yN{0OLp;H-9M|fbOUa!u`A)w*hVux=kdv z)fe{xJb4NGH%0?m0KcTL6xctoWXV!u)u{cKW?}$T;_rrK$~tFYam9)iDVy(bNzyiQ^EY`vWP)~|1E zm=FAi0swz&ddHmt{h2ZX8h4hB0BGJ>R#E`j0hs)Q;P1?SKZ^S%P~zZ2wt z=X2Mi|DGa(C;`~R>qtxk5(IZAW&lL_m4KgeI(1IVDb#Og33;&&t$)>O`mI@$uk~wE zhLR9|b9IF;YHEmp(!ZqNp}xYh@*B%*%lz_uSy-x&f4amk4NKf;dC3x74crnxS{@l4 z9U09=5{A-kw=KrHzi=DD{}P^ii2Y0ZpElJ$oL1e2-v1*H*Tt zxLcC{vQ_c(yJgMIRR}wkQWU&DB7LsdK=6N1=`4T(!F;dWToV<86Lu=rA9gi%Rss36 z25`k3qr@1AF;gx;%YuB=>NCwh(B9foj?hL;&^r4{x}kx&t-712eMTz`8l0DZ={vv=qk{h|a=mcHHyd~TbbK+=F|tbpl1 zt3%DBo?f(K`^>ds^o+T1Sd{^DBOnsaLTdj*QqpsFMhLJ>WS&Fov~0Dp1K|)ddr5o42lQ99}6$dVN9I=7|5OY{_*4J_({?ioUb3R5<3M$9rr}|YZOW!j49GUuM;@! z^+h4}$y4EUf=GMT=`+Iayco`&b>|WWe}4E}tjBi&uy=v{>;Z5)!Cn;M7u_54iShHt z3vdXG7lik34Zr;s*8Sah|2yvPjDjIyW8oeUe7JWOx#2{cEmxeWzi*a7cma8<(3d|@ zeNa&Kfd}#j`%K0z*owZt_K-6#zSbtcxrDFWW(oYqc*f^l^`10%624_nU|h*G7}`d^ z9#*s*dBn(LHru{{MkR`x2bG>nYI{2nuO-{_9TPjLq9H|qQ(Zr6uuY@s)NrSGM3LW* zKtLt_0Q%V@Wy|jglJBZc7Fi^>w29 z{*Cr6Xgs{!`I+P8&xdn2gYl7qoIPt)PrPDIgYa>9IQ1_~)gLAPLis075Z&i$ zW29?NIR6CoB2Jum<#-c^{)!^|5~U0Q@AXnn%CU);hIM@d>R+;$et0pXK851>HaOHT zCVo*vu~pBL1G9ikd|D7qC{kn09tGM1H!#Hzsa9u3VM!V(=whDQzgjOCo{7l7F4bq) zU%M%Q=oCQY-laE1nG#d<&)gy^c0WM|#f)%&*}Ai?6Rr#!Y!!IbjL^Ee!q(YU1iu=w zEj?mo1k`wg1*{{CR~Vb!6%l7jKf7)5>)#rVwjQ%#UPIj0zmE7gYUcUC3_5|#cp$X; z>6`$6&N>^w~}%+KiFU1+OV4G!Te8jg_(!2;HU_ks3?ZWw>SYH*K{ z0N{JjK8k-#1wW`7VEO>-bCRYF=?gyrs+I{igA4W_rCZNg?|y?@4qN8iwED$5`7Ex+kn#lTZ*_5&d1^X+d-oMER`Qu z{sfVK%8>lvewrYjpI|IqNU`Nl4+drMgJ4r%8=%*!bX8!jcNr)*_l+=-g*?;~Wd2Db z5Wb#l&S|w;O#$RKFDc=t@T61pyGl;Kl=AJ#3c2&l1q}L|JBB?(!t_xoq_^hyX|Zy^@Fk68!nWiu`m|s>}NQ2|@du%!$tb^?jC>KL0*V>j#Sf z1BLG`eh&=;9fQ*1`|p2*nUNoV{@sl#!}sksyuL-#udEGX_}_d(6~1{80beSH&-9Bg zzWnmbFUaulUxd#SC4HDR;}_vGitr)r&#v{0LE`V~r{QWJZhN|*fd9#-^-mff7e4y9 z{!vL+Wk%|W5PnQO$(Uvz+-v|}s2>uGOIkV=L-(lpi|=y>c)uBOeZwHTsrHH5Gwl(7 z{>m-!{y_7x+l1Pk=B>HKc`aCbw0&$A0grAtTH&wMI}74=wOZ|HZTD|<{r~gNV)vi# zukFkBr~6(a0Na!FUo?cDoB15QQ*g3CIb$$)FuYt5!ngc;da?tyO+8sf^lj%YfOg^I zUq)PR?-hvWPa``h5M1lYq302cp5HcjI0CJ`zNhxqhZ8X{$ssnkvj3fskB;%D|g zJEpV+O-1eLjtuI2^f|n{ZYZ1`>14;JdD-@FZ7JIhe!Qf8o4lQB1iXc{I&NTZ;JDtV zb;uU@O0XGPqJxmILrTm(_W1MhiguL$zDo6JgDidk?Y5S_kS+VI!vYgAq;F_~oPQ-9 zDl;cy3nNO%a$!CeSbOee8!BLMD>fn_-v(e_{rU0=~g9_sLx5< zr*J)i2mBOt=sD|n*M|$dvl~AFcQHg>v0;Wa9*6;6yRPCd+W1xH7JO}?S$~l*y*peC_WR> z6l-dH)dUWsuzF2cJ+KOluh;6;ja7Ys{8ju&_z;pEu@d_OFn>QkC#1--<>X6L>}Rzo zzgw0qE$KI>U>~r*II41e3C4UABgta&E*5(d{2RB;2lJ!&zqO`+u)_R{p4#sgCAa!T zB?|T}s^2ny|1A=8NYY^(fTSH%XVe7(;1>a)i^V^kkQL$(|IZ`b|3vhMkbXoJAG61c z&`5r7dCy+E9NnHdySXqWJ~8us^8cw4`Nvrh0CowB22fcpO8Qx}pH$#~scRlQV3+?R z^!jNR_JS9PON`0=r6KLyneS4T41i;p)+UZDLKC-RP`D(npjF~{xqTKI0FngMP#Gyh zm@uG>%B03&jS&PU&cV6Ezz@EiMiGGeg@)|@ft{c3B(?>vARDiUM-)Afj~B%nZe9kdRPFHG}jmes92upN8oS#33O*)Jyk%j1^?WCOfmmKI>` zf&K#jA{N9Jh+GJVQa$ULFX;`+FjOx)^rQkJ2=pG9f9=*f^k1vX&DmJrTZfC7UsJ7R zY^%D9@yu-@9GY+Es|6iUyQ{Au=YiR_z$$wCdi(W6$0M>OV4cVgcI=huNU7CQ7|ON0Fpqji`k{xo8hh5ZyHGuvjXmZN2NvYX>6>> z?fss6JVx;M5SzZ2^nk#S+#k#UpniXNASLs^Y>2l>hCmUEzYJnP4u8pJPx3!OemDV1 z`|2=ZL%Q&-6);oZ+9V?&H{TjsR09642>z4IW+HpbSj&m@Pwy=3qHU%O5PBBm*Hg|B zpigPLBnja4S7S&B{*x78%UYN2YCJNmR^EFLq5Slb21oL{`t|Iz=OUMn+6dxVwg_+qxr_nK#VkBRzS#ZJl1JMRt z46nHh?z}&jFci6Bva@}sA(_q~8_7-=Pn{wWpnzTE$r{5i#T7sloHSj4aR#dJrz?}p zfD|^XaGW%jGK|;p;~5H;vMyt&u#!jvCyM}M55yt37t5vq$e5}rxEF?@4Ae%{WaK<1 zu?#sjveOte4#AiMK^N!)!4-ukHO(osAy(j5YRh(ypvCIup+>CctowuR0x>^G>HzLb zy)otArS7RP**QGc9lEe?h><1PypCU+1eTUwq7<16x{2E z)YQM$KD>YCFMrWNgz}q!@b;Aw2k+u+b<7#mL04|Q=R=EZY<84C(ESYCtj>Ri1wL!7 z+b-?Efco!x`@01Dq{8RZ0r&BJohAYX90lT`-If1L`*nN#-2=00+^YA?bY^%XJ8(eP z!KRSY5%-|eaYiiYxJ`Z&PJx|g_!5lrj?xJ1o9b{jmv!ts+0Ocz&?(K#NGUMHTl7|2 z@2?E@_UB-}lQML3kabe}x-3`Yx8pPhG{J z!asX|mcW*&2SgcQ0az6{BOvRd8K5OuXCD>h2$100hAZI5Wo2oj9FV6QqWP#bMzu%UnBx|Npy>+tvDxw7as8$e>=wk`BeOdZw~Tfq8g;v1 z36+xwh|(2q0za1({4e_o`+vqcT*Y|M!#O-J%eT1S+tEdUB!F4!E9)gjKrw!)@Ey!T zRZm&gW-OuOXXt}v&~upX@(posTO1qP)Sa@A75M8dQvPZT|6!s1$T@I0&H1siRxuYa z9Ecw?20NgGv$9M#M%+e83<5<0VF410;Ds%<@fOQ`zD}9myd8#--obmb_+DcD`b_pq zIZTC3dXgTRn( zmy5DMoZ(-=$u_K)e#wr|4gxR&GV1RDXVeG7X{{ z?HBXQ(xqM+1AfiY60`+=Nk1HeLk1BFckEQ zkcYrCI8_0FX~=K+`+b-TD0QT#Hi&$K@ljAxa8my1l9(xn14V_4hYQF*xxk76AU235 z6;F!WLU&L!zriB*m42_=GmoorFBj$R9_^q)05vFwg+0Q7tJ_Eik!dh%av$rHTn4rc zK`|x8On=}W8Mct5VG+Pcwo9#O*G}{ZH%NV;dD;{Ws7E>kLn2ltgVrdH0pD{725F&7 zA`6?+|75ghYv5|gUc4eRjEJ?0bM)hL1ypq7u?ZU}3Rv30O)O`^9Z3Qv>;`pL<4&Ue zWMEohk=s#uN>68{84y^Dm|uEBg#2&>ky}u{KuwB7Bm=3@1Q-m8H82_geqloFgtl1T z0*8}>_FVen>V0b`y{3Dy1-51!Jz{-74R|-EVH&}MNQjt3P-LY%365}Dvp7iX_iIYm zMTW;UHpsY8t9ow|nZdVFMIZ$XO*X+&&bih322@Z+I1Ht6xM`mf*vE7f97M#z90LpS zvvgp@2v)&RpP?R;RXeZ~A#Rc&Oa3jS!jYq#QY07D4dNBMQ`(|R0ojonLpVDBh($^j zB!y34BXLuQ`XC_#Gl5zl3)5%?GN|RptZIK$RTi@ViV}Xpa6o$Nvar@M|58bzTdJxb zyHT8i)CeLLOuntOg5$5$j~8B{IJmVLpFVx+lsjEL1qvi7+@Jne zXCy)pJcL&`CvL&~+)faMY*EA9N25VWy`t z0-)%J9tyY&0;qWf$OgBmh#didn?!pzR#G=0qwjzdr#%<#A&IBY)Cmbbc2G(cT&wmsX?^hqt~kpsJ*t8J_oO0PCAik5XUG| zQLP{S0!9M8xqziWodfA$$*yM1WWbs??3kzaZ;xIkHsw)^qwfwB2~^sl?MrC{&xr32 zHiUY-BQdha{}x&?{ScM=ORyp=Y$m;;2>IYQ7dFAcB%8BM^@mFjK|lD15=08_!4kjX z1KuhJc&qu>A5{wc>i+)XefQnpxUbr!9-8-tdxl{jFd+~X#NeQYJe6bz-y|*JuDdR3 zX7fsHc zJ$*W(N`;9TxEdiP+(~z;Ms>i%OfX4?c_q9$7bZg98Pe8h^y(}A_}_8abG0L9;PQ`B z95^<$0+DSr6891s2j)deFyxfm$VgHcfSr@Phi0X+W3knV%Y&St8TM;R6P4j7Mxe1c zxr(FHu3a~8q0z%gXsG300^UJuq{h!3fEO9qnzh0u+7vLU@fY1oHLJ1m3V<3_( zoaw%*f;Sc5&c7Py${CO{gm22mT1`5|5bO%ZV z?I=#rhLb4KSFUBQ0Z0zsg~aC}$y~^@BzN7^hI-xSW#Be{^+4spIxc>Q97u3TkvCM} zCHV7Jgz$Me8D^7xzAv2h|FAufFOu>Do1n&1=h4|_!5*g# z7UCA#7$k)9_@YAS$VBu7o{(`6k9F(@XlZ)Mi-)jb#9)&I5krO+ z#MRpAKrKD+qtM5J@9MA!7!RoW13$Ik!vMfn|Jlv)oa&2WsGb=yuvjIg(l7e=|_R$ zmBW9f5FiDbAHo+v7`P7u6oUJp@F5bMx+NxbJqEaL-%Gf%A>~ZOLo1|?2$#P7G3EO2 zQ%lftxUzulG~C#ttue7J3ZkN(ip(GyZ^~`py342(QxzH_?~Hn^+01uetn2&@iSWPv zj6wK}qy*3Kywb-1hC=9>9@?) zPPQND9Oy4*z_BAU99&)K-ck4f+t&3GU_J%m`!ULH+1_lgk7525_vci`>=Si(9kit5 zSr)L)GWN;yEoJ-2X`5>F{sZU>zaj7VMoI zQrqJ$w#E)e|6dsk%48seal8g%D1ss+Y#=DPbt}tmYX!alVBxpU735G~im6s@vsj5U zj6y_IVG}?L;H4iBBZgr+{VXebw!OY%fC#F(IP`toPSrmb6e1hpSM;kaIz!Kj83lU; zqcr@1giRcvgr?;2G*9e;{xE(6i3y9j$8KN@VzUA4rs*Ez7bI|qvIf7m@HpXR|EG!s z4Y5Rle{w+BFakvP^pIQ%fQ_OTo^j9q>KW#kefC+!wE4rLKm5}Cn2$6=eM1q(A;V?R-_dU?p$+b= z-+={zavYeKBcf->@0hK1tTdW}d7KWUaj3BgvqA`lvhpHGibyup?--QS;SL+_Xl|(J z17)QE^`Tma)9d{@+za4DM1?R8W?PWo-Y?CAaVE~P8zk^B{|3@E^fCd25*-kLcyc;c z@&naZB`dvHi6+_yx3bJHxqNxH0-wlbVR;GuW_caOLrTVjTT+JOS+X=+QW76gA1#fH zj>1C>EM7dqi~reTH{uspU?Sj)RO8^bTitDyTcw1!&D}b@=+^zFgt&FlqJ7Uc7tOOO zh5PqIQ;?iA6(Ag!9a zf&5Cg9f64;G3k2Tm-`Sx@Gem?&PEC%=)Th(yYWI#c6HqdLAS0RDX|5mgA@$P9Ec(X z!FlB%T7SV!mo){Edmi->@-tI73}fJ?=UG>q9h4a?;R7*3IvVkx<;mWH#8xG17;-LpQ6_5_|GSeW>%UZvA088*l@x(}$5UX|{|yb9y8u zvw(tt8nOK))WC@`9*I?v1|hdX+ga~959`J7ewAY!RqJOB0=7aqY$@X7lMIhKeB%Xq}zX<^RrdgXeLsc-6PGHk! zH`b^5F_sk6NC-2Objeeelc#QrXRSS8kDx;s7B`@mNCF%YN@|t?$%5b6FaA&u%UyM- z1;4X~jHy39MtPb#6i#}gPMfD8LIR@VH zMU+W&9Tv}6;q++Rq%4YN=WCE?m3|ox|W=7fwJq zh2u4a1;o+9(Fm z3t|{-U;$=9d_x=pB@Nw+^%sU!6GSaUBMPjE+?#st2GM}DG9ve;$reu5qHvlTLaR=hQVHscCYa+SIZ9?}d zaSd6AzC0aqhMZnG7}+}DEYz+%-=Vyi_3gzK3`T?wO4m|_-aj36%Sm93?+k#fwT3t7 zn0Ckx3`U^?LKjm1P4{yE@9d_-Xm3V(>5%v^XhwMAx)@`jwpk*AHnE_s9Z-jTmf*aW z^`Y$M$XZBdg0OuDdZ5NJ9Rx>>`KnGH)*!^Mt8))*PG&rtn@knN?1Y(wp{lcEUs516 z?aW-h%x0xh=sRi!8}m*i6F6d#W#9RQ*2k?nADwr6>Ab3<7+4`(6onAlE(CR@(@-`x zRuKufYJh+(uuI7l4vm9HKQ8;jm@>|+>=D3h?|+b!PVPVKljxjObMy|gEG7NpF2R7# zq4H5TW4-Xn$KjJQxKM=nQfNa1CnZCdjQ$+wULu8mBl~N6bL0W|)y+T2>B{eQQ5g4NQ z$m#@JgVWx`4*IN(@%Bk;RWUoMaVSie)EQ{RPRi6&eHvMVN+BG=wUPV|KUpJTB5gI> zq=K{|9T@Yc@8X&zeVx#(KtAvdsdKtqQD!sG@Jb z%f2ncA$^0kVGfj%N@0juGHHY7I!L|L+(em6Td6|* zjNeys#RskTC*dYMEyc1ZuJk+(Rlz`32{o7pSO;2_;})Uzr?wayn%cbGWl~s+-`RSt z(LT1DHCHv@?s5>b%6u+95e}qNnE9J*ivRs*yu=5n8k9{jwZ9As=rI%j&cqERo|(oE z#Kc0?Ea15>SUv{$7d{8M=O_^b)I~;!afq8eBtne{2igRlyZ4Xbcu=Y|udcYG>Nqg=L9It!)BU@4! zh>CUNVGUp=c(ZL@s4v8Eh&<|O-B;5HjH-G$tcrvMUHp=OfH(RfLHQ8#rDHFn2Kmru zECYN)078%>p)jW(pD%D>FJ(}el7X7h6@w&T5n?E@WLwOna64)QR))nos262XmtbL@ zZ09e8a_A;0%CoaO1sUz!sZ`O~;3Ip9gkUzv27w`Em<7gC02ul~AS~=o@TV^lH8xbX zXU`tLw{Op0gKdxwRp6VV&hCkXVWHyB0((@Z7vO__u%dW{XMlzYRqV58xp0VX`+fb8 z4hM7*?SpTSl0kP+Mhqzw<2*=5-8OkK=fh&EqChnORozIsxPePTVaaG?Nogqq$SrMKgUtU;&f*~bfpReqPU|6|QqXsmCTQ#{lUo#|p4Z_w7ieW%02PR%vJJnS$ zG}hsW2wZmv2Qt$UNJ~I^g#mq}1+q$X8~Wvv0NmdIr;sYsVndU)GD)yCcTU459Ad3U z^Wg8OvNIc?4=B3Gn&SEmI2?*FSij!<58V0^vwWyqm##m$t^~QU&WHk|3f5BaFu6T+ zt2j=R7g2*FDTy~}!=$8?J1DJKp}YvwD){9!h=DS!%W`}W63R(%2v`LIx=%V$q_f_cOZn)@;%6EfS+BAp$mFpZjy4 z{-@X@kSSvxh|luDR~QKh+G;^Kh=0LKm^PuC&FA27>NO(Lc(7ExZ~oY z6arV5+fxz)knbKeQ%>Q2_<+aym|^u}k5R@G0svvcqmNFYOc36e3F3lX#;<|>$rsX9 zFRsn+nr96F%s^96Ghs8hfVP8QI}Hb9u&qgc(%kJ5CkP%0@~hG1+weFv>`$X?Z%t{W z6&gCN)OB0*#JHtGA!AbW=LW!p8%AS`?qDKQaea-O;{C!lZvo8rv;;%y$Qp>}Iqkva z=m~j{hi=$F$evkkK->>VrbDY$_30Y&!a==v>RHywmr!^bZzXCeGNYcaMjR;x>(}TQ zNOmB(gHZ`y4{`|@=ILB?NcOeK6uU?Rp~ESPH()yuwwpq_pfn05=pyX!9D?q`^mHuT z0KLFRr1U+ISm@};5g-ldm9tOVL*S>Fhh_iJ9~Z>u!I%ely4w@ zRYr!-zxY!2;-CQ>gEfHqih&+H4-$q2$08m&PTbX?y}S>?E6H_Gp91WMPY6~q0JKg5 z>RASOojL`kKXv+yJKfLt%ozY0*uL*H^F)Tv`g0{v{JHx1z9>C-4UG3|vdM5@7J6VZw{<(oKjC-ZU@6H_ZwG?ZG?mY<%aPyC*i571rL^Aj=`e5utuxNjS85 ze@U79i1LB-(fdGPo(OvWa0;YVii5Kh2fw+tsl7Sl;anWs0(2+&k4G5hpW?Y{FyzU2 zb1O9jo7-m5I!wuGI|uD~q({=OUC*OS z(4#4U@uf?U5u)2k+JxSZBO)`C-RwXU4+H?b5|$(&sOVF-VQb*F_R(S?6~@WIDAF|$`%&ieB+Y4yZ^4cU%nuiPUTus-!A<|{|S{Uh@uda20*+Z5YT_@f`7e$p}}h^ zQ7JWvJ6{H#pFdwe7tUs9{OJMW|EIYs7|X%%G}yc>sD8>L2gqKnaslZ&B1a}F04jp# zFh@$Hv6_Wki^{DbKOuQJI~GfB3YNQ<7J$s74uEM)(@|Bm5d_e`j%`agK?wY36U|!%)k7AHqy-Z_7;j&IK9sM@KazXeUy$#6rJ}uMeNjB4p-)B zW4CW@5q0&BB`~l<^QJgeC%n$*UAZzdGu=sM+JekFW~P&1FRzqk-o`6_RiM-!8Yn}`W57S$f0cIOef5gwQnc8 z^51knmtdx`89gx2{c>H3k|!;zA8C zgdP=7%TYX_CrmsHkQbvRmmpjXta&+=2DWCW=czOSht;;2Yw*lHq9n=|Bf1VHi4y8K z9Q0Bp;0UHt!~(N)4t65(Y$gW;;Ppo(!^wimF;rPWs)B?LR5VN(+E%(CZ%#Ja^*+A0 z^bz%T9*|BnGH>KY@IHanC_3*ar5JFb*5Ee|hSz_v3VY1&!<4^k*REZiyjBLHe+oobQcU(~LFEiR@&WhppjmHleKPeF*ECy>g0A6Vu(@D6 zF9;~l^(`Y0UG824RiJQzY8VE?>r@0`3Z(^ZZ@*i3@7;{Mj${I|Tjd@=DO`Y3hVSEp z5J2wj{rSG6t0?&I47Z~h5H4n*)Hs*mq52d`#ew7LWp0l5lp$?(#pOZb!jA)~N# zYMEIehUIfstX!eUH=~uztz6MULr@aPudfQL6L3C?fz>696I2xe_kO<0Hb;D);4a10c*klYbAqznUs?hIh~x*$GFivJ@R zU_cMRALSG^eV)zQja&zNf6f6NI3GR0`VDS9L;+a|e3)C8@PP@Zfvmx#4Gl^fCbzfN z7GWkDUGE3KrnS1TYITMsgj+@NhgGXqWd`=!E2aST75z3#m%3$eA%?@knEF@wUad9)w#HBK^st?AD6m`di(i^gxSL1pblx-M)kf z|4l^q736)8uD#9i*f}niwU7WFK1136EMgLP9h_&%K}9wZ@h>vdCW{k7VEVZtDcIR_Ma#^drGS2y2tXn2UMN2Q z;*0qUeF|&}J~?W?ColS!W_Kf=ii9#8Z@-)!9}pN*X#W+`#miPn&b?X$vAGjB0{2f+ z!{F4Z6HJ&F$m7qS{;j|s!2c8jGiT49J*VUY#^=v#mSP4mps%QYjuRpRa|Rdy_eLLB zQ|O;0c-b4cw`RXXsY4?9@4WraKag^8x8GPZi-T@FKit!&4EuX{`Fj)0_=^OhgUTRI z+&}d|Cl!*~&YpZ)$Glp}u)DsCjdfMji}ksf|r{GzB6 zoPRPNYMy)p9$I>K<=ax^aX@m>&=c4lD(j%kk^p?VvmWd99wsPHBW*~6Lt7OOrxJwt z7f=jA*$GvaSqWQ!Z2<$1JRW=wbD)%|l`4?40u%u8{8>HzK{S90mn1w=HKGgp_2F=+tPo05-UubYKkcGu0RDIS|LNcOdIlGe zyyh=7&~5M^hxW1m{n<0_?7TB)xg^f$PuGV8ApZ0(AdJKah(|ICiEBx-5KMR+o-}fx zaDt?l(yOnChq_5hlb9m_Gti?4jva%!LYqS1UL`r)OM|`Z8x@Pf_V|6u_wae8-B8)E zBwEZrKZt)pFI@mLb#etrh*t9Yx?! zhpc@YC8)-&TZJUdnIepuSu-(`jo`oY&;Q{c|LLFpqdLl+f6RoQXF%J&dq5WS7LM0pT|#hQA#@Fn zptuD33EgpEx$Q-1F+%ORWer3}0g(whiIPqt?*#Y+?Wyj&y5x<{EG8`5i!HuWnCa9x z?9H|l`{}FdBs9_c_^u=+%mkwB@k5OtATA#ds{Jnenf~5E*^w{HQa+P#9=T%s-P6JD zP#bhyjYuBgb4yxsGqbgU)wYEnNtGb&$K`Z85GBd)#O)_>@|tjE`l{Yd`Ya?_7AC1#m}d=4 z4oiUkMvenuwb^Ji7@Ey8NWa;vx26HdKwvO)O86VqJ>!00v!QBmc0#uQRJp9-1iPLjbIwi15DDqK6S$Njq=h#n5Win?=55 zgX9N?yW_BV5b!G)`;p~ku_9ppQl5q2vZ7d$Q1#vi?_HBZg@qcLh9u1h)>nlC6xU;D z94w~?p<&#?{6N3u42YO$uXEoGiP1rdA{b zNS`=0ac^*tkZakMGR?^>Ky;%BB=1bvtxhT=wMvEW(;1PJnQkF=58)QTzE}K=6iD61 ztG3*y-L=Qh!Tj+U%e0BkU<2*xe$vbva`AvDwfEib`9gbuzm?m0NA0R9TEn5 zAuRSAQ=m{jJtnk7`1NIlp_oMbyhfPyEoW1_l&`cc-E3EK+W<&IOwDP4;2fIl3x%W%^#a<3;_5_)eRKX-|g@# z0D%nw$w&$pF5A5)?5%+P;Q*{Qoy6I#CyLkZ=J&gB>eu4h<|olc57J{h>P-D z3yWX^`Xu~+X3@S|{G#eD`)^sqzc$-Qw5={P`|Dg z3LwlCAt1qj9H5unXBr zN~AX^ZAM9Sm@WUv9Io|<{JT_u+cleJVQQB+q1E)$QiL;TL554}umQ^00a>V`NVm;V z^h{xXNC1=FWIc0tT6(M3rag$FM0>V$<>t7wN_GG43^v zI6F^a3Gz|g^K_QovEgMs+IfZPXhYx*&EauVs8V|fMYfy?oDe%wv_+MGsmD-hc6WFf|lr=(1};NLdLgsyuD65AA1817^bQAm^i-H6PfY z9t}8v_s63s$00mDg#n7~P9QZN_2GeT(5 z1aXX498uYq>Z&XEGTw)MuK>%S3y9wS4&s0rasZ?gP{Q{sM0zC{0M{ANJLyiilNF$! zV#23~4GcmTh%`9k&-TL@M9RRO%a991{r~y=!r#A!SU`kfkXpuzYTrBc;iNjApV2m+;`voPPP${yK!Udp60!U`|i!|8&WtN&45Pt zIrIZ~|08in>fQh@XAdg*K7YuP0h9_5UtyEmEEfYfgt4%>!o_cF0v&)co~e!whdqTU zD98h{ZKAiWvFa}^QI9#Ee}4OH!}Byu@!pJx_VXx|bf0$1DsQwN`W@>2iYQn;(4(uh<?oG;o3gPIG+M^n!CQZ{KtLn*hYk`Twb7|dnU(pS~ZUo`* z4Z7WQ?>TH_LANaQ|7NtRd0yHflU|AY+Kht#h~fdh_R0kA=}Q|Tj&k_4<7egx1_PJr zP+K3HS;gX60)uDFUHRvKygWm<+|B&PcA?{~H*_Z~0NAw<4?WXq&eS+8eumxS36|Rl z#5EqkU$wYkhr_3Qm?{xwAoT7#W^}wxrxE-4LI9DJ_=Uj&JCZ(4``9ONqHZR1=4k;~ zz>5t!E6zecfpii2a-JxozNXGsugjOiOocs}_18b$4#_C!q}hdcXqPUvz_IO9wAJR~ zR>2u55%^SI+Moj%w9z?tFl5Alk!%V32gFne{p!lF&~_rA;G_nr*FCX8mt&BxTMphT zzYE@aFT6h_-GOKY1!IF02SjAuhx0@zuvU|<3qgQj7^0$rz#q6z0pK#&?-Ob$`cG?D z!?o-)cWvR-tJfl{AnXX7Wc1~ij#>)UFBDj&y55%ym?74zYKn{{7zdHMZ;Ri3%eZ0| z1V8xi-4A6E3_s*Q&LS;7z78H>E`x0FgvW?^QxvS34%bq8#(FWrj-XU?vhbSp#o$rK zBYF>o3}{^oAuFSa&$4EYT0U>q(}t^0U`7BwZ{(;Aa1R8#Gh}UK3+)Kx$r105A zK>h$jZ8EcxhK^}6{oGVleGB>qs(wH(MO}rQFakjc$pX<1NGqu9#ORk~ZA_1HKRp<` z6}ARt0bLqZa-dkEu^iJ=>7<(~8T~=|$BJnPn5nj*8z$Of8zv?>+q4-(G;r?CtWlAU zqTcZJsw5St3gkOb3@(WTP zTc+tG7#G4u(%>^1IL!{O(yKwy_|)Xp2%WN(tWnY)BXKEmQ%zK(p5`brh%;)RKc^J_ z{k{r{UtR%Qg1^cN{?mRcC+;UF;IBRf|C5mnW$PZdw=57&7EIr)k->B!c8CL>p>iDH zMdx54WA=-Sn$g?YEBXxBd;OLwRT(zXr*LEQt%q&<+m70~0T01cPiJKl$muZdz^Wo! z+*lAPuHN zgse2mZSAeF6NX%(Y+1b+u?TK^%kr1i+nKUziFIt>=}dL8kbDj^xPv~$QQ;4;Zc~i~ zu?HjrJTgm>)~Fnidcggm57$H49%4sdpgtny63b!{c4vPaHlzk_+r0-G!S5N^3z(yH zBA_ljK7^>iq}>=E{>hW|?Vbov26%*p(h)p`LLB7y^wT{QnMp>VYYhL)!hUKeX3z(P zwC2(>H_0^hHS(!kjl=-a2f^P4m9V%>YQW;mV@5DST0m)ZbYvtOEsc!Ih@gy$U=$qz zn)hYt(rj6>)RP+kSYAH4qP{XAjNV>Vfh<_HYSq;0wuuCw3y8hno}17Cokuzp?J4!EJ429T`t>#52JLx2=PY(zjN5bGsa^#|+@IIlYA=gi75tnC-$p#j<> zSv$2RLk3Y_?GX+5RSwU9;>wj2OQ@_^xnc$7CCH5kE9%QDsv(JJ02x8mR0PYGO?L$Z z{BmwdWmKM#OPZrCk^|C_47-5Ei_vX3j0_v72l89XrX0u@{d)hiw=TLxf4A(%!q9FN zs+M4b1R`(-&oX4s^eHibfBG{4s(|bO>Lv8U7)UwrX%i3p4cKA0Ned~LaSTMTa;)&)oeo<%r}Ux9krJYhg5+{ zj6gjm9uTQe8Dud8=2{ewiY7ne_XT#?!_o>crxC|FV$1^b)IHRv%J9gJu2Zw(#F6Z90El)Q-FzuI^~o$8$y71C;&!4=6QSz zrJfF`1;9H5Pf=G_H2Wg90QdnM%U()}wf0-mG_hFtfc)h?2?mb8{EC?sq8sQJ`iBC* z;O*725diMwfLH+GF|xFY0cW7L?9A+llcx{eBe$xs>gy=6O zZ!lc)Zx-Kr^OAe>*Ke6IA*i3}J8zRB@U}b(H@>s+AAtTI(9Z&Bl+1Lr0+jMAseYoT zc48~$40w$E{R6<+2PPhze5n3#vMGDGxv9EY7=IHL5fXrY9XX#KmRopeN|={XR4Ccn z9DmMA0qN;vAe+qlmYNLKywk>Rr%-a9p&$q^#Xz!s+9Lg!atQgm?Nv2CHL)F3Fi@fn zL_oR&vks8~YJ2eHZrhMrqy|2U#XdgJxV#L)Jz9DQ%x~o(s=`GyxL!m1Su|kF1Yd+& zh?|F%=MR|IXwzo5slpU>#N@+OWlUhz7{UD%B@X=k2||H^2ksX~BBq2w5>Yd7PkwLl zo_p_Y-cvM$-zSbm#*p>9XIqg2puW)l#glh?!2Vt265Qo4%>m{M>36vsNk0m&zmdI` z;6}O7aK4NN<@vzKWCZSPMV!#tbNSiwnKP%)oM~Hb!Ko-5Xr3Gr)(6p_&{gG-4pi)t zLoiSQ+(SqC;|ru35WHuQazJA=0||bc^Ikq?x&g@tBEf|&rlh0-XGIfbg~4SXFv$on z^qaAuxUs+18KvzEM_x^g8oXM5bU-LSX8e1S3}&-*L?RwFL@0m&y{D#26%8d6u{ocx3RCm&%@e50}eWY4kvzN zZx@@!lhCFx<2%3ZtrLWgbb~;=UQDTYpm}CFy#|N`9f5#F4q(Zy6r>-JXMo|F_cH0F zm1Ur4D!|9=*@8I(s0u=g=X(Oem!1H?Z+ZfOfA`@+;2CmAusrZ`ia2& z`X?nNXS=@^ybD*|wcmELxUYiyuL9zL{TjNuaY6qwpzq7i!xvQpfifcWUnd9*@WUs~ z0Byl6Ws;jV-NfnshdBcNKN7|6Wg0jV(xCu;YU4f#63r~xV1i&+zdEtC8n1?{C?@8J znOB1kyf6m<`i6Ga#(_}r_GY~#OdJ}6AmoO{DvKW*nzf0veXs(4KX{N|t@uOdV0M7|5+M1X{EtO`U-!d8{nm&E zOf{e+0sa%;eVct(pdk73;%4 z{@PXWyudtvpIsAzCt2WXOzan$7jg6n=_;8lEkDM20zm)Khtrnd|667D+W;daRtn9_ z2OruDi2j2Q8dzKS_p!0imHpnkbuRX~0`uauPy~SLdDUqQ?%fLQh6V%pXQobzp#?Pz z!gt6lipHZef#%B=-M~Z|lGAj>&lsoXW(MqTK>Ji1r~T2~nboez-{kfGpOzuu$mFN9 z{xeAb&j-;0-8I^UMXgqpUl_f&%l!Br>xAp$;~urR2S*{vA5lTsKzV%&yR$ug5%#OT-JmoC zhWj6XJdo$D;IAUUrVa<ucH866!NK{t>r$w$3u2bL~f(ptJ;+4AKS zHz0vPGrSl8yS3$0E1Fae1PNoPH?fK$i$v5N1sAX945+jL=6h>F)NW0CZHj(CLy^Gz zq1)$nB?JQK8rI#OfzO?32v`zauMpH{6Ka2;e6ns51%awGu3wLLKxG5?e*?~d!&){% zKnKdGxWmX<&XxTXC} zmM&SsxVglQ&S7qp-`ZaM7fAdv`cz`pFyzkwbwVn9R?tN>Sp$bs(CQ>t+=@H81Hx@>wL6Gi6TpAy+! zMs6uQ?)J9#%-XwWFBhSh0Wnb7Zuwa7io;`Ew#4ycAnR)cl`X3y`R!MT1jM{4M zkpbARZhP=MZ@@hRCBb#VEJhl^DGP-|Sl>k^R%b+(99083!XIdrBP5}X3Y0(%V0y*^ zaHL2Z4qMA=&NTM`APM8cy%w*A&$9WT)6TUu8!vKSku)jZWwr#n!$3dk_CxehH=fcV zp3YuL|BCXf3(Vl6HGp-81-pgk1>%RY2Dc zt`k15TQ>sVA>Kp|g7)W)-Z~i;Jdn(hbIKwe5h(~A*|G(UVlXCvFr5qsO}j|{gno!l zSOfy44Ru^Q*|eVpFVPaj%mYEM zZteP)4Tc>Hhze@ds4Kp5{FQKgNOA%+1rQ1Hk1w1!nV;|{3#U%HQ$xgfPf1IlQ8@jt zr7}Nr=B)nCVkC&?faC<{&TD*Lc#`pj3qVZ&S_$`oH{9z(T?+z3rS4+k64nFBn;GPS zd#mu~TmJ3Ys0d&c0JluYn9nv2nyEgd!aet3wI9{<)c?ER;XyFx0W<_Qz$Wm*T+lyI zdvNNZlJXH6av*rPy-DtYMlRGhmwBcVRENCRL%znKq&huEX%Q8BaBgYRoKkV(v@%8U zi!?Z^ZOAjPiPN7RfG~AxopCO~u~$}rA|F(UxXbD>mBygSkZs3}XZyDH_LAB-WgP7( zYMDcQ9EEngeR~7V9#vAI+XIbTk762kLX$435kEIRL7IWA2a?ThtZC^6%}ws%+NS2i z6?0y|Ixxpt(UW$NA`@ub-v@mFk#OJr&HEaVF*!yA*+%gOh%+{BY~JneO7REmyZbJv zg1f{P4F3M&CFC6@4{&ev8*lIiA_4dMf>@H^H7JAb0Bhhbz&DkYvi?N5c1WypdP$WY`K2xovnC5!&mo1|C~XAp@4U2`nJ8sx`YFBc&X8pj4i zAlQX_EPrW^_%L1E*k)=5VE`nVuKLFF$qU)@w2bGTw~QPFH)2ow@CC_Yu>s`~)o8K{Xu8}6G!}svm!e>Lu2$=2qB{|jsp*2y zcG{T~8GwksL^pXRTrLRPrkCkr)0L(Zov>5I@Gq>{d!CP<;#CzEibQ(f=CSTzOoLaLkcnTeyS3%th9fQ6kmL3!pYS* zi^R@G&|Uq1HnWL057?1)@^BMFoHKY^=Q5++8HQL8>}PU?x1brm(%Z^M`OAIr>*#R$ zo`3lZYhf{T_BP^d1t$0o_Cc2~lW%aj(fOTi?(V`_>jU*2^f@{?mPvU~KoKg&zTOq( zb;z5LH%Sw1^$E1sfWExmtaTL-5K9eM0`QKo5k84ROB9orI^ewoZa~uOep6cuQ+XHy z`3}@j0?fifO`r<|rmXGk!|+l1aj=N1`>6JD_@oFi;65pROoD;?v?N&PJ{>l+clFxU zt5*Sm?%K_tUF$6f5&{r`h(v!??G9dmrSL@!tHA8*|3ZoYrJ$ot|60Wn2_utw5Qzan z(r)&;!0PwN00dS^!Z%esDUSgbJvte+wJHlZt8tY3{Qu?}q_^1z>y# zA-*aRln~`NTDa*EId8WHn@x-T3u+%~XXNY~8lS9V7D$~$!tfK61IQ+aW3oS>T`w#I zG40D#qd*UDFO;u2I0Fh6!lo%zLB4_&>kE)PKv4rKB$3T9$>tXM17aJds59`&M4>$q z+I5r%?P&7XYE1(5lcsC*L0H(US*Nx_JVc1^f@c76%|MKy?S;Vk}!g83UI5 z;lKT@G6(eUffGQxAqfX#O=KD%Pl<%;0|WZ^8ZSUW!y^B7$Auu%NcY)5WCd7vEnHOz zO+P6AS~K^6k{Yt*3&qCGQU}G*&vgO+w{!vY=YK{Z z{KbkF`0F+Ukw3T*#H>fRp5XLp74%}w7yz4RrXuFE!PBhMX2vRbG)p_$N=-!vYynG` zv@m6s1jZB4OV~2DIfng{EfN;w^ov;;L-{H1Q|^KNZQ-c&9CQQ|1#}63xTIc2Ss%pO zgqT0?=dkRq{qtx}$Q-BY#)h=g_Ju3(d_-4lpoKn8-ZtR@#<#J<5$h{(M(W(NY8;M$ zj70k})V=3uv1g;*8+^yA=mF@0_V{e^0H6VFXAEUfV#<*!!Vu%wF{M;cQun8S`!;r^ zd(urWpsS)Kr;tdGA)wT|kPEB39Uo6zGlo{o2+f&aQ)vg827V{W1Y!uVQ=V-?YoL;G z1Tqkmy#PtsEyGgSu)D|lL0iIFioh<|tt115Wg!PZV*+H51Z4rVJr0JTD+^GJ_lXkZ z0JZ9dfOX~`s5r0(`YjL;e1-^dM1~O>hG&bo&N=)8D=J#B{{V6n>X;^}KUhW~aPXi{ ze^sm1xQ8-uFRj(Q56}hP`wUzfG7=1uQ6F^zel!8m7M6^LCCSn{DuIAXpuVhc`Em#Y z28UDtOsp7reMO1DIf(~253B@1Yp~JE!x#<}SFK*tT%8ej@1-1+!Q^Ye=2eTxlbc}1 z18dtHo>|H&EYB_mf-d}97YbGk*?)rS2xHhFo%R}bz4OpNhKhm zU{zc8fo?@huX+QEGBRp zxdev(`%D^uVPL*!KD74&T z0LFn53Cz}o@x~=ztgp)OU=-~c!1rS<7NJV;syNf8YwT( z0+0fz1OCV#w7{b&L-JVmXbRI+&_zA>(I^-|8`FLHUBgiv)8z-k&H=Flq6f$;Q1o)A zk0DCffw1G3v@oF!8(C`;Zip*XSHN!@W+RQ0_N=MfN_*c*>jlh+DqyAGig3zWxJLT3 z`-V4wu_cU`xnoE*q#E?xGTF`wZYtawShSnekliv^(w)k4XXA#mIpzq)d;=>kKu6$LRwIhVUa}=oK-lYf6z9ZPkqFM?bJci+tsH) zL#SwjA`Es&1r>S`dyX$lLv~cBT>H!TfCVi}P$*$xlj_d4o%5XAJ%*@-_%0bI(Sxx= z1N*yr1#=+aU~)UeeIOp6@nQT5ltsZyCW?3vN^bz{S5_rkQ4eTYkO5hM$bfF40kdU1 ztZM7pCLc4*2onSbq6QSPw8Vs?M?oCn$ebQz5gPzrAzAwG84JS1;ph>V0BH>fidxnI zQ+MdDjOo}W77Pgl>J0U4e- z8_o@!HD=)4xpOSI^Fzd*1t>Lo-M?0edUW?jxEL;#0HSZYOC^%v-wbcLx97g~)|>A@ z47_vqJMX;x4?x&=>d4&_vJ2YEF7Ol@$nUG)AJ7)m$tiHAFQ`A5P|UA|B_UdR`4N^L zX4>2|V1al>n~Bh;*!UG81+p<30GIUy`Z~>YpQ!jUfJI4-P&6X##7)i==`IYykxhgAoVf4M;HPSI)-08cECH@9l$xxmQCI>jH5y z8NP6kKX>*F z*TiWq66VfA9-KYv&kQluB}BH$DH0BvCvSv5fH}~Jm+}hig-vD^8bN%OC%wSGoKkEc zIiBIN3A1&qB>uo1TllhR4|HKGy@sn??3jD84^u;%cQ5>w1_7I(v5h3ou^a$~~Zosx7Jo&tjrBZVmbfY9Z7HM~<}A@a?XUafkS~ z#w6-4p<99WwOfbA@s_03y2IFAMucNDVVRzqt1fiJ#)8TKa^O6D>;=rJw@u&M;I-`r zM(?c=^`Q67xXTOd0PGNPxV_Ct0TVEAtiomX(qY4lRSCRYoVom$sCwWadRKm#Xg;$X zucL$7jE%F)Nk;?&l!O8CeC9^$?rT4K{n|(G;~eXu+u3clw_%oKmwc#G+@c9>DQiuCt_IcUxY4~cc zub;~bm`}S}o$jfu) znwdK@x+6X7K@S%Mx*HzEorgn$BuEf#KnFU|okNfWYG-EEHr)*m(8GfSKoH=4(;uK0 zxdX={Q>bT*=GekSniVwu`c}i zPaB_9q>1_D){h!^5{NAzrvSk?JlSFl$S=Ut?yvS=lL3eY7bvEH zsvstgJqYe$ruryGjtXSd-7M8k8A>&0Ag9ReoJh*}+HrILz#(km0NcY3rldClwOgxs zQSh?zb7folJ)!V_!5g@jN&tl4Q3|siDZ>9?u>}bTS?K`zE!{Cb+89e|-pcpi*3e6z z!2y^6fpuCN#0SI~OhLevP`|t*@c?!a*Fem_&On=DOh3@@2q`e%Y!I}HUJ2O`r0gd; zLA&Y4o5iY~V4R&xI{bH5Luzyz&Cy^tQZ8zLwFPuO+p}z?7z)wF7A;~r*y->ntHsZe zbSp4Q6CBHR?!%22tx2JHN?I0TP@oaGWBLr6?BA^w)+hoixE)KzDGMVQBrq(YGeAS^ z7_b%-?H4s<40s^XWRX5hwQVSkYuQ>qG=KKfQ0k&xBvt0abd}s<9ii4usuipjkMPJN z;Gtz;qll0MlcL%HE};mh@;mE~hMmcy+0F@k-Y|cQrf>Ah26zPUnFe@-=2ImBx4;Y} z=a7CwAs_~K&!hyB*E(_K^ahvIL!3Rg?0FInDEyp0V-W|q&tp-5#-IS0++D)0kUr9X~uY)EdrLSJs$KVOt)BMBu|6WNV9<6pA{4JMaYQPfBhe6F)lTH<(f3lmrKx zHcl?Y9vEN1n#LW1@`(8lD<1)%zPY)?Oz{UW2f%&5dFo$^|M@?&0^foN|8Wz9L+BAr z5Qoi2SVJa(&H2BOJdwj&BonCUH2-2D4V&*cxVgeL*kt^~9i&32NK7E+qAM2Q2Nrw? z9qtN+P3A+mZ$o80^v8O#4!CvQ6vT=^7dYqwXp*($U07R%L(wPU);8AEp;lU}{cvgZ z>R|*L>2P~!-=K#xkaobWnpj!Jd0-_W1^J3pih+N2E4u!9_Y09Sa0C~<2@Krz9|sKi+<93G5e7t{5>R!zlQj{i4TAMPp0`?GcAYX?k_jg-1}E47eXW;M@hok~{wh${eA#4rMO z%BkRfylPdL7Zp|B8|+tg=k>uWqR#tZfRf&L_7Y&j5*num)FNdR4rVF~0t*%J`~RWS z(XP!_Gvoh+GaZ=h+X-F*q0E3g@c>>>ul74vO8S3JibRP$V0hXC%6BPOIY3k zQ3*@zy6kRS*?tf|UU=D2$=?nELdbv zUx+5+9J)=(Pav3&;XvWoD-*BwAqWsSVr0m`PyY47YX|}`ic6jxe^{n?(L8N zw z3raIsHjvtqA7R*<-siTq?<;|6$xD#XC*DF0fE>URN3UQ52LVt7`{yIcXanRwI^sqL z?01x>TR)ehqu3Uu0PC0wnV&uV#8EL6TgQ)={z%#>>`r~kcI>lGd!h*h?uF}jG>`|V z!(V;+4;^R4?-B&299d^9?09hBj($~1&dHf{>M3fXlYURNOxLuZ>E_t}(Ka{hN4hO; z0ARm;By68BUw~+uklr6KP$+E!%)9$#tUxHiB(Vd@*5TFP&bZ}nza_cL zZE4~UAjGb*b!YKU=iWjPKq3NnQHXuf1$`~=pxWTe()ShKPU-O{PK58Uajqns?oRtN z+3CV5IG$em{OwuL1K>_1Co}c>^Q5@rMZ788TRi}Gvjc!B@^85}tHAX)Ad$iwU5XT- zxBvAw^4BrPTzC?#+usxQ@?Ysm1*!|U>$zoac?baMdZ6`Os|ad$$Eqp=+x^iZz}+9I zuomdNru=}akVtt_B7vd; z$ijuFx~kI3dum=IycaL00Iq6{ zVdk=3iX-WdXBF$!n~yr5CAF;QIJIDKHY;@OXDZrlmQ!e_(!%}*l6A3JZcQhr$h{V) zXE}u6f|-d0-GWRK=D3D+^V}>$is(e$AL}#rs1QKl-BN}9_auG7En^P1!(Tk160f&fbQACXPCby^xhT? zl_#Hhv;fKHfdqor=jX3qNB&K0K)9X|FtEgA;)?x_QULS-;j01qi@!Ep{tZA~DFnL= zm&=nde3yTJlUxXY1oa1IIlx!+6WG0M%7O6xEyC;38Z)ga=6vlSV`E^I-Tz#sdN3KZ74aj`CT9I0E-6CKjX^2%lC#^AfO7 zR)C8=!$<@4P$LicSZvg_?883hJpBwR_z!W$0KA8*RAZ36yE?$KP`q$G)d+?Qi^8h~ zD(}@ImCj%7RTX2K)iA4yya1?^gdQ+86A`_4I#r(cMiVm9R(K+vWS7DwtLIkRwV#K< zi^o{?{VT1&^h;I2dej2H83_Crq7A}dq5C4g;f_vp{kHSF>PBPa0l)T9GcZac*NxUY zLH;D_v!*VK?58I1h?>G9{ITC{qodo@To_?_yP69l?7*A?VT(lhtDUSt>#VO|$HnXb z!uw?%zy`}>z!n`44|kkB<|Z5gvHwx)*}X9Jn*;P?@UVLR*xkX1RM?&4{n$~w1k@yn2Usge?G{$p zObN@?hT#wO;*y9o3~o?VvnWV6sTNTdlb;E*NFGTlr-!;C@CVROnniQr5!{-UsL2sS zZSm7g%K}O`wWmO&n(z`~*F;+{-$__OjKJ>TeRab={&AUmu!3Dc|EFb7sP5j{)18ol(6K1IRRVE?|IZ8i8~Bg7Fn=NJPDx8wQZRZ(hJr;V z9N4o5cS5}l_M#u)wSjmbB`(XklriJ&;(P^Tfe^CRV6rL#Bfz4eDOC3#uSO#5A7gq`b86Y@Q2~2FlB0=|=ZS2y_?l_Qkkbh!w z!vX9VmjV5O{n81n)kF&@2C_9h!2dNG`Ghh)p@gxbk860?tu77^lZJ3=C>eA^Zm?@; z5K=|VN?4UZ4Wx{fmBbRPT-9DVaeI-pgHtPdq#r;<@WQj?oIpTOK|HWqa*)Nu6DX8G zRuT*lKkkL9*Z~+I4<}IOp?Drg!a!0B|6CcR$+JjK`k8gS2A;WLMfmj7*{%W<(^Gg2 zJayZXa=Fkm2`fN}$rCtes{EvTqK5#PC-em4j1eB|HmX2u0dWN>&wIZp1D<|~W~cyx z+E9Wvz;L8UrA? zXQ7jrV5wldRD!mX!2JO-0V||X;f1CY+z0+I+a7NJVn3w=`0Zz|j0Btq)d4L8vIuL@ z@Bb$)?muAXWoieq5La+5E5qibx z9jSqfY;Z@@WA14ESRjp|;s%ace<)l*Ai^qf8u{;FLe@&i2C+7*%l20tX!a zbM5B6yeHPBK_O>){5*12^xrAge|aha$nR8WZP=QQU%#0M2jmrMKc72{U5IwR6;<6GCcjZi?hJ$fT;0R+hd_z@H>fg?!^6iFaQMwAq-`%3zZ@~tH) z0@@@sI; zl#*kHH&Y(9n#B!3E4Vj$j7oTehw=?f1s91*U}U9)EOhqcGx+Lj*6U9$PH_pxj^VDM zGzBmW)Pf?@>}U;zjByH{q6h^30@i|EkZqBBbGUn;03g31q5$kbAq%YPF}27YSOaRK zbO7$)fHtXyclJ>R18?C49Vrm?e3F18dx^x#uUI8~NbpHrcwtaDV19Yl4hC*J8qKp> za5Fuco4_9EJ5!L(Ufp2K9Ak;yK+%2d@!NhLpv?*)dK%zF?Eg<6a4MLC84x^M)QLVl z9cKEcS=MoClIx=EuTx_rK2x?m6(I~ekaDdI_^or~v;DdjBY&FeUODv)Cv?+g+cq&P znF43iR>!%ttM*fz00cl+hs2o0Q{h$+fDRIJj|H7edx|aT7LK>g93N)>z=D=JpVsRj zo!a)9_A_Ojp5wq1owXF^Vl+ls2iaY*&dmgKW3>O=LKQe!=Td?s+>4AE!fa4%1!W?n zb$>vjSp^_;w&z!S1d`M@3M87qf)M+)YvIG1fi94g`LW?p(D-Nxhzl%6uPQ@~_;#O^ zRB#_xkb2YY?>=e6Ec6TDf$r$*|BPb$^ZbjY$i;zy*C7|?1qd|_*9TY>dZhQ?*oE*_ zpS%bpMi;yAb@oj^GxZhQ_#NCr;d{FMyMBt4?e23L3LC+1p6FBD(-;_VsS(T%Fc$9sKM{-g}q%G-Rj(JeCAqpl({j zPz)hU&<4<>&H`QWjib%|Esv8Qz`fB<$sSOIRq$Z?Fmc3G05T%1fb-!2!eomPZ$NtN zrxFq+q^wNYlGq4ozz!+V3cW1TvmfaKc^GD}5ldOKKpZeP3ZXGkB>Z7wqR3Jc34*dR zwA+VT-A$Yl;?N*!BEvjEf&j51jog#Zf%ydC2>e5g*eoWDHT{SBH(emg*z=EjqZyp@ zme61V)kJ_@nAls=XLxu|>FR&cC+vTz8kHa!fd8qWlm*>h=i`1CUmk5KqnNjCI6D&oMwCD?-41po0eJ-_xGi%eh;jS#aK zlC|K&fd9ZXTm`$0VzWx&u2rcSsvRCGVQHilj6a}OiD4i)ie+n6MWo(QNB!KbRI<3p z3xWMqhZpMP4ULl`s;vG~IjeCqwVHPwYk3RUsWfqaMJIe{N`c>~g#WEWBm6HW5}<3G zjKKEOJ_>@j42Cpv<8MCg;*MZoL>ndG_hbFq#*Z#d1eyk*`pTF!5L%;R`PsCcUt#u4 zI08dKM2Jk;?bf(kXQ~DU=imgRa1tD;qD|ar9ch6Z!_***rW}|ORiL>}sHg?$3bZR{ z$ZfSZ+X1^*wE);QHFgtc*G`e=urt#}X^&OaVBlYtJz)d>z>k;IhM-wN7a`FJ`Zy#K zNKgbMW0|c|(}TuF*A5*xjy}KYb z+A_!i;%III3aZqid$`X+rG<7LW^^QiV(!TCY`vzWe0mgk1Q2qM_E1oOf$&lQDACL6 zfl>ak`c98N+Y@5&Pmkk5AkIKwEKaTW){vRv3}6gI8Nd>_UAHma#h<3KBNWtA+(EP= zbk7#CByi95SYSDP0WszZIw;bioV~CN^*JcA6PeD8?1rSa@3JI^Fj)9qR`m{rK=6_R z5qA)Hlk(=|Ps38)ot{@m2)sCmJjgt+l~v_ILELPxI5Y(2O%M?DAs%30T)lcVm^eX4 zP+#L$x7HNa!X}h~&TG-#XX}cv34UFMXCXQQdfl7Y7Lf5!bV9Z<-JpDjjg3XV{eceFOuj4y!VnB*q8K`4W^ zqyxlG*gxXdrwAjah&6yW2rws%{NGb+x?oiJNcjIJRxgg9jy@&(wB$$V2a}=ZU?VIf4GxGe@x|TQi%Mm{m#jF0 z7j~PFfU*T11cD7p;*i|)z2-geXPFZ!R0ZMyk|{jfXR-n*QS?lOr%7n|wBNNXK5_5` z_85vaKuUn9;Fb<=U@PqTjl2O5b@o_UtQhkmELj^(jNeI04=RDY2vje^Be%(mK#YNL z1e(P%m5d&kF!Q;(UNQmIbj4#@@$HJ=!CVb^={MsS0epfqNMsDnbE+ z0`^dh04)lPj4T6!Zb&N$KCqMMR1gBhF0fjx1PA_Iydd{wx3BB#CIs|Z!3?rPTZn$N zGfALuleXG@X&3th*gM0AK}W=8nH`{k*f$|ta;Xo}{f7@MW3xmCOb?o|q9_VSM<(eS z)Ol&y)SzZ=GgtyN5lR8FKqd&yu#B+a5WS`DaFNySP?td($(#`;0E19HQ&uE`<#vNp zI0B)NAL&tltM$4b1xnQcRW}PwX^em?iVy%^uMAjEE}gmR+NEFDzm@{g=nh7&t%-ZR zkA7jnHzhfcvmD_DZ{=?m-XeHB0RwiaOBpA+6DM<{7Q)H0q~dT3i-3+mNhVB%DYLVc zb7vtI&W3Y0$?z^36PzdZKz-Zva{Kdr3U#N`+eiiyBbJ~UE-E`>3;n^smCIM)7nopj z$fOZ%4wV-XmO+yE349LeWY6v`n{i*ZwT_uz;XV@o^7C*1}mexk=G_!Z?Bo$(cfI)>-Rrz{R3);nsU z+tJ5wt5ry=lwuYd?Bbb|gA`j|1@u{9ANfb*X+Q>I5d#cuxB>eqZyJ*~g>zv^?S|&4 z?xi_WL2!VBLTmdnXaYr2U|%S1#70CFMSKk1w$lBifDGFv6jl)bV`c#zLhWAImaTj& z?%r;N5=e}2&%NQElthxfe0t((^da8UynA9x;Vvuc{Q>caTR-YmaVw3?qS9r7V2DDe7DHlw;z;o(fE5G_G zbN5;inqlJAB9FFbdW@uqcpS>qvs>x}X%%?>kCv^Tgrg-WM^hz!(SWIfLv=x>(i=L+^mw^y=WH z5Z@s2^|SCU$vgV3nIcVU@)3ZDX_Banj`x2Dg7?Rr;weNX+@wbuQZ~dzrh@Uz;2d-m z`&OCia5r=+J-GOPspV z5sE=@vO)N~`9)1}2=nvv*IV<|>+{zs(1l&OZghnED*4hAdQdhNA_JZlEm&R{76!t9 z--o6h?txx%LEW|j4}Nq%C%^cgYvLXtA28mp5~{Cw{pOy8ApWqoM00uXfplLzNXJmm z+#!0}f)6y5LlbHtWL=Wyn?%2v*XjAU0ECu;59EIknm4yvO{4;Vdjt3^fcabPtW{(_ zK>|b9E=*7=i6C&3QxjFA4V3G!dBYwdgPI7FHOUcR87xggvy&!a!sa#O9@v(VIl)i% zYR^bX?3;RJl4J&oI^Yzr9h3W{pb!m_adqDwfB<2;F%e=TTq|k&Rs}wSI}R$Sq<^N_ z>~AzgOh8R&Xl4W`q?Y`^<%>m5@Hu3lhXrDy8A<{cEnjrZT~eQPzV7I`tf>#Po{~s{ z7zInSXjIR^J^u-#35iR7{t`xrvS=YjStX!FVH%ASk*CPhvdniW#)3H!3+}sud@qYc zEx7Lz7R%^b;3>Xc{0+2)SPS?mmA>XNNxyPRgYe~-jq61{M)T$C;w$nmDm-62WZ{dl z$geLPdYe8T!B6!#@?;VZBjtl}7708>zdf})x#r>VN#o;Q@fT74AY0JXtUn@cA!vaAyn>y-ml<{4ORoq?#GFH(m z!QLNv=RGTNh2oh4FM&nzguf|d=SOiRt-OO*e zpuKRu4IqA++|ALOv^d6u6}HKCkr@J9g1HE=Su93XEp&JZ$9iQs6pg_`S3D6b+*ps! zpmVXSkL?Cg5eI0$OrW1wxYF2|9pl7+=)y4=!dMWkU<{*mu1L-TPRm8LmsZEKTLB`% z*%jb2)Zti-*X1VQCV&iT!;FrG*kp+@rS&v@sfkVPuASf8jJxLex4D<&QNUFVkPFu=C23 z&=^lV;h($>HbXtjHW+xMEFOc2!|~od-L2kfsUMzs#yxB138rg*j)V$jA<^d=&zI=m zem;Z1sG1sn_ilU@)er7=FNVfY=QxuWcfa^D;Mc#D?(r`#mHHu$ypB`7lS$9&(#7?< zGZxq}=M|&(^0J`!Gt>oh!1mzaDxx4fJjUSQ;h{FXMP*n71}O(Cpmsoew$`ojI0|NK zQ-lCh>-Mid+6jEv2xZZ*M2%1x1V5m0I6#`lO|S+jE(yuzNdyR_Y-DZ@htLZ7=Gp=k zA-+LlZu8_{GMgLsu=$Q`bD3BM?JrUy<2({G1S}h6;n*cc;tpLeY$B@zG)Z$)kJJot zggz;6*vOyT7>Li{E}4sCsjXiRU%?3Zg8u^%9qU`>n#ljRZfb2|&Duk2-0G6p3O8I~ z%14n6hoN*>1_|XMKBHA`Fy-Uw<%1hsAS?1!rIjmJts?c}?H|uL`(|=U;fyA$4#sE*EhTzsB8SE+Sc>_?8MB1`I~PEpZW#0ThJ-U^K%? zb(-r6ns0&OyF-@V-L?gnH7{&fta2$72?sIjYk*lq++Nn`a-oPmwTcrkR}!_L?97` zKn!-Qf%K{>w5Wj;TXELZRCSS>ed3PsrlF#Wp&$TJjm_iiu_KI^^`fATciGE>1sKo} zgRd#G9L5NVus0Wryrf2X1r^|O%{82KMuO<^59R>vuu%jKB0!0bB1<4zpn$T`#0^?d z^aQNJa!~~b7k1J*EAJ=Ol6fm}W|!q=F!>BISRRC8M%Na4j~F zBf3*&t}6?3ECfVo*;xi^V*!m4VC96AF>Q9^rjvVM~>gz_q`-8+0w2 zf}w>`g2MW@g2?H~hoDdjMt?*4Fx8Q%HnhQV>d>2eFpv|nw?2?9zg*}>78ZbEmGjilUGk(>0}6DW#9#zstSt738hA+fD# zo{0H<7)IV#m6Cz~I@{W3d_<%r?uCY^-+TC;vOcOU`Q0hT5{)fAcVUt!YXf+Qa98`z zTQ1#s=cPaK;lF$FombD=7oqRt0`i7l@e$|GYXT|pPWkO~a7vkc4k8`FSM1I%;cJF^ z5Gg^y{=(^-jfl|maO&i#(Vo*F;Cw5dSJ!L-9W#jYvt+5*Qv>)C92&Z7KLUlcmAj4A8`3#w!`hy<({AxPa@ViY2i4vA=#M2Q92ABccp>`YY0t;kCt zV2{d7RiEf7y(zSp3{{a($xB6VL*66~F<4>WenK78Zl*o#X8*p^f@Z1Hl#VdE1M-;x z%nkH|yBlEnshN~{h1df2C#HfHy5P38v;!;!=j-h5rk4qk>q@^3Gt>FZfRH~s#rm>OYj+fq?~^`I$P`U!r}XO6;C=e&~`}qA9pCmj<9SIu4ePqvQ6PPzfBa)BD+5 z^bgui&CYd-w#a#7;D+{WbB4e_rCr&;f5X{b^kNWSpnVo@m@R&$$da4=5Ajwx$nIFX z85+??Xe;A{yGR)O*$A^>r(;juuXGPScByi2{8Q?uotv{>Rzp8PA&7?@`-A*yI_It~ z5nht3oM;E@7Y0|sGl+vwgoQj0!bfGcOY4y0wpbSf@k#P&_DT9__@wYD>h-drI`>&h zgnExShiIKoR0Uxa7Fl70!~Ex;&u7;Ov;Z;+H8S|GN-|o6XFyd?Ks=UwNFD?=g*mH` z4@A%7>3=NpdE_PmoOkI)U>{ND`2KUbiRRJEdF|#Gv?Ji{Jg{)R77uR^k8_kQToW?@dbj7>R$U`Tf*K>~f~tj84XQ(7mKuW90dH-Q3zJG_CuV+cb@1s+ zDOLx6olx<=S3U+}B;tPmhmiz;e11R$gxy#-1p~!nG+}!d8ntXUm4J4nojV0^w?Z~r zwnI(J02?q8k-YQ{6}5*YUqE$Wzt0@l$+xJ6vOE!rBcq+(1%f5Y+KD}sU9rd>3*is4 zM(nYR*kP>aH=h%6Y-g=e719}7Tm@%Qm*N=E-y%0g(Kw`#1qm94I_>t7Iu|=9XRlno zkYWU^9nXBMF}_?M1&t7`jRWlwiXsE#fFLPlrw;~lpv*Q9J}sM|bWm#B814ryKm&*a zP=}1*2A!wTzFlTeUDkmra=<@Sq0`mm42z=4fxrs`IL1BP^N9QotXCEiph(H#a!>~N z>_o?qU@TuG=E2dgi@BVC49&PC;>HKacTT#7o`|$W06djHSrz!Fm=W~Q3o^4_=4SzD z;hD1F+cV8)v*+CN$#YFoDR!&Rny`2Ju>A}FX16-B!TG>Lp?xb!yTJIe6!X1txUbit-h*)--+sC4<;CDb@T;U*aLmhq{#E!U`k`d-;7}M&S9@d%>2O$Gl{|ql zU*pzxF<;Bl+I4 zko`cqY2O{UB3RJUCPVCsf?#p8qznFzZp|fL*vx_=6yn$d=;K|WZQ9FiF5I!XeMgV& zY=>@Y-LZ)C=}a2!0y!=REut=*$rLOU!;>@-Jq1Pw*@n7I5rO{u!2Q8+|0G-nCJt*S z*OW;r0p4FTAhN?44;Cr-;qvO$!^1;41VDnxfg7x>8XO!PqR_1Z#&5RY?|D z$XD*Wy$`(QHh6>h7To}s1SB=U9|ZTP^FApf>{(m9<@EEyxK` zMU9UA%X&Al){XOG)N9G$zdHQsXIDr9tyuwSFUU?ymJLO~xZmF|G)^~v#P_VeRk&U2 z;u@7z}v8!=x2T?O?hG{yk&_YO@Fa*H+{LqL-qsZuiIJ zAeqvOEH%`?w`RXS6OJGQrP}&x+ouPKg&_EWNNM0aus#7b@ZTKl5#9$%sK1kpi~<*o zwvbs`MUpH!U`X*W-J&E|Y#!#wBR#-=;S_%%AM{9>76}$_6+^c!u{@S`P?~*?(O=y#@l`LV@r$hHX!o+`Rqb+ z-d`vh%rAoY!@C2Qg!bRlt2v1+;?AgzuT7F@69A|+x>L!Z#(n=u=;@p z(Asw-3LYL{-^fH{`qc>FCtN?c35;03>W|eB{fJUIQbs>cs3XhNA=N1gJ9g~v{H!)) zMr^fAGgUYbGf^!sT`)EV7KVU!j~_egASFv~{D+hHt5 z-1hp&#P%4ykzjr3wiO=O=5atQi5Cb2IEeFb_jg5U2HuDMzNxKMeL9RSNP(2R3Cke` z^clv%vQS8@aCg4N-IbC=A-&Vx74GbL?@qoM2m;3N?kyMJg{;BHLW~U)@dBD6GD$A@ zcZz(?eBBZ%@DONvmPerm8FYpx(Jpa$Rusytzl zW?J-HppC=|dMp!MJB*uplLwcy9!yIpYLL{(8&SC!b9e$&3jDnSHL#SY9T|=Wkp#vN z1mYr!iUT4n;^?skas|<5q%egxqjGhLBe1GQ^@Aoz$a6}H1&D&|(BD#7MHx_GRd0VA zRHEvung==MOLX8y2h8F^3z1(va?KE zx*!q44oJXDd zA4ms5TOMJ<9P903x`yp)ltJ9dF3oiZ;yLX`n9L$_xY6jh+p%Libi9AYurS@3f8eGUYtioC=Im-4`fv;+j|04cg!H87e~!FU7E*HuGe9UvCFYSneygGhnU3G2@FA6JCo zKE|vrVeGPyclG%yUxP!hutZoeMo)-DFq?hlYnY$+Uz8+=ck?MD?hN!e|6AfFh?bB! zgF2;6v7o+b04Y<(ufKs$=#gQfToW1G_w{I;C@kxhHjp5S0eSeDDFAbzum7cN@&zRR zds55SKzn)L-gautLA{=~>Wdvfn$gp6WSUyMJ zti-;5ObT1LG)NObD1}4}ZG}@zpd?5q4uJb>pnuT5gLWIQx z9D<)LX)A}>uCNJyl86qrh)sy|{fd`pH|z?HHev=Si*`G2!8M4^Af5vw#at$e+*OWH z!JG1;(7;PEY3^$jQ7m|Y-OCUabVR z930K&za5RsEK<@X&_3{{}BX;0gO z20>>Hs{@Qf438*?4d~Wh9L1JwG#xt}c??k({UdfZyBw27R2;CYGBW7Yj2_OxN~XJ@ z7{&v}|eIyrmU?L$NuxuP}@Yocf&8PCRgI2Eb~TkXcn)_}^;J<}ZW;{&vvcIW_2 z7@W137TQs2O^KQa=Gq>cP;3i3{zh#n;T#QOBuu0rO*V$r32^A|L_I@V; zd8^z*OCc#9#(*)>6Ds53@bJxoUVt#OWfVB$kHzfK3Rn%uCZ7hz$8r%B#IcveP)t0I zBg5k+Qx`JKo=l$dbP89^kpa6rn2D!$J#B6b&pf>=d!{HIJW2W7v-xxB^CWdpKXmqd zksfIGmlAdifAKGrO>6IV4?tD`Vk12PN8w&tj4UBOerC!*$G69|g#e2*^?SS1l-F!p z*BiF(T}dxk=Wh+cSPEXQFql*7*!W1eSL{_YCZYU76Kpevq0TwR$ zHo8sqjR!2)0qsKBcnh}OQ8y+dzhj9J4n|5qO&Iskl(8azFc9)s*wo~($Yylg_KjjE zNHxhBsV`miq5xHgd6F~R_DLYA8UhWE#we-__l?-I#QU@vy_WlM&F6Gt7H!jec{ z@KBgnr_4It^Myb2*z_vELKz;UUU1Kp#CPS-_Di!M223KDXW%lXb|vxz;gRgcnZbAq zo>CkcYENP%ssN$ zeli6tDSN7e12pc>KUAY88fD>0D@Tnb&5D0;sR@awkRmHOLr`RR2N)@+B35f&4e=!) zoK)dmVcA^%7~dFrRq%SzD};%?M3|{B6&k~h7t9$)?TYFt+x4etc6e1>+-XZb^5GLX( zkSQpR!-6kj3m@{rEF4>?7Z!{D;DCjj6U|cBQ9=rB!ZI3SUnn<}nUNFgw)yj@6!b4C zyjo<5Qajj5EPjHM;Pb%h7+WFsMapRi47ONT<;_uAEfAuO2N|^wD1;3hYTcYl0J+Rc z94I(rqbQVve-jA}?FS^XKh|*Ep#%QVAGB6bi4ImFCrYuiRX8e_k;CCb6NkGa<^pyR zeqK0&s-Xg@0S?Q^fai`bQ<#P54P*_9ZZ|CFUMa~hFT9e|6%6L{uib3G5A63km=MLf z&0l|g5(@|P4B^dXZwOIJ`TnN*oYe#U)?49tNdWayxn3#1JHDo=+kA~+y75|Tk?mXn|;Z$oo*@Yb(SMo7yExpnIlHjso} zH16+02tbKR3km?_|3FRA3j{Hc6ryVL?ITz`jO5!zZv?~*YB2CO64YfevVXKX7JucH z;`xoS6kda5DAc1^ulNy0J7kp$`GcifrA8eYU#cH(eu_K0T0NxRsw%RQUA%D{s)+PY z*zx1z2f2hZ5hMK|iA92hQAJ`L94U#}2;6A4J%yQp-5|@Q5<57?#B9w4QtsF6GBR^6Rr-8WPNCuT5 z7SSJGX4O&EQWf){W`_^9EF4M|R^b;8>lR7}4lq*b<9mQOEX(}DB17IGEqGsK2g-UG z9n7O94AuiZm0nHuHaU?;0D?kNE%`7<(a_W3Ea*IjoA4iX3+frr zqi1=!(nyMqP&kD$_;vURL=GQ+l6_hdF%bx(sDUXdelA)27yTV%8G|amXw28IyLo@T z$7~(Q8i~%qf7Kr;3Zo^ylJWn5ND46(%Ig3(;o&9H@51*fghZbLEI`9QNT&aD_$mBc zgqg^HDWT&hvqQB5rW@Fpr-%0z(!D+{)oC%qIMgeSRC3}fC||j;2Au{ z#YRSm(Np!(+)+m=syMS0lNmRMdkqU#{bU%!+W>7871j)7+Po5Ctq-zkr2<+lX0BSz zZeH&QtG|E6JA8xrW5jsBIW}Cv+5M%L55P!7&f$MH&OzRXF$n_slK3%p{J;{=zz;Ck zUtVP@dZ2repL{pEM4SQJem6Ri5FmfL{)|1q3W`H%9&|As(Wa3ogsAE`7Twq%INr{n zliL-nFmBsvS1>nGg3biKi zYG_C;>0vA=)7}VUWwkd(Cs-S3`)6YnEsv|+q4U!q@$8~?!V)Mk$FlK~*2_nVK2#N= zeS^YDqxJ!3I3Ng!M7bPPXb}Bv00qQ?*W-dIcJ^Qmd?S+K;faR|4`bp`rsMWu)Z1Ow zfh#gWvIk=o3^Vyh>n3@CPC)2TRi7{=3u$NC3-%KJ((pu}d%5s9(CptyUQWyd;EhNJ z7Br<7TG{&SZ`UqK(yKyzPvhtCOuxtmGDJon2R!|YK*aD|;rZvn^U0qz`oGi}|5hF2 z1~#RMf5C94X(7--@ciKbDHGB?;8pi>O5WWbqZv{thB_~cTT{(=XELbZVH>;=4I%XK zYFUMi!>U2cBDu;9rGryL`-Zz#uLeWY{Xd+oF2XFd4P|$)g=G-GfHmY=6c7}Z9YG$6 z2i6IruUpq#Ux!`@8>;KqLosaJm~Ti)4uMOgpuL!eeMk}9MshApp^*qs47qd?o9<|^ z=r-XI2|cihxs(hEo2y!eF>ovwHWB2Yy|IL-8sBio9fx9xn1>vRLrGSSa*jatK=?!8 zk}_z>H*~=t5b>~n14<2YS70%*zGvNf{pqgPH##{XC)U>V5AvT`yhpM&tSLjSNEcC& zCPMKbHPH+DcpRpgj6)9dhT`DhkcVGr4c1rr!4k{@-VMc-t5&sER>%Tju@K1$e|z@| z;v!buzJi%s;qXOX0fqdBml3hV7fIwS#WnD~zVHHHZ?-#&aWDQa-69#x2$ZmhZs;gQ z$S5G=qq>rqaAqWu>$+OL8dU(?GwCRz{cP)qE;!#v2PJBk~F;#YmUOl!F zOE7udKhb!+N;t$5kMDfU#|)Aw4v>Clky?;PB@oqugbQsZ|^8?}-q8!4=JNICZxCYfvtGCIH@L<2Cb%jf?x=ROaO?6mx+aYxlbLe&$9T~~dcuBoi^x{x4=(Pcy;r(J|;Ut+M(yYZ~5kN1nExfEYatFKz%f1jdi3rHe@(gTm ze**b(eH0ZSKrhXMP9&B={*UoE&8OVHUN-9rHg)@u7-&KK!m_wtD>NFZF%|YLV!Q1W zk5TR@+gB&onRQy*0Y-xGg}5&(BSD~czAmS`Rw#xT1nPNC3S@UZ>^I~BFEPu15>aElmcvl%p-*@KphT0IS%yFNmvIf zpu-&`KjuLJ69UCCsb@=cjZ_K=qaZjk9IA?I0PAFjQncI|-MCFN%V*7zCDy?UI06YB zJt{mz_ir%2$f_6y26xmSOO9riJTe#2ppbX+?xCHiznZ<)CoBd^6JmQEkI2HCbU!b< z0qA1VKJ{6XSE5h2PgKKkVBkqlAU=G9J9(Qp2Jj-oDLTR#MKv%5Pr5V7X?JGeEdAxu zQ@nlFO8%UCy9U)j2!)&hssg1KE?mqnxQkuyUIeiMTi^AU()YrpCB`*ee(#dzN;Pr$ zvcIxO1`k&lxBM%l1FS<%uEQ;W6<(o`t4fMIJV2W3hQ z${aaG*=UCY+sbeaL?b*<-|jJzgmV}Xl=s`6+!ZKppBO>OKr4WT1TBmX>i_N6eYDLF z_hEEL{KE5_9Su}u*sMw?!a)_0&_`+`KjfP6GtcjH{AoW#t)xG~Iy?Bax8?(_h15oJ zThp)^nHVjMjFJ^&`y{%F1eO7ditUkIXlzSi7rK=3_- zHZALf5=WZT1JfLmCfrlxW1G0UrEHN3s|a@`PzxF@Yoxm~dCy%c+{stcZ6OxuCf>zB zvX?juzOW1LymR3Kp)h6fM{novRNgk}gd<+2TV@`7`;ZLbZ2gQs-F@cFnaDDn&Q6u> zS(!Q+PLz43PMl~HKhb~OL=yJwDH+8ZRfq-A3+|2NHBZ{ezlB(M{k1ow0fJZ%y}(l} zwoE0;*((FateJwy=!N`P9SM|A3z^as%0PukPKh52rvf z3tec6@W_$32*E}NnODij(S(G z1v&G7ScQ0yKqAP_fnMZ~3evLsj~Y1i0sBNXII>9A852NZO^%WRiGki~_gPm*4Dkig z6y&b>qH0m~^DK1>a?W3$zkVIk;pX}IFX0>L3P*phnL5SQRbDe^Nx*CPrlNEPlI(kO zRTROx`41&w-^P!D{E;0kME0{{Df)oR)@e_Oz@9yRZ@TC3-um{BeWNlPM#QdB_5ECCxwI0pm}5DrD7 zAHu{@XaeaJJO&SLVn8edw1SP$1{v$>jE#1EA~5d~*o#EMaKAVmxwk(1!2@t$cgj`JeA?2{*NW)xgqCKP>@0} z+=oS;Yl4LslWWV{i zGGrU?%<_V3PIF|A6+t{v*<*f+Zkh}ZcS%%a+AEVQ9H4gX=EeHb~#dO*`aE)=oHN{eF}cO zV&@&rFqmgOgMkno@2#7pqGjY8>T9vfQA~Eot3g<02R$k*L|cXg$dX`=9q9y4EGUR8(*;56|tLF4q>RsmDQWRRDlLWeFxz;9oK1gr#$ zMox4V-Odty!f+HfD@TP03MNFcGcol;+Y<0t&{-S|raK1~Mk=jLB}MN7a^>_!FgV%XgUaD9;&jomMX zmnxB)K>xp|My#4%7f2u~ykj9GLfXGqJO!_px=|C}mjdK%7OJok6!OWz+R)(O&=8X_ zRHHCF%tAh#4*B7VfcP*`8@NhR^lLJhipJVHK@DACcz6kh_BuQduxltA{&$*F>I7`8 z&oOamY><~@woz(_jVK`oIteT`X%5|BIU@b0l57=1q$|Rv6fPo?5St(?w3OU2X}SsI z6H6jHq4VjK90)5>QIR~DTu1X3*KCL&A&4a99%^DIxHGIUb*mdTMQ~tLK~9Q{PlOKyHAHi`G&DRk?1yCD(8C8g7{^s%u&`>- ztx5*Ns`AQ}@D+iq6lJ+KtZdw#5WZ1{wZOh%@4$+5#oiTYA&g?$yC;8nvA7CRPm01} zMDM~k4kHCe^&&w#_1)ox49CgjFP;PyDNNQP$se9I&jwANMOf2~CPG$|=peFZ;Kbm@ zcJ0cZUJ5~>L8_ccQ(zhLRCuzW>=Y&WHc%ErQRRV#vv@3fd=bw$kGkv|c=9Q^$7;-| z9gh*NbPE-ON^+yNP-7l>m{pIuM-n1BiqtIsaJP61t7GK2EUEGlFZFQW0&@XZq0D;S z%sRwHj(IHWsK*TM!2zweSAeRz_=>-=H^T2G!bg$3XhMyajka(|(`_y9n9eH)m6qZ> zc<1l}^5Z2H&FnxhU%4vPjFtn!5&?QK1;#vxF@OyaSHQ~7+8Dk;PoGf%Qb=f%{3eZ* zfL{<}X>n%!@*P5BNEB&d6EgQAD(8M-GnNnmUuHoOpv` zCIm$iMxY5BgVJ1RClwbNIDZ?u% zkPdOgE6Cr&Yl|g{5Y)3##D$VuNI37`BoKtS`>LR$h2r0;hA!a^KleqfC3(F;HRR@d0gjZ)V} zX+L-x0BUFuaXLcdLlzHZo!qzyCBc*Exz;eo$nFtffC}YLKncJYEg-%rt~C*{z5 z8zL&aJz&uu=g!%e&X@1b__MddV?kc%={R#*PYRU9Nj*BJ+-ahR#C@G|<_F?Bf4bd2|Zal)Tzwz2@{`Ks&lAdk3Lc}1N)@TCa21Cv!wvNo;-X8{-Riu@k&@y;sh=7PIddGZjQl{qc7Z8oqG5q94H9n| zv%yO?`Y_T2r$x>LxZTGT5Z!5$D_SBJr$6x1by$Y<;>8LBKwrDbLQp z1O&K?Oq>8M{=)PJ4I1@}1@_~4bZ)NX1qNpF>F$NIPjjYTj)_DG1@Q(k2tx<3^`;Lx zB#P~$Th>YQ=|1K+*aWWbQFO$A03^Y2Df=YcJQ{>){4VTP^e=YqDIRL)&^ZJD9CORq z!O9Ls(e0Gk+^j`L4eZ6ACUz>x zE9R6t6gx}x>w=54uYoI2($zUh%*9u@s|)!suGWBOtU)U=R|BW1N15>XUd`ho2?wtN z?%cJ)hu2ykmPBZ{j}}{W2QY9!NP$7bP4r)zg5pzCQ`o}CMr`;`E1!WYKl?oYtSY<- z>~x&~zy2!!x@`K1=o3Mh z2S9m|;s(A0Gn-!oyoUSU{ZND8P@>15vLDOXAO850|G7_0hd{VV0-Rz#AUWKxWx@5m z4NJ*6u@}<_qNUquvyQN$PK$ifB{(PqXaJEOW#+-}4`ry1fRm*|l#u5N@yHuQN_cn$ zr@)V9vxRV>+(KNzP|~~&2O&zLA$kI(MWf}QD;n*Z5g*2bB(2xUtI?h~h{0sb_>2lW z!jUwI5rOV#p|gPGXmTb(NZ?T#O?KcCt)R>o+yz_Lf=``S)h;kwgk`dZTO}i zb&U88i7wF1+-<*rxtcrf^Rl4D45k$qA4{ImS?n(-U zy5wW`X-Us$_$0t<^dJEG2r7dI8cMFpREs#DTq`NeDTlkeCKb`bih#}{VA@JfO^6JK z(WGjPpG&DZ31i`LIv1D%LHu1223PtN-8VukKT_~!>!)-QBx_XhBM80_pt&R zvOXh2TzkFfUErrHykKlg+1>}gr!{^thl$@PjbkqtULvf#jKRc$#l%%(HY^SOSU-qg zpkFNkN&$t1e(RAyYPB|ae)An;K)f(Yqak4pq6guB9mtSb(_lpX6*)8ot4BwoZG|?o z;5kSHi0#j0JmY-Dab?S>lRZ1J_Jq@+wm0`M$|ZFUcnmH!d&ba&vz`Qq`q3w8U}bs6V?j^5@#V)gy%#+T`q?S z;y6kwgok^G)}RE^dK8dVR-ZA{#uPY=%ovZ-ja=FZD)T$L4Y?V9bC31GU5L713Tq)} zi8RVB!jq`spDZG^@J}|LDm?j=+f@WIW?28J!yBWCF1oyhFXb|kKwDH~D~Z7*vI>W< zB>5B3QV_`@+Cq^WyWuXf-3g3E?Zw?u?C)OwqhbKGKorNzdUJ}t(7?NbcS${g1TEWZ z#MS@cSmC@#W6yh2!@@jdVNk+=^3dSm(2%8u92y#;IP8YHhmF%Kp5Pxao?=Z@ji47XJ%#3ebut`XHu)c2 zG?`!yTQSUslAx(b2AMOK^qEZzVmq zPTT|!I7>!GxJL$$oy3EKIcQT7vrbfBi_jsQe>L|v%N(N9#=%X*MPLZZzY2LW8< zKS6d)(_9z>;SSvdxG^>Y;3EX2)k=j?g^YlWIB4{Pg5*t#NPdZMa6VxluL zI*E^lV^uA^0=7CovEPF-i1F-8;%0iEf0vigX6g9a|fZv4f$Zu#%>bF+sHIVPk znxZvCOOUHTxDcqQ5edcdgfTtQI9UWuhEp{mOn~N@aJmTebl44ukU*>7JeR&5-syiE z9>PL3&R;+`;m-$bC@unTYrxx!Al~-~(}0H%_I=k~3h#x>U01GLxy*3+a(1Oe`pvtu zEe8qC=(9WzNB~ex+)IcCWW&VPt{8^^_Rc}$$$eA53(nZTZ9i0ld*HzK9yw0JFhBro zKMMSZRZwS!s0HiPXz*hkMyvXP<+oKW2=yq~FSX5EV;nQ4EmR+sOw(y49Y8_TlcQ2` zGB{cgC?DW2($NV-8M3|99iY;H=^#ENg8(5e1QA5~K!!yI)B-jc%6I`;k|KvFqJn7N zmqIU;6nv6zEt@*T-!ZnQfDSx_TS~-E5RY$=`Jne1J#H6 zu0C6R(&1u{v=5L8d<}dL-4Z__YT>)d-@fUb2qRfXh(nV4Mc<-3bJJPoVw*ag0<;3( zw>woj%~u{y{ri(dT)-)GqAiZYCh(M;;4!g@776<~-g>Knxukouswa%W5pN+23DF0y z^Y}>{VL4hfx2HA1MMAnC*fc_o0$~=Ol(M9~IL4zb%ZMXh29qir&B%2zfw~CZPWlJ^ zMJB-=s$=0wsu}7KRSNc?Tl4tmu$-haid7)t1p*0JS+q^D?kYPj^%!}S>b_nDnUY?J zcI2I4Ix6PTBxgYjallehSW{Tgbv9ER1VDIZ|8&;}g30I;ru_$CYc+=VPnX#wXf8;u zamfv&%$|nkAsR|*FNc}Z^auYhOUVZZqryOYaPX{~x!Dl7wW>LvU0rLy;<_U1HFaD} zc-l?ZI1e{74LQN}ZJuyTkPh0H30IcerA|fBb=Zl{?ZawtjznC7-E=TwgwwFU?yiZj zp`c4-rkwPqU72S@mW`jV36`0%g>(dir4_I747yPGx&l1!CpDYC% ze(bzCg>;!rmMNkqX z^*^{Dmzb-hAyrvIfLKZInEaIeQi3P|)TX~q5_Yl2p@nGdtqBy<!J({v%H=gtQTiH&(EW*Lf!!=$?r55{A*p(?*sja0UqxBOyx(yeO+165gOh zL!N(*|Jdg)AyA{vN6@Q}pl;MbT5qHYu_?$$00Y=_?k$228hc86!3ths8K#P0miTMCJeIfVPsz9BI=9qPb+U%@E?)*yU4fVBs7!Pf{P6s_@f;~PcS@QoX3 z@HOAOc}0BLYaS7j$6TLB8<8mgiS!UyL^KHH>9xlz$|4X#+{Cjci3EcjNffKW7(Q7< zo)sx0I@H!DpEN%1(j&}s{L#nRM_nJo9f&_b7g3QJiU>3J;U5;lH&i1St!5}fiN(1F zv>I-#UB($i1}?eUnybVbC(0m$M5tP&l=w(%+^n=w@PJnLsm~?VWzmSDTUpB+Koh0* z5#`BNEjwOh+8SRY`AiWy^7r(?uP^!E=^>8c8?m5=_|RB`Wi)o8)I+HSTYuGI$m z9IWllfps{Dgw{l`6BRkskM@q}mei79)LGg8#xiBk{u%9%cmv6JlLmeC*W||3rsr(Q z=oDH_mgEM3!jqQ2?zF7l$v9_M1&peDQY+aJ^GYi*1xL`vF)uBE17$Z}i9CU$3-pG$ zHoL(i1RS?pW`NgY5X9(%9fvW-Q`XJ0xB^&%`oqnKij)aehcg&3mOz|=F$V}B+K-lm zl0sw)oMjhG9?NzvQy{$b4qz~23Stbhzkp~{x1FuvK@CdMuS-r^n#knFc8}FBD!n>3gkQ^X*kA|!@ zSX;GfaByg7a4-WN<7ptqprufa)x*QF<3Ac8SmK6kO(L+pb}i7`qlrjC2Rq;nGAd`bqa<2^@G9yn;%)>@ zxI7qRz(iHukN2sHQ`va|FhLEal8O$}pa9u`BaLl^LKshI^``sUz~D(755UyI&%*w7 z#+a>AsGPN82$rh7ynv>yAV4m6h1{$tTV^piH3d}HUVh&ara*qeF_=v0+^mdRV-Bfv z$~srGlo7gMLa0W6yc|5GX?4z8TghT6=bOiSw(_CakhiEMmyI*-!T0RUl z@?~1d$j-Wq7zF!QAwc?t2E+>p{VN_rrVuI}6eS?sph$|&KAwaWhisWO?9n(-HA+B0 zqkRx>j7|m$4m#8yfr(KBAQ(@|zD{>2aTImZ_IU!z1^f@^N0Ou7#fq-T6z6dI%v@(B(F9Jr9hJK#%sd;ue}BwD;w_5->AU_2%`}! z-+s#-F9YF(`BTIF`N`S|5Z_70aLS#oYdq`Elm!ycxU(h12WLH~-@UU$pr5Q0@7VnO zg$w83ap!MhN)ZGq=-+|=m-2UO>i7n$!UXhSNqN~KC$3!am&28Q+$ag0AZ+6O_t76T z!McHPiRA9ddz$xF?zvY%6RoYqd$*!FXwelSzikQ4?f$m62`;`Tu*(CFT&lV$ffc z&PN_Ueq0tVg!9!%%;8={J!&Q^aBtkA$O!QP zJeEcQC^SL~;nlJpS{~m42rUZsP|J?Q>7hP`B8SJF2i_kYFg`$xfT%GN&cX{st_(^5 z!T>Rkd`>WSJ=_;*HmaE@IWoW?0LrL~X8rA?t^6l$UtK?alzqQQYb;6wTRhY z7jYb+Y|6E9KKj9*rtPGLD*b4+)Y|!6VgH}c}2*?Wd*1aGbV655s*~NqQbt;WAbg+LWOqbaerU1&J%qGQP*qySH)994B z?neI&EOdl_4II?w5i#_igNRR-PRMV|cjFJ|3`ANVQ zV2aMaC4{8x)8wJ}?%V9U!uQ_|e_yxUi9ce^c0WF(6bS}ZO;I4!>VED4!D0)S=Y(0s zGa@1S7~*XI{tTno5Y&MmYNlDE4pMgda~U})G;h%0D!lLNo!2M4?h;cG+93Es@S~xS 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�Jq-v%Qg12twDu1Ibegaix3 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 z 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 literal 0 HcmV?d00001 diff --git a/22-raging-sea/dist/index.html b/22-raging-sea/dist/index.html new file mode 100644 index 0000000..e2a2152 --- /dev/null +++ b/22-raging-sea/dist/index.html @@ -0,0 +1,13 @@ + + + + + + Raging sea + + + + + + + \ No newline at end of file diff --git a/22-raging-sea/src/script.js b/22-raging-sea/src/script.js index 83a536d..0490e5e 100644 --- a/22-raging-sea/src/script.js +++ b/22-raging-sea/src/script.js @@ -31,7 +31,7 @@ const scene = new THREE.Scene(); // Environment map let skybox = null; -rgbeLoader.load('/envMaps/autumn_field_puresky_2k.hdr', (envMap) => { +rgbeLoader.load('envMaps/autumn_field_puresky_2k.hdr', (envMap) => { envMap.colorSpace = THREE.SRGBColorSpace; scene.environment = envMap; scene.background = envMap;