<!-- SOLUV · part 647 -->
681,3466,14511,3305,14344,3121,14037,2800,13753,2467,15360,0,15360,1,15359,21,15355,89,15346,253,15325,479,15287,796,15225,1148,15133,1492,15008,1749,14856,1882,14685,1886,14506,1783,14324,1608,13996,1398,13702,1183]),kn=null;function qS(){return kn===null&&(kn=new en(XS,16,16,Mi,wn),kn.name="DFG_LUT",kn.minFilter=ve,kn.magFilter=ve,kn.wrapS=tn,kn.wrapT=tn,kn.generateMipmaps=!1,kn.needsUpdate=!0),kn}var Kp=class{constructor(t={}){let{canvas:e=pp(),context:n=null,depth:i=!0,stencil:r=!1,alpha:a=!1,antialias:o=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:d=!1,reversedDepthBuffer:u=!1,outputBufferType:f=rn}=t;this.isWebGLRenderer=!0;let p;if(n!==null){if(typeof WebGLRenderingContext<"u"&&n instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");p=n.getContextAttributes().alpha}else p=a;let _=f,g=new Set([Pl,Il,ta]),m=new Set([rn,mn,Gs,Hs,wl,Cl]),S=new Uint32Array(4),b=new Int32Array(4),x=new C,E=null,T=null,R=[],v=[],A=null;this.domElement=e,this.debug={checkShaderErrors:!0,diagnostics:{keywords:!1},onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=An,this.toneMappingExposure=1,this.transmissionResolutionScale=1;let I=this,L=!1,F=null,z=null,D=null,B=null;this._outputColorSpace=je;let X=0,W=0,st=null,q=-1,Q=null,et=new fe,Dt=new fe,wt=null,se=new Mt(0),Qt=0,ne=e.width,J=e.height,j=1,xt=null,Vt=null,bt=new fe(0,0,ne,J),Gt=new fe(0,0,ne,J),he=!1,tt=new Qn,rt=!1,at=!1,ot=new Wt,ht=new C,Bt=new fe,Ot={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0},Ht=!1;function qt(){return st===null?j:1}let P=n;function ae(M,N){return e.getContext(M,N)}let jt,w,y,O,G,Y,lt,ct,Z,K,dt,Nt,gt,ft,Ut,zt,Zt,U,pt,$,mt,St,it;try{let M={alpha:!0,depth:i,stencil:r,antialias:o,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:h,failIfMajorPerformanceCaveat:d};if("setAttribute"in e&&e.setAttribute("data-engine",`three.js r${Tl}`),e.addEventListener("webglcontextlost",ge,!1),e.addEventListener("webglcontextrestored",oe,!1),e.addEventListener("webglcontextcreationerror",gn,!1),P===null){let N="webgl2";if(P=ae(N,M),P===null)throw ae(N)?new Error("THREE.WebGLRenderer: Error creating WebGL context with your selected attributes."):new Error("THREE.WebGLRenderer: Error creating WebGL context.")}Ft()}catch(M){throw e.removeEventListener("webglcontextlost",ge,!1),e.removeEventListener("webglcontextrestored",oe,!1),e.removeEventListener("webglcontextcreationerror",gn,!1),Lt("WebGLRenderer: "+M.message),M}function Ft(){jt=new jv(P),jt.init(),mt=new zS(P,jt),w=new Hv(P,jt,t,mt),y=new OS(P,jt),w.reversedDepthBuffer&&u&&y.buffers.depth.setReversed(!0),z=P.createFramebuffer(),D=P.createFramebuffer(),B=P.createFramebuffer(),O=new ny(P),G=new bS,Y=new BS(P,jt,y,G,w,mt,O),lt=new Qv(I),ct=new s0(P),St=new kv(P,ct),Z=new ty(P,ct,O,St),K=new sy(P,Z,ct,St,O),U=new iy(P,w,Y),Ut=new Wv(G),dt=new MS(I,lt,jt,w,St,Ut),Nt=new HS(I,G),gt=new ES,ft=new PS(jt),Zt=new Vv(I,lt,y,K,p,l),zt=new FS(I,K,w),it=new WS(P,O,w,y),pt=new Gv(P,jt,O),$=new ey(P,jt,O),O.programs=dt.programs,I.capabilities=w,I.extensions=jt,I.properties=G,I.renderLists=gt,I.shadowMap=zt,I.state=y,I.info=O}_!==rn&&(A=new ay(_,e.width,e.height,o,i,r));let It=new ld(I,P);this.xr=It,this.getContext=function(){return P},this.getContextAttributes=function(){return P.getContextAttributes()},this.forceContextLoss=function(){let M=jt.get("WEBGL_lose_context");M&&M.loseContext()},this.forceContextRestore=function(){let M=jt.get("WEBGL_lose_context");M&&M.restoreContext()},this.getPixelRatio=function(){return j},this.setPixelRatio=function(M){M!==void 0&&(j=M,this.setSize(ne,J,!1))},this.getSize=function(M){return M.set(ne,J)},this.setSize=function(M,N,H=!0){if(It.isPresenting){ut("WebGLRenderer: Can't change size while VR device is presenting.");return}ne=M,J=N,e.width=Math.floor(M*j),e.height=Math.floor(N*j),H===!0&&(e.style.width=M+"px",e.style.height=N+"px"),A!==null&&A.setSize(e.width,e.height),this.setViewport(0,0,M,N)},this.getDrawingBufferSize=function(M){return M.set(ne*j,J*j).floor()},this.setDrawingBufferSize=function(M,N,H){ne=M,J=N,j=H,e.width=Math.floor(M*H),e.height=Math.floor(N*H),this.setViewport(0,0,M,N)},this.setEffects=function(M){if(_===rn){Lt("WebGLRenderer: setEffects() requires outputBufferType set to HalfFloatType or FloatType.");return}if(M){for(let N=0;N<M.length;N++)if(M[N].isOutputPass===!0){ut("WebGLRenderer: OutputPass is not needed in setEffects(). Tone mapping and color space conversion are applied automatically.");break}}A.setEffects(M||[])},this.getCurrentViewport=function(M){return M.copy(et)},this.getViewport=function(M){return M.copy(bt)},this.setViewport=function(M,N,H,V){M.isVector4?bt.set(M.x,M.y,M.z,M.w):bt.set(M,N,H,V),y.viewport(et.copy(bt).mul