67fd1cdc230a17e684577d645a24e9f9ab24e35a500f9d75293331810e9b91a3.json 59 KB

1
  1. {"ast":null,"code":"export class NativePipelineContext {\n get isReady() {\n if (this.compilationError) {\n const message = this.compilationError.message;\n throw new Error(\"SHADER ERROR\" + (typeof message === \"string\" ? \"\\n\" + message : \"\"));\n }\n return this.isCompiled;\n }\n _getVertexShaderCode() {\n return null;\n }\n _getFragmentShaderCode() {\n return null;\n }\n constructor(engine, isAsync, shaderProcessingContext) {\n this.isCompiled = false;\n this.vertexBufferKindToType = {};\n this._valueCache = {};\n this._engine = engine;\n this.isAsync = isAsync;\n this.shaderProcessingContext = shaderProcessingContext;\n }\n _fillEffectInformation(effect, uniformBuffersNames, uniformsNames, uniforms, samplerList, samplers, attributesNames, attributes) {\n const engine = this._engine;\n if (engine.supportsUniformBuffers) {\n for (const name in uniformBuffersNames) {\n effect.bindUniformBlock(name, uniformBuffersNames[name]);\n }\n }\n const effectAvailableUniforms = this._engine.getUniforms(this, uniformsNames);\n effectAvailableUniforms.forEach((uniform, index) => {\n uniforms[uniformsNames[index]] = uniform;\n });\n this._uniforms = uniforms;\n let index;\n for (index = 0; index < samplerList.length; index++) {\n const sampler = effect.getUniform(samplerList[index]);\n if (sampler == null) {\n samplerList.splice(index, 1);\n index--;\n }\n }\n samplerList.forEach((name, index) => {\n samplers[name] = index;\n });\n attributes.push(...engine.getAttributes(this, attributesNames));\n }\n setEngine(engine) {\n this._engine = engine;\n }\n /**\n * Release all associated resources.\n **/\n dispose() {\n this._uniforms = {};\n }\n /**\n * @internal\n */\n _cacheMatrix(uniformName, matrix) {\n const cache = this._valueCache[uniformName];\n const flag = matrix.updateFlag;\n if (cache !== undefined && cache === flag) {\n return false;\n }\n this._valueCache[uniformName] = flag;\n return true;\n }\n /**\n * @internal\n */\n _cacheFloat2(uniformName, x, y) {\n let cache = this._valueCache[uniformName];\n if (!cache) {\n cache = [x, y];\n this._valueCache[uniformName] = cache;\n return true;\n }\n let changed = false;\n if (cache[0] !== x) {\n cache[0] = x;\n changed = true;\n }\n if (cache[1] !== y) {\n cache[1] = y;\n changed = true;\n }\n return changed;\n }\n /**\n * @internal\n */\n _cacheFloat3(uniformName, x, y, z) {\n let cache = this._valueCache[uniformName];\n if (!cache) {\n cache = [x, y, z];\n this._valueCache[uniformName] = cache;\n return true;\n }\n let changed = false;\n if (cache[0] !== x) {\n cache[0] = x;\n changed = true;\n }\n if (cache[1] !== y) {\n cache[1] = y;\n changed = true;\n }\n if (cache[2] !== z) {\n cache[2] = z;\n changed = true;\n }\n return changed;\n }\n /**\n * @internal\n */\n _cacheFloat4(uniformName, x, y, z, w) {\n let cache = this._valueCache[uniformName];\n if (!cache) {\n cache = [x, y, z, w];\n this._valueCache[uniformName] = cache;\n return true;\n }\n let changed = false;\n if (cache[0] !== x) {\n cache[0] = x;\n changed = true;\n }\n if (cache[1] !== y) {\n cache[1] = y;\n changed = true;\n }\n if (cache[2] !== z) {\n cache[2] = z;\n changed = true;\n }\n if (cache[3] !== w) {\n cache[3] = w;\n changed = true;\n }\n return changed;\n }\n /**\n * Sets an integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n */\n setInt(uniformName, value) {\n const cache = this._valueCache[uniformName];\n if (cache !== undefined && cache === value) {\n return;\n }\n if (this._engine.setInt(this._uniforms[uniformName], value)) {\n this._valueCache[uniformName] = value;\n }\n }\n /**\n * Sets a int2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int2.\n * @param y Second int in int2.\n */\n setInt2(uniformName, x, y) {\n if (this._cacheFloat2(uniformName, x, y)) {\n if (!this._engine.setInt2(this._uniforms[uniformName], x, y)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a int3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int3.\n * @param y Second int in int3.\n * @param z Third int in int3.\n */\n setInt3(uniformName, x, y, z) {\n if (this._cacheFloat3(uniformName, x, y, z)) {\n if (!this._engine.setInt3(this._uniforms[uniformName], x, y, z)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a int4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int4.\n * @param y Second int in int4.\n * @param z Third int in int4.\n * @param w Fourth int in int4.\n */\n setInt4(uniformName, x, y, z, w) {\n if (this._cacheFloat4(uniformName, x, y, z, w)) {\n if (!this._engine.setInt4(this._uniforms[uniformName], x, y, z, w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets an int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setIntArray(this._uniforms[uniformName], array);\n }\n /**\n * Sets an int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray2(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setIntArray2(this._uniforms[uniformName], array);\n }\n /**\n * Sets an int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray3(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setIntArray3(this._uniforms[uniformName], array);\n }\n /**\n * Sets an int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray4(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setIntArray4(this._uniforms[uniformName], array);\n }\n /**\n * Sets an unsigned integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n */\n setUInt(uniformName, value) {\n const cache = this._valueCache[uniformName];\n if (cache !== undefined && cache === value) {\n return;\n }\n if (this._engine.setUInt(this._uniforms[uniformName], value)) {\n this._valueCache[uniformName] = value;\n }\n }\n /**\n * Sets a unsigned int2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint2.\n * @param y Second unsigned int in uint2.\n */\n setUInt2(uniformName, x, y) {\n if (this._cacheFloat2(uniformName, x, y)) {\n if (!this._engine.setUInt2(this._uniforms[uniformName], x, y)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a unsigned int3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint3.\n * @param y Second unsigned int in uint3.\n * @param z Third unsigned int in uint3.\n */\n setUInt3(uniformName, x, y, z) {\n if (this._cacheFloat3(uniformName, x, y, z)) {\n if (!this._engine.setUInt3(this._uniforms[uniformName], x, y, z)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a unsigned int4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint4.\n * @param y Second unsigned int in uint4.\n * @param z Third unsigned int in uint4.\n * @param w Fourth unsigned int in uint4.\n */\n setUInt4(uniformName, x, y, z, w) {\n if (this._cacheFloat4(uniformName, x, y, z, w)) {\n if (!this._engine.setUInt4(this._uniforms[uniformName], x, y, z, w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets an unsigned int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setUIntArray(this._uniforms[uniformName], array);\n }\n /**\n * Sets an unsigned int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray2(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setUIntArray2(this._uniforms[uniformName], array);\n }\n /**\n * Sets an unsigned int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray3(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setUIntArray3(this._uniforms[uniformName], array);\n }\n /**\n * Sets an unsigned int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray4(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setUIntArray4(this._uniforms[uniformName], array);\n }\n /**\n * Sets an float array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setFloatArray(this._uniforms[uniformName], array);\n }\n /**\n * Sets an float array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray2(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setFloatArray2(this._uniforms[uniformName], array);\n }\n /**\n * Sets an float array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray3(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setFloatArray3(this._uniforms[uniformName], array);\n }\n /**\n * Sets an float array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray4(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setFloatArray4(this._uniforms[uniformName], array);\n }\n /**\n * Sets an array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setArray(this._uniforms[uniformName], array);\n }\n /**\n * Sets an array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray2(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setArray2(this._uniforms[uniformName], array);\n }\n /**\n * Sets an array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray3(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setArray3(this._uniforms[uniformName], array);\n }\n /**\n * Sets an array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray4(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setArray4(this._uniforms[uniformName], array);\n }\n /**\n * Sets matrices on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrices matrices to be set.\n */\n setMatrices(uniformName, matrices) {\n if (!matrices) {\n return;\n }\n this._valueCache[uniformName] = null;\n this._engine.setMatrices(this._uniforms[uniformName], matrices);\n }\n /**\n * Sets matrix on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix(uniformName, matrix) {\n if (this._cacheMatrix(uniformName, matrix)) {\n if (!this._engine.setMatrices(this._uniforms[uniformName], matrix.asArray())) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a 3x3 matrix on a uniform variable. (Specified as [1,2,3,4,5,6,7,8,9] will result in [1,2,3][4,5,6][7,8,9] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix3x3(uniformName, matrix) {\n this._valueCache[uniformName] = null;\n this._engine.setMatrix3x3(this._uniforms[uniformName], matrix);\n }\n /**\n * Sets a 2x2 matrix on a uniform variable. (Specified as [1,2,3,4] will result in [1,2][3,4] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix2x2(uniformName, matrix) {\n this._valueCache[uniformName] = null;\n this._engine.setMatrix2x2(this._uniforms[uniformName], matrix);\n }\n /**\n * Sets a float on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value value to be set.\n */\n setFloat(uniformName, value) {\n const cache = this._valueCache[uniformName];\n if (cache !== undefined && cache === value) {\n return;\n }\n if (this._engine.setFloat(this._uniforms[uniformName], value)) {\n this._valueCache[uniformName] = value;\n }\n }\n /**\n * Sets a boolean on a uniform variable.\n * @param uniformName Name of the variable.\n * @param bool value to be set.\n */\n setBool(uniformName, bool) {\n const cache = this._valueCache[uniformName];\n if (cache !== undefined && cache === bool) {\n return;\n }\n if (this._engine.setInt(this._uniforms[uniformName], bool ? 1 : 0)) {\n this._valueCache[uniformName] = bool ? 1 : 0;\n }\n }\n /**\n * Sets a Vector2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector2 vector2 to be set.\n */\n setVector2(uniformName, vector2) {\n if (this._cacheFloat2(uniformName, vector2.x, vector2.y)) {\n if (!this._engine.setFloat2(this._uniforms[uniformName], vector2.x, vector2.y)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a float2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float2.\n * @param y Second float in float2.\n */\n setFloat2(uniformName, x, y) {\n if (this._cacheFloat2(uniformName, x, y)) {\n if (!this._engine.setFloat2(this._uniforms[uniformName], x, y)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Vector3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector3 Value to be set.\n */\n setVector3(uniformName, vector3) {\n if (this._cacheFloat3(uniformName, vector3.x, vector3.y, vector3.z)) {\n if (!this._engine.setFloat3(this._uniforms[uniformName], vector3.x, vector3.y, vector3.z)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a float3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float3.\n * @param y Second float in float3.\n * @param z Third float in float3.\n */\n setFloat3(uniformName, x, y, z) {\n if (this._cacheFloat3(uniformName, x, y, z)) {\n if (!this._engine.setFloat3(this._uniforms[uniformName], x, y, z)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Vector4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector4 Value to be set.\n */\n setVector4(uniformName, vector4) {\n if (this._cacheFloat4(uniformName, vector4.x, vector4.y, vector4.z, vector4.w)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], vector4.x, vector4.y, vector4.z, vector4.w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Quaternion on a uniform variable.\n * @param uniformName Name of the variable.\n * @param quaternion Value to be set.\n */\n setQuaternion(uniformName, quaternion) {\n if (this._cacheFloat4(uniformName, quaternion.x, quaternion.y, quaternion.z, quaternion.w)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], quaternion.x, quaternion.y, quaternion.z, quaternion.w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a float4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float4.\n * @param y Second float in float4.\n * @param z Third float in float4.\n * @param w Fourth float in float4.\n */\n setFloat4(uniformName, x, y, z, w) {\n if (this._cacheFloat4(uniformName, x, y, z, w)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], x, y, z, w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Color3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n */\n setColor3(uniformName, color3) {\n if (this._cacheFloat3(uniformName, color3.r, color3.g, color3.b)) {\n if (!this._engine.setFloat3(this._uniforms[uniformName], color3.r, color3.g, color3.b)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Color4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n * @param alpha Alpha value to be set.\n */\n setColor4(uniformName, color3, alpha) {\n if (this._cacheFloat4(uniformName, color3.r, color3.g, color3.b, alpha)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], color3.r, color3.g, color3.b, alpha)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Color4 on a uniform variable\n * @param uniformName defines the name of the variable\n * @param color4 defines the value to be set\n */\n setDirectColor4(uniformName, color4) {\n if (this._cacheFloat4(uniformName, color4.r, color4.g, color4.b, color4.a)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], color4.r, color4.g, color4.b, color4.a)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n}","map":{"version":3,"names":["NativePipelineContext","isReady","compilationError","message","Error","isCompiled","_getVertexShaderCode","_getFragmentShaderCode","constructor","engine","isAsync","shaderProcessingContext","vertexBufferKindToType","_valueCache","_engine","_fillEffectInformation","effect","uniformBuffersNames","uniformsNames","uniforms","samplerList","samplers","attributesNames","attributes","supportsUniformBuffers","name","bindUniformBlock","effectAvailableUniforms","getUniforms","forEach","uniform","index","_uniforms","length","sampler","getUniform","splice","push","getAttributes","setEngine","dispose","_cacheMatrix","uniformName","matrix","cache","flag","updateFlag","undefined","_cacheFloat2","x","y","changed","_cacheFloat3","z","_cacheFloat4","w","setInt","value","setInt2","setInt3","setInt4","setIntArray","array","setIntArray2","setIntArray3","setIntArray4","setUInt","setUInt2","setUInt3","setUInt4","setUIntArray","setUIntArray2","setUIntArray3","setUIntArray4","setFloatArray","setFloatArray2","setFloatArray3","setFloatArray4","setArray","setArray2","setArray3","setArray4","setMatrices","matrices","setMatrix","asArray","setMatrix3x3","setMatrix2x2","setFloat","setBool","bool","setVector2","vector2","setFloat2","setVector3","vector3","setFloat3","setVector4","vector4","setFloat4","setQuaternion","quaternion","setColor3","color3","r","g","b","setColor4","alpha","setDirectColor4","color4","a"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Engines/Native/nativePipelineContext.js"],"sourcesContent":["export class NativePipelineContext {\n get isReady() {\n if (this.compilationError) {\n const message = this.compilationError.message;\n throw new Error(\"SHADER ERROR\" + (typeof message === \"string\" ? \"\\n\" + message : \"\"));\n }\n return this.isCompiled;\n }\n _getVertexShaderCode() {\n return null;\n }\n _getFragmentShaderCode() {\n return null;\n }\n constructor(engine, isAsync, shaderProcessingContext) {\n this.isCompiled = false;\n this.vertexBufferKindToType = {};\n this._valueCache = {};\n this._engine = engine;\n this.isAsync = isAsync;\n this.shaderProcessingContext = shaderProcessingContext;\n }\n _fillEffectInformation(effect, uniformBuffersNames, uniformsNames, uniforms, samplerList, samplers, attributesNames, attributes) {\n const engine = this._engine;\n if (engine.supportsUniformBuffers) {\n for (const name in uniformBuffersNames) {\n effect.bindUniformBlock(name, uniformBuffersNames[name]);\n }\n }\n const effectAvailableUniforms = this._engine.getUniforms(this, uniformsNames);\n effectAvailableUniforms.forEach((uniform, index) => {\n uniforms[uniformsNames[index]] = uniform;\n });\n this._uniforms = uniforms;\n let index;\n for (index = 0; index < samplerList.length; index++) {\n const sampler = effect.getUniform(samplerList[index]);\n if (sampler == null) {\n samplerList.splice(index, 1);\n index--;\n }\n }\n samplerList.forEach((name, index) => {\n samplers[name] = index;\n });\n attributes.push(...engine.getAttributes(this, attributesNames));\n }\n setEngine(engine) {\n this._engine = engine;\n }\n /**\n * Release all associated resources.\n **/\n dispose() {\n this._uniforms = {};\n }\n /**\n * @internal\n */\n _cacheMatrix(uniformName, matrix) {\n const cache = this._valueCache[uniformName];\n const flag = matrix.updateFlag;\n if (cache !== undefined && cache === flag) {\n return false;\n }\n this._valueCache[uniformName] = flag;\n return true;\n }\n /**\n * @internal\n */\n _cacheFloat2(uniformName, x, y) {\n let cache = this._valueCache[uniformName];\n if (!cache) {\n cache = [x, y];\n this._valueCache[uniformName] = cache;\n return true;\n }\n let changed = false;\n if (cache[0] !== x) {\n cache[0] = x;\n changed = true;\n }\n if (cache[1] !== y) {\n cache[1] = y;\n changed = true;\n }\n return changed;\n }\n /**\n * @internal\n */\n _cacheFloat3(uniformName, x, y, z) {\n let cache = this._valueCache[uniformName];\n if (!cache) {\n cache = [x, y, z];\n this._valueCache[uniformName] = cache;\n return true;\n }\n let changed = false;\n if (cache[0] !== x) {\n cache[0] = x;\n changed = true;\n }\n if (cache[1] !== y) {\n cache[1] = y;\n changed = true;\n }\n if (cache[2] !== z) {\n cache[2] = z;\n changed = true;\n }\n return changed;\n }\n /**\n * @internal\n */\n _cacheFloat4(uniformName, x, y, z, w) {\n let cache = this._valueCache[uniformName];\n if (!cache) {\n cache = [x, y, z, w];\n this._valueCache[uniformName] = cache;\n return true;\n }\n let changed = false;\n if (cache[0] !== x) {\n cache[0] = x;\n changed = true;\n }\n if (cache[1] !== y) {\n cache[1] = y;\n changed = true;\n }\n if (cache[2] !== z) {\n cache[2] = z;\n changed = true;\n }\n if (cache[3] !== w) {\n cache[3] = w;\n changed = true;\n }\n return changed;\n }\n /**\n * Sets an integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n */\n setInt(uniformName, value) {\n const cache = this._valueCache[uniformName];\n if (cache !== undefined && cache === value) {\n return;\n }\n if (this._engine.setInt(this._uniforms[uniformName], value)) {\n this._valueCache[uniformName] = value;\n }\n }\n /**\n * Sets a int2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int2.\n * @param y Second int in int2.\n */\n setInt2(uniformName, x, y) {\n if (this._cacheFloat2(uniformName, x, y)) {\n if (!this._engine.setInt2(this._uniforms[uniformName], x, y)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a int3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int3.\n * @param y Second int in int3.\n * @param z Third int in int3.\n */\n setInt3(uniformName, x, y, z) {\n if (this._cacheFloat3(uniformName, x, y, z)) {\n if (!this._engine.setInt3(this._uniforms[uniformName], x, y, z)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a int4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First int in int4.\n * @param y Second int in int4.\n * @param z Third int in int4.\n * @param w Fourth int in int4.\n */\n setInt4(uniformName, x, y, z, w) {\n if (this._cacheFloat4(uniformName, x, y, z, w)) {\n if (!this._engine.setInt4(this._uniforms[uniformName], x, y, z, w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets an int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setIntArray(this._uniforms[uniformName], array);\n }\n /**\n * Sets an int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray2(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setIntArray2(this._uniforms[uniformName], array);\n }\n /**\n * Sets an int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray3(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setIntArray3(this._uniforms[uniformName], array);\n }\n /**\n * Sets an int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setIntArray4(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setIntArray4(this._uniforms[uniformName], array);\n }\n /**\n * Sets an unsigned integer value on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value Value to be set.\n */\n setUInt(uniformName, value) {\n const cache = this._valueCache[uniformName];\n if (cache !== undefined && cache === value) {\n return;\n }\n if (this._engine.setUInt(this._uniforms[uniformName], value)) {\n this._valueCache[uniformName] = value;\n }\n }\n /**\n * Sets a unsigned int2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint2.\n * @param y Second unsigned int in uint2.\n */\n setUInt2(uniformName, x, y) {\n if (this._cacheFloat2(uniformName, x, y)) {\n if (!this._engine.setUInt2(this._uniforms[uniformName], x, y)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a unsigned int3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint3.\n * @param y Second unsigned int in uint3.\n * @param z Third unsigned int in uint3.\n */\n setUInt3(uniformName, x, y, z) {\n if (this._cacheFloat3(uniformName, x, y, z)) {\n if (!this._engine.setUInt3(this._uniforms[uniformName], x, y, z)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a unsigned int4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First unsigned int in uint4.\n * @param y Second unsigned int in uint4.\n * @param z Third unsigned int in uint4.\n * @param w Fourth unsigned int in uint4.\n */\n setUInt4(uniformName, x, y, z, w) {\n if (this._cacheFloat4(uniformName, x, y, z, w)) {\n if (!this._engine.setUInt4(this._uniforms[uniformName], x, y, z, w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets an unsigned int array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setUIntArray(this._uniforms[uniformName], array);\n }\n /**\n * Sets an unsigned int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray2(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setUIntArray2(this._uniforms[uniformName], array);\n }\n /**\n * Sets an unsigned int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray3(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setUIntArray3(this._uniforms[uniformName], array);\n }\n /**\n * Sets an unsigned int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setUIntArray4(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setUIntArray4(this._uniforms[uniformName], array);\n }\n /**\n * Sets an float array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setFloatArray(this._uniforms[uniformName], array);\n }\n /**\n * Sets an float array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray2(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setFloatArray2(this._uniforms[uniformName], array);\n }\n /**\n * Sets an float array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray3(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setFloatArray3(this._uniforms[uniformName], array);\n }\n /**\n * Sets an float array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setFloatArray4(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setFloatArray4(this._uniforms[uniformName], array);\n }\n /**\n * Sets an array on a uniform variable.\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setArray(this._uniforms[uniformName], array);\n }\n /**\n * Sets an array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray2(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setArray2(this._uniforms[uniformName], array);\n }\n /**\n * Sets an array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray3(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setArray3(this._uniforms[uniformName], array);\n }\n /**\n * Sets an array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\n * @param uniformName Name of the variable.\n * @param array array to be set.\n */\n setArray4(uniformName, array) {\n this._valueCache[uniformName] = null;\n this._engine.setArray4(this._uniforms[uniformName], array);\n }\n /**\n * Sets matrices on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrices matrices to be set.\n */\n setMatrices(uniformName, matrices) {\n if (!matrices) {\n return;\n }\n this._valueCache[uniformName] = null;\n this._engine.setMatrices(this._uniforms[uniformName], matrices);\n }\n /**\n * Sets matrix on a uniform variable.\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix(uniformName, matrix) {\n if (this._cacheMatrix(uniformName, matrix)) {\n if (!this._engine.setMatrices(this._uniforms[uniformName], matrix.asArray())) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a 3x3 matrix on a uniform variable. (Specified as [1,2,3,4,5,6,7,8,9] will result in [1,2,3][4,5,6][7,8,9] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix3x3(uniformName, matrix) {\n this._valueCache[uniformName] = null;\n this._engine.setMatrix3x3(this._uniforms[uniformName], matrix);\n }\n /**\n * Sets a 2x2 matrix on a uniform variable. (Specified as [1,2,3,4] will result in [1,2][3,4] matrix)\n * @param uniformName Name of the variable.\n * @param matrix matrix to be set.\n */\n setMatrix2x2(uniformName, matrix) {\n this._valueCache[uniformName] = null;\n this._engine.setMatrix2x2(this._uniforms[uniformName], matrix);\n }\n /**\n * Sets a float on a uniform variable.\n * @param uniformName Name of the variable.\n * @param value value to be set.\n */\n setFloat(uniformName, value) {\n const cache = this._valueCache[uniformName];\n if (cache !== undefined && cache === value) {\n return;\n }\n if (this._engine.setFloat(this._uniforms[uniformName], value)) {\n this._valueCache[uniformName] = value;\n }\n }\n /**\n * Sets a boolean on a uniform variable.\n * @param uniformName Name of the variable.\n * @param bool value to be set.\n */\n setBool(uniformName, bool) {\n const cache = this._valueCache[uniformName];\n if (cache !== undefined && cache === bool) {\n return;\n }\n if (this._engine.setInt(this._uniforms[uniformName], bool ? 1 : 0)) {\n this._valueCache[uniformName] = bool ? 1 : 0;\n }\n }\n /**\n * Sets a Vector2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector2 vector2 to be set.\n */\n setVector2(uniformName, vector2) {\n if (this._cacheFloat2(uniformName, vector2.x, vector2.y)) {\n if (!this._engine.setFloat2(this._uniforms[uniformName], vector2.x, vector2.y)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a float2 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float2.\n * @param y Second float in float2.\n */\n setFloat2(uniformName, x, y) {\n if (this._cacheFloat2(uniformName, x, y)) {\n if (!this._engine.setFloat2(this._uniforms[uniformName], x, y)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Vector3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector3 Value to be set.\n */\n setVector3(uniformName, vector3) {\n if (this._cacheFloat3(uniformName, vector3.x, vector3.y, vector3.z)) {\n if (!this._engine.setFloat3(this._uniforms[uniformName], vector3.x, vector3.y, vector3.z)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a float3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float3.\n * @param y Second float in float3.\n * @param z Third float in float3.\n */\n setFloat3(uniformName, x, y, z) {\n if (this._cacheFloat3(uniformName, x, y, z)) {\n if (!this._engine.setFloat3(this._uniforms[uniformName], x, y, z)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Vector4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param vector4 Value to be set.\n */\n setVector4(uniformName, vector4) {\n if (this._cacheFloat4(uniformName, vector4.x, vector4.y, vector4.z, vector4.w)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], vector4.x, vector4.y, vector4.z, vector4.w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Quaternion on a uniform variable.\n * @param uniformName Name of the variable.\n * @param quaternion Value to be set.\n */\n setQuaternion(uniformName, quaternion) {\n if (this._cacheFloat4(uniformName, quaternion.x, quaternion.y, quaternion.z, quaternion.w)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], quaternion.x, quaternion.y, quaternion.z, quaternion.w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a float4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param x First float in float4.\n * @param y Second float in float4.\n * @param z Third float in float4.\n * @param w Fourth float in float4.\n */\n setFloat4(uniformName, x, y, z, w) {\n if (this._cacheFloat4(uniformName, x, y, z, w)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], x, y, z, w)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Color3 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n */\n setColor3(uniformName, color3) {\n if (this._cacheFloat3(uniformName, color3.r, color3.g, color3.b)) {\n if (!this._engine.setFloat3(this._uniforms[uniformName], color3.r, color3.g, color3.b)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Color4 on a uniform variable.\n * @param uniformName Name of the variable.\n * @param color3 Value to be set.\n * @param alpha Alpha value to be set.\n */\n setColor4(uniformName, color3, alpha) {\n if (this._cacheFloat4(uniformName, color3.r, color3.g, color3.b, alpha)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], color3.r, color3.g, color3.b, alpha)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n /**\n * Sets a Color4 on a uniform variable\n * @param uniformName defines the name of the variable\n * @param color4 defines the value to be set\n */\n setDirectColor4(uniformName, color4) {\n if (this._cacheFloat4(uniformName, color4.r, color4.g, color4.b, color4.a)) {\n if (!this._engine.setFloat4(this._uniforms[uniformName], color4.r, color4.g, color4.b, color4.a)) {\n this._valueCache[uniformName] = null;\n }\n }\n }\n}\n"],"mappings":"AAAA,OAAO,MAAMA,qBAAqB,CAAC;EAC/B,IAAIC,OAAOA,CAAA,EAAG;IACV,IAAI,IAAI,CAACC,gBAAgB,EAAE;MACvB,MAAMC,OAAO,GAAG,IAAI,CAACD,gBAAgB,CAACC,OAAO;MAC7C,MAAM,IAAIC,KAAK,CAAC,cAAc,IAAI,OAAOD,OAAO,KAAK,QAAQ,GAAG,IAAI,GAAGA,OAAO,GAAG,EAAE,CAAC,CAAC;IACzF;IACA,OAAO,IAAI,CAACE,UAAU;EAC1B;EACAC,oBAAoBA,CAAA,EAAG;IACnB,OAAO,IAAI;EACf;EACAC,sBAAsBA,CAAA,EAAG;IACrB,OAAO,IAAI;EACf;EACAC,WAAWA,CAACC,MAAM,EAAEC,OAAO,EAAEC,uBAAuB,EAAE;IAClD,IAAI,CAACN,UAAU,GAAG,KAAK;IACvB,IAAI,CAACO,sBAAsB,GAAG,CAAC,CAAC;IAChC,IAAI,CAACC,WAAW,GAAG,CAAC,CAAC;IACrB,IAAI,CAACC,OAAO,GAAGL,MAAM;IACrB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,uBAAuB,GAAGA,uBAAuB;EAC1D;EACAI,sBAAsBA,CAACC,MAAM,EAAEC,mBAAmB,EAAEC,aAAa,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,QAAQ,EAAEC,eAAe,EAAEC,UAAU,EAAE;IAC7H,MAAMd,MAAM,GAAG,IAAI,CAACK,OAAO;IAC3B,IAAIL,MAAM,CAACe,sBAAsB,EAAE;MAC/B,KAAK,MAAMC,IAAI,IAAIR,mBAAmB,EAAE;QACpCD,MAAM,CAACU,gBAAgB,CAACD,IAAI,EAAER,mBAAmB,CAACQ,IAAI,CAAC,CAAC;MAC5D;IACJ;IACA,MAAME,uBAAuB,GAAG,IAAI,CAACb,OAAO,CAACc,WAAW,CAAC,IAAI,EAAEV,aAAa,CAAC;IAC7ES,uBAAuB,CAACE,OAAO,CAAC,CAACC,OAAO,EAAEC,KAAK,KAAK;MAChDZ,QAAQ,CAACD,aAAa,CAACa,KAAK,CAAC,CAAC,GAAGD,OAAO;IAC5C,CAAC,CAAC;IACF,IAAI,CAACE,SAAS,GAAGb,QAAQ;IACzB,IAAIY,KAAK;IACT,KAAKA,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGX,WAAW,CAACa,MAAM,EAAEF,KAAK,EAAE,EAAE;MACjD,MAAMG,OAAO,GAAGlB,MAAM,CAACmB,UAAU,CAACf,WAAW,CAACW,KAAK,CAAC,CAAC;MACrD,IAAIG,OAAO,IAAI,IAAI,EAAE;QACjBd,WAAW,CAACgB,MAAM,CAACL,KAAK,EAAE,CAAC,CAAC;QAC5BA,KAAK,EAAE;MACX;IACJ;IACAX,WAAW,CAACS,OAAO,CAAC,CAACJ,IAAI,EAAEM,KAAK,KAAK;MACjCV,QAAQ,CAACI,IAAI,CAAC,GAAGM,KAAK;IAC1B,CAAC,CAAC;IACFR,UAAU,CAACc,IAAI,CAAC,GAAG5B,MAAM,CAAC6B,aAAa,CAAC,IAAI,EAAEhB,eAAe,CAAC,CAAC;EACnE;EACAiB,SAASA,CAAC9B,MAAM,EAAE;IACd,IAAI,CAACK,OAAO,GAAGL,MAAM;EACzB;EACA;AACJ;AACA;EACI+B,OAAOA,CAAA,EAAG;IACN,IAAI,CAACR,SAAS,GAAG,CAAC,CAAC;EACvB;EACA;AACJ;AACA;EACIS,YAAYA,CAACC,WAAW,EAAEC,MAAM,EAAE;IAC9B,MAAMC,KAAK,GAAG,IAAI,CAAC/B,WAAW,CAAC6B,WAAW,CAAC;IAC3C,MAAMG,IAAI,GAAGF,MAAM,CAACG,UAAU;IAC9B,IAAIF,KAAK,KAAKG,SAAS,IAAIH,KAAK,KAAKC,IAAI,EAAE;MACvC,OAAO,KAAK;IAChB;IACA,IAAI,CAAChC,WAAW,CAAC6B,WAAW,CAAC,GAAGG,IAAI;IACpC,OAAO,IAAI;EACf;EACA;AACJ;AACA;EACIG,YAAYA,CAACN,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAE;IAC5B,IAAIN,KAAK,GAAG,IAAI,CAAC/B,WAAW,CAAC6B,WAAW,CAAC;IACzC,IAAI,CAACE,KAAK,EAAE;MACRA,KAAK,GAAG,CAACK,CAAC,EAAEC,CAAC,CAAC;MACd,IAAI,CAACrC,WAAW,CAAC6B,WAAW,CAAC,GAAGE,KAAK;MACrC,OAAO,IAAI;IACf;IACA,IAAIO,OAAO,GAAG,KAAK;IACnB,IAAIP,KAAK,CAAC,CAAC,CAAC,KAAKK,CAAC,EAAE;MAChBL,KAAK,CAAC,CAAC,CAAC,GAAGK,CAAC;MACZE,OAAO,GAAG,IAAI;IAClB;IACA,IAAIP,KAAK,CAAC,CAAC,CAAC,KAAKM,CAAC,EAAE;MAChBN,KAAK,CAAC,CAAC,CAAC,GAAGM,CAAC;MACZC,OAAO,GAAG,IAAI;IAClB;IACA,OAAOA,OAAO;EAClB;EACA;AACJ;AACA;EACIC,YAAYA,CAACV,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAE;IAC/B,IAAIT,KAAK,GAAG,IAAI,CAAC/B,WAAW,CAAC6B,WAAW,CAAC;IACzC,IAAI,CAACE,KAAK,EAAE;MACRA,KAAK,GAAG,CAACK,CAAC,EAAEC,CAAC,EAAEG,CAAC,CAAC;MACjB,IAAI,CAACxC,WAAW,CAAC6B,WAAW,CAAC,GAAGE,KAAK;MACrC,OAAO,IAAI;IACf;IACA,IAAIO,OAAO,GAAG,KAAK;IACnB,IAAIP,KAAK,CAAC,CAAC,CAAC,KAAKK,CAAC,EAAE;MAChBL,KAAK,CAAC,CAAC,CAAC,GAAGK,CAAC;MACZE,OAAO,GAAG,IAAI;IAClB;IACA,IAAIP,KAAK,CAAC,CAAC,CAAC,KAAKM,CAAC,EAAE;MAChBN,KAAK,CAAC,CAAC,CAAC,GAAGM,CAAC;MACZC,OAAO,GAAG,IAAI;IAClB;IACA,IAAIP,KAAK,CAAC,CAAC,CAAC,KAAKS,CAAC,EAAE;MAChBT,KAAK,CAAC,CAAC,CAAC,GAAGS,CAAC;MACZF,OAAO,GAAG,IAAI;IAClB;IACA,OAAOA,OAAO;EAClB;EACA;AACJ;AACA;EACIG,YAAYA,CAACZ,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAEE,CAAC,EAAE;IAClC,IAAIX,KAAK,GAAG,IAAI,CAAC/B,WAAW,CAAC6B,WAAW,CAAC;IACzC,IAAI,CAACE,KAAK,EAAE;MACRA,KAAK,GAAG,CAACK,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAEE,CAAC,CAAC;MACpB,IAAI,CAAC1C,WAAW,CAAC6B,WAAW,CAAC,GAAGE,KAAK;MACrC,OAAO,IAAI;IACf;IACA,IAAIO,OAAO,GAAG,KAAK;IACnB,IAAIP,KAAK,CAAC,CAAC,CAAC,KAAKK,CAAC,EAAE;MAChBL,KAAK,CAAC,CAAC,CAAC,GAAGK,CAAC;MACZE,OAAO,GAAG,IAAI;IAClB;IACA,IAAIP,KAAK,CAAC,CAAC,CAAC,KAAKM,CAAC,EAAE;MAChBN,KAAK,CAAC,CAAC,CAAC,GAAGM,CAAC;MACZC,OAAO,GAAG,IAAI;IAClB;IACA,IAAIP,KAAK,CAAC,CAAC,CAAC,KAAKS,CAAC,EAAE;MAChBT,KAAK,CAAC,CAAC,CAAC,GAAGS,CAAC;MACZF,OAAO,GAAG,IAAI;IAClB;IACA,IAAIP,KAAK,CAAC,CAAC,CAAC,KAAKW,CAAC,EAAE;MAChBX,KAAK,CAAC,CAAC,CAAC,GAAGW,CAAC;MACZJ,OAAO,GAAG,IAAI;IAClB;IACA,OAAOA,OAAO;EAClB;EACA;AACJ;AACA;AACA;AACA;EACIK,MAAMA,CAACd,WAAW,EAAEe,KAAK,EAAE;IACvB,MAAMb,KAAK,GAAG,IAAI,CAAC/B,WAAW,CAAC6B,WAAW,CAAC;IAC3C,IAAIE,KAAK,KAAKG,SAAS,IAAIH,KAAK,KAAKa,KAAK,EAAE;MACxC;IACJ;IACA,IAAI,IAAI,CAAC3C,OAAO,CAAC0C,MAAM,CAAC,IAAI,CAACxB,SAAS,CAACU,WAAW,CAAC,EAAEe,KAAK,CAAC,EAAE;MACzD,IAAI,CAAC5C,WAAW,CAAC6B,WAAW,CAAC,GAAGe,KAAK;IACzC;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;EACIC,OAAOA,CAAChB,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAE;IACvB,IAAI,IAAI,CAACF,YAAY,CAACN,WAAW,EAAEO,CAAC,EAAEC,CAAC,CAAC,EAAE;MACtC,IAAI,CAAC,IAAI,CAACpC,OAAO,CAAC4C,OAAO,CAAC,IAAI,CAAC1B,SAAS,CAACU,WAAW,CAAC,EAAEO,CAAC,EAAEC,CAAC,CAAC,EAAE;QAC1D,IAAI,CAACrC,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACIiB,OAAOA,CAACjB,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAE;IAC1B,IAAI,IAAI,CAACD,YAAY,CAACV,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,CAAC,EAAE;MACzC,IAAI,CAAC,IAAI,CAACvC,OAAO,CAAC6C,OAAO,CAAC,IAAI,CAAC3B,SAAS,CAACU,WAAW,CAAC,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,CAAC,EAAE;QAC7D,IAAI,CAACxC,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIkB,OAAOA,CAAClB,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAEE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAACD,YAAY,CAACZ,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAEE,CAAC,CAAC,EAAE;MAC5C,IAAI,CAAC,IAAI,CAACzC,OAAO,CAAC8C,OAAO,CAAC,IAAI,CAAC5B,SAAS,CAACU,WAAW,CAAC,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAEE,CAAC,CAAC,EAAE;QAChE,IAAI,CAAC1C,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;EACImB,WAAWA,CAACnB,WAAW,EAAEoB,KAAK,EAAE;IAC5B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAAC+C,WAAW,CAAC,IAAI,CAAC7B,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EAChE;EACA;AACJ;AACA;AACA;AACA;EACIC,YAAYA,CAACrB,WAAW,EAAEoB,KAAK,EAAE;IAC7B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAACiD,YAAY,CAAC,IAAI,CAAC/B,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EACjE;EACA;AACJ;AACA;AACA;AACA;EACIE,YAAYA,CAACtB,WAAW,EAAEoB,KAAK,EAAE;IAC7B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAACkD,YAAY,CAAC,IAAI,CAAChC,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EACjE;EACA;AACJ;AACA;AACA;AACA;EACIG,YAAYA,CAACvB,WAAW,EAAEoB,KAAK,EAAE;IAC7B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAACmD,YAAY,CAAC,IAAI,CAACjC,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EACjE;EACA;AACJ;AACA;AACA;AACA;EACII,OAAOA,CAACxB,WAAW,EAAEe,KAAK,EAAE;IACxB,MAAMb,KAAK,GAAG,IAAI,CAAC/B,WAAW,CAAC6B,WAAW,CAAC;IAC3C,IAAIE,KAAK,KAAKG,SAAS,IAAIH,KAAK,KAAKa,KAAK,EAAE;MACxC;IACJ;IACA,IAAI,IAAI,CAAC3C,OAAO,CAACoD,OAAO,CAAC,IAAI,CAAClC,SAAS,CAACU,WAAW,CAAC,EAAEe,KAAK,CAAC,EAAE;MAC1D,IAAI,CAAC5C,WAAW,CAAC6B,WAAW,CAAC,GAAGe,KAAK;IACzC;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;EACIU,QAAQA,CAACzB,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAE;IACxB,IAAI,IAAI,CAACF,YAAY,CAACN,WAAW,EAAEO,CAAC,EAAEC,CAAC,CAAC,EAAE;MACtC,IAAI,CAAC,IAAI,CAACpC,OAAO,CAACqD,QAAQ,CAAC,IAAI,CAACnC,SAAS,CAACU,WAAW,CAAC,EAAEO,CAAC,EAAEC,CAAC,CAAC,EAAE;QAC3D,IAAI,CAACrC,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI0B,QAAQA,CAAC1B,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAE;IAC3B,IAAI,IAAI,CAACD,YAAY,CAACV,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,CAAC,EAAE;MACzC,IAAI,CAAC,IAAI,CAACvC,OAAO,CAACsD,QAAQ,CAAC,IAAI,CAACpC,SAAS,CAACU,WAAW,CAAC,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,CAAC,EAAE;QAC9D,IAAI,CAACxC,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACI2B,QAAQA,CAAC3B,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAEE,CAAC,EAAE;IAC9B,IAAI,IAAI,CAACD,YAAY,CAACZ,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAEE,CAAC,CAAC,EAAE;MAC5C,IAAI,CAAC,IAAI,CAACzC,OAAO,CAACuD,QAAQ,CAAC,IAAI,CAACrC,SAAS,CAACU,WAAW,CAAC,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAEE,CAAC,CAAC,EAAE;QACjE,IAAI,CAAC1C,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;EACI4B,YAAYA,CAAC5B,WAAW,EAAEoB,KAAK,EAAE;IAC7B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAACwD,YAAY,CAAC,IAAI,CAACtC,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EACjE;EACA;AACJ;AACA;AACA;AACA;EACIS,aAAaA,CAAC7B,WAAW,EAAEoB,KAAK,EAAE;IAC9B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAACyD,aAAa,CAAC,IAAI,CAACvC,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EAClE;EACA;AACJ;AACA;AACA;AACA;EACIU,aAAaA,CAAC9B,WAAW,EAAEoB,KAAK,EAAE;IAC9B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAAC0D,aAAa,CAAC,IAAI,CAACxC,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EAClE;EACA;AACJ;AACA;AACA;AACA;EACIW,aAAaA,CAAC/B,WAAW,EAAEoB,KAAK,EAAE;IAC9B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAAC2D,aAAa,CAAC,IAAI,CAACzC,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EAClE;EACA;AACJ;AACA;AACA;AACA;EACIY,aAAaA,CAAChC,WAAW,EAAEoB,KAAK,EAAE;IAC9B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAAC4D,aAAa,CAAC,IAAI,CAAC1C,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EAClE;EACA;AACJ;AACA;AACA;AACA;EACIa,cAAcA,CAACjC,WAAW,EAAEoB,KAAK,EAAE;IAC/B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAAC6D,cAAc,CAAC,IAAI,CAAC3C,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EACnE;EACA;AACJ;AACA;AACA;AACA;EACIc,cAAcA,CAAClC,WAAW,EAAEoB,KAAK,EAAE;IAC/B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAAC8D,cAAc,CAAC,IAAI,CAAC5C,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EACnE;EACA;AACJ;AACA;AACA;AACA;EACIe,cAAcA,CAACnC,WAAW,EAAEoB,KAAK,EAAE;IAC/B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAAC+D,cAAc,CAAC,IAAI,CAAC7C,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EACnE;EACA;AACJ;AACA;AACA;AACA;EACIgB,QAAQA,CAACpC,WAAW,EAAEoB,KAAK,EAAE;IACzB,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAACgE,QAAQ,CAAC,IAAI,CAAC9C,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EAC7D;EACA;AACJ;AACA;AACA;AACA;EACIiB,SAASA,CAACrC,WAAW,EAAEoB,KAAK,EAAE;IAC1B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAACiE,SAAS,CAAC,IAAI,CAAC/C,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EAC9D;EACA;AACJ;AACA;AACA;AACA;EACIkB,SAASA,CAACtC,WAAW,EAAEoB,KAAK,EAAE;IAC1B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAACkE,SAAS,CAAC,IAAI,CAAChD,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EAC9D;EACA;AACJ;AACA;AACA;AACA;EACImB,SAASA,CAACvC,WAAW,EAAEoB,KAAK,EAAE;IAC1B,IAAI,CAACjD,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAACmE,SAAS,CAAC,IAAI,CAACjD,SAAS,CAACU,WAAW,CAAC,EAAEoB,KAAK,CAAC;EAC9D;EACA;AACJ;AACA;AACA;AACA;EACIoB,WAAWA,CAACxC,WAAW,EAAEyC,QAAQ,EAAE;IAC/B,IAAI,CAACA,QAAQ,EAAE;MACX;IACJ;IACA,IAAI,CAACtE,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAACoE,WAAW,CAAC,IAAI,CAAClD,SAAS,CAACU,WAAW,CAAC,EAAEyC,QAAQ,CAAC;EACnE;EACA;AACJ;AACA;AACA;AACA;EACIC,SAASA,CAAC1C,WAAW,EAAEC,MAAM,EAAE;IAC3B,IAAI,IAAI,CAACF,YAAY,CAACC,WAAW,EAAEC,MAAM,CAAC,EAAE;MACxC,IAAI,CAAC,IAAI,CAAC7B,OAAO,CAACoE,WAAW,CAAC,IAAI,CAAClD,SAAS,CAACU,WAAW,CAAC,EAAEC,MAAM,CAAC0C,OAAO,CAAC,CAAC,CAAC,EAAE;QAC1E,IAAI,CAACxE,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;EACI4C,YAAYA,CAAC5C,WAAW,EAAEC,MAAM,EAAE;IAC9B,IAAI,CAAC9B,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAACwE,YAAY,CAAC,IAAI,CAACtD,SAAS,CAACU,WAAW,CAAC,EAAEC,MAAM,CAAC;EAClE;EACA;AACJ;AACA;AACA;AACA;EACI4C,YAAYA,CAAC7C,WAAW,EAAEC,MAAM,EAAE;IAC9B,IAAI,CAAC9B,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;IACpC,IAAI,CAAC5B,OAAO,CAACyE,YAAY,CAAC,IAAI,CAACvD,SAAS,CAACU,WAAW,CAAC,EAAEC,MAAM,CAAC;EAClE;EACA;AACJ;AACA;AACA;AACA;EACI6C,QAAQA,CAAC9C,WAAW,EAAEe,KAAK,EAAE;IACzB,MAAMb,KAAK,GAAG,IAAI,CAAC/B,WAAW,CAAC6B,WAAW,CAAC;IAC3C,IAAIE,KAAK,KAAKG,SAAS,IAAIH,KAAK,KAAKa,KAAK,EAAE;MACxC;IACJ;IACA,IAAI,IAAI,CAAC3C,OAAO,CAAC0E,QAAQ,CAAC,IAAI,CAACxD,SAAS,CAACU,WAAW,CAAC,EAAEe,KAAK,CAAC,EAAE;MAC3D,IAAI,CAAC5C,WAAW,CAAC6B,WAAW,CAAC,GAAGe,KAAK;IACzC;EACJ;EACA;AACJ;AACA;AACA;AACA;EACIgC,OAAOA,CAAC/C,WAAW,EAAEgD,IAAI,EAAE;IACvB,MAAM9C,KAAK,GAAG,IAAI,CAAC/B,WAAW,CAAC6B,WAAW,CAAC;IAC3C,IAAIE,KAAK,KAAKG,SAAS,IAAIH,KAAK,KAAK8C,IAAI,EAAE;MACvC;IACJ;IACA,IAAI,IAAI,CAAC5E,OAAO,CAAC0C,MAAM,CAAC,IAAI,CAACxB,SAAS,CAACU,WAAW,CAAC,EAAEgD,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;MAChE,IAAI,CAAC7E,WAAW,CAAC6B,WAAW,CAAC,GAAGgD,IAAI,GAAG,CAAC,GAAG,CAAC;IAChD;EACJ;EACA;AACJ;AACA;AACA;AACA;EACIC,UAAUA,CAACjD,WAAW,EAAEkD,OAAO,EAAE;IAC7B,IAAI,IAAI,CAAC5C,YAAY,CAACN,WAAW,EAAEkD,OAAO,CAAC3C,CAAC,EAAE2C,OAAO,CAAC1C,CAAC,CAAC,EAAE;MACtD,IAAI,CAAC,IAAI,CAACpC,OAAO,CAAC+E,SAAS,CAAC,IAAI,CAAC7D,SAAS,CAACU,WAAW,CAAC,EAAEkD,OAAO,CAAC3C,CAAC,EAAE2C,OAAO,CAAC1C,CAAC,CAAC,EAAE;QAC5E,IAAI,CAACrC,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;EACImD,SAASA,CAACnD,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAE;IACzB,IAAI,IAAI,CAACF,YAAY,CAACN,WAAW,EAAEO,CAAC,EAAEC,CAAC,CAAC,EAAE;MACtC,IAAI,CAAC,IAAI,CAACpC,OAAO,CAAC+E,SAAS,CAAC,IAAI,CAAC7D,SAAS,CAACU,WAAW,CAAC,EAAEO,CAAC,EAAEC,CAAC,CAAC,EAAE;QAC5D,IAAI,CAACrC,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;EACIoD,UAAUA,CAACpD,WAAW,EAAEqD,OAAO,EAAE;IAC7B,IAAI,IAAI,CAAC3C,YAAY,CAACV,WAAW,EAAEqD,OAAO,CAAC9C,CAAC,EAAE8C,OAAO,CAAC7C,CAAC,EAAE6C,OAAO,CAAC1C,CAAC,CAAC,EAAE;MACjE,IAAI,CAAC,IAAI,CAACvC,OAAO,CAACkF,SAAS,CAAC,IAAI,CAAChE,SAAS,CAACU,WAAW,CAAC,EAAEqD,OAAO,CAAC9C,CAAC,EAAE8C,OAAO,CAAC7C,CAAC,EAAE6C,OAAO,CAAC1C,CAAC,CAAC,EAAE;QACvF,IAAI,CAACxC,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;EACIsD,SAASA,CAACtD,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAE;IAC5B,IAAI,IAAI,CAACD,YAAY,CAACV,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,CAAC,EAAE;MACzC,IAAI,CAAC,IAAI,CAACvC,OAAO,CAACkF,SAAS,CAAC,IAAI,CAAChE,SAAS,CAACU,WAAW,CAAC,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,CAAC,EAAE;QAC/D,IAAI,CAACxC,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;EACIuD,UAAUA,CAACvD,WAAW,EAAEwD,OAAO,EAAE;IAC7B,IAAI,IAAI,CAAC5C,YAAY,CAACZ,WAAW,EAAEwD,OAAO,CAACjD,CAAC,EAAEiD,OAAO,CAAChD,CAAC,EAAEgD,OAAO,CAAC7C,CAAC,EAAE6C,OAAO,CAAC3C,CAAC,CAAC,EAAE;MAC5E,IAAI,CAAC,IAAI,CAACzC,OAAO,CAACqF,SAAS,CAAC,IAAI,CAACnE,SAAS,CAACU,WAAW,CAAC,EAAEwD,OAAO,CAACjD,CAAC,EAAEiD,OAAO,CAAChD,CAAC,EAAEgD,OAAO,CAAC7C,CAAC,EAAE6C,OAAO,CAAC3C,CAAC,CAAC,EAAE;QAClG,IAAI,CAAC1C,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;EACI0D,aAAaA,CAAC1D,WAAW,EAAE2D,UAAU,EAAE;IACnC,IAAI,IAAI,CAAC/C,YAAY,CAACZ,WAAW,EAAE2D,UAAU,CAACpD,CAAC,EAAEoD,UAAU,CAACnD,CAAC,EAAEmD,UAAU,CAAChD,CAAC,EAAEgD,UAAU,CAAC9C,CAAC,CAAC,EAAE;MACxF,IAAI,CAAC,IAAI,CAACzC,OAAO,CAACqF,SAAS,CAAC,IAAI,CAACnE,SAAS,CAACU,WAAW,CAAC,EAAE2D,UAAU,CAACpD,CAAC,EAAEoD,UAAU,CAACnD,CAAC,EAAEmD,UAAU,CAAChD,CAAC,EAAEgD,UAAU,CAAC9C,CAAC,CAAC,EAAE;QAC9G,IAAI,CAAC1C,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIyD,SAASA,CAACzD,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAEE,CAAC,EAAE;IAC/B,IAAI,IAAI,CAACD,YAAY,CAACZ,WAAW,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAEE,CAAC,CAAC,EAAE;MAC5C,IAAI,CAAC,IAAI,CAACzC,OAAO,CAACqF,SAAS,CAAC,IAAI,CAACnE,SAAS,CAACU,WAAW,CAAC,EAAEO,CAAC,EAAEC,CAAC,EAAEG,CAAC,EAAEE,CAAC,CAAC,EAAE;QAClE,IAAI,CAAC1C,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;EACI4D,SAASA,CAAC5D,WAAW,EAAE6D,MAAM,EAAE;IAC3B,IAAI,IAAI,CAACnD,YAAY,CAACV,WAAW,EAAE6D,MAAM,CAACC,CAAC,EAAED,MAAM,CAACE,CAAC,EAAEF,MAAM,CAACG,CAAC,CAAC,EAAE;MAC9D,IAAI,CAAC,IAAI,CAAC5F,OAAO,CAACkF,SAAS,CAAC,IAAI,CAAChE,SAAS,CAACU,WAAW,CAAC,EAAE6D,MAAM,CAACC,CAAC,EAAED,MAAM,CAACE,CAAC,EAAEF,MAAM,CAACG,CAAC,CAAC,EAAE;QACpF,IAAI,CAAC7F,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;AACA;EACIiE,SAASA,CAACjE,WAAW,EAAE6D,MAAM,EAAEK,KAAK,EAAE;IAClC,IAAI,IAAI,CAACtD,YAAY,CAACZ,WAAW,EAAE6D,MAAM,CAACC,CAAC,EAAED,MAAM,CAACE,CAAC,EAAEF,MAAM,CAACG,CAAC,EAAEE,KAAK,CAAC,EAAE;MACrE,IAAI,CAAC,IAAI,CAAC9F,OAAO,CAACqF,SAAS,CAAC,IAAI,CAACnE,SAAS,CAACU,WAAW,CAAC,EAAE6D,MAAM,CAACC,CAAC,EAAED,MAAM,CAACE,CAAC,EAAEF,MAAM,CAACG,CAAC,EAAEE,KAAK,CAAC,EAAE;QAC3F,IAAI,CAAC/F,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;EACA;AACJ;AACA;AACA;AACA;EACImE,eAAeA,CAACnE,WAAW,EAAEoE,MAAM,EAAE;IACjC,IAAI,IAAI,CAACxD,YAAY,CAACZ,WAAW,EAAEoE,MAAM,CAACN,CAAC,EAAEM,MAAM,CAACL,CAAC,EAAEK,MAAM,CAACJ,CAAC,EAAEI,MAAM,CAACC,CAAC,CAAC,EAAE;MACxE,IAAI,CAAC,IAAI,CAACjG,OAAO,CAACqF,SAAS,CAAC,IAAI,CAACnE,SAAS,CAACU,WAAW,CAAC,EAAEoE,MAAM,CAACN,CAAC,EAAEM,MAAM,CAACL,CAAC,EAAEK,MAAM,CAACJ,CAAC,EAAEI,MAAM,CAACC,CAAC,CAAC,EAAE;QAC9F,IAAI,CAAClG,WAAW,CAAC6B,WAAW,CAAC,GAAG,IAAI;MACxC;IACJ;EACJ;AACJ","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}