<!-- SOLID CITY · part 3383 -->
&W.attributes.color.itemSize===4,it=!!W.attributes.tangent&&(!!H.normalMap||H.anisotropy>0),Re=!!W.morphAttributes.position,gt=!!W.morphAttributes.normal,zt=!!W.morphAttributes.color,At=Zn;H.toneMapped&&(ie===null||ie.isXRRenderTarget===!0)&&(At=I.toneMapping);let St=W.morphAttributes.position||W.morphAttributes.normal||W.morphAttributes.color,en=St!==void 0?St.length:0,Ee=G.get(H),hn=E.state.lights;if(re===!0&&(ae===!0||S!==j)){let Tt=S===j&&H.id===Y;De.setState(H,S,Tt)}let lt=!1;H.version===Ee.__version?(Ee.needsLights&&Ee.lightsStateVersion!==hn.state.version||Ee.outputColorSpace!==ye||k.isBatchedMesh&&Ee.batching===!1||!k.isBatchedMesh&&Ee.batching===!0||k.isBatchedMesh&&Ee.batchingColor===!0&&k._colorsTexture===null||k.isBatchedMesh&&Ee.batchingColor===!1&&k._colorsTexture!==null||k.isInstancedMesh&&Ee.instancing===!1||!k.isInstancedMesh&&Ee.instancing===!0||k.isSkinnedMesh&&Ee.skinning===!1||!k.isSkinnedMesh&&Ee.skinning===!0||k.isInstancedMesh&&Ee.instancingColor===!0&&k.instanceColor===null||k.isInstancedMesh&&Ee.instancingColor===!1&&k.instanceColor!==null||k.isInstancedMesh&&Ee.instancingMorph===!0&&k.morphTexture===null||k.isInstancedMesh&&Ee.instancingMorph===!1&&k.morphTexture!==null||Ee.envMap!==Ie||H.fog===!0&&Ee.fog!==Me||Ee.numClippingPlanes!==void 0&&(Ee.numClippingPlanes!==De.numPlanes||Ee.numIntersection!==De.numIntersection)||Ee.vertexAlphas!==Ke||Ee.vertexTangents!==it||Ee.morphTargets!==Re||Ee.morphNormals!==gt||Ee.morphColors!==zt||Ee.toneMapping!==At||Ee.morphTargetsCount!==en||!!Ee.lightProbeGrid!=E.state.lightProbeGridArray.length>0)&&(lt=!0):(lt=!0,Ee.__version=H.version);let Pn=Ee.currentProgram;lt===!0&&(Pn=Da(H,U,k),O&&H.isNodeMaterial&&O.onUpdateProgram(H,Pn,Ee));let ti=!1,wi=!1,ys=!1,vt=Pn.getUniforms(),Ut=Ee.uniforms;if(_.useProgram(Pn.program)&&(ti=!0,wi=!0,ys=!0),H.id!==Y&&(Y=H.id,wi=!0),Ee.needsLights){let Tt=vp(E.state.lightProbeGridArray,k);Ee.lightProbeGrid!==Tt&&(Ee.lightProbeGrid=Tt,wi=!0)}if(ti||j!==S){_.buffers.depth.getReversed()&&S.reversedDepth!==!0&&(S._reversedDepth=!0,S.updateProjectionMatrix()),vt.setValue(L,"projectionMatrix",S.projectionMatrix),vt.setValue(L,"viewMatrix",S.matrixWorldInverse);let Ri=vt.map.cameraPosition;Ri!==void 0&&Ri.setValue(L,ue.setFromMatrixPosition(S.matrixWorld)),R.logarithmicDepthBuffer&&vt.setValue(L,"logDepthBufFC",2/(Math.log(S.far+1)/Math.LN2)),(H.isMeshPhongMaterial||H.isMeshToonMaterial||H.isMeshLambertMaterial||H.isMeshBasicMaterial||H.isMeshStandardMaterial||H.isShaderMaterial)&&vt.setValue(L,"isOrthographic",S.isOrthographicCamera===!0),j!==S&&(j=S,wi=!0,ys=!0)}if(Ee.needsLights&&(hn.state.sunShadowMap.length>0&&vt.setValue(L,"sunShadowMap",hn.state.sunShadowMap,Z),hn.state.directionalShadowMap.length>0&&vt.setValue(L,"directionalShadowMap",hn.state.directionalShadowMap,Z),hn.state.spotShadowMap.length>0&&vt.setValue(L,"spotShadowMap",hn.state.spotShadowMap,Z),hn.state.pointShadowMap.length>0&&vt.setValue(L,"pointShadowMap",hn.state.pointShadowMap,Z)),k.isSkinnedMesh){vt.setOptional(L,k,"bindMatrix"),vt.setOptional(L,k,"bindMatrixInverse");let Tt=k.skeleton;Tt&&(Tt.boneTexture===null&&Tt.computeBoneTexture(),vt.setValue(L,"boneTexture",Tt.boneTexture,Z))}k.isBatchedMesh&&(vt.setOptional(L,k,"batchingTexture"),vt.setValue(L,"batchingTexture",k._matricesTexture,Z),vt.setOptional(L,k,"batchingIdTexture"),vt.setValue(L,"batchingIdTexture",k._indirectTexture,Z),vt.setOptional(L,k,"batchingColorTexture"),k._colorsTexture!==null&&vt.setValue(L,"batchingColorTexture",k._colorsTexture,Z));let Ai=W.morphAttributes;if((Ai.position!==void 0||Ai.normal!==void 0||Ai.color!==void 0)&&F.update(k,W,Pn),(wi||Ee.receiveShadow!==k.receiveShadow)&&(Ee.receiveShadow=k.receiveShadow,vt.setValue(L,"receiveShadow",k.receiveShadow)),(H.isMeshStandardMaterial||H.isMeshLambertMaterial||H.isMeshPhongMaterial)&&H.envMap===null&&U.environment!==null&&(Ut.envMapIntensity.value=U.environmentIntensity),Ut.dfgLUT!==void 0&&(Ut.dfgLUT.value=bv()),wi){if(vt.setValue(L,"toneMappingExposure",I.toneMappingExposure),Ee.needsLights&&Mp(Ut,ys),Me&&H.fog===!0&&Le.refreshFogUniforms(Ut,Me),Le.refreshMaterialUniforms(Ut,H,ee,$,E.state.transmissionRenderTarget[S.id]),Ee.needsLights&&Ee.lightProbeGrid){let Tt=Ee.lightProbeGrid;Ut.probesSH.value=Tt.texture,Ut.probesMin.value.copy(Tt.boundingBox.min),Ut.probesMax.value.copy(Tt.boundingBox.max),Ut.probesResolution.value.copy(Tt.resolution)}or.upload(L,Eu(Ee),Ut,Z)}if(H.isShaderMaterial&&H.uniformsNeedUpdate===!0&&(or.upload(L,Eu(Ee),Ut,Z),H.uniformsNeedUpdate=!1),H.isSpriteMaterial&&vt.setValue(L,"center",k.center),vt.setValue(L,"modelViewMatrix",k.modelViewMatrix),vt.setValue(L,"normalMatrix",k.normalMatrix),vt.setValue(L,"modelMatrix",k.matrixWorld),H.uniformsGroups!==void 0){let Tt=H.uniformsGroups;for(let Ri=0,Ms=Tt.length;Ri<Ms;Ri++){let Au=Tt[Ri];se.update(Au,Pn),se.bind(Au,Pn)}}return Pn}function Mp(S,U){S.ambientLightColor.needsUpdate=U,S.lightProbe.needsUpdate=U,S.sunLights.needs