<!-- SOLID CITY · part 3380 -->
is.setScissorTest=function(S){_.setScissorTest(xt=S)},this.setOpaqueSort=function(S){ve=S},this.setTransparentSort=function(S){Ve=S},this.getClearColor=function(S){return S.copy(Ye.getClearColor())},this.setClearColor=function(){Ye.setClearColor(...arguments)},this.getClearAlpha=function(){return Ye.getClearAlpha()},this.setClearAlpha=function(){Ye.setClearAlpha(...arguments)},this.clear=function(S=!0,U=!0,W=!0){let H=0;if(S){let k=!1;if(ie!==null){let Me=ie.texture.format;k=m.has(Me)}if(k){let Me=ie.texture.type,Te=p.has(Me),ye=Ye.getClearColor(),Ae=Ye.getClearAlpha(),Ie=ye.r,Ke=ye.g,it=ye.b;Te?(b[0]=Ie,b[1]=Ke,b[2]=it,b[3]=Ae,L.clearBufferuiv(L.COLOR,0,b)):(A[0]=Ie,A[1]=Ke,A[2]=it,A[3]=Ae,L.clearBufferiv(L.COLOR,0,A))}else H|=L.COLOR_BUFFER_BIT}U&&(H|=L.DEPTH_BUFFER_BIT,this.state.buffers.depth.setMask(!0)),W&&(H|=L.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),H!==0&&L.clear(H)},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.setNodesHandler=function(S){S.setRenderer(this),O=S},this.dispose=function(){t.removeEventListener("webglcontextlost",Et,!1),t.removeEventListener("webglcontextrestored",mt,!1),t.removeEventListener("webglcontextcreationerror",kn,!1),Ye.dispose(),_e.dispose(),fe.dispose(),G.dispose(),ce.dispose(),Q.dispose(),Se.dispose(),se.dispose(),de.dispose(),Ce.dispose(),Ce.removeEventListener("sessionstart",vu),Ce.removeEventListener("sessionend",yu),ji.stop()};function Et(S){S.preventDefault(),Br("WebGLRenderer: Context Lost."),D=!0}function mt(){Br("WebGLRenderer: Context Restored."),D=!1;let S=B.autoReset,U=He.enabled,W=He.autoUpdate,H=He.needsUpdate,k=He.type;Ue(),B.autoReset=S,He.enabled=U,He.autoUpdate=W,He.needsUpdate=H,He.type=k}function kn(S){ke("WebGLRenderer: A WebGL context could not be created. Reason: ",S.statusMessage)}function ei(S){let U=S.target;U.removeEventListener("dispose",ei),gp(U)}function gp(S){_p(S),G.remove(S)}function _p(S){let U=G.get(S).programs;U!==void 0&&(U.forEach(function(W){de.releaseProgram(W)}),S.isShaderMaterial&&de.releaseShaderCache(S))}this.renderBufferDirect=function(S,U,W,H,k,Me){U===null&&(U=Fe);let Te=k.isMesh&&k.matrixWorld.determinantAffine()<0,ye=yp(S,U,W,H,k);_.setMaterial(H,Te);let Ae=W.index,Ie=1;if(H.wireframe===!0){if(Ae=J.getWireframeAttribute(W),Ae===void 0)return;Ie=2}let Ke=W.drawRange,it=W.attributes.position,Re=Ke.start*Ie,gt=(Ke.start+Ke.count)*Ie;Me!==null&&(Re=Math.max(Re,Me.start*Ie),gt=Math.min(gt,(Me.start+Me.count)*Ie)),Ae!==null?(Re=Math.max(Re,0),gt=Math.min(gt,Ae.count)):it!=null&&(Re=Math.max(Re,0),gt=Math.min(gt,it.count));let zt=gt-Re;if(zt<0||zt===1/0)return;Se.setup(k,H,ye,W,Ae);let At,St=pe;if(Ae!==null&&(At=he.get(Ae),St=K,St.setIndex(At)),k.isMesh)H.wireframe===!0?(_.setLineWidth(H.wireframeLinewidth*qe()),St.setMode(L.LINES)):St.setMode(L.TRIANGLES);else if(k.isLine){let en=H.linewidth;en===void 0&&(en=1),_.setLineWidth(en*qe()),k.isLineSegments?St.setMode(L.LINES):k.isLineLoop?St.setMode(L.LINE_LOOP):St.setMode(L.LINE_STRIP)}else k.isPoints?St.setMode(L.POINTS):k.isSprite&&St.setMode(L.TRIANGLES);if(k.isBatchedMesh)if(nt.get("WEBGL_multi_draw"))St.renderMultiDraw(k._multiDrawStarts,k._multiDrawCounts,k._multiDrawCount);else{let en=k._multiDrawStarts,Ee=k._multiDrawCounts,hn=k._multiDrawCount,lt=Ae?he.get(Ae).bytesPerElement:1,Pn=G.get(H).currentProgram.getUniforms();for(let ti=0;ti<hn;ti++)Pn.setValue(L,"_gl_DrawID",ti),St.render(en[ti]/lt,Ee[ti])}else if(k.isInstancedMesh)St.renderInstances(Re,zt,k.count);else if(W.isInstancedBufferGeometry){let en=W._maxInstanceCount!==void 0?W._maxInstanceCount:1/0,Ee=Math.min(W.instanceCount,en);St.renderInstances(Re,zt,Ee)}else St.render(Re,zt)};function xu(S,U,W,H){O!==null&&S.isNodeMaterial&&O.setObject(H,S),re===!0&&De.setState(S,W,!1),S.transparent===!0&&S.side===vn&&S.forceSinglePass===!1?(S.side=jt,S.needsUpdate=!0,Da(S,U,H),S.side=Vi,S.needsUpdate=!0,Da(S,U,H),S.side=vn):Da(S,U,H)}this.compile=function(S,U,W=null){W===null&&(W=S),O!==null&&O.renderStart(S,U,W),E=fe.get(W),E.init(U),x.push(E),W.traverseVisible(function(k){k.isLight&&k.layers.test(U.layers)&&(E.pushLight(k),k.castShadow&&E.pushShadow(k))}),S!==W&&S.traverseVisible(function(k){k.isLight&&k.layers.test(U.layers)&&(E.pushLight(k),k.castShadow&&E.pushShadow(k))}),E.setupLights(),O!==null&&O.updateLights(E.state.lightsArray),ae=this.localClippingEnabled,re=De.init(this.clippingPlanes,ae),re===!0&&De.setGlobalState(this.clippingPlanes,U),O!==null&&He.render(E.state.shadowsArray,W,U);let H=new Set;return S.traverse(function(k){if(!(k.isMesh||k.isPoints||k.isLine||k.isSprite))return;let Me=k.material;if(Me)if(Array.isArray(Me))for(let Te=0;Te<Me.length;Te++){let ye=Me[Te];xu(ye,W,U,k),H.add(ye)}else xu(Me,W,U,k),H.add(Me)}),E=x.pop(),O!==null&&O.renderEnd(),H},this.compileAsync=function(S,U,W=null){let H=this.compile(S,U,W);return new Promise(k=>{function 